{ "tool": "ghidra", "version": "12.1.4", "fixture": "ledger-x86_64-O2.o", "language": "x86:LE:64:default", "compilerSpec": "gcc", "imageBase": 1048576, "executableFormat": "Executable and Linking Format (ELF)", "memoryBlocks": [ { "name": ".text", "start": 1048576, "size": 271, "execute": true }, { "name": ".rodata", "start": 1048848, "size": 80, "execute": false }, { "name": ".rodata.str1.1", "start": 1048928, "size": 10, "execute": false }, { "name": ".comment", "start": 0, "size": 47, "execute": false }, { "name": ".rela.rodata", "start": 0, "size": 120, "execute": false }, { "name": ".rela.text", "start": 0, "size": 72, "execute": false }, { "name": ".strtab", "start": 0, "size": 190, "execute": false }, { "name": ".symtab", "start": 0, "size": 312, "execute": false }, { "name": "_elfHeader", "start": 0, "size": 64, "execute": false }, { "name": "_elfSectionHeaders", "start": 0, "size": 704, "execute": false } ], "symbols": [ { "name": "percent_change", "addr": 1048576, "type": "Function", "source": "IMPORTED" }, { "name": "grade", "addr": 1048592, "type": "Function", "source": "IMPORTED" }, { "name": "total", "addr": 1048640, "type": "Function", "source": "IMPORTED" }, { "name": "grade_label", "addr": 1048784, "type": "Function", "source": "IMPORTED" }, { "name": "labels.rel", "addr": 1048848, "type": "Label", "source": "IMPORTED" }, { "name": ".L.str.1", "addr": 1048930, "type": "Label", "source": "IMPORTED" }, { "name": ".L.str.2", "addr": 1048932, "type": "Label", "source": "IMPORTED" }, { "name": ".L.str.3", "addr": 1048934, "type": "Label", "source": "IMPORTED" }, { "name": ".L.str.4", "addr": 1048936, "type": "Label", "source": "IMPORTED" }, { "name": "ElfComment[0]", "addr": 0, "type": "Label", "source": "IMPORTED" }, { "name": "ElfComment[1]", "addr": 1, "type": "Label", "source": "IMPORTED" } ], "functions": [ { "name": "percent_change", "entry": 1048576, "bodySize": 16, "bodyMin": 1048576, "bodyMax": 1048591, "symbolSource": "IMPORTED", "instructions": [ { "addr": 1048576, "size": 2, "bytes": "85ff", "text": "TEST EDI,EDI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(unique, 0xd5500, 4) INT_AND (register, 0x38, 4) , (register, 0x38, 4)", "(register, 0x207, 1) INT_SLESS (unique, 0xd5500, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (unique, 0xd5500, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (unique, 0xd5500, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048578, "size": 2, "bytes": "7409", "text": "JZ 0x0010000d", "flowType": "CONDITIONAL_JUMP", "pcode": [ " --- CBRANCH (ram, 0x10000d, 8) , (register, 0x206, 1)" ] }, { "addr": 1048580, "size": 2, "bytes": "29fe", "text": "SUB ESI,EDI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_LESS (register, 0x30, 4) , (register, 0x38, 4)", "(register, 0x20b, 1) INT_SBORROW (register, 0x30, 4) , (register, 0x38, 4)", "(register, 0x30, 4) INT_SUB (register, 0x30, 4) , (register, 0x38, 4)", "(register, 0x30, 8) INT_ZEXT (register, 0x30, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x30, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x30, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x30, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048582, "size": 3, "bytes": "6bc664", "text": "IMUL EAX,ESI,0x64", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x93a00, 8) INT_SEXT (register, 0x30, 4)", "(unique, 0x93b00, 8) INT_SEXT (const, 0x64, 4)", "(unique, 0x93d00, 8) INT_MULT (unique, 0x93a00, 8) , (unique, 0x93b00, 8)", "(register, 0x0, 4) SUBPIECE (unique, 0x93d00, 8) , (const, 0x0, 4)", "(unique, 0x94000, 4) SUBPIECE (unique, 0x93d00, 8) , (const, 0x4, 4)", "(unique, 0x5a200, 8) INT_SEXT (register, 0x0, 4)", "(register, 0x200, 1) INT_NOTEQUAL (unique, 0x5a200, 8) , (unique, 0x93d00, 8)", "(register, 0x20b, 1) COPY (register, 0x200, 1)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)" ] }, { "addr": 1048585, "size": 1, "bytes": "99", "text": "CDQ", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x76600, 8) INT_SEXT (register, 0x0, 4)", "(register, 0x10, 4) SUBPIECE (unique, 0x76600, 8) , (const, 0x4, 4)", "(register, 0x10, 8) INT_ZEXT (register, 0x10, 4)" ] }, { "addr": 1048586, "size": 2, "bytes": "f7ff", "text": "IDIV EDI", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x8f000, 8) INT_SEXT (register, 0x38, 4)", "(unique, 0x8f100, 8) INT_ZEXT (register, 0x10, 4)", "(unique, 0x8f200, 8) INT_LEFT (unique, 0x8f100, 8) , (const, 0x20, 4)", "(unique, 0x8f300, 8) INT_ZEXT (register, 0x0, 4)", "(unique, 0x8f500, 8) INT_OR (unique, 0x8f200, 8) , (unique, 0x8f300, 8)", "(unique, 0x8f700, 8) INT_SDIV (unique, 0x8f500, 8) , (unique, 0x8f000, 8)", "(register, 0x0, 4) SUBPIECE (unique, 0x8f700, 8) , (const, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(unique, 0x8fa00, 8) INT_SREM (unique, 0x8f500, 8) , (unique, 0x8f000, 8)", "(register, 0x10, 4) SUBPIECE (unique, 0x8fa00, 8) , (const, 0x0, 4)", "(register, 0x10, 8) INT_ZEXT (register, 0x10, 4)" ] }, { "addr": 1048588, "size": 1, "bytes": "c3", "text": "RET", "flowType": "TERMINATOR", "pcode": [ "(register, 0x288, 8) LOAD (const, 0x1b1, 8) , (register, 0x20, 8)", "(register, 0x20, 8) INT_ADD (register, 0x20, 8) , (const, 0x8, 8)", " --- RETURN (register, 0x288, 8)" ] }, { "addr": 1048589, "size": 2, "bytes": "31c0", "text": "XOR EAX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x0, 4) INT_XOR (register, 0x0, 4) , (register, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048591, "size": 1, "bytes": "c3", "text": "RET", "flowType": "TERMINATOR", "pcode": [ "(register, 0x288, 8) LOAD (const, 0x1b1, 8) , (register, 0x20, 8)", "(register, 0x20, 8) INT_ADD (register, 0x20, 8) , (const, 0x8, 8)", " --- RETURN (register, 0x288, 8)" ] } ], "blocks": [ { "start": 1048576, "size": 4, "destinations": [ { "to": 1048589, "flow": "CONDITIONAL_JUMP" }, { "to": 1048580, "flow": "FALL_THROUGH" } ] }, { "start": 1048580, "size": 9, "destinations": [] }, { "start": 1048589, "size": 3, "destinations": [] } ], "decompiled": "\nundefined1 [16] percent_change(int param_1,int param_2,ulong param_3)\n\n{\n long lVar1;\n undefined1 auVar2 [16];\n undefined1 auVar3 [16];\n \n if (param_1 !\u003d 0) {\n lVar1 \u003d (long)((param_2 - param_1) * 100);\n auVar3._0_8_ \u003d lVar1 / (long)param_1 \u0026 0xffffffff;\n auVar3._8_8_ \u003d lVar1 % (long)param_1 \u0026 0xffffffff;\n return auVar3;\n }\n auVar2._8_8_ \u003d 0;\n auVar2._0_8_ \u003d param_3;\n return auVar2 \u003c\u003c 0x40;\n}\n\n" }, { "name": "grade", "entry": 1048592, "bodySize": 46, "bodyMin": 1048592, "bodyMax": 1048637, "symbolSource": "IMPORTED", "instructions": [ { "addr": 1048592, "size": 3, "bytes": "4863c7", "text": "MOVSXD RAX,EDI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x0, 8) INT_SEXT (register, 0x38, 4)" ] }, { "addr": 1048595, "size": 7, "bytes": "4869c067666666", "text": "IMUL RAX,RAX,0x66666667", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x95600, 16) INT_SEXT (register, 0x0, 8)", "(unique, 0x95700, 16) INT_SEXT (const, 0x66666667, 4)", "(unique, 0x95900, 16) INT_MULT (unique, 0x95600, 16) , (unique, 0x95700, 16)", "(unique, 0x95a00, 8) INT_SEXT (const, 0x66666667, 4)", "(register, 0x0, 8) INT_MULT (register, 0x0, 8) , (unique, 0x95a00, 8)", "(unique, 0x95d00, 8) SUBPIECE (unique, 0x95900, 16) , (const, 0x8, 4)", "(unique, 0x5a200, 16) INT_SEXT (register, 0x0, 8)", "(register, 0x200, 1) INT_NOTEQUAL (unique, 0x5a200, 16) , (unique, 0x95900, 16)", "(register, 0x20b, 1) COPY (register, 0x200, 1)" ] }, { "addr": 1048602, "size": 3, "bytes": "4889c1", "text": "MOV RCX,RAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x8, 8) COPY (register, 0x0, 8)" ] }, { "addr": 1048605, "size": 4, "bytes": "48c1f922", "text": "SAR RCX,0x22", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xc5c00, 4) INT_AND (const, 0x22, 4) , (const, 0x3f, 4)", "(unique, 0xc5d00, 8) COPY (register, 0x8, 8)", "(register, 0x8, 8) INT_SRIGHT (register, 0x8, 8) , (unique, 0xc5c00, 4)", "(unique, 0x5b800, 1) INT_EQUAL (unique, 0xc5c00, 4) , (const, 0x0, 4)", "(unique, 0x5b900, 4) INT_SUB (unique, 0xc5c00, 4) , (const, 0x1, 4)", "(unique, 0x5ba00, 8) INT_SRIGHT (unique, 0xc5d00, 8) , (unique, 0x5b900, 4)", "(unique, 0x5bb00, 8) INT_AND (unique, 0x5ba00, 8) , (const, 0x1, 8)", "(unique, 0x5bc00, 1) INT_NOTEQUAL (unique, 0x5bb00, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5b800, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (register, 0x200, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5b800, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5bc00, 1)", "(register, 0x200, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x5bd00, 1) INT_EQUAL (unique, 0xc5c00, 4) , (const, 0x1, 4)", "(unique, 0x0, 1) COPY (unique, 0x5bd00, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (const, 0x0, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5bd00, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (register, 0x20b, 1)", "(register, 0x20b, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x58800, 1) INT_NOTEQUAL (unique, 0xc5c00, 4) , (const, 0x0, 4)", "(unique, 0x58a00, 1) INT_SLESS (register, 0x8, 8) , (const, 0x0, 8)", "(unique, 0x58b00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x58c00, 1) INT_AND (unique, 0x58b00, 1) , (register, 0x207, 1)", "(unique, 0x58d00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x58a00, 1)", "(register, 0x207, 1) INT_OR (unique, 0x58c00, 1) , (unique, 0x58d00, 1)", "(unique, 0x59000, 1) INT_EQUAL (register, 0x8, 8) , (const, 0x0, 8)", "(unique, 0x59100, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59200, 1) INT_AND (unique, 0x59100, 1) , (register, 0x206, 1)", "(unique, 0x59300, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59000, 1)", "(register, 0x206, 1) INT_OR (unique, 0x59200, 1) , (unique, 0x59300, 1)", "(unique, 0x59500, 8) INT_AND (register, 0x8, 8) , (const, 0xff, 8)", "(unique, 0x59600, 1) POPCOUNT (unique, 0x59500, 8)", "(unique, 0x59700, 1) INT_AND (unique, 0x59600, 1) , (const, 0x1, 1)", "(unique, 0x59900, 1) INT_EQUAL (unique, 0x59700, 1) , (const, 0x0, 1)", "(unique, 0x59a00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59b00, 1) INT_AND (unique, 0x59a00, 1) , (register, 0x202, 1)", "(unique, 0x59c00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59900, 1)", "(register, 0x202, 1) INT_OR (unique, 0x59b00, 1) , (unique, 0x59c00, 1)" ] }, { "addr": 1048609, "size": 4, "bytes": "48c1e83f", "text": "SHR RAX,0x3f", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xd1a00, 4) INT_AND (const, 0x3f, 4) , (const, 0x3f, 4)", "(unique, 0xd1b00, 8) COPY (register, 0x0, 8)", "(register, 0x0, 8) INT_RIGHT (register, 0x0, 8) , (unique, 0xd1a00, 4)", "(unique, 0x5be00, 1) INT_EQUAL (unique, 0xd1a00, 4) , (const, 0x0, 4)", "(unique, 0x5bf00, 4) INT_SUB (unique, 0xd1a00, 4) , (const, 0x1, 4)", "(unique, 0x5c000, 8) INT_RIGHT (unique, 0xd1b00, 8) , (unique, 0x5bf00, 4)", "(unique, 0x5c100, 8) INT_AND (unique, 0x5c000, 8) , (const, 0x1, 8)", "(unique, 0x5c200, 1) INT_NOTEQUAL (unique, 0x5c100, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5be00, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (register, 0x200, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5be00, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5c200, 1)", "(register, 0x200, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x5c300, 1) INT_EQUAL (unique, 0xd1a00, 4) , (const, 0x1, 4)", "(unique, 0x5c400, 1) INT_SLESS (unique, 0xd1b00, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5c300, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (const, 0x0, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5c300, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5c400, 1)", "(register, 0x20b, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x58800, 1) INT_NOTEQUAL (unique, 0xd1a00, 4) , (const, 0x0, 4)", "(unique, 0x58a00, 1) INT_SLESS (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x58b00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x58c00, 1) INT_AND (unique, 0x58b00, 1) , (register, 0x207, 1)", "(unique, 0x58d00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x58a00, 1)", "(register, 0x207, 1) INT_OR (unique, 0x58c00, 1) , (unique, 0x58d00, 1)", "(unique, 0x59000, 1) INT_EQUAL (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x59100, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59200, 1) INT_AND (unique, 0x59100, 1) , (register, 0x206, 1)", "(unique, 0x59300, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59000, 1)", "(register, 0x206, 1) INT_OR (unique, 0x59200, 1) , (unique, 0x59300, 1)", "(unique, 0x59500, 8) INT_AND (register, 0x0, 8) , (const, 0xff, 8)", "(unique, 0x59600, 1) POPCOUNT (unique, 0x59500, 8)", "(unique, 0x59700, 1) INT_AND (unique, 0x59600, 1) , (const, 0x1, 1)", "(unique, 0x59900, 1) INT_EQUAL (unique, 0x59700, 1) , (const, 0x0, 1)", "(unique, 0x59a00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59b00, 1) INT_AND (unique, 0x59a00, 1) , (register, 0x202, 1)", "(unique, 0x59c00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59900, 1)", "(register, 0x202, 1) INT_OR (unique, 0x59b00, 1) , (unique, 0x59c00, 1)" ] }, { "addr": 1048613, "size": 2, "bytes": "01c1", "text": "ADD ECX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_CARRY (register, 0x8, 4) , (register, 0x0, 4)", "(register, 0x20b, 1) INT_SCARRY (register, 0x8, 4) , (register, 0x0, 4)", "(register, 0x8, 4) INT_ADD (register, 0x8, 4) , (register, 0x0, 4)", "(register, 0x8, 8) INT_ZEXT (register, 0x8, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x8, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x8, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x8, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048615, "size": 3, "bytes": "83c1fa", "text": "ADD ECX,-0x6", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_CARRY (register, 0x8, 4) , (const, 0xfffffffa, 4)", "(register, 0x20b, 1) INT_SCARRY (register, 0x8, 4) , (const, 0xfffffffa, 4)", "(register, 0x8, 4) INT_ADD (register, 0x8, 4) , (const, 0xfffffffa, 4)", "(register, 0x8, 8) INT_ZEXT (register, 0x8, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x8, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x8, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x8, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048618, "size": 2, "bytes": "31c0", "text": "XOR EAX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x0, 4) INT_XOR (register, 0x0, 4) , (register, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048620, "size": 3, "bytes": "83f904", "text": "CMP ECX,0x4", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x78b00, 4) COPY (register, 0x8, 4)", "(register, 0x200, 1) INT_LESS (unique, 0x78b00, 4) , (const, 0x4, 4)", "(register, 0x20b, 1) INT_SBORROW (unique, 0x78b00, 4) , (const, 0x4, 4)", "(unique, 0x78d00, 4) INT_SUB (unique, 0x78b00, 4) , (const, 0x4, 4)", "(register, 0x207, 1) INT_SLESS (unique, 0x78d00, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (unique, 0x78d00, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (unique, 0x78d00, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048623, "size": 2, "bytes": "770c", "text": "JA 0x0010003d", "flowType": "CONDITIONAL_JUMP", "pcode": [ "(unique, 0x25200, 1) BOOL_OR (register, 0x200, 1) , (register, 0x206, 1)", "(unique, 0x25400, 1) BOOL_NEGATE (unique, 0x25200, 1)", " --- CBRANCH (ram, 0x10003d, 8) , (unique, 0x25400, 1)" ] }, { "addr": 1048625, "size": 2, "bytes": "89c8", "text": "MOV EAX,ECX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x0, 4) COPY (register, 0x8, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)" ] }, { "addr": 1048627, "size": 7, "bytes": "488d0dea000000", "text": "LEA RCX,[0x100124]", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x8, 8) COPY (const, 0x100124, 8)" ] }, { "addr": 1048634, "size": 3, "bytes": "8b0481", "text": "MOV EAX,dword ptr [RCX + RAX*0x4]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x9200, 8) INT_MULT (register, 0x0, 8) , (const, 0x4, 8)", "(unique, 0x9400, 8) INT_ADD (register, 0x8, 8) , (unique, 0x9200, 8)", "(unique, 0x23c00, 4) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x0, 4) COPY (unique, 0x23c00, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)" ] }, { "addr": 1048637, "size": 1, "bytes": "c3", "text": "RET", "flowType": "TERMINATOR", "pcode": [ "(register, 0x288, 8) LOAD (const, 0x1b1, 8) , (register, 0x20, 8)", "(register, 0x20, 8) INT_ADD (register, 0x20, 8) , (const, 0x8, 8)", " --- RETURN (register, 0x288, 8)" ] } ], "blocks": [ { "start": 1048592, "size": 33, "destinations": [ { "to": 1048637, "flow": "CONDITIONAL_JUMP" }, { "to": 1048625, "flow": "FALL_THROUGH" } ] }, { "start": 1048625, "size": 12, "destinations": [ { "to": 1048637, "flow": "FALL_THROUGH" } ] }, { "start": 1048637, "size": 1, "destinations": [] } ], "decompiled": "\nuint grade(int param_1)\n\n{\n uint uVar1;\n uint uVar2;\n \n uVar2 \u003d param_1 / 10 - 6;\n uVar1 \u003d -(param_1 \u003e\u003e 0x1f) ^ (uint)((ulong)((long)param_1 * 0x66666667) \u003e\u003e 0x3f);\n if (uVar2 \u003c 5) {\n uVar1 \u003d *(uint *)(\u0026DAT_00100124 + (ulong)uVar2 * 4);\n }\n return uVar1;\n}\n\n" }, { "name": "total", "entry": 1048640, "bodySize": 140, "bodyMin": 1048640, "bodyMax": 1048779, "symbolSource": "IMPORTED", "instructions": [ { "addr": 1048640, "size": 2, "bytes": "85f6", "text": "TEST ESI,ESI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(unique, 0xd5500, 4) INT_AND (register, 0x30, 4) , (register, 0x30, 4)", "(register, 0x207, 1) INT_SLESS (unique, 0xd5500, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (unique, 0xd5500, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (unique, 0xd5500, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048642, "size": 2, "bytes": "7e0d", "text": "JLE 0x00100051", "flowType": "CONDITIONAL_JUMP", "pcode": [ "(unique, 0x25d00, 1) INT_NOTEQUAL (register, 0x20b, 1) , (register, 0x207, 1)", "(unique, 0x25f00, 1) BOOL_OR (register, 0x206, 1) , (unique, 0x25d00, 1)", " --- CBRANCH (ram, 0x100051, 8) , (unique, 0x25f00, 1)" ] }, { "addr": 1048644, "size": 2, "bytes": "89f1", "text": "MOV ECX,ESI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x8, 4) COPY (register, 0x30, 4)", "(register, 0x8, 8) INT_ZEXT (register, 0x8, 4)" ] }, { "addr": 1048646, "size": 3, "bytes": "83fe07", "text": "CMP ESI,0x7", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x78b00, 4) COPY (register, 0x30, 4)", "(register, 0x200, 1) INT_LESS (unique, 0x78b00, 4) , (const, 0x7, 4)", "(register, 0x20b, 1) INT_SBORROW (unique, 0x78b00, 4) , (const, 0x7, 4)", "(unique, 0x78d00, 4) INT_SUB (unique, 0x78b00, 4) , (const, 0x7, 4)", "(register, 0x207, 1) INT_SLESS (unique, 0x78d00, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (unique, 0x78d00, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (unique, 0x78d00, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048649, "size": 2, "bytes": "7709", "text": "JA 0x00100054", "flowType": "CONDITIONAL_JUMP", "pcode": [ "(unique, 0x25200, 1) BOOL_OR (register, 0x200, 1) , (register, 0x206, 1)", "(unique, 0x25400, 1) BOOL_NEGATE (unique, 0x25200, 1)", " --- CBRANCH (ram, 0x100054, 8) , (unique, 0x25400, 1)" ] }, { "addr": 1048651, "size": 2, "bytes": "31d2", "text": "XOR EDX,EDX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x10, 4) INT_XOR (register, 0x10, 4) , (register, 0x10, 4)", "(register, 0x10, 8) INT_ZEXT (register, 0x10, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x10, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x10, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x10, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048653, "size": 2, "bytes": "31c0", "text": "XOR EAX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x0, 4) INT_XOR (register, 0x0, 4) , (register, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048655, "size": 2, "bytes": "eb6f", "text": "JMP 0x001000c0", "flowType": "UNCONDITIONAL_JUMP", "pcode": [ " --- BRANCH (ram, 0x1000c0, 8)" ] }, { "addr": 1048657, "size": 2, "bytes": "31c0", "text": "XOR EAX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x0, 4) INT_XOR (register, 0x0, 4) , (register, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048659, "size": 1, "bytes": "c3", "text": "RET", "flowType": "TERMINATOR", "pcode": [ "(register, 0x288, 8) LOAD (const, 0x1b1, 8) , (register, 0x20, 8)", "(register, 0x20, 8) INT_ADD (register, 0x20, 8) , (const, 0x8, 8)", " --- RETURN (register, 0x288, 8)" ] }, { "addr": 1048660, "size": 2, "bytes": "89ca", "text": "MOV EDX,ECX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x10, 4) COPY (register, 0x8, 4)", "(register, 0x10, 8) INT_ZEXT (register, 0x10, 4)" ] }, { "addr": 1048662, "size": 6, "bytes": "81e2f8ffff7f", "text": "AND EDX,0x7ffffff8", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x10, 4) INT_AND (register, 0x10, 4) , (const, 0x7ffffff8, 4)", "(register, 0x10, 8) INT_ZEXT (register, 0x10, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x10, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x10, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x10, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048668, "size": 2, "bytes": "89c8", "text": "MOV EAX,ECX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x0, 4) COPY (register, 0x8, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)" ] }, { "addr": 1048670, "size": 3, "bytes": "c1e803", "text": "SHR EAX,0x3", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xd0e00, 4) INT_AND (const, 0x3, 4) , (const, 0x1f, 4)", "(unique, 0xd0f00, 4) COPY (register, 0x0, 4)", "(register, 0x0, 4) INT_RIGHT (register, 0x0, 4) , (unique, 0xd0e00, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(unique, 0x5be00, 1) INT_EQUAL (unique, 0xd0e00, 4) , (const, 0x0, 4)", "(unique, 0x5bf00, 4) INT_SUB (unique, 0xd0e00, 4) , (const, 0x1, 4)", "(unique, 0x5c000, 4) INT_RIGHT (unique, 0xd0f00, 4) , (unique, 0x5bf00, 4)", "(unique, 0x5c100, 4) INT_AND (unique, 0x5c000, 4) , (const, 0x1, 4)", "(unique, 0x5c200, 1) INT_NOTEQUAL (unique, 0x5c100, 4) , (const, 0x0, 4)", "(unique, 0x0, 1) COPY (unique, 0x5be00, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (register, 0x200, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5be00, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5c200, 1)", "(register, 0x200, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x5c300, 1) INT_EQUAL (unique, 0xd0e00, 4) , (const, 0x1, 4)", "(unique, 0x5c400, 1) INT_SLESS (unique, 0xd0f00, 4) , (const, 0x0, 4)", "(unique, 0x0, 1) COPY (unique, 0x5c300, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (const, 0x0, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5c300, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5c400, 1)", "(register, 0x20b, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x58800, 1) INT_NOTEQUAL (unique, 0xd0e00, 4) , (const, 0x0, 4)", "(unique, 0x58a00, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58b00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x58c00, 1) INT_AND (unique, 0x58b00, 1) , (register, 0x207, 1)", "(unique, 0x58d00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x58a00, 1)", "(register, 0x207, 1) INT_OR (unique, 0x58c00, 1) , (unique, 0x58d00, 1)", "(unique, 0x59000, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x59100, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59200, 1) INT_AND (unique, 0x59100, 1) , (register, 0x206, 1)", "(unique, 0x59300, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59000, 1)", "(register, 0x206, 1) INT_OR (unique, 0x59200, 1) , (unique, 0x59300, 1)", "(unique, 0x59500, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x59600, 1) POPCOUNT (unique, 0x59500, 4)", "(unique, 0x59700, 1) INT_AND (unique, 0x59600, 1) , (const, 0x1, 1)", "(unique, 0x59900, 1) INT_EQUAL (unique, 0x59700, 1) , (const, 0x0, 1)", "(unique, 0x59a00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59b00, 1) INT_AND (unique, 0x59a00, 1) , (register, 0x202, 1)", "(unique, 0x59c00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59900, 1)", "(register, 0x202, 1) INT_OR (unique, 0x59b00, 1) , (unique, 0x59c00, 1)" ] }, { "addr": 1048673, "size": 5, "bytes": "25ffffff0f", "text": "AND EAX,0xfffffff", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x0, 4) INT_AND (register, 0x0, 4) , (const, 0xfffffff, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048678, "size": 4, "bytes": "48c1e005", "text": "SHL RAX,0x5", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xc9700, 4) INT_AND (const, 0x5, 4) , (const, 0x3f, 4)", "(unique, 0xc9800, 8) COPY (register, 0x0, 8)", "(register, 0x0, 8) INT_LEFT (register, 0x0, 8) , (unique, 0xc9700, 4)", "(unique, 0x5b100, 1) INT_EQUAL (unique, 0xc9700, 4) , (const, 0x0, 4)", "(unique, 0x5b200, 4) INT_SUB (unique, 0xc9700, 4) , (const, 0x1, 4)", "(unique, 0x5b300, 8) INT_LEFT (unique, 0xc9800, 8) , (unique, 0x5b200, 4)", "(unique, 0x5b400, 1) INT_SLESS (unique, 0x5b300, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5b100, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (register, 0x200, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5b100, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5b400, 1)", "(register, 0x200, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x5b500, 1) INT_EQUAL (unique, 0xc9700, 4) , (const, 0x1, 4)", "(unique, 0x5b600, 1) INT_SLESS (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x5b700, 1) INT_XOR (register, 0x200, 1) , (unique, 0x5b600, 1)", "(unique, 0x0, 1) COPY (unique, 0x5b500, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (unique, 0x5b700, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5b500, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (register, 0x20b, 1)", "(register, 0x20b, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x58800, 1) INT_NOTEQUAL (unique, 0xc9700, 4) , (const, 0x0, 4)", "(unique, 0x58a00, 1) INT_SLESS (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x58b00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x58c00, 1) INT_AND (unique, 0x58b00, 1) , (register, 0x207, 1)", "(unique, 0x58d00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x58a00, 1)", "(register, 0x207, 1) INT_OR (unique, 0x58c00, 1) , (unique, 0x58d00, 1)", "(unique, 0x59000, 1) INT_EQUAL (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x59100, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59200, 1) INT_AND (unique, 0x59100, 1) , (register, 0x206, 1)", "(unique, 0x59300, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59000, 1)", "(register, 0x206, 1) INT_OR (unique, 0x59200, 1) , (unique, 0x59300, 1)", "(unique, 0x59500, 8) INT_AND (register, 0x0, 8) , (const, 0xff, 8)", "(unique, 0x59600, 1) POPCOUNT (unique, 0x59500, 8)", "(unique, 0x59700, 1) INT_AND (unique, 0x59600, 1) , (const, 0x1, 1)", "(unique, 0x59900, 1) INT_EQUAL (unique, 0x59700, 1) , (const, 0x0, 1)", "(unique, 0x59a00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59b00, 1) INT_AND (unique, 0x59a00, 1) , (register, 0x202, 1)", "(unique, 0x59c00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59900, 1)", "(register, 0x202, 1) INT_OR (unique, 0x59b00, 1) , (unique, 0x59c00, 1)" ] }, { "addr": 1048682, "size": 4, "bytes": "660fefc0", "text": "PXOR XMM0,XMM0", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1200, 16) INT_XOR (register, 0x1200, 16) , (register, 0x1200, 16)" ] }, { "addr": 1048686, "size": 2, "bytes": "31f6", "text": "XOR ESI,ESI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x30, 4) INT_XOR (register, 0x30, 4) , (register, 0x30, 4)", "(register, 0x30, 8) INT_ZEXT (register, 0x30, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x30, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x30, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x30, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048688, "size": 4, "bytes": "660fefc9", "text": "PXOR XMM1,XMM1", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1240, 16) INT_XOR (register, 0x1240, 16) , (register, 0x1240, 16)" ] }, { "addr": 1048692, "size": 12, "bytes": "6666662e0f1f840000000000", "text": "NOP word ptr CS:[RAX + RAX*0x1]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xaa00, 8) INT_MULT (register, 0x0, 8) , (const, 0x1, 8)", "(unique, 0xac00, 8) INT_ADD (register, 0x0, 8) , (unique, 0xaa00, 8)" ] }, { "addr": 1048704, "size": 5, "bytes": "f30f6f1437", "text": "MOVDQU XMM2,xmmword ptr [RDI + RSI*0x1]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x9200, 8) INT_MULT (register, 0x30, 8) , (const, 0x1, 8)", "(unique, 0x9400, 8) INT_ADD (register, 0x38, 8) , (unique, 0x9200, 8)", "(unique, 0xd600, 16) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x1280, 16) COPY (unique, 0xd600, 16)" ] }, { "addr": 1048709, "size": 4, "bytes": "660ffec2", "text": "PADDD XMM0,XMM2", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1200, 4) INT_ADD (register, 0x1200, 4) , (register, 0x1280, 4)", "(register, 0x1204, 4) INT_ADD (register, 0x1204, 4) , (register, 0x1284, 4)", "(register, 0x1208, 4) INT_ADD (register, 0x1208, 4) , (register, 0x1288, 4)", "(register, 0x120c, 4) INT_ADD (register, 0x120c, 4) , (register, 0x128c, 4)" ] }, { "addr": 1048713, "size": 6, "bytes": "f30f6f543710", "text": "MOVDQU XMM2,xmmword ptr [RDI + RSI*0x1 + 0x10]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x9d00, 8) INT_ADD (const, 0x10, 8) , (register, 0x38, 8)", "(unique, 0x9e00, 8) INT_MULT (register, 0x30, 8) , (const, 0x1, 8)", "(unique, 0xa000, 8) INT_ADD (unique, 0x9d00, 8) , (unique, 0x9e00, 8)", "(unique, 0xd600, 16) LOAD (const, 0x1b1, 4) , (unique, 0xa000, 8)", "(register, 0x1280, 16) COPY (unique, 0xd600, 16)" ] }, { "addr": 1048719, "size": 4, "bytes": "660ffeca", "text": "PADDD XMM1,XMM2", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1240, 4) INT_ADD (register, 0x1240, 4) , (register, 0x1280, 4)", "(register, 0x1244, 4) INT_ADD (register, 0x1244, 4) , (register, 0x1284, 4)", "(register, 0x1248, 4) INT_ADD (register, 0x1248, 4) , (register, 0x1288, 4)", "(register, 0x124c, 4) INT_ADD (register, 0x124c, 4) , (register, 0x128c, 4)" ] }, { "addr": 1048723, "size": 4, "bytes": "4883c620", "text": "ADD RSI,0x20", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_CARRY (register, 0x30, 8) , (const, 0x20, 8)", "(register, 0x20b, 1) INT_SCARRY (register, 0x30, 8) , (const, 0x20, 8)", "(register, 0x30, 8) INT_ADD (register, 0x30, 8) , (const, 0x20, 8)", "(register, 0x207, 1) INT_SLESS (register, 0x30, 8) , (const, 0x0, 8)", "(register, 0x206, 1) INT_EQUAL (register, 0x30, 8) , (const, 0x0, 8)", "(unique, 0x58300, 8) INT_AND (register, 0x30, 8) , (const, 0xff, 8)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 8)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048727, "size": 3, "bytes": "4839f0", "text": "CMP RAX,RSI", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x79a00, 8) COPY (register, 0x0, 8)", "(register, 0x200, 1) INT_LESS (unique, 0x79a00, 8) , (register, 0x30, 8)", "(register, 0x20b, 1) INT_SBORROW (unique, 0x79a00, 8) , (register, 0x30, 8)", "(unique, 0x79c00, 8) INT_SUB (unique, 0x79a00, 8) , (register, 0x30, 8)", "(register, 0x207, 1) INT_SLESS (unique, 0x79c00, 8) , (const, 0x0, 8)", "(register, 0x206, 1) INT_EQUAL (unique, 0x79c00, 8) , (const, 0x0, 8)", "(unique, 0x58300, 8) INT_AND (unique, 0x79c00, 8) , (const, 0xff, 8)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 8)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048730, "size": 2, "bytes": "75e4", "text": "JNZ 0x00100080", "flowType": "CONDITIONAL_JUMP", "pcode": [ "(unique, 0x24f00, 1) BOOL_NEGATE (register, 0x206, 1)", " --- CBRANCH (ram, 0x100080, 8) , (unique, 0x24f00, 1)" ] }, { "addr": 1048732, "size": 4, "bytes": "660ffec8", "text": "PADDD XMM1,XMM0", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1240, 4) INT_ADD (register, 0x1240, 4) , (register, 0x1200, 4)", "(register, 0x1244, 4) INT_ADD (register, 0x1244, 4) , (register, 0x1204, 4)", "(register, 0x1248, 4) INT_ADD (register, 0x1248, 4) , (register, 0x1208, 4)", "(register, 0x124c, 4) INT_ADD (register, 0x124c, 4) , (register, 0x120c, 4)" ] }, { "addr": 1048736, "size": 5, "bytes": "660f70c1ee", "text": "PSHUFD XMM0,XMM1,0xee", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x15c800, 4) COPY (register, 0x1240, 4)", "(unique, 0x15c900, 4) COPY (register, 0x1244, 4)", "(unique, 0x15ca00, 4) COPY (register, 0x1248, 4)", "(unique, 0x15cb00, 4) COPY (register, 0x124c, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x1200, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x1204, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x2, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x1208, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x3, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x120c, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)" ] }, { "addr": 1048741, "size": 4, "bytes": "660ffec1", "text": "PADDD XMM0,XMM1", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1200, 4) INT_ADD (register, 0x1200, 4) , (register, 0x1240, 4)", "(register, 0x1204, 4) INT_ADD (register, 0x1204, 4) , (register, 0x1244, 4)", "(register, 0x1208, 4) INT_ADD (register, 0x1208, 4) , (register, 0x1248, 4)", "(register, 0x120c, 4) INT_ADD (register, 0x120c, 4) , (register, 0x124c, 4)" ] }, { "addr": 1048745, "size": 5, "bytes": "660f70c855", "text": "PSHUFD XMM1,XMM0,0x55", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x15c800, 4) COPY (register, 0x1200, 4)", "(unique, 0x15c900, 4) COPY (register, 0x1204, 4)", "(unique, 0x15ca00, 4) COPY (register, 0x1208, 4)", "(unique, 0x15cb00, 4) COPY (register, 0x120c, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x1240, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x1244, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x1248, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)", "(unique, 0x15b900, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x0, 1)", "(unique, 0x15ba00, 4) INT_ZEXT (unique, 0x15b900, 1)", "(unique, 0x15bb00, 4) INT_MULT (unique, 0x15ba00, 4) , (unique, 0x15c800, 4)", "(unique, 0x15bc00, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x1, 1)", "(unique, 0x15bd00, 4) INT_ZEXT (unique, 0x15bc00, 1)", "(unique, 0x15be00, 4) INT_MULT (unique, 0x15bd00, 4) , (unique, 0x15c900, 4)", "(unique, 0x15bf00, 4) INT_ADD (unique, 0x15bb00, 4) , (unique, 0x15be00, 4)", "(unique, 0x15c000, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x2, 1)", "(unique, 0x15c100, 4) INT_ZEXT (unique, 0x15c000, 1)", "(unique, 0x15c200, 4) INT_MULT (unique, 0x15c100, 4) , (unique, 0x15ca00, 4)", "(unique, 0x15c300, 4) INT_ADD (unique, 0x15bf00, 4) , (unique, 0x15c200, 4)", "(unique, 0x15c400, 1) INT_EQUAL (const, 0x1, 1) , (const, 0x3, 1)", "(unique, 0x15c500, 4) INT_ZEXT (unique, 0x15c400, 1)", "(unique, 0x15c600, 4) INT_MULT (unique, 0x15c500, 4) , (unique, 0x15cb00, 4)", "(register, 0x124c, 4) INT_ADD (unique, 0x15c300, 4) , (unique, 0x15c600, 4)" ] }, { "addr": 1048750, "size": 4, "bytes": "660ffec8", "text": "PADDD XMM1,XMM0", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x1240, 4) INT_ADD (register, 0x1240, 4) , (register, 0x1200, 4)", "(register, 0x1244, 4) INT_ADD (register, 0x1244, 4) , (register, 0x1204, 4)", "(register, 0x1248, 4) INT_ADD (register, 0x1248, 4) , (register, 0x1208, 4)", "(register, 0x124c, 4) INT_ADD (register, 0x124c, 4) , (register, 0x120c, 4)" ] }, { "addr": 1048754, "size": 4, "bytes": "660f7ec8", "text": "MOVD EAX,XMM1", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x0, 4) SUBPIECE (register, 0x1240, 16) , (const, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)" ] }, { "addr": 1048758, "size": 2, "bytes": "39ca", "text": "CMP EDX,ECX", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x79700, 4) COPY (register, 0x10, 4)", "(register, 0x200, 1) INT_LESS (unique, 0x79700, 4) , (register, 0x8, 4)", "(register, 0x20b, 1) INT_SBORROW (unique, 0x79700, 4) , (register, 0x8, 4)", "(unique, 0x79900, 4) INT_SUB (unique, 0x79700, 4) , (register, 0x8, 4)", "(register, 0x207, 1) INT_SLESS (unique, 0x79900, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (unique, 0x79900, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (unique, 0x79900, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048760, "size": 2, "bytes": "7411", "text": "JZ 0x001000cb", "flowType": "CONDITIONAL_JUMP", "pcode": [ " --- CBRANCH (ram, 0x1000cb, 8) , (register, 0x206, 1)" ] }, { "addr": 1048762, "size": 6, "bytes": "660f1f440000", "text": "NOP word ptr [RAX + RAX*0x1]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xa100, 8) INT_MULT (register, 0x0, 8) , (const, 0x1, 8)", "(unique, 0xa300, 8) INT_ADD (register, 0x0, 8) , (unique, 0xa100, 8)" ] }, { "addr": 1048768, "size": 3, "bytes": "030497", "text": "ADD EAX,dword ptr [RDI + RDX*0x4]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x9200, 8) INT_MULT (register, 0x10, 8) , (const, 0x4, 8)", "(unique, 0x9400, 8) INT_ADD (register, 0x38, 8) , (unique, 0x9200, 8)", "(unique, 0x23c00, 4) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x200, 1) INT_CARRY (register, 0x0, 4) , (unique, 0x23c00, 4)", "(unique, 0x23c00, 4) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x20b, 1) INT_SCARRY (register, 0x0, 4) , (unique, 0x23c00, 4)", "(unique, 0x23c00, 4) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x0, 4) INT_ADD (register, 0x0, 4) , (unique, 0x23c00, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048771, "size": 3, "bytes": "48ffc2", "text": "INC RDX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x20b, 1) INT_SCARRY (register, 0x10, 8) , (const, 0x1, 8)", "(register, 0x10, 8) INT_ADD (register, 0x10, 8) , (const, 0x1, 8)", "(register, 0x207, 1) INT_SLESS (register, 0x10, 8) , (const, 0x0, 8)", "(register, 0x206, 1) INT_EQUAL (register, 0x10, 8) , (const, 0x0, 8)", "(unique, 0x58300, 8) INT_AND (register, 0x10, 8) , (const, 0xff, 8)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 8)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048774, "size": 3, "bytes": "4839d1", "text": "CMP RCX,RDX", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x79a00, 8) COPY (register, 0x8, 8)", "(register, 0x200, 1) INT_LESS (unique, 0x79a00, 8) , (register, 0x10, 8)", "(register, 0x20b, 1) INT_SBORROW (unique, 0x79a00, 8) , (register, 0x10, 8)", "(unique, 0x79c00, 8) INT_SUB (unique, 0x79a00, 8) , (register, 0x10, 8)", "(register, 0x207, 1) INT_SLESS (unique, 0x79c00, 8) , (const, 0x0, 8)", "(register, 0x206, 1) INT_EQUAL (unique, 0x79c00, 8) , (const, 0x0, 8)", "(unique, 0x58300, 8) INT_AND (unique, 0x79c00, 8) , (const, 0xff, 8)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 8)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048777, "size": 2, "bytes": "75f5", "text": "JNZ 0x001000c0", "flowType": "CONDITIONAL_JUMP", "pcode": [ "(unique, 0x24f00, 1) BOOL_NEGATE (register, 0x206, 1)", " --- CBRANCH (ram, 0x1000c0, 8) , (unique, 0x24f00, 1)" ] }, { "addr": 1048779, "size": 1, "bytes": "c3", "text": "RET", "flowType": "TERMINATOR", "pcode": [ "(register, 0x288, 8) LOAD (const, 0x1b1, 8) , (register, 0x20, 8)", "(register, 0x20, 8) INT_ADD (register, 0x20, 8) , (const, 0x8, 8)", " --- RETURN (register, 0x288, 8)" ] } ], "blocks": [ { "start": 1048640, "size": 4, "destinations": [ { "to": 1048657, "flow": "CONDITIONAL_JUMP" }, { "to": 1048644, "flow": "FALL_THROUGH" } ] }, { "start": 1048644, "size": 7, "destinations": [ { "to": 1048660, "flow": "CONDITIONAL_JUMP" }, { "to": 1048651, "flow": "FALL_THROUGH" } ] }, { "start": 1048651, "size": 6, "destinations": [ { "to": 1048768, "flow": "UNCONDITIONAL_JUMP" } ] }, { "start": 1048657, "size": 3, "destinations": [] }, { "start": 1048660, "size": 44, "destinations": [ { "to": 1048704, "flow": "FALL_THROUGH" } ] }, { "start": 1048704, "size": 28, "destinations": [ { "to": 1048704, "flow": "CONDITIONAL_JUMP" }, { "to": 1048732, "flow": "FALL_THROUGH" } ] }, { "start": 1048732, "size": 30, "destinations": [ { "to": 1048779, "flow": "CONDITIONAL_JUMP" }, { "to": 1048762, "flow": "FALL_THROUGH" } ] }, { "start": 1048762, "size": 6, "destinations": [ { "to": 1048768, "flow": "FALL_THROUGH" } ] }, { "start": 1048768, "size": 11, "destinations": [ { "to": 1048768, "flow": "CONDITIONAL_JUMP" }, { "to": 1048779, "flow": "FALL_THROUGH" } ] }, { "start": 1048779, "size": 1, "destinations": [] } ], "decompiled": "\nint total(long param_1,uint param_2)\n\n{\n int *piVar1;\n int iVar2;\n ulong uVar3;\n long lVar4;\n int iVar5;\n int iVar6;\n int iVar7;\n int iVar8;\n int iVar9;\n int iVar10;\n int iVar11;\n \n if ((int)param_2 \u003c 1) {\n return 0;\n }\n if (param_2 \u003c 8) {\n uVar3 \u003d 0;\n iVar2 \u003d 0;\n }\n else {\n uVar3 \u003d (ulong)(param_2 \u0026 0x7ffffff8);\n iVar2 \u003d 0;\n iVar5 \u003d 0;\n iVar6 \u003d 0;\n iVar7 \u003d 0;\n lVar4 \u003d 0;\n iVar8 \u003d 0;\n iVar9 \u003d 0;\n iVar10 \u003d 0;\n iVar11 \u003d 0;\n do {\n piVar1 \u003d (int *)(param_1 + lVar4);\n iVar2 \u003d iVar2 + *piVar1;\n iVar5 \u003d iVar5 + piVar1[1];\n iVar6 \u003d iVar6 + piVar1[2];\n iVar7 \u003d iVar7 + piVar1[3];\n piVar1 \u003d (int *)(param_1 + 0x10 + lVar4);\n iVar8 \u003d iVar8 + *piVar1;\n iVar9 \u003d iVar9 + piVar1[1];\n iVar10 \u003d iVar10 + piVar1[2];\n iVar11 \u003d iVar11 + piVar1[3];\n lVar4 \u003d lVar4 + 0x20;\n } while ((ulong)(param_2 \u003e\u003e 3 \u0026 0xfffffff) \u003c\u003c 5 !\u003d lVar4);\n iVar2 \u003d iVar11 + iVar7 + iVar9 + iVar5 + iVar10 + iVar6 + iVar8 + iVar2;\n if ((param_2 \u0026 0x7ffffff8) \u003d\u003d param_2) {\n return iVar2;\n }\n }\n do {\n iVar2 \u003d iVar2 + *(int *)(param_1 + uVar3 * 4);\n uVar3 \u003d uVar3 + 1;\n } while (param_2 !\u003d uVar3);\n return iVar2;\n}\n\n" }, { "name": "grade_label", "entry": 1048784, "bodySize": 63, "bodyMin": 1048784, "bodyMax": 1048846, "symbolSource": "IMPORTED", "instructions": [ { "addr": 1048784, "size": 3, "bytes": "4863c7", "text": "MOVSXD RAX,EDI", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x0, 8) INT_SEXT (register, 0x38, 4)" ] }, { "addr": 1048787, "size": 7, "bytes": "4869c067666666", "text": "IMUL RAX,RAX,0x66666667", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x95600, 16) INT_SEXT (register, 0x0, 8)", "(unique, 0x95700, 16) INT_SEXT (const, 0x66666667, 4)", "(unique, 0x95900, 16) INT_MULT (unique, 0x95600, 16) , (unique, 0x95700, 16)", "(unique, 0x95a00, 8) INT_SEXT (const, 0x66666667, 4)", "(register, 0x0, 8) INT_MULT (register, 0x0, 8) , (unique, 0x95a00, 8)", "(unique, 0x95d00, 8) SUBPIECE (unique, 0x95900, 16) , (const, 0x8, 4)", "(unique, 0x5a200, 16) INT_SEXT (register, 0x0, 8)", "(register, 0x200, 1) INT_NOTEQUAL (unique, 0x5a200, 16) , (unique, 0x95900, 16)", "(register, 0x20b, 1) COPY (register, 0x200, 1)" ] }, { "addr": 1048794, "size": 3, "bytes": "4889c1", "text": "MOV RCX,RAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x8, 8) COPY (register, 0x0, 8)" ] }, { "addr": 1048797, "size": 4, "bytes": "48c1f922", "text": "SAR RCX,0x22", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xc5c00, 4) INT_AND (const, 0x22, 4) , (const, 0x3f, 4)", "(unique, 0xc5d00, 8) COPY (register, 0x8, 8)", "(register, 0x8, 8) INT_SRIGHT (register, 0x8, 8) , (unique, 0xc5c00, 4)", "(unique, 0x5b800, 1) INT_EQUAL (unique, 0xc5c00, 4) , (const, 0x0, 4)", "(unique, 0x5b900, 4) INT_SUB (unique, 0xc5c00, 4) , (const, 0x1, 4)", "(unique, 0x5ba00, 8) INT_SRIGHT (unique, 0xc5d00, 8) , (unique, 0x5b900, 4)", "(unique, 0x5bb00, 8) INT_AND (unique, 0x5ba00, 8) , (const, 0x1, 8)", "(unique, 0x5bc00, 1) INT_NOTEQUAL (unique, 0x5bb00, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5b800, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (register, 0x200, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5b800, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5bc00, 1)", "(register, 0x200, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x5bd00, 1) INT_EQUAL (unique, 0xc5c00, 4) , (const, 0x1, 4)", "(unique, 0x0, 1) COPY (unique, 0x5bd00, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (const, 0x0, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5bd00, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (register, 0x20b, 1)", "(register, 0x20b, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x58800, 1) INT_NOTEQUAL (unique, 0xc5c00, 4) , (const, 0x0, 4)", "(unique, 0x58a00, 1) INT_SLESS (register, 0x8, 8) , (const, 0x0, 8)", "(unique, 0x58b00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x58c00, 1) INT_AND (unique, 0x58b00, 1) , (register, 0x207, 1)", "(unique, 0x58d00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x58a00, 1)", "(register, 0x207, 1) INT_OR (unique, 0x58c00, 1) , (unique, 0x58d00, 1)", "(unique, 0x59000, 1) INT_EQUAL (register, 0x8, 8) , (const, 0x0, 8)", "(unique, 0x59100, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59200, 1) INT_AND (unique, 0x59100, 1) , (register, 0x206, 1)", "(unique, 0x59300, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59000, 1)", "(register, 0x206, 1) INT_OR (unique, 0x59200, 1) , (unique, 0x59300, 1)", "(unique, 0x59500, 8) INT_AND (register, 0x8, 8) , (const, 0xff, 8)", "(unique, 0x59600, 1) POPCOUNT (unique, 0x59500, 8)", "(unique, 0x59700, 1) INT_AND (unique, 0x59600, 1) , (const, 0x1, 1)", "(unique, 0x59900, 1) INT_EQUAL (unique, 0x59700, 1) , (const, 0x0, 1)", "(unique, 0x59a00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59b00, 1) INT_AND (unique, 0x59a00, 1) , (register, 0x202, 1)", "(unique, 0x59c00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59900, 1)", "(register, 0x202, 1) INT_OR (unique, 0x59b00, 1) , (unique, 0x59c00, 1)" ] }, { "addr": 1048801, "size": 4, "bytes": "48c1e83f", "text": "SHR RAX,0x3f", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0xd1a00, 4) INT_AND (const, 0x3f, 4) , (const, 0x3f, 4)", "(unique, 0xd1b00, 8) COPY (register, 0x0, 8)", "(register, 0x0, 8) INT_RIGHT (register, 0x0, 8) , (unique, 0xd1a00, 4)", "(unique, 0x5be00, 1) INT_EQUAL (unique, 0xd1a00, 4) , (const, 0x0, 4)", "(unique, 0x5bf00, 4) INT_SUB (unique, 0xd1a00, 4) , (const, 0x1, 4)", "(unique, 0x5c000, 8) INT_RIGHT (unique, 0xd1b00, 8) , (unique, 0x5bf00, 4)", "(unique, 0x5c100, 8) INT_AND (unique, 0x5c000, 8) , (const, 0x1, 8)", "(unique, 0x5c200, 1) INT_NOTEQUAL (unique, 0x5c100, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5be00, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (register, 0x200, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5be00, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5c200, 1)", "(register, 0x200, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x5c300, 1) INT_EQUAL (unique, 0xd1a00, 4) , (const, 0x1, 4)", "(unique, 0x5c400, 1) INT_SLESS (unique, 0xd1b00, 8) , (const, 0x0, 8)", "(unique, 0x0, 1) COPY (unique, 0x5c300, 1)", "(unique, 0x100, 1) INT_MULT (unique, 0x0, 1) , (const, 0x0, 1)", "(unique, 0x200, 1) BOOL_NEGATE (unique, 0x5c300, 1)", "(unique, 0x300, 1) COPY (unique, 0x200, 1)", "(unique, 0x400, 1) INT_MULT (unique, 0x300, 1) , (unique, 0x5c400, 1)", "(register, 0x20b, 1) INT_OR (unique, 0x100, 1) , (unique, 0x400, 1)", "(unique, 0x58800, 1) INT_NOTEQUAL (unique, 0xd1a00, 4) , (const, 0x0, 4)", "(unique, 0x58a00, 1) INT_SLESS (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x58b00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x58c00, 1) INT_AND (unique, 0x58b00, 1) , (register, 0x207, 1)", "(unique, 0x58d00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x58a00, 1)", "(register, 0x207, 1) INT_OR (unique, 0x58c00, 1) , (unique, 0x58d00, 1)", "(unique, 0x59000, 1) INT_EQUAL (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x59100, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59200, 1) INT_AND (unique, 0x59100, 1) , (register, 0x206, 1)", "(unique, 0x59300, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59000, 1)", "(register, 0x206, 1) INT_OR (unique, 0x59200, 1) , (unique, 0x59300, 1)", "(unique, 0x59500, 8) INT_AND (register, 0x0, 8) , (const, 0xff, 8)", "(unique, 0x59600, 1) POPCOUNT (unique, 0x59500, 8)", "(unique, 0x59700, 1) INT_AND (unique, 0x59600, 1) , (const, 0x1, 1)", "(unique, 0x59900, 1) INT_EQUAL (unique, 0x59700, 1) , (const, 0x0, 1)", "(unique, 0x59a00, 1) BOOL_NEGATE (unique, 0x58800, 1)", "(unique, 0x59b00, 1) INT_AND (unique, 0x59a00, 1) , (register, 0x202, 1)", "(unique, 0x59c00, 1) INT_AND (unique, 0x58800, 1) , (unique, 0x59900, 1)", "(register, 0x202, 1) INT_OR (unique, 0x59b00, 1) , (unique, 0x59c00, 1)" ] }, { "addr": 1048805, "size": 2, "bytes": "01c8", "text": "ADD EAX,ECX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_CARRY (register, 0x0, 4) , (register, 0x8, 4)", "(register, 0x20b, 1) INT_SCARRY (register, 0x0, 4) , (register, 0x8, 4)", "(register, 0x0, 4) INT_ADD (register, 0x0, 4) , (register, 0x8, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048807, "size": 3, "bytes": "83c0fa", "text": "ADD EAX,-0x6", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_CARRY (register, 0x0, 4) , (const, 0xfffffffa, 4)", "(register, 0x20b, 1) INT_SCARRY (register, 0x0, 4) , (const, 0xfffffffa, 4)", "(register, 0x0, 4) INT_ADD (register, 0x0, 4) , (const, 0xfffffffa, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048810, "size": 3, "bytes": "83f804", "text": "CMP EAX,0x4", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x78b00, 4) COPY (register, 0x0, 4)", "(register, 0x200, 1) INT_LESS (unique, 0x78b00, 4) , (const, 0x4, 4)", "(register, 0x20b, 1) INT_SBORROW (unique, 0x78b00, 4) , (const, 0x4, 4)", "(unique, 0x78d00, 4) INT_SUB (unique, 0x78b00, 4) , (const, 0x4, 4)", "(register, 0x207, 1) INT_SLESS (unique, 0x78d00, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (unique, 0x78d00, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (unique, 0x78d00, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048813, "size": 2, "bytes": "770f", "text": "JA 0x001000fe", "flowType": "CONDITIONAL_JUMP", "pcode": [ "(unique, 0x25200, 1) BOOL_OR (register, 0x200, 1) , (register, 0x206, 1)", "(unique, 0x25400, 1) BOOL_NEGATE (unique, 0x25200, 1)", " --- CBRANCH (ram, 0x1000fe, 8) , (unique, 0x25400, 1)" ] }, { "addr": 1048815, "size": 2, "bytes": "89c0", "text": "MOV EAX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x0, 4) COPY (register, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)" ] }, { "addr": 1048817, "size": 7, "bytes": "488d0d40000000", "text": "LEA RCX,[0x100138]", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x8, 8) COPY (const, 0x100138, 8)" ] }, { "addr": 1048824, "size": 4, "bytes": "488b04c1", "text": "MOV RAX,qword ptr [RCX + RAX*0x8]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x9200, 8) INT_MULT (register, 0x0, 8) , (const, 0x8, 8)", "(unique, 0x9400, 8) INT_ADD (register, 0x8, 8) , (unique, 0x9200, 8)", "(unique, 0x23d00, 8) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x0, 8) COPY (unique, 0x23d00, 8)" ] }, { "addr": 1048828, "size": 2, "bytes": "eb02", "text": "JMP 0x00100100", "flowType": "UNCONDITIONAL_JUMP", "pcode": [ " --- BRANCH (ram, 0x100100, 8)" ] }, { "addr": 1048830, "size": 2, "bytes": "31c0", "text": "XOR EAX,EAX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) COPY (const, 0x0, 1)", "(register, 0x20b, 1) COPY (const, 0x0, 1)", "(register, 0x0, 4) INT_XOR (register, 0x0, 4) , (register, 0x0, 4)", "(register, 0x0, 8) INT_ZEXT (register, 0x0, 4)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 4) , (const, 0x0, 4)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 4) , (const, 0x0, 4)", "(unique, 0x58300, 4) INT_AND (register, 0x0, 4) , (const, 0xff, 4)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 4)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048832, "size": 7, "bytes": "488d0d09000000", "text": "LEA RCX,[0x100110]", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x8, 8) COPY (const, 0x100110, 8)" ] }, { "addr": 1048839, "size": 4, "bytes": "48630481", "text": "MOVSXD RAX,dword ptr [RCX + RAX*0x4]", "flowType": "FALL_THROUGH", "pcode": [ "(unique, 0x9200, 8) INT_MULT (register, 0x0, 8) , (const, 0x4, 8)", "(unique, 0x9400, 8) INT_ADD (register, 0x8, 8) , (unique, 0x9200, 8)", "(unique, 0x23c00, 4) LOAD (const, 0x1b1, 4) , (unique, 0x9400, 8)", "(register, 0x0, 8) INT_SEXT (unique, 0x23c00, 4)" ] }, { "addr": 1048843, "size": 3, "bytes": "4801c8", "text": "ADD RAX,RCX", "flowType": "FALL_THROUGH", "pcode": [ "(register, 0x200, 1) INT_CARRY (register, 0x0, 8) , (register, 0x8, 8)", "(register, 0x20b, 1) INT_SCARRY (register, 0x0, 8) , (register, 0x8, 8)", "(register, 0x0, 8) INT_ADD (register, 0x0, 8) , (register, 0x8, 8)", "(register, 0x207, 1) INT_SLESS (register, 0x0, 8) , (const, 0x0, 8)", "(register, 0x206, 1) INT_EQUAL (register, 0x0, 8) , (const, 0x0, 8)", "(unique, 0x58300, 8) INT_AND (register, 0x0, 8) , (const, 0xff, 8)", "(unique, 0x58400, 1) POPCOUNT (unique, 0x58300, 8)", "(unique, 0x58500, 1) INT_AND (unique, 0x58400, 1) , (const, 0x1, 1)", "(register, 0x202, 1) INT_EQUAL (unique, 0x58500, 1) , (const, 0x0, 1)" ] }, { "addr": 1048846, "size": 1, "bytes": "c3", "text": "RET", "flowType": "TERMINATOR", "pcode": [ "(register, 0x288, 8) LOAD (const, 0x1b1, 8) , (register, 0x20, 8)", "(register, 0x20, 8) INT_ADD (register, 0x20, 8) , (const, 0x8, 8)", " --- RETURN (register, 0x288, 8)" ] } ], "blocks": [ { "start": 1048784, "size": 31, "destinations": [ { "to": 1048830, "flow": "CONDITIONAL_JUMP" }, { "to": 1048815, "flow": "FALL_THROUGH" } ] }, { "start": 1048815, "size": 15, "destinations": [ { "to": 1048832, "flow": "UNCONDITIONAL_JUMP" } ] }, { "start": 1048830, "size": 2, "destinations": [ { "to": 1048832, "flow": "FALL_THROUGH" } ] }, { "start": 1048832, "size": 15, "destinations": [] } ], "decompiled": "\nlong grade_label(int param_1)\n\n{\n uint uVar1;\n long lVar2;\n \n uVar1 \u003d param_1 / 10 - 6;\n if (uVar1 \u003c 5) {\n lVar2 \u003d *(long *)(\u0026DAT_00100138 + (ulong)uVar1 * 8);\n }\n else {\n lVar2 \u003d 0;\n }\n return (long)\u0026labels_rel + (long)(int)(\u0026labels_rel)[lVar2];\n}\n\n" } ], "dataReferences": [ { "from": 1048627, "to": 1048868, "type": "DATA" }, { "from": 1048634, "to": 1048868, "type": "DATA" }, { "from": 1048817, "to": 1048888, "type": "DATA" }, { "from": 1048824, "to": 1048888, "type": "DATA" }, { "from": 1048832, "to": 1048848, "type": "DATA" }, { "from": 1048839, "to": 1048848, "type": "READ" }, { "from": 1048843, "to": 1048928, "type": "DATA" }, { "from": 40, "to": 0, "type": "DATA" }, { "from": 80, "to": 0, "type": "DATA" }, { "from": 144, "to": 1048576, "type": "DATA" }, { "from": 208, "to": 0, "type": "DATA" }, { "from": 272, "to": 1048848, "type": "DATA" }, { "from": 336, "to": 0, "type": "DATA" }, { "from": 400, "to": 1048928, "type": "DATA" }, { "from": 464, "to": 0, "type": "DATA" }, { "from": 656, "to": 0, "type": "DATA" } ] }