wargio / r2dec-js

radare2 plugin - converts asm to pseudo-C code.
514 stars 50 forks source link

r2dec crash in cutter #211

Closed FalcoGer closed 4 years ago

FalcoGer commented 4 years ago

Describe the bug r2dec crashes when trying to decompile main function of a simple program.

Component

Function Disassembly

[0x00001165]> pdf main
┌ 137: int main (int argc, char **argv, char **envp);
│           ; var int64_t var_ch @ rbp-0xc
│           ; var int64_t canary @ rbp-0x8
│           0x00001165      push    rbp
│           0x00001166      mov     rbp, rsp
│           0x00001169      sub     rsp, 0x10
│           0x0000116d      mov     rax, qword fs:[0x28]
│           0x00001176      mov     qword [canary], rax
│           0x0000117a      xor     eax, eax
│           0x0000117c      lea     rdi, str.Enter_your_key: ; 0x2008 ; const char *format
│           0x00001183      mov     eax, 0
│           0x00001188      call    printf ; sym.imp.printf ; int printf(const char *format)
│           0x0000118d      lea     rax, [var_ch]
│           0x00001191      mov     rsi, rax
│           0x00001194      lea     rdi, [0x0000201a] ; const char *format
│           0x0000119b      mov     eax, 0
│           0x000011a0      call    __isoc99_scanf ; sym.imp.__isoc99_scanf ; int scanf(const char *format)
│           0x000011a5      mov     eax, dword [var_ch]
│           0x000011a8      mov     edi, eax ; int64_t arg1
│           0x000011aa      mov     eax, 0
│           0x000011af      call    validate_key ; sym.validate_key
│           0x000011b4      cmp     eax, 1
│       ┌─< 0x000011b7      jne     0x11c7
│       │   0x000011b9      lea     rdi, str.Good_job_mate__now_go_keygen_me. ; 0x2020 ; const char *s
│       │   0x000011c0      call    puts ; sym.imp.puts ; int puts(const char *s)
│      ┌──< 0x000011c5      jmp     0x11d3
│      │└─> 0x000011c7      lea     rdi, str.nope. ; 0x2041 ; const char *s
│      │    0x000011ce      call    puts ; sym.imp.puts ; int puts(const char *s)
│      └──> 0x000011d3      mov     eax, 0
│           0x000011d8      mov     rdx, qword [canary]
│           0x000011dc      xor     rdx, qword fs:[0x28]
│       ┌─< 0x000011e5      je      0x11ec
│       │   0x000011e7      call    __stack_chk_fail ; sym.imp.__stack_chk_fail ; void __stack_chk_fail(void)
│       └─> 0x000011ec      leave
└           0x000011ed      ret 

Reproduce via JSON (pddi)

