{ "tool": "radare2", "version": "radare2 6.2.4 +0 abi:152 @ darwin-arm_64", "fixture": "ledger-x86_64-O0.o", "commands": { "iSj": { "command": "r2 -e scr.color=0 -qc iSj ledger-x86_64-O0.o", "output": [ { "name": "", "size": 0, "vsize": 0, "type": "NULL", "perm": "----", "flags": 0, "paddr": 0, "vaddr": 134217728 }, { "name": ".strtab", "size": 161, "vsize": 161, "type": "STRTAB", "perm": "----", "flags": 0, "paddr": 1066, "vaddr": 134218794 }, { "name": ".text", "size": 295, "vsize": 295, "type": "PROGBITS", "perm": "-r-x", "flags": 6, "paddr": 64, "vaddr": 134217792 }, { "name": ".rela.text", "size": 72, "vsize": 72, "type": "RELA", "perm": "----", "flags": 64, "paddr": 752, "vaddr": 134218480 }, { "name": ".rodata", "size": 20, "vsize": 20, "type": "PROGBITS", "perm": "-r--", "flags": 2, "paddr": 360, "vaddr": 134218088 }, { "name": ".rela.rodata", "size": 120, "vsize": 120, "type": "RELA", "perm": "----", "flags": 64, "paddr": 824, "vaddr": 134218552 }, { "name": ".data", "size": 40, "vsize": 40, "type": "PROGBITS", "perm": "-rw-", "flags": 3, "paddr": 384, "vaddr": 134218112 }, { "name": ".rela.data", "size": 120, "vsize": 120, "type": "RELA", "perm": "----", "flags": 64, "paddr": 944, "vaddr": 134218672 }, { "name": ".rodata.str1.1", "size": 10, "vsize": 10, "type": "PROGBITS", "perm": "-r--", "flags": 50, "paddr": 424, "vaddr": 134218152 }, { "name": ".comment", "size": 47, "vsize": 47, "type": "PROGBITS", "perm": "----", "flags": 48, "paddr": 434, "vaddr": 134218162 }, { "name": ".note.GNU-stack", "size": 0, "vsize": 0, "type": "PROGBITS", "perm": "----", "flags": 0, "paddr": 481, "vaddr": 134218209 }, { "name": ".llvm_addrsig", "size": 2, "vsize": 2, "perm": "----", "flags": 2147483648, "paddr": 1064, "vaddr": 134218792 }, { "name": ".symtab", "size": 264, "vsize": 264, "type": "SYMTAB", "perm": "----", "flags": 0, "paddr": 488, "vaddr": 134218216 } ] }, "aaa; aflj": { "command": "r2 -e scr.color=0 -qc 'aaa; aflj' ledger-x86_64-O0.o", "output": [ { "addr": 134217792, "name": "sym.percent_change", "size": 46, "is-pure": "true", "realsz": 46, "noreturn": false, "recursive": false, "stackframe": 8, "calltype": "amd64", "cost": 21, "cc": 2, "bits": 64, "type": "fcn", "nbbs": 4, "tracecov": 0, "is-lineal": true, "ninstrs": 17, "edges": 4, "ebbs": 1, "signature": "sym.percent_change (signed int arg1, int64_t arg2);", "minaddr": 134217792, "maxaddr": 134217838, "maxbbins": 6, "midbbins": 4.25, "ratbbins": 1.412, "indegree": 0, "outdegree": 0, "nlocals": 3, "nargs": 2, "difftype": "new" }, { "addr": 134217840, "name": "sym.grade", "size": 118, "is-pure": "false", "realsz": 82, "noreturn": false, "recursive": false, "stackframe": 8, "calltype": "amd64", "cost": 29, "cc": 3, "bits": 64, "type": "fcn", "nbbs": 3, "tracecov": 0, "is-lineal": false, "ninstrs": 25, "edges": 2, "ebbs": 2, "signature": "sym.grade (int64_t arg1);", "minaddr": 134217840, "maxaddr": 134217958, "maxbbins": 16, "midbbins": 8.333, "ratbbins": 1.92, "indegree": 0, "outdegree": 0, "nlocals": 3, "nargs": 1, "difftype": "new" }, { "addr": 134217968, "name": "sym.total", "size": 66, "is-pure": "true", "realsz": 66, "noreturn": false, "recursive": false, "stackframe": 8, "calltype": "amd64", "cost": 25, "cc": 2, "bits": 64, "type": "fcn", "nbbs": 4, "tracecov": 0, "is-lineal": true, "ninstrs": 21, "edges": 4, "ebbs": 1, "signature": "sym.total (int64_t arg1, signed int arg2);", "minaddr": 134217968, "maxaddr": 134218034, "maxbbins": 9, "midbbins": 5.25, "ratbbins": 1.714, "indegree": 0, "outdegree": 0, "nlocals": 4, "nargs": 2, "difftype": "new" }, { "addr": 134218048, "name": "sym.grade_label", "size": 39, "is-pure": "false", "realsz": 39, "noreturn": false, "recursive": false, "stackframe": 24, "calltype": "amd64", "cost": 16, "cc": 1, "bits": 64, "type": "fcn", "nbbs": 1, "tracecov": 0, "is-lineal": true, "ninstrs": 12, "edges": 0, "ebbs": 1, "signature": "sym.grade_label (int64_t arg1);", "minaddr": 134218048, "maxaddr": 134218087, "maxbbins": 12, "midbbins": 12.0, "ratbbins": 1.0, "indegree": 0, "outdegree": 1, "nlocals": 1, "nargs": 1, "difftype": "new" } ] }, "aaa; afbj @ 0x8000040": { "command": "r2 -e scr.color=0 -qc 'aaa; afbj @ 0x8000040' ledger-x86_64-O0.o", "output": [ { "addr": 134217792, "size": 16, "jump": 134217817, "fail": 134217808, "opaddr": 134217792, "inputs": 0, "outputs": 2, "ninstr": 6, "instrs": [ 134217792, 134217793, 134217796, 134217799, 134217802, 134217806 ], "traced": 0 }, { "addr": 134217808, "size": 9, "jump": 134217833, "opaddr": 18446744073709551615, "inputs": 1, "outputs": 1, "ninstr": 2, "instrs": [ 134217808, 134217815 ], "traced": 0 }, { "addr": 134217817, "size": 16, "jump": 134217833, "opaddr": 18446744073709551615, "inputs": 1, "outputs": 1, "ninstr": 6, "instrs": [ 134217817, 134217820, 134217823, 134217826, 134217827, 134217830 ], "traced": 0 }, { "addr": 134217833, "size": 5, "opaddr": 18446744073709551615, "inputs": 2, "outputs": 0, "ninstr": 3, "instrs": [ 134217833, 134217836, 134217837 ], "traced": 0 } ] }, "aaa; pdfj @ 0x8000040": { "command": "r2 -e scr.color=0 -qc 'aaa; pdfj @ 0x8000040' ledger-x86_64-O0.o", "output": { "name": "sym.percent_change", "size": 46, "addr": 134217792, "ops": [ { "addr": 134217792, "esil": "rbp,8,rsp,-,=[8],8,rsp,-=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217837, "size": 1, "opcode": "push rbp", "disasm": "push rbp", "bytes": "55", "family": "cpu", "type": "rpush", "reloc": false, "type_num": 268435468, "type2_num": 0, "flags": [ "section..text", "sym.percent_change", "rip" ], "comment": "WzAyXSAtci14IHNlY3Rpb24gc2l6ZSAyOTUgbmFtZWQgLnRleHQ=" }, { "addr": 134217793, "esil": "rsp,rbp,=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "mov rbp, rsp", "disasm": "mov rbp, rsp", "bytes": "4889e5", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217796, "esil": "edi,0x8,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "mov dword [rbp - 8], edi", "disasm": "mov dword [rbp - 8], edi", "bytes": "897df8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217799, "esil": "esi,0xc,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "mov dword [rbp - 0xc], esi", "disasm": "mov dword [rbp - 0xc], esi", "bytes": "8975f4", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217802, "val": 0, "esil": "0,0x8,rbp,-,[4],==,$z,zf,:=,32,$b,cf,:=,$p,pf,:=,31,$s,sf,:=,0,0x80000000,-,!,31,$o,^,of,:=,4,$b,af,:=", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217834, "size": 4, "opcode": "cmp dword [rbp - 8], 0", "disasm": "cmp dword [rbp - 8], 0", "bytes": "837df800", "family": "cpu", "type": "cmp", "reloc": false, "type_num": 268435471, "type2_num": 0 }, { "addr": 134217806, "esil": "zf,!,?{,134217817,rip,=,}", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217836, "size": 2, "opcode": "jne 0x8000059", "disasm": "jne 0x8000059", "bytes": "7509", "family": "cpu", "type": "cjmp", "reloc": false, "type_num": 2147483649, "type2_num": 0, "jump": 134217817, "fail": 134217808, "refs": [ { "addr": 134217817, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217808, "val": 0, "esil": "0,0x4,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217831, "size": 7, "opcode": "mov dword [rbp - 4], 0", "disasm": "mov dword [rbp - 4], 0", "bytes": "c745fc00000000", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217815, "esil": "0x8000069,rip,=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217836, "size": 2, "opcode": "jmp 0x8000069", "disasm": "jmp 0x8000069", "bytes": "eb10", "family": "cpu", "type": "jmp", "reloc": false, "type_num": 1, "type2_num": 0, "jump": 134217833, "refs": [ { "addr": 134217833, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217817, "esil": "0xc,rbp,-,[4],rax,=", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "mov eax, dword [rbp - 0xc]", "disasm": "mov eax, dword [rbp - 0xc]", "bytes": "8b45f4", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134217806, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217820, "esil": "0x8,rbp,-,[4],0x80000000,-,!,0x8,rbp,-,[4],eax,-=,31,$o,^,of,:=,31,$s,sf,:=,$z,zf,:=,$p,pf,:=,32,$b,cf,:=,4,$b,af,:=,eax,rax,=", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "sub eax, dword [rbp - 8]", "disasm": "sub eax, dword [rbp - 8]", "bytes": "2b45f8", "family": "cpu", "type": "sub", "reloc": false, "type_num": 18, "type2_num": 0 }, { "addr": 134217823, "ptr": 100, "val": 100, "esil": "32,100,~,32,eax,~,*,DUP,eax,=,32,eax,~,-,!,!,DUP,cf,:=,of,:=,eax,rax,=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "imul eax, eax, 0x64", "disasm": "imul eax, eax, 0x64", "bytes": "6bc064", "family": "cpu", "type": "mul", "reloc": false, "type_num": 20, "type2_num": 0 }, { "addr": 134217826, "esil": "0,edx,=,31,eax,>>,?{,0xffffffff,edx,=,},edx,rdx,=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217837, "size": 1, "opcode": "cdq", "disasm": "cdq", "bytes": "99", "family": "cpu", "type": "null", "reloc": false, "type_num": 0, "type2_num": 0 }, { "addr": 134217827, "esil": "32,0x8,rbp,-,[4],~,32,edx,<<,eax,+,~%,32,0x8,rbp,-,[4],~,32,edx,<<,eax,+,~/,eax,=,edx,=,eax,rax,=,edx,rdx,=", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "idiv dword [rbp - 8]", "disasm": "idiv dword [rbp - 8]", "bytes": "f77df8", "family": "cpu", "type": "div", "reloc": false, "type_num": 268435477, "type2_num": 0 }, { "addr": 134217830, "esil": "eax,0x4,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "mov dword [rbp - 4], eax", "disasm": "mov dword [rbp - 4], eax", "bytes": "8945fc", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217833, "esil": "0x4,rbp,-,[4],rax,=", "refptr": 4, "fcn_addr": 134217792, "fcn_last": 134217835, "size": 3, "opcode": "mov eax, dword [rbp - 4]", "disasm": "mov eax, dword [rbp - 4]", "bytes": "8b45fc", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134217815, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217836, "esil": "rsp,[8],8,rsp,+=,rbp,=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217837, "size": 1, "opcode": "pop rbp", "disasm": "pop rbp", "bytes": "5d", "family": "cpu", "type": "pop", "reloc": false, "type_num": 14, "type2_num": 0 }, { "addr": 134217837, "esil": "rsp,[8],rip,=,8,rsp,+=", "refptr": 0, "fcn_addr": 134217792, "fcn_last": 134217837, "size": 1, "opcode": "ret", "disasm": "ret", "bytes": "c3", "family": "cpu", "type": "ret", "reloc": false, "type_num": 5, "type2_num": 0 } ] } }, "aaa; pdc @ 0x8000040": { "command": "r2 -e scr.color=0 -qc 'aaa; pdc @ 0x8000040' ledger-x86_64-O0.o", "output": "// callconv: rax amd64 (rdi, rsi, rdx, rcx, r8, r9, stack);\nvoid sym.percent_change (signed int arg1, int64_t arg2) {\n push (rbp) // [02] -r-x section size 295 named .text\n rbp = rsp\n dword [var_8h] = edi // arg1\n dword [var_ch] = esi // arg2\n v = dword [var_8h] - 0\n if (!(dword [var_8h] - 0)) {\n dword [var_4h] = 0\n } else {\n // CODE XREF from sym.percent_change @ 0x800004e(x)\n eax = dword [var_ch]\n eax -= dword [var_8h]\n eax = eax * 0x64 // 100\n cdq\n dword [var_8h] /=\n dword [var_4h] = eax\n }\n // CODE XREF from sym.percent_change @ 0x8000057(x)\n eax = dword [var_4h]\n rbp = pop () // rsp\n return\n}\n\n" }, "aaa; afbj @ 0x8000070": { "command": "r2 -e scr.color=0 -qc 'aaa; afbj @ 0x8000070' ledger-x86_64-O0.o", "output": [ { "addr": 134217840, "size": 50, "jump": 134217946, "fail": 134217890, "opaddr": 134217840, "inputs": 0, "outputs": 2, "ninstr": 16, "instrs": [ 134217840, 134217841, 134217844, 134217847, 134217851, 134217858, 134217861, 134217865, 134217867, 134217871, 134217873, 134217875, 134217879, 134217881, 134217885, 134217888 ], "traced": 0 }, { "addr": 134217890, "size": 20, "opaddr": 18446744073709551615, "inputs": 1, "outputs": 0, "ninstr": 5, "instrs": [ 134217890, 134217894, 134217901, 134217905, 134217908 ], "traced": 0 }, { "addr": 134217946, "size": 12, "opaddr": 18446744073709551615, "inputs": 1, "outputs": 0, "ninstr": 4, "instrs": [ 134217946, 134217953, 134217956, 134217957 ], "traced": 0 } ] }, "aaa; pdfj @ 0x8000070": { "command": "r2 -e scr.color=0 -qc 'aaa; pdfj @ 0x8000070' ledger-x86_64-O0.o", "output": { "name": "sym.grade", "size": 82, "addr": 134217840, "ops": [ { "addr": 134217840, "esil": "rbp,8,rsp,-,=[8],8,rsp,-=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217957, "size": 1, "opcode": "push rbp", "disasm": "push rbp", "bytes": "55", "family": "cpu", "type": "rpush", "reloc": false, "type_num": 268435468, "type2_num": 0, "flags": [ "sym.grade" ] }, { "addr": 134217841, "esil": "rsp,rbp,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217955, "size": 3, "opcode": "mov rbp, rsp", "disasm": "mov rbp, rsp", "bytes": "4889e5", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217844, "esil": "edi,0x8,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217840, "fcn_last": 134217955, "size": 3, "opcode": "mov dword [rbp - 8], edi", "disasm": "mov dword [rbp - 8], edi", "bytes": "897df8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217847, "esil": "32,0x8,rbp,-,[4],~,rax,=", "refptr": 4, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "movsxd rax, dword [rbp - 8]", "disasm": "movsxd rax, dword [rbp - 8]", "bytes": "486345f8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217851, "ptr": 1717986919, "val": 1717986919, "esil": "64,1717986919,~,64,rax,~,*,DUP,rax,=,64,rax,~,-,!,!,DUP,cf,:=,of,:=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217951, "size": 7, "opcode": "imul rax, rax, 0x66666667", "disasm": "imul rax, rax, 0x66666667", "bytes": "4869c067666666", "family": "cpu", "type": "mul", "reloc": false, "type_num": 20, "type2_num": 0 }, { "addr": 134217858, "esil": "rax,rcx,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217955, "size": 3, "opcode": "mov rcx, rax", "disasm": "mov rcx, rax", "bytes": "4889c1", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217861, "val": 34, "esil": "34,0x3f,&,?{,1,34,0x3f,&,-,rcx,>>,1,&,cf,:=,1,34,0x3f,&,-,!,?{,0,of,:=,},34,0x3f,&,rcx,64,SWAP,~,ASR,rcx,=,$z,zf,:=,$p,pf,:=,63,$s,sf,:=,}", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "sar rcx, 0x22", "disasm": "sar rcx, 0x22", "bytes": "48c1f922", "family": "cpu", "type": "sar", "reloc": false, "type_num": 25, "type2_num": 0 }, { "addr": 134217865, "esil": "ecx,rdx,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217956, "size": 2, "opcode": "mov edx, ecx", "disasm": "mov edx, ecx", "bytes": "89ca", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217867, "val": 63, "esil": "63,0x3f,&,?{,1,63,0x3f,&,-,rax,>>,1,&,cf,:=,1,63,0x3f,&,-,!,?{,63,rax,>>,1,&,of,:=,},63,0x3f,&,rax,>>,rax,=,$z,zf,:=,$p,pf,:=,63,$s,sf,:=,}", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "shr rax, 0x3f", "disasm": "shr rax, 0x3f", "bytes": "48c1e83f", "family": "cpu", "type": "shr", "reloc": false, "type_num": 22, "type2_num": 0 }, { "addr": 134217871, "esil": "eax,rcx,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217956, "size": 2, "opcode": "mov ecx, eax", "disasm": "mov ecx, eax", "bytes": "89c1", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217873, "esil": "edx,rax,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217956, "size": 2, "opcode": "mov eax, edx", "disasm": "mov eax, edx", "bytes": "89d0", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217875, "esil": "0x6,rcx,rax,+,-,eax,=,eax,rax,=", "refptr": 4, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "lea eax, [rax + rcx - 6]", "disasm": "lea eax, [rax + rcx - 6]", "bytes": "8d4408fa", "family": "cpu", "type": "lea", "reloc": false, "type_num": 33, "type2_num": 0 }, { "addr": 134217879, "esil": "eax,rcx,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217956, "size": 2, "opcode": "mov ecx, eax", "disasm": "mov ecx, eax", "bytes": "89c1", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217881, "esil": "rcx,0x10,rbp,-,=[8]", "refptr": 8, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "mov qword [rbp - 0x10], rcx", "disasm": "mov qword [rbp - 0x10], rcx", "bytes": "48894df0", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217885, "val": 4, "esil": "4,0x80000000,-,!,4,eax,-=,31,$o,^,of,:=,31,$s,sf,:=,$z,zf,:=,$p,pf,:=,32,$b,cf,:=,4,$b,af,:=,eax,rax,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217955, "size": 3, "opcode": "sub eax, 4", "disasm": "sub eax, 4", "bytes": "83e804", "family": "cpu", "type": "sub", "reloc": false, "type_num": 18, "type2_num": 0 }, { "addr": 134217888, "esil": "cf,zf,|,!,?{,134217946,rip,=,}", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217956, "size": 2, "opcode": "ja 0x80000da", "disasm": "ja 0x80000da", "bytes": "7738", "family": "cpu", "type": "cjmp", "reloc": false, "type_num": 2147483649, "type2_num": 0, "jump": 134217946, "fail": 134217890, "refs": [ { "addr": 134217946, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217890, "esil": "0x10,rbp,-,[8],rax,=", "refptr": 8, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "mov rax, qword [rbp - 0x10]", "disasm": "mov rax, qword [rbp - 0x10]", "bytes": "488b45f0", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217894, "ptr": 134217901, "esil": "rip,rcx,=", "refptr": 8, "fcn_addr": 134217840, "fcn_last": 134217951, "size": 7, "opcode": "lea rcx, [rip]", "disasm": "lea rcx, [0x080000ad]", "bytes": "488d0d00000000", "family": "cpu", "type": "lea", "reloc": true, "type_num": 33, "type2_num": 0, "refs": [ { "addr": 134217901, "type": "DATA", "perm": "r--" } ] }, { "addr": 134217901, "esil": "32,rax,4,*,rcx,+,[4],~,rax,=", "refptr": 4, "fcn_addr": 134217840, "fcn_last": 134217954, "size": 4, "opcode": "movsxd rax, dword [rcx + rax*4]", "disasm": "movsxd rax, dword [rcx + rax*4]", "bytes": "48630481", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134217894, "type": "DATA", "perm": "r--" } ] }, { "addr": 134217905, "esil": "rcx,rax,+=,63,$o,of,:=,63,$s,sf,:=,$z,zf,:=,63,$c,cf,:=,$p,pf,:=,3,$c,af,:=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217955, "size": 3, "opcode": "add rax, rcx", "disasm": "add rax, rcx", "bytes": "4801c8", "family": "cpu", "type": "add", "reloc": false, "type_num": 17, "type2_num": 0 }, { "addr": 134217908, "esil": "rax,rip,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217956, "size": 2, "opcode": "jmp rax", "disasm": "jmp rax", "bytes": "ffe0", "family": "cpu", "type": "rjmp", "reloc": false, "type_num": 268435458, "type2_num": 0 }, { "addr": 134217946, "val": 0, "esil": "0,0x4,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217840, "fcn_last": 134217951, "size": 7, "opcode": "mov dword [rbp - 4], 0", "disasm": "mov dword [rbp - 4], 0", "bytes": "c745fc00000000", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0, "xrefs": [ { "addr": 134217888, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217953, "esil": "0x4,rbp,-,[4],rax,=", "refptr": 4, "fcn_addr": 134217840, "fcn_last": 134217955, "size": 3, "opcode": "mov eax, dword [rbp - 4]", "disasm": "mov eax, dword [rbp - 4]", "bytes": "8b45fc", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134217917, "type": "CODE", "perm": "--x" }, { "addr": 134217926, "type": "CODE", "perm": "--x" }, { "addr": 134217935, "type": "CODE", "perm": "--x" }, { "addr": 134217944, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217956, "esil": "rsp,[8],8,rsp,+=,rbp,=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217957, "size": 1, "opcode": "pop rbp", "disasm": "pop rbp", "bytes": "5d", "family": "cpu", "type": "pop", "reloc": false, "type_num": 14, "type2_num": 0 }, { "addr": 134217957, "esil": "rsp,[8],rip,=,8,rsp,+=", "refptr": 0, "fcn_addr": 134217840, "fcn_last": 134217957, "size": 1, "opcode": "ret", "disasm": "ret", "bytes": "c3", "family": "cpu", "type": "ret", "reloc": false, "type_num": 5, "type2_num": 0 } ] } }, "aaa; pdc @ 0x8000070": { "command": "r2 -e scr.color=0 -qc 'aaa; pdc @ 0x8000070' ledger-x86_64-O0.o", "output": "// callconv: rax amd64 (rdi, rsi, rdx, rcx, r8, r9, stack);\nvoid sym.grade (int64_t arg1) {\n push (rbp)\n rbp = rsp\n dword [var_8h] = edi // arg1\n rax = dword [var_8h]\n rax = rax * 0x66666667\n rcx = rax\n rcx >>= 0x22\n edx = ecx\n rax >>>= 0x3f\n ecx = eax\n eax = edx\n eax = rax + rcx - 6\n ecx = eax\n qword [var_10h] = rcx\n eax -= 4\n if (((unsigned) v) <= 0) {\n rax = qword [var_10h]\n rcx = rip // 0x80000ad; RELOC 32 .rodata @ 0x08000168 - 0x80000ad\n // DATA XREF from sym.grade @ 0x80000a6(r)\n rax = dword [rcx + rax*4]\n rax += rcx\n goto loc_rax\n } else {\n // CODE XREF from sym.grade @ 0x80000a0(x)\n dword [var_4h] = 0\n // CODE XREFS from sym.grade @ +0x4d(x), +0x56(x), +0x5f(x), +0x68(x)\n eax = dword [var_4h]\n rbp = pop () // rsp\n return\n }\n}\n\n" }, "aaa; afbj @ 0x80000f0": { "command": "r2 -e scr.color=0 -qc 'aaa; afbj @ 0x80000f0' ledger-x86_64-O0.o", "output": [ { "addr": 134217968, "size": 25, "jump": 134217993, "opaddr": 134217968, "inputs": 0, "outputs": 1, "ninstr": 6, "instrs": [ 134217968, 134217969, 134217972, 134217976, 134217979, 134217986 ], "traced": 0 }, { "addr": 134217993, "size": 8, "jump": 134218029, "fail": 134218001, "opaddr": 18446744073709551615, "inputs": 2, "outputs": 2, "ninstr": 3, "instrs": [ 134217993, 134217996, 134217999 ], "traced": 0 }, { "addr": 134218001, "size": 28, "jump": 134217993, "opaddr": 18446744073709551615, "inputs": 1, "outputs": 1, "ninstr": 9, "instrs": [ 134218001, 134218005, 134218009, 134218012, 134218015, 134218018, 134218021, 134218024, 134218027 ], "traced": 0 }, { "addr": 134218029, "size": 5, "opaddr": 18446744073709551615, "inputs": 1, "outputs": 0, "ninstr": 3, "instrs": [ 134218029, 134218032, 134218033 ], "traced": 0 } ] }, "aaa; pdfj @ 0x80000f0": { "command": "r2 -e scr.color=0 -qc 'aaa; pdfj @ 0x80000f0' ledger-x86_64-O0.o", "output": { "name": "sym.total", "size": 66, "addr": 134217968, "ops": [ { "addr": 134217968, "esil": "rbp,8,rsp,-,=[8],8,rsp,-=", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218033, "size": 1, "opcode": "push rbp", "disasm": "push rbp", "bytes": "55", "family": "cpu", "type": "rpush", "reloc": false, "type_num": 268435468, "type2_num": 0, "flags": [ "sym.total" ] }, { "addr": 134217969, "esil": "rsp,rbp,=", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov rbp, rsp", "disasm": "mov rbp, rsp", "bytes": "4889e5", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134217972, "esil": "rdi,0x8,rbp,-,=[8]", "refptr": 8, "fcn_addr": 134217968, "fcn_last": 134218030, "size": 4, "opcode": "mov qword [rbp - 8], rdi", "disasm": "mov qword [rbp - 8], rdi", "bytes": "48897df8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217976, "esil": "esi,0xc,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov dword [rbp - 0xc], esi", "disasm": "mov dword [rbp - 0xc], esi", "bytes": "8975f4", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217979, "val": 0, "esil": "0,0x10,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218027, "size": 7, "opcode": "mov dword [rbp - 0x10], 0", "disasm": "mov dword [rbp - 0x10], 0", "bytes": "c745f000000000", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217986, "val": 0, "esil": "0,0x14,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218027, "size": 7, "opcode": "mov dword [rbp - 0x14], 0", "disasm": "mov dword [rbp - 0x14], 0", "bytes": "c745ec00000000", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134217993, "esil": "0x14,rbp,-,[4],rax,=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov eax, dword [rbp - 0x14]", "disasm": "mov eax, dword [rbp - 0x14]", "bytes": "8b45ec", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134218027, "type": "CODE", "perm": "--x" } ] }, { "addr": 134217996, "esil": "0xc,rbp,-,[4],eax,==,$z,zf,:=,32,$b,cf,:=,$p,pf,:=,31,$s,sf,:=,0xc,rbp,-,[4],0x80000000,-,!,31,$o,^,of,:=,4,$b,af,:=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "cmp eax, dword [rbp - 0xc]", "disasm": "cmp eax, dword [rbp - 0xc]", "bytes": "3b45f4", "family": "cpu", "type": "cmp", "reloc": false, "type_num": 268435471, "type2_num": 0 }, { "addr": 134217999, "esil": "of,!,sf,^,?{,134218029,rip,=,}", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218032, "size": 2, "opcode": "jge 0x800012d", "disasm": "jge 0x800012d", "bytes": "7d1c", "family": "cpu", "type": "cjmp", "reloc": false, "type_num": 2147483649, "type2_num": 0, "jump": 134218029, "fail": 134218001, "refs": [ { "addr": 134218029, "type": "CODE", "perm": "--x" } ] }, { "addr": 134218001, "esil": "0x8,rbp,-,[8],rax,=", "refptr": 8, "fcn_addr": 134217968, "fcn_last": 134218030, "size": 4, "opcode": "mov rax, qword [rbp - 8]", "disasm": "mov rax, qword [rbp - 8]", "bytes": "488b45f8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134218005, "esil": "32,0x14,rbp,-,[4],~,rcx,=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218030, "size": 4, "opcode": "movsxd rcx, dword [rbp - 0x14]", "disasm": "movsxd rcx, dword [rbp - 0x14]", "bytes": "48634dec", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134218009, "esil": "rcx,4,*,rax,+,[4],rax,=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov eax, dword [rax + rcx*4]", "disasm": "mov eax, dword [rax + rcx*4]", "bytes": "8b0488", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134218012, "esil": "0x10,rbp,-,[4],eax,+=,31,$o,of,:=,31,$s,sf,:=,$z,zf,:=,31,$c,cf,:=,$p,pf,:=,3,$c,af,:=,eax,rax,=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "add eax, dword [rbp - 0x10]", "disasm": "add eax, dword [rbp - 0x10]", "bytes": "0345f0", "family": "cpu", "type": "add", "reloc": false, "type_num": 17, "type2_num": 0 }, { "addr": 134218015, "esil": "eax,0x10,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov dword [rbp - 0x10], eax", "disasm": "mov dword [rbp - 0x10], eax", "bytes": "8945f0", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134218018, "esil": "0x14,rbp,-,[4],rax,=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov eax, dword [rbp - 0x14]", "disasm": "mov eax, dword [rbp - 0x14]", "bytes": "8b45ec", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134218021, "val": 1, "esil": "1,eax,+=,31,$o,of,:=,31,$s,sf,:=,$z,zf,:=,31,$c,cf,:=,$p,pf,:=,3,$c,af,:=,eax,rax,=", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "add eax, 1", "disasm": "add eax, 1", "bytes": "83c001", "family": "cpu", "type": "add", "reloc": false, "type_num": 17, "type2_num": 0 }, { "addr": 134218024, "esil": "eax,0x14,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov dword [rbp - 0x14], eax", "disasm": "mov dword [rbp - 0x14], eax", "bytes": "8945ec", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134218027, "esil": "0x8000109,rip,=", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218032, "size": 2, "opcode": "jmp 0x8000109", "disasm": "jmp 0x8000109", "bytes": "ebdc", "family": "cpu", "type": "jmp", "reloc": false, "type_num": 1, "type2_num": 0, "jump": 134217993, "refs": [ { "addr": 134217993, "type": "CODE", "perm": "--x" } ] }, { "addr": 134218029, "esil": "0x10,rbp,-,[4],rax,=", "refptr": 4, "fcn_addr": 134217968, "fcn_last": 134218031, "size": 3, "opcode": "mov eax, dword [rbp - 0x10]", "disasm": "mov eax, dword [rbp - 0x10]", "bytes": "8b45f0", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134217999, "type": "CODE", "perm": "--x" } ] }, { "addr": 134218032, "esil": "rsp,[8],8,rsp,+=,rbp,=", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218033, "size": 1, "opcode": "pop rbp", "disasm": "pop rbp", "bytes": "5d", "family": "cpu", "type": "pop", "reloc": false, "type_num": 14, "type2_num": 0 }, { "addr": 134218033, "esil": "rsp,[8],rip,=,8,rsp,+=", "refptr": 0, "fcn_addr": 134217968, "fcn_last": 134218033, "size": 1, "opcode": "ret", "disasm": "ret", "bytes": "c3", "family": "cpu", "type": "ret", "reloc": false, "type_num": 5, "type2_num": 0 } ] } }, "aaa; pdc @ 0x80000f0": { "command": "r2 -e scr.color=0 -qc 'aaa; pdc @ 0x80000f0' ledger-x86_64-O0.o", "output": "// callconv: rax amd64 (rdi, rsi, rdx, rcx, r8, r9, stack);\nvoid sym.total (int64_t arg1, signed int arg2) {\n push (rbp)\n rbp = rsp\n qword [var_8h] = rdi // arg1\n dword [var_ch] = esi // arg2\n dword [var_10h] = 0\n dword [var_14h] = 0\n while (true) {\n // CODE XREF from sym.total @ 0x800012b(x)\n eax = dword [var_14h]\n v = eax - dword [var_ch]\n if (eax >= dword [var_ch]) {\n break;\n }\n rax = qword [var_8h]\n rcx = dword [var_14h]\n eax = dword [rax + rcx*4]\n eax += dword [var_10h]\n dword [var_10h] = eax\n eax = dword [var_14h]\n eax += 1\n dword [var_14h] = eax\n }\n // CODE XREF from sym.total @ 0x800010f(x)\n eax = dword [var_10h]\n rbp = pop () // rsp\n return\n}\n\n" }, "aaa; afbj @ 0x8000140": { "command": "r2 -e scr.color=0 -qc 'aaa; afbj @ 0x8000140' ledger-x86_64-O0.o", "output": [ { "addr": 134218048, "size": 39, "opaddr": 134218048, "inputs": 0, "outputs": 0, "ninstr": 12, "instrs": [ 134218048, 134218049, 134218052, 134218056, 134218059, 134218062, 134218067, 134218070, 134218077, 134218081, 134218085, 134218086 ], "traced": 0 } ] }, "aaa; pdfj @ 0x8000140": { "command": "r2 -e scr.color=0 -qc 'aaa; pdfj @ 0x8000140' ledger-x86_64-O0.o", "output": { "name": "sym.grade_label", "size": 39, "addr": 134218048, "ops": [ { "addr": 134218048, "esil": "rbp,8,rsp,-,=[8],8,rsp,-=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218086, "size": 1, "opcode": "push rbp", "disasm": "push rbp", "bytes": "55", "family": "cpu", "type": "rpush", "reloc": false, "type_num": 268435468, "type2_num": 0, "flags": [ "sym.grade_label" ] }, { "addr": 134218049, "esil": "rsp,rbp,=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218084, "size": 3, "opcode": "mov rbp, rsp", "disasm": "mov rbp, rsp", "bytes": "4889e5", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134218052, "val": 16, "esil": "16,0x8000000000000000,-,!,16,rsp,-=,63,$o,^,of,:=,63,$s,sf,:=,$z,zf,:=,$p,pf,:=,64,$b,cf,:=,4,$b,af,:=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218083, "size": 4, "opcode": "sub rsp, 0x10", "disasm": "sub rsp, 0x10", "bytes": "4883ec10", "family": "cpu", "type": "sub", "reloc": false, "type_num": 18, "type2_num": 0 }, { "addr": 134218056, "esil": "edi,0x4,rbp,-,=[4]", "refptr": 4, "fcn_addr": 134218048, "fcn_last": 134218084, "size": 3, "opcode": "mov dword [rbp - 4], edi", "disasm": "mov dword [rbp - 4], edi", "bytes": "897dfc", "family": "cpu", "type": "mov", "reloc": false, "type_num": 268435465, "type2_num": 0 }, { "addr": 134218059, "esil": "0x4,rbp,-,[4],rdi,=", "refptr": 4, "fcn_addr": 134218048, "fcn_last": 134218084, "size": 3, "opcode": "mov edi, dword [rbp - 4]", "disasm": "mov edi, dword [rbp - 4]", "bytes": "8b7dfc", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0 }, { "addr": 134218062, "esil": "134218067,rip,8,rsp,-=,rsp,=[8],rip,=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218082, "size": 5, "opcode": "call 0x8000153", "disasm": "call grade", "bytes": "e800000000", "family": "cpu", "type": "call", "reloc": true, "type_num": 3, "type2_num": 0, "jump": 134218067, "fail": 134218067, "refs": [ { "addr": 134218067, "type": "CALL", "perm": "--x" } ] }, { "addr": 134218067, "esil": "32,eax,~,rcx,=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218084, "size": 3, "opcode": "movsxd rcx, eax", "disasm": "movsxd rcx, eax", "bytes": "4863c8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134218062, "type": "CALL", "perm": "--x" } ] }, { "addr": 134218070, "ptr": 134218077, "esil": "rip,rax,=", "refptr": 8, "fcn_addr": 134218048, "fcn_last": 134218080, "size": 7, "opcode": "lea rax, [rip]", "disasm": "lea rax, [0x0800015d]", "bytes": "488d0500000000", "family": "cpu", "type": "lea", "reloc": true, "type_num": 33, "type2_num": 0, "refs": [ { "addr": 134218077, "type": "DATA", "perm": "r--" } ] }, { "addr": 134218077, "esil": "rcx,8,*,rax,+,[8],rax,=", "refptr": 8, "fcn_addr": 134218048, "fcn_last": 134218083, "size": 4, "opcode": "mov rax, qword [rax + rcx*8]", "disasm": "mov rax, qword [rax + rcx*8]", "bytes": "488b04c8", "family": "cpu", "type": "mov", "reloc": false, "type_num": 9, "type2_num": 0, "xrefs": [ { "addr": 134218070, "type": "DATA", "perm": "r--" } ] }, { "addr": 134218081, "val": 16, "esil": "16,rsp,+=,63,$o,of,:=,63,$s,sf,:=,$z,zf,:=,63,$c,cf,:=,$p,pf,:=,3,$c,af,:=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218083, "size": 4, "opcode": "add rsp, 0x10", "disasm": "add rsp, 0x10", "bytes": "4883c410", "family": "cpu", "type": "add", "reloc": false, "type_num": 17, "type2_num": 0 }, { "addr": 134218085, "esil": "rsp,[8],8,rsp,+=,rbp,=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218086, "size": 1, "opcode": "pop rbp", "disasm": "pop rbp", "bytes": "5d", "family": "cpu", "type": "pop", "reloc": false, "type_num": 14, "type2_num": 0 }, { "addr": 134218086, "esil": "rsp,[8],rip,=,8,rsp,+=", "refptr": 0, "fcn_addr": 134218048, "fcn_last": 134218086, "size": 1, "opcode": "ret", "disasm": "ret", "bytes": "c3", "family": "cpu", "type": "ret", "reloc": false, "type_num": 5, "type2_num": 0 } ] } }, "aaa; pdc @ 0x8000140": { "command": "r2 -e scr.color=0 -qc 'aaa; pdc @ 0x8000140' ledger-x86_64-O0.o", "output": "// callconv: rax amd64 (rdi, rsi, rdx, rcx, r8, r9, stack);\nvoid sym.grade_label (int64_t arg1) {\n push (rbp)\n rbp = rsp\n rsp -= 0x10\n dword [var_4h] = edi // arg1\n edi = dword [var_4h] // int64_t arg1\n 0x8000153 () // RELOC 32 grade @ 0x08000070 - 0x8000153 // 0x8000153(0x0, 0x0, 0x0, 0x0)\n // CALL XREF from sym.grade_label @ 0x800014e(x)\n rcx = eax\n rax = rip // 0x800015d; RELOC 32 .data @ 0x08000180 - 0x800015d\n // DATA XREF from sym.grade_label @ 0x8000156(r)\n rax = qword [rax + rcx*8]\n rsp += 0x10\n rbp = pop ()\n return // rsp\n}\n\n" } } }