// File: nishalkulkarni[P]fluid-wm/util.cpp
// Function: ToString[abi:cxx11](_XEvent const&)
std::string ToString(const XEvent& e)
{
    static const char* const X_EVENT_TYPE_NAMES[] = {
        "",
        "",
        "KeyPress",
        "KeyRelease",
        "ButtonPress",
        "ButtonRelease",
        "MotionNotify",
        "EnterNotify",
        "LeaveNotify",
        "FocusIn",
        "FocusOut",
        "KeymapNotify",
        "Expose",
        "GraphicsExpose",
        "NoExpose",
        "VisibilityNotify",
        "CreateNotify",
        "DestroyNotify",
        "UnmapNotify",
        "MapNotify",
        "MapRequest",
        "ReparentNotify",
        "ConfigureNotify",
        "ConfigureRequest",
        "GravityNotify",
        "ResizeRequest",
        "CirculateNotify",
        "CirculateRequest",
        "PropertyNotify",
        "SelectionClear",
        "SelectionRequest",
        "SelectionNotify",
        "ColormapNotify",
        "ClientMessage",
        "MappingNotify",
        "GeneralEvent",
    };

    if (e.type < 2 || e.type >= LASTEvent) {
        std::ostringstream out;
        out << "Unknown (" << e.type << ")";
        return out.str();
    }

    std::vector<std::pair<std::string, std::string>> properties;
    switch (e.type) {
    case CreateNotify:
        properties.emplace_back(
            "window", ToString(e.xcreatewindow.window));
        properties.emplace_back(
            "parent", ToString(e.xcreatewindow.parent));
        properties.emplace_back(
            "size",
            Size<int>(e.xcreatewindow.width, e.xcreatewindow.height).ToString());
        properties.emplace_back(
            "position",
            Position<int>(e.xcreatewindow.x, e.xcreatewindow.y).ToString());
        properties.emplace_back(
            "border_width",
            ToString(e.xcreatewindow.border_width));
        properties.emplace_back(
            "override_redirect",
            ToString(static_cast<bool>(e.xcreatewindow.override_redirect)));
        break;
    case DestroyNotify:
        properties.emplace_back(
            "window", ToString(e.xdestroywindow.window));
        break;
    case MapNotify:
        properties.emplace_back(
            "window", ToString(e.xmap.window));
        properties.emplace_back(
            "event", ToString(e.xmap.event));
        properties.emplace_back(
            "override_redirect",
            ToString(static_cast<bool>(e.xmap.override_redirect)));
        break;
    case UnmapNotify:
        properties.emplace_back(
            "window", ToString(e.xunmap.window));
        properties.emplace_back(
            "event", ToString(e.xunmap.event));
        properties.emplace_back(
            "from_configure",
            ToString(static_cast<bool>(e.xunmap.from_configure)));
        break;
    case ConfigureNotify:
        properties.emplace_back(
            "window", ToString(e.xconfigure.window));
        properties.emplace_back(
            "size",
            Size<int>(e.xconfigure.width, e.xconfigure.height).ToString());
        properties.emplace_back(
            "position",
            Position<int>(e.xconfigure.x, e.xconfigure.y).ToString());
        properties.emplace_back(
            "border_width",
            ToString(e.xconfigure.border_width));
        properties.emplace_back(
            "override_redirect",
            ToString(static_cast<bool>(e.xconfigure.override_redirect)));
        break;
    case ReparentNotify:
        properties.emplace_back(
            "window", ToString(e.xreparent.window));
        properties.emplace_back(
            "parent", ToString(e.xreparent.parent));
        properties.emplace_back(
            "position",
            Position<int>(e.xreparent.x, e.xreparent.y).ToString());
        properties.emplace_back(
            "override_redirect",
            ToString(static_cast<bool>(e.xreparent.override_redirect)));
        break;
    case MapRequest:
        properties.emplace_back(
            "window", ToString(e.xmaprequest.window));
        break;
    case ConfigureRequest:
        properties.emplace_back(
            "window", ToString(e.xconfigurerequest.window));
        properties.emplace_back(
            "parent", ToString(e.xconfigurerequest.parent));
        properties.emplace_back(
            "value_mask",
            XConfigureWindowValueMaskToString(e.xconfigurerequest.value_mask));
        properties.emplace_back(
            "position",
            Position<int>(e.xconfigurerequest.x,
                e.xconfigurerequest.y)
                .ToString());
        properties.emplace_back(
            "size",
            Size<int>(e.xconfigurerequest.width,
                e.xconfigurerequest.height)
                .ToString());
        properties.emplace_back(
            "border_width",
            ToString(e.xconfigurerequest.border_width));
        break;
    case ButtonPress:
    case ButtonRelease:
        properties.emplace_back(
            "window", ToString(e.xbutton.window));
        properties.emplace_back(
            "button", ToString(e.xbutton.button));
        properties.emplace_back(
            "position_root",
            Position<int>(e.xbutton.x_root, e.xbutton.y_root).ToString());
        break;
    case MotionNotify:
        properties.emplace_back(
            "window", ToString(e.xmotion.window));
        properties.emplace_back(
            "position_root",
            Position<int>(e.xmotion.x_root, e.xmotion.y_root).ToString());
        properties.emplace_back(
            "state", ToString(e.xmotion.state));
        properties.emplace_back(
            "time", ToString(e.xmotion.time));
        break;
    case KeyPress:
    case KeyRelease:
        properties.emplace_back(
            "window", ToString(e.xkey.window));
        properties.emplace_back(
            "state", ToString(e.xkey.state));
        properties.emplace_back(
            "keycode", ToString(e.xkey.keycode));
        break;
    default:
        break;
    }

    const std::string properties_string = Join(
        properties, ", ", [](const std::pair<std::string, std::string>& pair) {
            return pair.first + ": " + pair.second;
        });
    std::ostringstream out;
    out << X_EVENT_TYPE_NAMES[e.type] << " { " << properties_string << " }";
    return out.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x910, %rsp            # imm = 0x910
movq %rdi, -0x8d0(%rbp)
movq %rdi, %rax
movq %rax, -0x8c8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jl 0x47da
movq -0x10(%rbp), %rax
cmpl $0x24, (%rax)
jl 0x4882
leaq -0x188(%rbp), %rdi
movq %rdi, -0x8e0(%rbp)
callq 0x43a0
movq -0x8e0(%rbp), %rdi
leaq 0x12a1b(%rip), %rsi     # 0x17216
callq 0x4240
movq %rax, -0x8d8(%rbp)
jmp 0x4809
movq -0x8d8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %esi
callq 0x4490
movq %rax, -0x8e8(%rbp)
jmp 0x4824
movq -0x8e8(%rbp), %rdi
leaq 0x136e9(%rip), %rsi     # 0x17f1b
callq 0x4240
jmp 0x4839
movq -0x8d0(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x4280
jmp 0x484e
leaq -0x188(%rbp), %rdi
callq 0x4060
jmp 0x5a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x4060
jmp 0x5aad
leaq -0x1b0(%rbp), %rdi
callq 0x5f50
movq -0x10(%rbp), %rax
movl (%rax), %eax
addl $-0x2, %eax
movl %eax, %ecx
movq %rcx, -0x8f0(%rbp)
subl $0x15, %eax
ja 0x58ec
movq -0x8f0(%rbp), %rax
leaq 0x1274d(%rip), %rcx     # 0x17004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x1d0(%rbp), %rdi
callq 0x5ff0
jmp 0x48d6
leaq 0x12943(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rdx
callq 0x5f70
jmp 0x48f2
leaq -0x1d0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x5ff0
jmp 0x4914
leaq 0x1290c(%rip), %rsi     # 0x17227
leaq -0x1b0(%rbp), %rdi
leaq -0x1f0(%rbp), %rdx
callq 0x5f70
jmp 0x4930
leaq -0x1f0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
movl 0x3c(%rax), %edx
leaq -0x218(%rbp), %rdi
callq 0x6120
jmp 0x4954
leaq -0x210(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x6140
jmp 0x4969
leaq 0x128be(%rip), %rsi     # 0x1722e
leaq -0x1b0(%rbp), %rdi
leaq -0x210(%rbp), %rdx
callq 0x60a0
jmp 0x4985
leaq -0x210(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x30(%rax), %esi
movl 0x34(%rax), %edx
leaq -0x240(%rbp), %rdi
callq 0x62b0
jmp 0x49a9
leaq -0x238(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x62d0
jmp 0x49be
leaq 0x1286e(%rip), %rsi     # 0x17233
leaq -0x1b0(%rbp), %rdi
leaq -0x238(%rbp), %rdx
callq 0x6230
jmp 0x49da
leaq -0x238(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x40, %rsi
leaq -0x260(%rbp), %rdi
callq 0x6480
jmp 0x49fc
leaq 0x12839(%rip), %rsi     # 0x1723c
leaq -0x1b0(%rbp), %rdi
leaq -0x260(%rbp), %rdx
callq 0x6400
jmp 0x4a18
leaq -0x260(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x44(%rax), %eax
testl %eax, %eax
setne -0x281(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x281(%rbp), %rsi
callq 0x65b0
jmp 0x4a49
leaq 0x127f9(%rip), %rsi     # 0x17249
leaq -0x1b0(%rbp), %rdi
leaq -0x280(%rbp), %rdx
callq 0x6530
jmp 0x4a65
leaq -0x280(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x5ff0
jmp 0x4b75
leaq 0x126a4(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x2a8(%rbp), %rdx
callq 0x5f70
jmp 0x4b91
leaq -0x2a8(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x2c8(%rbp), %rdi
callq 0x5ff0
jmp 0x4bdb
leaq 0x1263e(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x2c8(%rbp), %rdx
callq 0x5f70
jmp 0x4bf7
leaq -0x2c8(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x2e8(%rbp), %rdi
callq 0x5ff0
jmp 0x4c19
leaq 0x13046(%rip), %rsi     # 0x17c66
leaq -0x1b0(%rbp), %rdi
leaq -0x2e8(%rbp), %rdx
callq 0x6660
jmp 0x4c35
leaq -0x2e8(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
testl %eax, %eax
setne -0x309(%rbp)
leaq -0x308(%rbp), %rdi
leaq -0x309(%rbp), %rsi
callq 0x65b0
jmp 0x4c66
leaq 0x125dc(%rip), %rsi     # 0x17249
leaq -0x1b0(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0x6530
jmp 0x4c82
leaq -0x308(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x330(%rbp), %rdi
callq 0x5ff0
jmp 0x4d12
leaq 0x12507(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x330(%rbp), %rdx
callq 0x5f70
jmp 0x4d2e
leaq -0x330(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x350(%rbp), %rdi
callq 0x5ff0
jmp 0x4d50
leaq 0x12f0f(%rip), %rsi     # 0x17c66
leaq -0x1b0(%rbp), %rdi
leaq -0x350(%rbp), %rdx
callq 0x6660
jmp 0x4d6c
leaq -0x350(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
testl %eax, %eax
setne -0x371(%rbp)
leaq -0x370(%rbp), %rdi
leaq -0x371(%rbp), %rsi
callq 0x65b0
jmp 0x4d9d
leaq 0x124b7(%rip), %rsi     # 0x1725b
leaq -0x1b0(%rbp), %rdi
leaq -0x370(%rbp), %rdx
callq 0x66e0
jmp 0x4db9
leaq -0x370(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x398(%rbp), %rdi
callq 0x5ff0
jmp 0x4e49
leaq 0x123d0(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x398(%rbp), %rdx
callq 0x5f70
jmp 0x4e65
leaq -0x398(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
movl 0x3c(%rax), %edx
leaq -0x3c0(%rbp), %rdi
callq 0x6120
jmp 0x4e89
leaq -0x3b8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x6140
jmp 0x4e9e
leaq 0x12389(%rip), %rsi     # 0x1722e
leaq -0x1b0(%rbp), %rdi
leaq -0x3b8(%rbp), %rdx
callq 0x60a0
jmp 0x4eba
leaq -0x3b8(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x30(%rax), %esi
movl 0x34(%rax), %edx
leaq -0x3e8(%rbp), %rdi
callq 0x62b0
jmp 0x4ede
leaq -0x3e0(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x62d0
jmp 0x4ef3
leaq 0x12339(%rip), %rsi     # 0x17233
leaq -0x1b0(%rbp), %rdi
leaq -0x3e0(%rbp), %rdx
callq 0x6230
jmp 0x4f0f
leaq -0x3e0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x40, %rsi
leaq -0x408(%rbp), %rdi
callq 0x6480
jmp 0x4f31
leaq 0x12304(%rip), %rsi     # 0x1723c
leaq -0x1b0(%rbp), %rdi
leaq -0x408(%rbp), %rdx
callq 0x6400
jmp 0x4f4d
leaq -0x408(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x50(%rax), %eax
testl %eax, %eax
setne -0x429(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x429(%rbp), %rsi
callq 0x65b0
jmp 0x4f7e
leaq 0x122c4(%rip), %rsi     # 0x17249
leaq -0x1b0(%rbp), %rdi
leaq -0x428(%rbp), %rdx
callq 0x6530
jmp 0x4f9a
leaq -0x428(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x450(%rbp), %rdi
callq 0x5ff0
jmp 0x5070
leaq 0x121a9(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x450(%rbp), %rdx
callq 0x5f70
jmp 0x508c
leaq -0x450(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x30, %rsi
leaq -0x470(%rbp), %rdi
callq 0x5ff0
jmp 0x50ae
leaq 0x12172(%rip), %rsi     # 0x17227
leaq -0x1b0(%rbp), %rdi
leaq -0x470(%rbp), %rdx
callq 0x5f70
jmp 0x50ca
leaq -0x470(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
movl 0x3c(%rax), %edx
leaq -0x498(%rbp), %rdi
callq 0x62b0
jmp 0x50ee
leaq -0x490(%rbp), %rdi
leaq -0x498(%rbp), %rsi
callq 0x62d0
jmp 0x5103
leaq 0x12129(%rip), %rsi     # 0x17233
leaq -0x1b0(%rbp), %rdi
leaq -0x490(%rbp), %rdx
callq 0x6230
jmp 0x511f
leaq -0x490(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x40(%rax), %eax
testl %eax, %eax
setne -0x4b9(%rbp)
leaq -0x4b8(%rbp), %rdi
leaq -0x4b9(%rbp), %rsi
callq 0x65b0
jmp 0x5150
leaq 0x120f2(%rip), %rsi     # 0x17249
leaq -0x1b0(%rbp), %rdi
leaq -0x4b8(%rbp), %rdx
callq 0x6530
jmp 0x516c
leaq -0x4b8(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x4e0(%rbp), %rdi
callq 0x5ff0
jmp 0x521f
leaq 0x11ffa(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x4e0(%rbp), %rdx
callq 0x5f70
jmp 0x523b
leaq -0x4e0(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x4e0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x500(%rbp), %rdi
callq 0x5ff0
jmp 0x5285
leaq 0x11f94(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x500(%rbp), %rdx
callq 0x5f70
jmp 0x52a1
leaq -0x500(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x520(%rbp), %rdi
callq 0x5ff0
jmp 0x52c3
leaq 0x11f5d(%rip), %rsi     # 0x17227
leaq -0x1b0(%rbp), %rdi
leaq -0x520(%rbp), %rdx
callq 0x5f70
jmp 0x52df
leaq -0x520(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rsi
leaq -0x540(%rbp), %rdi
callq 0x5ac0
jmp 0x5301
leaq 0x11f62(%rip), %rsi     # 0x1726a
leaq -0x1b0(%rbp), %rdi
leaq -0x540(%rbp), %rdx
callq 0x6760
jmp 0x531d
leaq -0x540(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x30(%rax), %esi
movl 0x34(%rax), %edx
leaq -0x568(%rbp), %rdi
callq 0x62b0
jmp 0x5341
leaq -0x560(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x62d0
jmp 0x5356
leaq 0x11ed6(%rip), %rsi     # 0x17233
leaq -0x1b0(%rbp), %rdi
leaq -0x560(%rbp), %rdx
callq 0x6230
jmp 0x5372
leaq -0x560(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
movl 0x3c(%rax), %edx
leaq -0x590(%rbp), %rdi
callq 0x6120
jmp 0x5396
leaq -0x588(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x6140
jmp 0x53ab
leaq 0x11e7c(%rip), %rsi     # 0x1722e
leaq -0x1b0(%rbp), %rdi
leaq -0x588(%rbp), %rdx
callq 0x60a0
jmp 0x53c7
leaq -0x588(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x40, %rsi
leaq -0x5b0(%rbp), %rdi
callq 0x6480
jmp 0x53e9
leaq 0x11e4c(%rip), %rsi     # 0x1723c
leaq -0x1b0(%rbp), %rdi
leaq -0x5b0(%rbp), %rdx
callq 0x6400
jmp 0x5405
leaq -0x5b0(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x560(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x588(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x5d0(%rbp), %rdi
callq 0x5ff0
jmp 0x54fe
leaq 0x11d1b(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x5d0(%rbp), %rdx
callq 0x5f70
jmp 0x551a
leaq -0x5d0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x54, %rsi
leaq -0x5f0(%rbp), %rdi
callq 0x67e0
jmp 0x553c
leaq 0x11d32(%rip), %rsi     # 0x17275
leaq -0x1b0(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0x5f70
jmp 0x5558
leaq -0x5f0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x48(%rax), %esi
movl 0x4c(%rax), %edx
leaq -0x618(%rbp), %rdi
callq 0x62b0
jmp 0x557c
leaq -0x610(%rbp), %rdi
leaq -0x618(%rbp), %rsi
callq 0x62d0
jmp 0x5591
leaq 0x11ce4(%rip), %rsi     # 0x1727c
leaq -0x1b0(%rbp), %rdi
leaq -0x610(%rbp), %rdx
callq 0x6890
jmp 0x55ad
leaq -0x610(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x610(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x638(%rbp), %rdi
callq 0x5ff0
jmp 0x563d
leaq 0x11bdc(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x638(%rbp), %rdx
callq 0x5f70
jmp 0x5659
leaq -0x638(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rax
movl 0x48(%rax), %esi
movl 0x4c(%rax), %edx
leaq -0x660(%rbp), %rdi
callq 0x62b0
jmp 0x567d
leaq -0x658(%rbp), %rdi
leaq -0x660(%rbp), %rsi
callq 0x62d0
jmp 0x5692
leaq 0x11be3(%rip), %rsi     # 0x1727c
leaq -0x1b0(%rbp), %rdi
leaq -0x658(%rbp), %rdx
callq 0x6890
jmp 0x56ae
leaq -0x658(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x50, %rsi
leaq -0x680(%rbp), %rdi
callq 0x67e0
jmp 0x56d0
leaq 0x11bb3(%rip), %rsi     # 0x1728a
leaq -0x1b0(%rbp), %rdi
leaq -0x680(%rbp), %rdx
callq 0x6660
jmp 0x56ec
leaq -0x680(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x38, %rsi
leaq -0x6a0(%rbp), %rdi
callq 0x5ff0
jmp 0x570e
leaq 0x11b7b(%rip), %rsi     # 0x17290
leaq -0x1b0(%rbp), %rdi
leaq -0x6a0(%rbp), %rdx
callq 0x60a0
jmp 0x572a
leaq -0x6a0(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x658(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x680(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x6a0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq -0x6c0(%rbp), %rdi
callq 0x5ff0
jmp 0x57dd
leaq 0x11a3c(%rip), %rsi     # 0x17220
leaq -0x1b0(%rbp), %rdi
leaq -0x6c0(%rbp), %rdx
callq 0x5f70
jmp 0x57f9
leaq -0x6c0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x50, %rsi
leaq -0x6e0(%rbp), %rdi
callq 0x67e0
jmp 0x581b
leaq 0x11a68(%rip), %rsi     # 0x1728a
leaq -0x1b0(%rbp), %rdi
leaq -0x6e0(%rbp), %rdx
callq 0x6660
jmp 0x5837
leaq -0x6e0(%rbp), %rdi
callq 0x4150
movq -0x10(%rbp), %rsi
addq $0x54, %rsi
leaq -0x700(%rbp), %rdi
callq 0x67e0
jmp 0x5859
leaq 0x11a35(%rip), %rsi     # 0x17295
leaq -0x1b0(%rbp), %rdi
leaq -0x700(%rbp), %rdx
callq 0x6910
jmp 0x5875
leaq -0x700(%rbp), %rdi
callq 0x4150
jmp 0x58ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x6c0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x6e0(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x700(%rbp), %rdi
callq 0x4150
jmp 0x5a8f
jmp 0x58ee
leaq -0x741(%rbp), %rdi
movq %rdi, -0x8f8(%rbp)
callq 0x44c0
movq -0x8f8(%rbp), %rdx
leaq 0x1198e(%rip), %rsi     # 0x1729d
leaq -0x740(%rbp), %rdi
callq 0x6990
jmp 0x591d
leaq -0x720(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
leaq -0x740(%rbp), %rdx
callq 0x5c90
jmp 0x5939
leaq -0x740(%rbp), %rdi
callq 0x4150
leaq -0x741(%rbp), %rdi
callq 0x42c0
leaq -0x8c0(%rbp), %rdi
callq 0x43a0
jmp 0x595f
movq -0x10(%rbp), %rax
movslq (%rax), %rcx
leaq 0x1cf43(%rip), %rax     # 0x228b0
movq (%rax,%rcx,8), %rsi
leaq -0x8c0(%rbp), %rdi
callq 0x4240
movq %rax, -0x900(%rbp)
jmp 0x5986
movq -0x900(%rbp), %rdi
leaq 0x1190c(%rip), %rsi     # 0x172a0
callq 0x4240
movq %rax, -0x908(%rbp)
jmp 0x59a2
movq -0x908(%rbp), %rdi
leaq -0x720(%rbp), %rsi
callq 0x4220
movq %rax, -0x910(%rbp)
jmp 0x59be
movq -0x910(%rbp), %rdi
leaq 0x118d8(%rip), %rsi     # 0x172a4
callq 0x4240
jmp 0x59d3
movq -0x8d0(%rbp), %rdi
leaq -0x8c0(%rbp), %rsi
callq 0x4280
jmp 0x59e8
leaq -0x8c0(%rbp), %rdi
callq 0x4060
leaq -0x720(%rbp), %rdi
callq 0x4150
leaq -0x1b0(%rbp), %rdi
callq 0x6a40
jmp 0x5a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x5a43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x740(%rbp), %rdi
callq 0x4150
leaq -0x741(%rbp), %rdi
callq 0x42c0
jmp 0x5a8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x5a83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x8c0(%rbp), %rdi
callq 0x4060
leaq -0x720(%rbp), %rdi
callq 0x4150
leaq -0x1b0(%rbp), %rdi
callq 0x6a40
jmp 0x5aad
movq -0x8c8(%rbp), %rax
addq $0x910, %rsp            # imm = 0x910
popq %rbp
retq
movq -0x190(%rbp), %rdi
callq 0x44b0
nopl (%rax)