{
    "name": "issue_1588002705982",
    "arch": "x86",
    "archbits": 64,
    "agj": [
        {
            "name": "main",
            "offset": 4453,
            "ninstr": 32,
            "nargs": 0,
            "nlocals": 2,
            "size": 137,
            "stack": 24,
            "type": "sym",
            "blocks": [
                {
                    "offset": 4453,
                    "size": 84,
                    "jump": 4551,
                    "fail": 4537,
                    "colorize": 0,
                    "ops": [
                        {
                            "offset": 4453,
                            "esil": "rbp,8,rsp,-,=[8],8,rsp,-=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4589,
                            "size": 1,
                            "opcode": "push rbp",
                            "disasm": "push rbp",
                            "bytes": "55",
                            "family": "cpu",
                            "type": "rpush",
                            "reloc": false,
                            "type_num": 268435468,
                            "type2_num": 0,
                            "flags": [
                                "main",
                                "sym.main"
                            ],
                            "xrefs": [
                                {
                                    "addr": 4253,
                                    "type": "DATA"
                                }
                            ]
                        },
                        {
                            "offset": 4454,
                            "esil": "rsp,rbp,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4587,
                            "size": 3,
                            "opcode": "mov rbp, rsp",
                            "disasm": "mov rbp, rsp",
                            "bytes": "4889e5",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4457,
                            "val": 16,
                            "esil": "16,rsp,-=,63,$o,of,:=,63,$s,sf,:=,$z,zf,:=,$p,pf,:=,64,$b,cf,:=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4586,
                            "size": 4,
                            "opcode": "sub rsp, 0x10",
                            "disasm": "sub rsp, 0x10",
                            "bytes": "4883ec10",
                            "family": "cpu",
                            "type": "sub",
                            "reloc": false,
                            "type_num": 18,
                            "type2_num": 0
                        },
                        {
                            "offset": 4461,
                            "esil": "0x28,[8],rax,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4581,
                            "size": 9,
                            "opcode": "mov rax, qword fs:[0x28]",
                            "disasm": "mov rax, qword fs:[0x28]",
                            "bytes": "64488b042528000000",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4470,
                            "esil": "rax,0x8,rbp,-,=[8]",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4586,
                            "size": 4,
                            "opcode": "mov qword [rbp - 8], rax",
                            "disasm": "mov qword [canary], rax",
                            "bytes": "488945f8",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 268435465,
                            "type2_num": 0
                        },
                        {
                            "offset": 4474,
                            "esil": "eax,rax,^,0xffffffff,&,rax,=,$z,zf,:=,$p,pf,:=,31,$s,sf,:=,0,cf,:=,0,of,:=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4588,
                            "size": 2,
                            "opcode": "xor eax, eax",
                            "disasm": "xor eax, eax",
                            "bytes": "31c0",
                            "family": "cpu",
                            "type": "xor",
                            "reloc": false,
                            "type_num": 28,
                            "type2_num": 0
                        },
                        {
                            "offset": 4476,
                            "ptr": 8200,
                            "esil": "0xe85,rip,+,rdi,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4583,
                            "size": 7,
                            "opcode": "lea rdi, [rip + 0xe85]",
                            "disasm": "lea rdi, str.Enter_your_key:",
                            "bytes": "488d3d850e0000",
                            "family": "cpu",
                            "type": "lea",
                            "reloc": false,
                            "type_num": 33,
                            "type2_num": 0,
                            "refs": [
                                {
                                    "addr": 8200,
                                    "type": "DATA"
                                }
                            ]
                        },
                        {
                            "offset": 4483,
                            "val": 0,
                            "esil": "0,rax,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "mov eax, 0",
                            "disasm": "mov eax, 0",
                            "bytes": "b800000000",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4488,
                            "esil": "4176,rip,8,rsp,-=,rsp,=[],rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "call 0x1050",
                            "disasm": "call printf",
                            "bytes": "e8c3feffff",
                            "family": "cpu",
                            "type": "call",
                            "reloc": false,
                            "type_num": 3,
                            "type2_num": 0,
                            "jump": 4176,
                            "fail": 4493,
                            "refs": [
                                {
                                    "addr": 4176,
                                    "type": "CALL"
                                }
                            ]
                        },
                        {
                            "offset": 4493,
                            "esil": "0xc,rbp,-,rax,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4586,
                            "size": 4,
                            "opcode": "lea rax, [rbp - 0xc]",
                            "disasm": "lea rax, [var_ch]",
                            "bytes": "488d45f4",
                            "family": "cpu",
                            "type": "lea",
                            "reloc": false,
                            "type_num": 33,
                            "type2_num": 0
                        },
                        {
                            "offset": 4497,
                            "esil": "rax,rsi,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4587,
                            "size": 3,
                            "opcode": "mov rsi, rax",
                            "disasm": "mov rsi, rax",
                            "bytes": "4889c6",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4500,
                            "ptr": 8218,
                            "esil": "0xe7f,rip,+,rdi,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4583,
                            "size": 7,
                            "opcode": "lea rdi, [rip + 0xe7f]",
                            "disasm": "lea rdi, [0x0000201a]",
                            "bytes": "488d3d7f0e0000",
                            "family": "cpu",
                            "type": "lea",
                            "reloc": false,
                            "type_num": 33,
                            "type2_num": 0,
                            "refs": [
                                {
                                    "addr": 8218,
                                    "type": "DATA"
                                }
                            ]
                        },
                        {
                            "offset": 4507,
                            "val": 0,
                            "esil": "0,rax,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "mov eax, 0",
                            "disasm": "mov eax, 0",
                            "bytes": "b800000000",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4512,
                            "esil": "4192,rip,8,rsp,-=,rsp,=[],rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "call 0x1060",
                            "disasm": "call __isoc99_scanf",
                            "bytes": "e8bbfeffff",
                            "family": "cpu",
                            "type": "call",
                            "reloc": false,
                            "type_num": 3,
                            "type2_num": 0,
                            "jump": 4192,
                            "fail": 4517,
                            "refs": [
                                {
                                    "addr": 4192,
                                    "type": "CALL"
                                }
                            ]
                        },
                        {
                            "offset": 4517,
                            "esil": "0xc,rbp,-,[4],rax,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4587,
                            "size": 3,
                            "opcode": "mov eax, dword [rbp - 0xc]",
                            "disasm": "mov eax, dword [var_ch]",
                            "bytes": "8b45f4",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4520,
                            "esil": "eax,rdi,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4588,
                            "size": 2,
                            "opcode": "mov edi, eax",
                            "disasm": "mov edi, eax",
                            "bytes": "89c7",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4522,
                            "val": 0,
                            "esil": "0,rax,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "mov eax, 0",
                            "disasm": "mov eax, 0",
                            "bytes": "b800000000",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4527,
                            "esil": "4590,rip,8,rsp,-=,rsp,=[],rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "call 0x11ee",
                            "disasm": "call validate_key",
                            "bytes": "e83a000000",
                            "family": "cpu",
                            "type": "call",
                            "reloc": false,
                            "type_num": 3,
                            "type2_num": 0,
                            "jump": 4590,
                            "fail": 4532,
                            "refs": [
                                {
                                    "addr": 4590,
                                    "type": "CALL"
                                }
                            ]
                        },
                        {
                            "offset": 4532,
                            "ptr": 1,
                            "val": 1,
                            "esil": "1,eax,==,$z,zf,:=,32,$b,cf,:=,$p,pf,:=,31,$s,sf,:=,31,$o,of,:=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4587,
                            "size": 3,
                            "opcode": "cmp eax, 1",
                            "disasm": "cmp eax, 1",
                            "bytes": "83f801",
                            "family": "cpu",
                            "type": "cmp",
                            "reloc": false,
                            "type_num": 15,
                            "type2_num": 0,
                            "refs": [
                                {
                                    "addr": 1,
                                    "type": "DATA"
                                }
                            ]
                        },
                        {
                            "offset": 4535,
                            "esil": "zf,!,?{,4551,rip,=,}",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4588,
                            "size": 2,
                            "opcode": "jne 0x11c7",
                            "disasm": "jne 0x11c7",
                            "bytes": "750e",
                            "family": "cpu",
                            "type": "cjmp",
                            "reloc": false,
                            "type_num": 2147483649,
                            "type2_num": 0,
                            "jump": 4551,
                            "fail": 4537,
                            "refs": [
                                {
                                    "addr": 4551,
                                    "type": "CODE"
                                }
                            ]
                        }
                    ]
                },
                {
                    "offset": 4537,
                    "size": 14,
                    "jump": 4563,
                    "colorize": 0,
                    "ops": [
                        {
                            "offset": 4537,
                            "ptr": 8224,
                            "esil": "0xe60,rip,+,rdi,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4583,
                            "size": 7,
                            "opcode": "lea rdi, [rip + 0xe60]",
                            "disasm": "lea rdi, str.Good_job_mate__now_go_keygen_me.",
                            "bytes": "488d3d600e0000",
                            "family": "cpu",
                            "type": "lea",
                            "reloc": false,
                            "type_num": 33,
                            "type2_num": 0,
                            "refs": [
                                {
                                    "addr": 8224,
                                    "type": "DATA"
                                }
                            ]
                        },
                        {
                            "offset": 4544,
                            "esil": "4144,rip,8,rsp,-=,rsp,=[],rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "call 0x1030",
                            "disasm": "call puts",
                            "bytes": "e86bfeffff",
                            "family": "cpu",
                            "type": "call",
                            "reloc": false,
                            "type_num": 3,
                            "type2_num": 0,
                            "jump": 4144,
                            "fail": 4549,
                            "refs": [
                                {
                                    "addr": 4144,
                                    "type": "CALL"
                                }
                            ]
                        },
                        {
                            "offset": 4549,
                            "esil": "0x11d3,rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4588,
                            "size": 2,
                            "opcode": "jmp 0x11d3",
                            "disasm": "jmp 0x11d3",
                            "bytes": "eb0c",
                            "family": "cpu",
                            "type": "jmp",
                            "reloc": false,
                            "type_num": 1,
                            "type2_num": 0,
                            "jump": 4563,
                            "refs": [
                                {
                                    "addr": 4563,
                                    "type": "CODE"
                                }
                            ]
                        }
                    ]
                },
                {
                    "offset": 4551,
                    "size": 12,
                    "jump": 4563,
                    "colorize": 0,
                    "ops": [
                        {
                            "offset": 4551,
                            "ptr": 8257,
                            "esil": "0xe73,rip,+,rdi,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4583,
                            "size": 7,
                            "opcode": "lea rdi, [rip + 0xe73]",
                            "disasm": "lea rdi, str.nope.",
                            "bytes": "488d3d730e0000",
                            "family": "cpu",
                            "type": "lea",
                            "reloc": false,
                            "type_num": 33,
                            "type2_num": 0,
                            "refs": [
                                {
                                    "addr": 8257,
                                    "type": "DATA"
                                }
                            ],
                            "xrefs": [
                                {
                                    "addr": 4535,
                                    "type": "CODE"
                                }
                            ]
                        },
                        {
                            "offset": 4558,
                            "esil": "4144,rip,8,rsp,-=,rsp,=[],rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "call 0x1030",
                            "disasm": "call puts",
                            "bytes": "e85dfeffff",
                            "family": "cpu",
                            "type": "call",
                            "reloc": false,
                            "type_num": 3,
                            "type2_num": 0,
                            "jump": 4144,
                            "fail": 4563,
                            "refs": [
                                {
                                    "addr": 4144,
                                    "type": "CALL"
                                }
                            ]
                        }
                    ]
                },
                {
                    "offset": 4563,
                    "size": 20,
                    "jump": 4588,
                    "fail": 4583,
                    "colorize": 0,
                    "ops": [
                        {
                            "offset": 4563,
                            "val": 0,
                            "esil": "0,rax,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "mov eax, 0",
                            "disasm": "mov eax, 0",
                            "bytes": "b800000000",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0,
                            "xrefs": [
                                {
                                    "addr": 4549,
                                    "type": "CODE"
                                }
                            ]
                        },
                        {
                            "offset": 4568,
                            "esil": "0x8,rbp,-,[8],rdx,=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4586,
                            "size": 4,
                            "opcode": "mov rdx, qword [rbp - 8]",
                            "disasm": "mov rdx, qword [canary]",
                            "bytes": "488b55f8",
                            "family": "cpu",
                            "type": "mov",
                            "reloc": false,
                            "type_num": 9,
                            "type2_num": 0
                        },
                        {
                            "offset": 4572,
                            "esil": "0x28,[8],rdx,^=,$z,zf,:=,$p,pf,:=,63,$s,sf,:=,0,cf,:=,0,of,:=",
                            "refptr": true,
                            "fcn_addr": 4453,
                            "fcn_last": 4581,
                            "size": 9,
                            "opcode": "xor rdx, qword fs:[0x28]",
                            "disasm": "xor rdx, qword fs:[0x28]",
                            "bytes": "644833142528000000",
                            "family": "cpu",
                            "type": "xor",
                            "reloc": false,
                            "type_num": 28,
                            "type2_num": 0
                        },
                        {
                            "offset": 4581,
                            "esil": "zf,?{,4588,rip,=,}",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4588,
                            "size": 2,
                            "opcode": "je 0x11ec",
                            "disasm": "je 0x11ec",
                            "bytes": "7405",
                            "family": "cpu",
                            "type": "cjmp",
                            "reloc": false,
                            "type_num": 2147483649,
                            "type2_num": 0,
                            "jump": 4588,
                            "fail": 4583,
                            "refs": [
                                {
                                    "addr": 4588,
                                    "type": "CODE"
                                }
                            ]
                        }
                    ]
                },
                {
                    "offset": 4583,
                    "size": 5,
                    "colorize": 0,
                    "ops": [
                        {
                            "offset": 4583,
                            "esil": "4160,rip,8,rsp,-=,rsp,=[],rip,=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4585,
                            "size": 5,
                            "opcode": "call 0x1040",
                            "disasm": "call __stack_chk_fail",
                            "bytes": "e854feffff",
                            "family": "cpu",
                            "type": "call",
                            "reloc": false,
                            "type_num": 3,
                            "type2_num": 0,
                            "jump": 4160,
                            "fail": 4588,
                            "refs": [
                                {
                                    "addr": 4160,
                                    "type": "CALL"
                                }
                            ]
                        }
                    ]
                },
                {
                    "offset": 4588,
                    "size": 2,
                    "colorize": 0,
                    "ops": [
                        {
                            "offset": 4588,
                            "esil": "rbp,rsp,=,rsp,[8],rbp,=,8,rsp,+=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4589,
                            "size": 1,
                            "opcode": "leave",
                            "disasm": "leave",
                            "bytes": "c9",
                            "family": "cpu",
                            "type": "pop",
                            "reloc": false,
                            "type_num": 14,
                            "type2_num": 0,
                            "xrefs": [
                                {
                                    "addr": 4581,
                                    "type": "CODE"
                                }
                            ]
                        },
                        {
                            "offset": 4589,
                            "esil": "rsp,[8],rip,=,8,rsp,+=",
                            "refptr": false,
                            "fcn_addr": 4453,
                            "fcn_last": 4589,
                            "size": 1,
                            "opcode": "ret",
                            "disasm": "ret",
                            "bytes": "c3",
                            "family": "cpu",
                            "type": "ret",
                            "reloc": false,
                            "type_num": 5,
                            "type2_num": 0
                        }
                    ]
                }
            ]
        }
    ],
    "isj": [
        {
            "name": ".interp",
            "flagname": "sym..interp",
            "realname": ".interp",
            "ordinal": 1,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 680,
            "paddr": 680,
            "is_imported": false
        },
        {
            "name": ".note.gnu.build-id",
            "flagname": "sym..note.gnu.build_id",
            "realname": ".note.gnu.build-id",
            "ordinal": 2,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 708,
            "paddr": 708,
            "is_imported": false
        },
        {
            "name": ".note.ABI-tag",
            "flagname": "sym..note.ABI_tag",
            "realname": ".note.ABI-tag",
            "ordinal": 3,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 744,
            "paddr": 744,
            "is_imported": false
        },
        {
            "name": ".gnu.hash",
            "flagname": "sym..gnu.hash",
            "realname": ".gnu.hash",
            "ordinal": 4,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 776,
            "paddr": 776,
            "is_imported": false
        },
        {
            "name": ".dynsym",
            "flagname": "sym..dynsym",
            "realname": ".dynsym",
            "ordinal": 5,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 816,
            "paddr": 816,
            "is_imported": false
        },
        {
            "name": ".dynstr",
            "flagname": "sym..dynstr",
            "realname": ".dynstr",
            "ordinal": 6,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 1056,
            "paddr": 1056,
            "is_imported": false
        },
        {
            "name": ".gnu.version",
            "flagname": "sym..gnu.version",
            "realname": ".gnu.version",
            "ordinal": 7,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 1246,
            "paddr": 1246,
            "is_imported": false
        },
        {
            "name": ".gnu.version_r",
            "flagname": "sym..gnu.version_r",
            "realname": ".gnu.version_r",
            "ordinal": 8,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 1272,
            "paddr": 1272,
            "is_imported": false
        },
        {
            "name": ".rela.dyn",
            "flagname": "sym..rela.dyn",
            "realname": ".rela.dyn",
            "ordinal": 9,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 1336,
            "paddr": 1336,
            "is_imported": false
        },
        {
            "name": ".rela.plt",
            "flagname": "sym..rela.plt",
            "realname": ".rela.plt",
            "ordinal": 10,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 1528,
            "paddr": 1528,
            "is_imported": false
        },
        {
            "name": ".init",
            "flagname": "sym..init",
            "realname": ".init",
            "ordinal": 11,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 4096,
            "paddr": 4096,
            "is_imported": false
        },
        {
            "name": ".plt",
            "flagname": "sym..plt",
            "realname": ".plt",
            "ordinal": 12,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 4128,
            "paddr": 4128,
            "is_imported": false
        },
        {
            "name": ".plt.got",
            "flagname": "sym..plt.got",
            "realname": ".plt.got",
            "ordinal": 13,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 4208,
            "paddr": 4208,
            "is_imported": false
        },
        {
            "name": ".text",
            "flagname": "sym..text",
            "realname": ".text",
            "ordinal": 14,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 4224,
            "paddr": 4224,
            "is_imported": false
        },
        {
            "name": ".fini",
            "flagname": "sym..fini",
            "realname": ".fini",
            "ordinal": 15,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 4756,
            "paddr": 4756,
            "is_imported": false
        },
        {
            "name": ".rodata",
            "flagname": "sym..rodata",
            "realname": ".rodata",
            "ordinal": 16,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 8192,
            "paddr": 8192,
            "is_imported": false
        },
        {
            "name": ".eh_frame_hdr",
            "flagname": "sym..eh_frame_hdr",
            "realname": ".eh_frame_hdr",
            "ordinal": 17,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 8264,
            "paddr": 8264,
            "is_imported": false
        },
        {
            "name": ".eh_frame",
            "flagname": "sym..eh_frame",
            "realname": ".eh_frame",
            "ordinal": 18,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 8336,
            "paddr": 8336,
            "is_imported": false
        },
        {
            "name": ".init_array",
            "flagname": "sym..init_array",
            "realname": ".init_array",
            "ordinal": 19,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 15776,
            "paddr": 11680,
            "is_imported": false
        },
        {
            "name": ".fini_array",
            "flagname": "sym..fini_array",
            "realname": ".fini_array",
            "ordinal": 20,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 15784,
            "paddr": 11688,
            "is_imported": false
        },
        {
            "name": ".dynamic",
            "flagname": "sym..dynamic",
            "realname": ".dynamic",
            "ordinal": 21,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 15792,
            "paddr": 11696,
            "is_imported": false
        },
        {
            "name": ".got",
            "flagname": "sym..got",
            "realname": ".got",
            "ordinal": 22,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 16288,
            "paddr": 12192,
            "is_imported": false
        },
        {
            "name": ".data",
            "flagname": "sym..data",
            "realname": ".data",
            "ordinal": 23,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 16384,
            "paddr": 12288,
            "is_imported": false
        },
        {
            "name": ".bss",
            "flagname": "sym..bss",
            "realname": ".bss",
            "ordinal": 24,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 16400,
            "paddr": 18446744073709551615,
            "is_imported": false
        },
        {
            "name": ".comment",
            "flagname": "sym..comment",
            "realname": ".comment",
            "ordinal": 25,
            "bind": "LOCAL",
            "size": 0,
            "type": "SECT",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": false
        },
        {
            "name": "crtstuff.c",
            "flagname": "sym.crtstuff.c",
            "realname": "crtstuff.c",
            "ordinal": 26,
            "bind": "LOCAL",
            "size": 0,
            "type": "FILE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": false
        },
        {
            "name": "deregister_tm_clones",
            "flagname": "sym.deregister_tm_clones",
            "realname": "deregister_tm_clones",
            "ordinal": 27,
            "bind": "LOCAL",
            "size": 0,
            "type": "FUNC",
            "vaddr": 4272,
            "paddr": 4272,
            "is_imported": false
        },
        {
            "name": "register_tm_clones",
            "flagname": "sym.register_tm_clones",
            "realname": "register_tm_clones",
            "ordinal": 28,
            "bind": "LOCAL",
            "size": 0,
            "type": "FUNC",
            "vaddr": 4320,
            "paddr": 4320,
            "is_imported": false
        },
        {
            "name": "__do_global_dtors_aux",
            "flagname": "sym.__do_global_dtors_aux",
            "realname": "__do_global_dtors_aux",
            "ordinal": 29,
            "bind": "LOCAL",
            "size": 0,
            "type": "FUNC",
            "vaddr": 4384,
            "paddr": 4384,
            "is_imported": false
        },
        {
            "name": "completed.7963",
            "flagname": "obj.completed.7963",
            "realname": "completed.7963",
            "ordinal": 30,
            "bind": "LOCAL",
            "size": 1,
            "type": "OBJ",
            "vaddr": 16400,
            "paddr": 18446744073709551615,
            "is_imported": false
        },
        {
            "name": "__do_global_dtors_aux_fini_array_entry",
            "flagname": "obj.__do_global_dtors_aux_fini_array_entry",
            "realname": "__do_global_dtors_aux_fini_array_entry",
            "ordinal": 31,
            "bind": "LOCAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 15784,
            "paddr": 11688,
            "is_imported": false
        },
        {
            "name": "frame_dummy",
            "flagname": "sym.frame_dummy",
            "realname": "frame_dummy",
            "ordinal": 32,
            "bind": "LOCAL",
            "size": 0,
            "type": "FUNC",
            "vaddr": 4448,
            "paddr": 4448,
            "is_imported": false
        },
        {
            "name": "__frame_dummy_init_array_entry",
            "flagname": "obj.__frame_dummy_init_array_entry",
            "realname": "__frame_dummy_init_array_entry",
            "ordinal": 33,
            "bind": "LOCAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 15776,
            "paddr": 11680,
            "is_imported": false
        },
        {
            "name": "keyg3nm3.c",
            "flagname": "sym.keyg3nm3.c",
            "realname": "keyg3nm3.c",
            "ordinal": 34,
            "bind": "LOCAL",
            "size": 0,
            "type": "FILE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": false
        },
        {
            "name": "crtstuff.c",
            "flagname": "sym.crtstuff.c",
            "realname": "crtstuff.c",
            "ordinal": 35,
            "bind": "LOCAL",
            "size": 0,
            "type": "FILE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": false
        },
        {
            "name": "__FRAME_END__",
            "flagname": "obj.__FRAME_END",
            "realname": "__FRAME_END__",
            "ordinal": 36,
            "bind": "LOCAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 8628,
            "paddr": 8628,
            "is_imported": false
        },
        {
            "name": "",
            "flagname": "sym.",
            "realname": "",
            "ordinal": 37,
            "bind": "LOCAL",
            "size": 0,
            "type": "FILE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": false
        },
        {
            "name": "__init_array_end",
            "flagname": "loc.__init_array_end",
            "realname": "__init_array_end",
            "ordinal": 38,
            "bind": "LOCAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 15784,
            "paddr": 11688,
            "is_imported": false
        },
        {
            "name": "_DYNAMIC",
            "flagname": "obj._DYNAMIC",
            "realname": "_DYNAMIC",
            "ordinal": 39,
            "bind": "LOCAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 15792,
            "paddr": 11696,
            "is_imported": false
        },
        {
            "name": "__init_array_start",
            "flagname": "loc.__init_array_start",
            "realname": "__init_array_start",
            "ordinal": 40,
            "bind": "LOCAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 15776,
            "paddr": 11680,
            "is_imported": false
        },
        {
            "name": "__GNU_EH_FRAME_HDR",
            "flagname": "loc.__GNU_EH_FRAME_HDR",
            "realname": "__GNU_EH_FRAME_HDR",
            "ordinal": 41,
            "bind": "LOCAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 8264,
            "paddr": 8264,
            "is_imported": false
        },
        {
            "name": "_GLOBAL_OFFSET_TABLE_",
            "flagname": "obj._GLOBAL_OFFSET_TABLE",
            "realname": "_GLOBAL_OFFSET_TABLE_",
            "ordinal": 42,
            "bind": "LOCAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 16288,
            "paddr": 12192,
            "is_imported": false
        },
        {
            "name": "_init",
            "flagname": "sym._init",
            "realname": "_init",
            "ordinal": 43,
            "bind": "LOCAL",
            "size": 0,
            "type": "FUNC",
            "vaddr": 4096,
            "paddr": 4096,
            "is_imported": false
        },
        {
            "name": "__libc_csu_fini",
            "flagname": "sym.__libc_csu_fini",
            "realname": "__libc_csu_fini",
            "ordinal": 44,
            "bind": "GLOBAL",
            "size": 1,
            "type": "FUNC",
            "vaddr": 4752,
            "paddr": 4752,
            "is_imported": false
        },
        {
            "name": "data_start",
            "flagname": "loc.data_start",
            "realname": "data_start",
            "ordinal": 46,
            "bind": "WEAK",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 16384,
            "paddr": 12288,
            "is_imported": false
        },
        {
            "name": "_edata",
            "flagname": "loc._edata",
            "realname": "_edata",
            "ordinal": 48,
            "bind": "GLOBAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 16400,
            "paddr": 18446744073709551615,
            "is_imported": false
        },
        {
            "name": "_fini",
            "flagname": "sym._fini",
            "realname": "_fini",
            "ordinal": 49,
            "bind": "GLOBAL",
            "size": 0,
            "type": "FUNC",
            "vaddr": 4756,
            "paddr": 4756,
            "is_imported": false
        },
        {
            "name": "__data_start",
            "flagname": "loc.__data_start",
            "realname": "__data_start",
            "ordinal": 53,
            "bind": "GLOBAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 16384,
            "paddr": 12288,
            "is_imported": false
        },
        {
            "name": "__dso_handle",
            "flagname": "obj.__dso_handle",
            "realname": "__dso_handle",
            "ordinal": 55,
            "bind": "GLOBAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 16392,
            "paddr": 12296,
            "is_imported": false
        },
        {
            "name": "_IO_stdin_used",
            "flagname": "obj._IO_stdin_used",
            "realname": "_IO_stdin_used",
            "ordinal": 56,
            "bind": "GLOBAL",
            "size": 4,
            "type": "OBJ",
            "vaddr": 8192,
            "paddr": 8192,
            "is_imported": false
        },
        {
            "name": "__libc_csu_init",
            "flagname": "sym.__libc_csu_init",
            "realname": "__libc_csu_init",
            "ordinal": 57,
            "bind": "GLOBAL",
            "size": 93,
            "type": "FUNC",
            "vaddr": 4656,
            "paddr": 4656,
            "is_imported": false
        },
        {
            "name": "_end",
            "flagname": "loc._end",
            "realname": "_end",
            "ordinal": 58,
            "bind": "GLOBAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 16408,
            "paddr": 18446744073709551615,
            "is_imported": false
        },
        {
            "name": "_start",
            "flagname": "sym._start",
            "realname": "_start",
            "ordinal": 59,
            "bind": "GLOBAL",
            "size": 43,
            "type": "FUNC",
            "vaddr": 4224,
            "paddr": 4224,
            "is_imported": false
        },
        {
            "name": "__bss_start",
            "flagname": "loc.__bss_start",
            "realname": "__bss_start",
            "ordinal": 60,
            "bind": "GLOBAL",
            "size": 0,
            "type": "NOTYPE",
            "vaddr": 16400,
            "paddr": 18446744073709551615,
            "is_imported": false
        },
        {
            "name": "main",
            "flagname": "sym.main",
            "realname": "main",
            "ordinal": 61,
            "bind": "GLOBAL",
            "size": 137,
            "type": "FUNC",
            "vaddr": 4453,
            "paddr": 4453,
            "is_imported": false
        },
        {
            "name": "__TMC_END__",
            "flagname": "obj.__TMC_END",
            "realname": "__TMC_END__",
            "ordinal": 63,
            "bind": "GLOBAL",
            "size": 0,
            "type": "OBJ",
            "vaddr": 16400,
            "paddr": 18446744073709551615,
            "is_imported": false
        },
        {
            "name": "validate_key",
            "flagname": "sym.validate_key",
            "realname": "validate_key",
            "ordinal": 65,
            "bind": "GLOBAL",
            "size": 59,
            "type": "FUNC",
            "vaddr": 4590,
            "paddr": 4590,
            "is_imported": false
        },
        {
            "name": "imp._ITM_deregisterTMCloneTable",
            "flagname": "loc.imp._ITM_deregisterTMCloneTable",
            "realname": "_ITM_deregisterTMCloneTable",
            "ordinal": 1,
            "bind": "WEAK",
            "size": 16,
            "type": "NOTYPE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": true
        },
        {
            "name": "imp.puts",
            "flagname": "sym.imp.puts",
            "realname": "puts",
            "ordinal": 2,
            "bind": "GLOBAL",
            "size": 16,
            "type": "FUNC",
            "vaddr": 4144,
            "paddr": 4144,
            "is_imported": true
        },
        {
            "name": "imp.__stack_chk_fail",
            "flagname": "sym.imp.__stack_chk_fail",
            "realname": "__stack_chk_fail",
            "ordinal": 3,
            "bind": "GLOBAL",
            "size": 16,
            "type": "FUNC",
            "vaddr": 4160,
            "paddr": 4160,
            "is_imported": true
        },
        {
            "name": "imp.printf",
            "flagname": "sym.imp.printf",
            "realname": "printf",
            "ordinal": 4,
            "bind": "GLOBAL",
            "size": 16,
            "type": "FUNC",
            "vaddr": 4176,
            "paddr": 4176,
            "is_imported": true
        },
        {
            "name": "imp.__libc_start_main",
            "flagname": "sym.imp.__libc_start_main",
            "realname": "__libc_start_main",
            "ordinal": 5,
            "bind": "GLOBAL",
            "size": 16,
            "type": "FUNC",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": true
        },
        {
            "name": "imp.__gmon_start__",
            "flagname": "loc.imp.__gmon_start",
            "realname": "__gmon_start__",
            "ordinal": 6,
            "bind": "WEAK",
            "size": 16,
            "type": "NOTYPE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": true
        },
        {
            "name": "imp.__isoc99_scanf",
            "flagname": "sym.imp.__isoc99_scanf",
            "realname": "__isoc99_scanf",
            "ordinal": 7,
            "bind": "GLOBAL",
            "size": 16,
            "type": "FUNC",
            "vaddr": 4192,
            "paddr": 4192,
            "is_imported": true
        },
        {
            "name": "imp._ITM_registerTMCloneTable",
            "flagname": "loc.imp._ITM_registerTMCloneTable",
            "realname": "_ITM_registerTMCloneTable",
            "ordinal": 8,
            "bind": "WEAK",
            "size": 16,
            "type": "NOTYPE",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": true
        },
        {
            "name": "imp.__cxa_finalize",
            "flagname": "sym.imp.__cxa_finalize",
            "realname": "__cxa_finalize",
            "ordinal": 9,
            "bind": "WEAK",
            "size": 16,
            "type": "FUNC",
            "vaddr": 0,
            "paddr": 0,
            "is_imported": true
        }
    ],
    "Csj": [
        {
            "offset": 8200,
            "type": "Cs",
            "name": "RW50ZXIgeW91ciBrZXk6ICA=",
            "enc": "latin1",
            "ascii": true
        },
        {
            "offset": 8224,
            "type": "Cs",
            "name": "R29vZCBqb2IgbWF0ZSwgbm93IGdvIGtleWdlbiBtZS4=",
            "enc": "latin1",
            "ascii": true
        },
        {
            "offset": 8257,
            "type": "Cs",
            "name": "bm9wZS4=",
            "enc": "latin1",
            "ascii": true
        }
    ],
    "icj": [],
    "afvj": {
        "sp": [],
        "bp": [
            {
                "name": "var_ch",
                "kind": "var",
                "type": "int64_t",
                "ref": {
                    "base": "rbp",
                    "offset": 18446744073709551604
                }
            },
            {
                "name": "canary",
                "kind": "var",
                "type": "int64_t",
                "ref": {
                    "base": "rbp",
                    "offset": 18446744073709551608
                }
            }
        ],
        "reg": []
    },
    "afcfj": [
        {
            "name": "puts",
            "return": "int",
            "args": [],
            "count": 1
        },
        {
            "name": "__stack_chk_fail",
            "return": "void",
            "args": [],
            "count": 0
        },
        {
            "name": "printf",
            "return": "int",
            "args": [],
            "count": 1
        },
        {
            "name": "scanf",
            "return": "int",
            "args": [],
            "count": 1
        }
    ],
    "aflj": [
        {
            "offset": 4224,
            "name": "entry0",
            "size": 42,
            "is-pure": "false",
            "realsz": 42,
            "noreturn": false,
            "stackframe": 8,
            "calltype": "amd64",
            "cost": 14,
            "cc": 1,
            "bits": 64,
            "type": "fcn",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "entry0 (int64_t arg3);",
            "minbound": 4224,
            "maxbound": 4266,
            "callrefs": [
                {
                    "addr": 16352,
                    "type": "CALL",
                    "at": 4260
                }
            ],
            "datarefs": [
                4752,
                4656,
                4453
            ],
            "indegree": 0,
            "outdegree": 1,
            "nlocals": 0,
            "nargs": 1,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4272,
            "name": "deregister_tm_clones",
            "size": 41,
            "is-pure": "false",
            "realsz": 34,
            "noreturn": false,
            "stackframe": 0,
            "calltype": "amd64",
            "cost": 14,
            "cc": 4,
            "bits": 64,
            "type": "fcn",
            "nbbs": 4,
            "edges": 4,
            "ebbs": 2,
            "signature": "deregister_tm_clones ();",
            "minbound": 4272,
            "maxbound": 4313,
            "callrefs": [
                {
                    "addr": 4312,
                    "type": "CODE",
                    "at": 4289
                },
                {
                    "addr": 4312,
                    "type": "CODE",
                    "at": 4301
                }
            ],
            "datarefs": [
                16400,
                16400,
                16344
            ],
            "codexrefs": [
                {
                    "addr": 4419,
                    "type": "CALL",
                    "at": 4272
                },
                {
                    "addr": 4289,
                    "type": "CODE",
                    "at": 4312
                },
                {
                    "addr": 4301,
                    "type": "CODE",
                    "at": 4312
                }
            ],
            "dataxrefs": [],
            "indegree": 3,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4320,
            "name": "register_tm_clones",
            "size": 57,
            "is-pure": "false",
            "realsz": 51,
            "noreturn": false,
            "stackframe": 0,
            "cost": 19,
            "cc": 4,
            "bits": 64,
            "type": "fcn",
            "nbbs": 4,
            "edges": 4,
            "ebbs": 2,
            "signature": "register_tm_clones ();",
            "minbound": 4320,
            "maxbound": 4377,
            "callrefs": [
                {
                    "addr": 4376,
                    "type": "CODE",
                    "at": 4354
                },
                {
                    "addr": 4376,
                    "type": "CODE",
                    "at": 4366
                }
            ],
            "datarefs": [
                16400,
                16400,
                16368
            ],
            "codexrefs": [
                {
                    "addr": 4448,
                    "type": "CODE",
                    "at": 4320
                },
                {
                    "addr": 4354,
                    "type": "CODE",
                    "at": 4376
                },
                {
                    "addr": 4366,
                    "type": "CODE",
                    "at": 4376
                }
            ],
            "dataxrefs": [],
            "indegree": 3,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4384,
            "name": "sym.__do_global_dtors_aux",
            "size": 57,
            "is-pure": "false",
            "realsz": 50,
            "noreturn": false,
            "stackframe": 8,
            "cost": 23,
            "cc": 4,
            "bits": 64,
            "type": "sym",
            "nbbs": 5,
            "edges": 5,
            "ebbs": 2,
            "signature": "sym.__do_global_dtors_aux ();",
            "minbound": 4384,
            "maxbound": 4441,
            "callrefs": [
                {
                    "addr": 4440,
                    "type": "CODE",
                    "at": 4391
                },
                {
                    "addr": 4419,
                    "type": "CODE",
                    "at": 4405
                },
                {
                    "addr": 4208,
                    "type": "CALL",
                    "at": 4414
                },
                {
                    "addr": 4272,
                    "type": "CALL",
                    "at": 4419
                }
            ],
            "datarefs": [
                16400,
                16376,
                16392,
                16400
            ],
            "codexrefs": [
                {
                    "addr": 4405,
                    "type": "CODE",
                    "at": 4419
                },
                {
                    "addr": 4391,
                    "type": "CODE",
                    "at": 4440
                }
            ],
            "dataxrefs": [],
            "indegree": 2,
            "outdegree": 2,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4448,
            "name": "entry.init0",
            "size": 5,
            "is-pure": "false",
            "realsz": 5,
            "noreturn": false,
            "stackframe": 0,
            "cost": 2,
            "cc": 0,
            "bits": 64,
            "type": "fcn",
            "nbbs": 1,
            "edges": 1,
            "ebbs": 0,
            "signature": "entry.init0 ();",
            "minbound": 4448,
            "maxbound": 4453,
            "callrefs": [
                {
                    "addr": 4320,
                    "type": "CODE",
                    "at": 4448
                }
            ],
            "datarefs": [],
            "indegree": 0,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4096,
            "name": "sym._init",
            "size": 23,
            "is-pure": "false",
            "realsz": 23,
            "noreturn": false,
            "stackframe": 8,
            "cost": 12,
            "cc": 2,
            "bits": 64,
            "type": "sym",
            "nbbs": 3,
            "edges": 3,
            "ebbs": 1,
            "signature": "sym._init ();",
            "minbound": 4096,
            "maxbound": 4119,
            "callrefs": [
                {
                    "addr": 4114,
                    "type": "CODE",
                    "at": 4110
                }
            ],
            "datarefs": [
                16360
            ],
            "codexrefs": [
                {
                    "addr": 4696,
                    "type": "CALL",
                    "at": 4096
                },
                {
                    "addr": 4110,
                    "type": "CODE",
                    "at": 4114
                }
            ],
            "dataxrefs": [],
            "indegree": 2,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4752,
            "name": "sym.__libc_csu_fini",
            "size": 1,
            "is-pure": "true",
            "realsz": 1,
            "noreturn": false,
            "stackframe": 0,
            "cost": 3,
            "cc": 1,
            "bits": 64,
            "type": "sym",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "sym.__libc_csu_fini ();",
            "minbound": 4752,
            "maxbound": 4753,
            "codexrefs": [],
            "dataxrefs": [
                4239
            ],
            "indegree": 0,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4756,
            "name": "sym._fini",
            "size": 9,
            "is-pure": "true",
            "realsz": 9,
            "noreturn": false,
            "stackframe": 8,
            "cost": 5,
            "cc": 1,
            "bits": 64,
            "type": "sym",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "sym._fini ();",
            "minbound": 4756,
            "maxbound": 4765,
            "indegree": 0,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4656,
            "name": "sym.__libc_csu_init",
            "size": 93,
            "is-pure": "false",
            "realsz": 93,
            "noreturn": false,
            "stackframe": 56,
            "cost": 42,
            "cc": 3,
            "bits": 64,
            "type": "sym",
            "nbbs": 4,
            "edges": 5,
            "ebbs": 1,
            "signature": "sym.__libc_csu_init (int64_t arg1, int64_t arg2, int64_t arg3);",
            "minbound": 4656,
            "maxbound": 4749,
            "callrefs": [
                {
                    "addr": 4096,
                    "type": "CALL",
                    "at": 4696
                },
                {
                    "addr": 4734,
                    "type": "CODE",
                    "at": 4705
                },
                {
                    "addr": 0,
                    "type": "CALL",
                    "at": 4721
                },
                {
                    "addr": 4712,
                    "type": "CODE",
                    "at": 4732
                }
            ],
            "datarefs": [
                15776,
                15784
            ],
            "codexrefs": [
                {
                    "addr": 4732,
                    "type": "CODE",
                    "at": 4712
                },
                {
                    "addr": 4705,
                    "type": "CODE",
                    "at": 4734
                }
            ],
            "dataxrefs": [
                4246
            ],
            "indegree": 2,
            "outdegree": 2,
            "nlocals": 0,
            "nargs": 3,
            "bpvars": [],
            "spvars": [],
            "regvars": [
                {
                    "name": "arg1",
                    "kind": "reg",
                    "type": "int64_t",
                    "ref": "rdi"
                },
                {
                    "name": "arg2",
                    "kind": "reg",
                    "type": "int64_t",
                    "ref": "rsi"
                },
                {
                    "name": "arg3",
                    "kind": "reg",
                    "type": "int64_t",
                    "ref": "rdx"
                }
            ],
            "difftype": "new"
        },
        {
            "offset": 4453,
            "name": "main",
            "size": 137,
            "is-pure": "false",
            "realsz": 137,
            "noreturn": false,
            "stackframe": 24,
            "cost": 49,
            "cc": 4,
            "bits": 64,
            "type": "sym",
            "nbbs": 6,
            "edges": 6,
            "ebbs": 2,
            "signature": "int main (int argc, char **argv, char **envp);",
            "minbound": 4453,
            "maxbound": 4590,
            "callrefs": [
                {
                    "addr": 4176,
                    "type": "CALL",
                    "at": 4488
                },
                {
                    "addr": 4192,
                    "type": "CALL",
                    "at": 4512
                },
                {
                    "addr": 4590,
                    "type": "CALL",
                    "at": 4527
                },
                {
                    "addr": 4551,
                    "type": "CODE",
                    "at": 4535
                },
                {
                    "addr": 4144,
                    "type": "CALL",
                    "at": 4544
                },
                {
                    "addr": 4563,
                    "type": "CODE",
                    "at": 4549
                },
                {
                    "addr": 4144,
                    "type": "CALL",
                    "at": 4558
                },
                {
                    "addr": 4588,
                    "type": "CODE",
                    "at": 4581
                },
                {
                    "addr": 4160,
                    "type": "CALL",
                    "at": 4583
                }
            ],
            "datarefs": [
                8200,
                8218,
                1,
                8224,
                8257
            ],
            "codexrefs": [
                {
                    "addr": 4535,
                    "type": "CODE",
                    "at": 4551
                },
                {
                    "addr": 4549,
                    "type": "CODE",
                    "at": 4563
                },
                {
                    "addr": 4581,
                    "type": "CODE",
                    "at": 4588
                }
            ],
            "dataxrefs": [
                4253
            ],
            "indegree": 3,
            "outdegree": 6,
            "nlocals": 2,
            "nargs": 0,
            "bpvars": [
                {
                    "name": "var_ch",
                    "kind": "var",
                    "type": "int64_t",
                    "ref": {
                        "base": "rbp",
                        "offset": 18446744073709551604
                    }
                },
                {
                    "name": "canary",
                    "kind": "var",
                    "type": "int64_t",
                    "ref": {
                        "base": "rbp",
                        "offset": 18446744073709551608
                    }
                }
            ],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4590,
            "name": "sym.validate_key",
            "size": 59,
            "is-pure": "true",
            "realsz": 59,
            "noreturn": false,
            "stackframe": 8,
            "cost": 26,
            "cc": 2,
            "bits": 64,
            "type": "sym",
            "nbbs": 4,
            "edges": 4,
            "ebbs": 1,
            "signature": "sym.validate_key (int64_t key);",
            "minbound": 4590,
            "maxbound": 4649,
            "callrefs": [
                {
                    "addr": 4642,
                    "type": "CODE",
                    "at": 4633
                },
                {
                    "addr": 4647,
                    "type": "CODE",
                    "at": 4640
                }
            ],
            "datarefs": [],
            "codexrefs": [
                {
                    "addr": 4527,
                    "type": "CALL",
                    "at": 4590
                },
                {
                    "addr": 4633,
                    "type": "CODE",
                    "at": 4642
                },
                {
                    "addr": 4640,
                    "type": "CODE",
                    "at": 4647
                }
            ],
            "dataxrefs": [],
            "indegree": 3,
            "outdegree": 0,
            "nlocals": 1,
            "nargs": 1,
            "bpvars": [
                {
                    "name": "key_backup",
                    "kind": "var",
                    "type": "int64_t",
                    "ref": {
                        "base": "rbp",
                        "offset": 18446744073709551612
                    }
                }
            ],
            "spvars": [],
            "regvars": [
                {
                    "name": "key",
                    "kind": "reg",
                    "type": "int64_t",
                    "ref": "rdi"
                }
            ],
            "difftype": "new"
        },
        {
            "offset": 4144,
            "name": "sym.imp.puts",
            "size": 6,
            "is-pure": "true",
            "realsz": 6,
            "noreturn": false,
            "stackframe": 0,
            "cost": 3,
            "cc": 1,
            "bits": 64,
            "type": "sym",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "int sym.imp.puts (const char *s);",
            "minbound": 4144,
            "maxbound": 4150,
            "callrefs": [
                {
                    "addr": 16312,
                    "type": "CODE",
                    "at": 4144
                }
            ],
            "datarefs": [],
            "codexrefs": [
                {
                    "addr": 4544,
                    "type": "CALL",
                    "at": 4144
                },
                {
                    "addr": 4558,
                    "type": "CALL",
                    "at": 4144
                }
            ],
            "dataxrefs": [],
            "indegree": 2,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4160,
            "name": "sym.imp.__stack_chk_fail",
            "size": 6,
            "is-pure": "true",
            "realsz": 6,
            "noreturn": false,
            "stackframe": 0,
            "cost": 3,
            "cc": 1,
            "bits": 64,
            "type": "sym",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "void sym.imp.__stack_chk_fail ();",
            "minbound": 4160,
            "maxbound": 4166,
            "callrefs": [
                {
                    "addr": 16320,
                    "type": "CODE",
                    "at": 4160
                }
            ],
            "datarefs": [],
            "codexrefs": [
                {
                    "addr": 4583,
                    "type": "CALL",
                    "at": 4160
                }
            ],
            "dataxrefs": [],
            "indegree": 1,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4176,
            "name": "sym.imp.printf",
            "size": 6,
            "is-pure": "true",
            "realsz": 6,
            "noreturn": false,
            "stackframe": 0,
            "cost": 3,
            "cc": 1,
            "bits": 64,
            "type": "sym",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "int sym.imp.printf (const char *format);",
            "minbound": 4176,
            "maxbound": 4182,
            "callrefs": [
                {
                    "addr": 16328,
                    "type": "CODE",
                    "at": 4176
                }
            ],
            "datarefs": [],
            "codexrefs": [
                {
                    "addr": 4488,
                    "type": "CALL",
                    "at": 4176
                }
            ],
            "dataxrefs": [],
            "indegree": 1,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        },
        {
            "offset": 4192,
            "name": "sym.imp.__isoc99_scanf",
            "size": 6,
            "is-pure": "true",
            "realsz": 6,
            "noreturn": false,
            "stackframe": 0,
            "cost": 3,
            "cc": 1,
            "bits": 64,
            "type": "sym",
            "nbbs": 1,
            "edges": 0,
            "ebbs": 1,
            "signature": "int sym.imp.__isoc99_scanf (const char *format);",
            "minbound": 4192,
            "maxbound": 4198,
            "callrefs": [
                {
                    "addr": 16336,
                    "type": "CODE",
                    "at": 4192
                }
            ],
            "datarefs": [],
            "codexrefs": [
                {
                    "addr": 4512,
                    "type": "CALL",
                    "at": 4192
                }
            ],
            "dataxrefs": [],
            "indegree": 1,
            "outdegree": 0,
            "nlocals": 0,
            "nargs": 0,
            "bpvars": [],
            "spvars": [],
            "regvars": [],
            "difftype": "new"
        }
    ]
}
wargio commented 4 years ago

fixed via https://github.com/radareorg/r2dec-js/commit/149514a0ca4172f1d24fc64ec2c3b5f7e1b94264