
ledger-x86_64-O0.o:	file format elf64-x86-64

Disassembly of section .text:

0000000000000000 <percent_change>:
       0: 55                           	pushq	%rbp
       1: 48 89 e5                     	movq	%rsp, %rbp
       4: 89 7d f8                     	movl	%edi, -0x8(%rbp)
       7: 89 75 f4                     	movl	%esi, -0xc(%rbp)
       a: 83 7d f8 00                  	cmpl	$0x0, -0x8(%rbp)
       e: 75 09                        	jne	0x19 <percent_change+0x19>
      10: c7 45 fc 00 00 00 00         	movl	$0x0, -0x4(%rbp)
      17: eb 10                        	jmp	0x29 <percent_change+0x29>
      19: 8b 45 f4                     	movl	-0xc(%rbp), %eax
      1c: 2b 45 f8                     	subl	-0x8(%rbp), %eax
      1f: 6b c0 64                     	imull	$0x64, %eax, %eax
      22: 99                           	cltd
      23: f7 7d f8                     	idivl	-0x8(%rbp)
      26: 89 45 fc                     	movl	%eax, -0x4(%rbp)
      29: 8b 45 fc                     	movl	-0x4(%rbp), %eax
      2c: 5d                           	popq	%rbp
      2d: c3                           	retq
      2e: 66 90                        	nop

0000000000000030 <grade>:
      30: 55                           	pushq	%rbp
      31: 48 89 e5                     	movq	%rsp, %rbp
      34: 89 7d f8                     	movl	%edi, -0x8(%rbp)
      37: 48 63 45 f8                  	movslq	-0x8(%rbp), %rax
      3b: 48 69 c0 67 66 66 66         	imulq	$0x66666667, %rax, %rax # imm = 0x66666667
      42: 48 89 c1                     	movq	%rax, %rcx
      45: 48 c1 f9 22                  	sarq	$0x22, %rcx
      49: 89 ca                        	movl	%ecx, %edx
      4b: 48 c1 e8 3f                  	shrq	$0x3f, %rax
      4f: 89 c1                        	movl	%eax, %ecx
      51: 89 d0                        	movl	%edx, %eax
      53: 8d 44 08 fa                  	leal	-0x6(%rax,%rcx), %eax
      57: 89 c1                        	movl	%eax, %ecx
      59: 48 89 4d f0                  	movq	%rcx, -0x10(%rbp)
      5d: 83 e8 04                     	subl	$0x4, %eax
      60: 77 38                        	ja	0x9a <grade+0x6a>
      62: 48 8b 45 f0                  	movq	-0x10(%rbp), %rax
      66: 48 8d 0d 00 00 00 00         	leaq	(%rip), %rcx            # 0x6d <grade+0x3d>
		0000000000000069:  R_X86_64_PC32	.rodata-0x4
      6d: 48 63 04 81                  	movslq	(%rcx,%rax,4), %rax
      71: 48 01 c8                     	addq	%rcx, %rax
      74: ff e0                        	jmpq	*%rax
      76: c7 45 fc 04 00 00 00         	movl	$0x4, -0x4(%rbp)
      7d: eb 22                        	jmp	0xa1 <grade+0x71>
      7f: c7 45 fc 03 00 00 00         	movl	$0x3, -0x4(%rbp)
      86: eb 19                        	jmp	0xa1 <grade+0x71>
      88: c7 45 fc 02 00 00 00         	movl	$0x2, -0x4(%rbp)
      8f: eb 10                        	jmp	0xa1 <grade+0x71>
      91: c7 45 fc 01 00 00 00         	movl	$0x1, -0x4(%rbp)
      98: eb 07                        	jmp	0xa1 <grade+0x71>
      9a: c7 45 fc 00 00 00 00         	movl	$0x0, -0x4(%rbp)
      a1: 8b 45 fc                     	movl	-0x4(%rbp), %eax
      a4: 5d                           	popq	%rbp
      a5: c3                           	retq
      a6: 66 2e 0f 1f 84 00 00 00 00 00	nopw	%cs:(%rax,%rax)

00000000000000b0 <total>:
      b0: 55                           	pushq	%rbp
      b1: 48 89 e5                     	movq	%rsp, %rbp
      b4: 48 89 7d f8                  	movq	%rdi, -0x8(%rbp)
      b8: 89 75 f4                     	movl	%esi, -0xc(%rbp)
      bb: c7 45 f0 00 00 00 00         	movl	$0x0, -0x10(%rbp)
      c2: c7 45 ec 00 00 00 00         	movl	$0x0, -0x14(%rbp)
      c9: 8b 45 ec                     	movl	-0x14(%rbp), %eax
      cc: 3b 45 f4                     	cmpl	-0xc(%rbp), %eax
      cf: 7d 1c                        	jge	0xed <total+0x3d>
      d1: 48 8b 45 f8                  	movq	-0x8(%rbp), %rax
      d5: 48 63 4d ec                  	movslq	-0x14(%rbp), %rcx
      d9: 8b 04 88                     	movl	(%rax,%rcx,4), %eax
      dc: 03 45 f0                     	addl	-0x10(%rbp), %eax
      df: 89 45 f0                     	movl	%eax, -0x10(%rbp)
      e2: 8b 45 ec                     	movl	-0x14(%rbp), %eax
      e5: 83 c0 01                     	addl	$0x1, %eax
      e8: 89 45 ec                     	movl	%eax, -0x14(%rbp)
      eb: eb dc                        	jmp	0xc9 <total+0x19>
      ed: 8b 45 f0                     	movl	-0x10(%rbp), %eax
      f0: 5d                           	popq	%rbp
      f1: c3                           	retq
      f2: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00    	nopw	%cs:(%rax,%rax)

0000000000000100 <grade_label>:
     100: 55                           	pushq	%rbp
     101: 48 89 e5                     	movq	%rsp, %rbp
     104: 48 83 ec 10                  	subq	$0x10, %rsp
     108: 89 7d fc                     	movl	%edi, -0x4(%rbp)
     10b: 8b 7d fc                     	movl	-0x4(%rbp), %edi
     10e: e8 00 00 00 00               	callq	0x113 <grade_label+0x13>
		000000000000010f:  R_X86_64_PLT32	grade-0x4
     113: 48 63 c8                     	movslq	%eax, %rcx
     116: 48 8d 05 00 00 00 00         	leaq	(%rip), %rax            # 0x11d <grade_label+0x1d>
		0000000000000119:  R_X86_64_PC32	.data-0x4
     11d: 48 8b 04 c8                  	movq	(%rax,%rcx,8), %rax
     121: 48 83 c4 10                  	addq	$0x10, %rsp
     125: 5d                           	popq	%rbp
     126: c3                           	retq
