// File: bendem[P]DiskGraph/src/main.cpp
// Function: main
int main(int argc, char** argv) {
    bool all = false;
    if(argc == 2) {
        string arg(argv[1]);
        if("-v" == arg) {
            cout << " Disk graphs by bendem, v" << VERSION << endl;
            return 0;
        }
        if("-h" == arg) {
            cout
                << " -h to get help" << endl
                << " -a to print all mounted partitions" << endl
                << " -v to get version" << endl
                ;
            return 0;
        }
        if("-a" == arg) {
            all = true;
        }
    }
    vector<string> output(exec("df --portability"));
    Table t(4);
    vector<unsigned> percents;
    bool first = true;

    // Parsing output and preparing formatting
    for(string line : output) {
        if(first) {
            // Ignoring header line
            first = false;
            continue;
        }

        vector<string> fields = split(line, ' ', 6);
        if(!all && fields[0].substr(0, 5) != "/dev/") {
            continue;
        }

        percents.push_back(parseInt(fields[4].substr(0, fields[4].length()-1)));
        unsigned usedBytes = parseInt(fields[2]);
        unsigned availBytes = parseInt(fields[3]);
        auto used = humanReadable(usedBytes);
        auto total = humanReadable(availBytes + usedBytes);
        t.addLine({
            toString(used.first) + toString(used.second),
            "/",
            toString(total.first) + toString(total.second),
            fields[5]
        });
    }

    cout << ' ' << percents.size() << " disks:" << endl;

    const unsigned width = t.getTotalWidth();
    const TermSize ts = termSize();
    if(ts.width < width) {
        cout << "Terminal too small" << endl;
        return 0;
    }
    const unsigned graphWidth = ts.width - width - 2;
    for(unsigned i = 0; i < percents.size(); ++i) {
        cout << ' ' << displayGraph(percents[i], graphWidth, GRAPH_CHAR) << t.getLine(i) << endl;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x530, %rsp            # imm = 0x530
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
cmpl $0x2, -0x8(%rbp)
jne 0x4b93
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x3e0(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x2310
movq -0x3e0(%rbp), %rsi
movq -0x3d8(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x2220
jmp 0x49af
leaq -0x39(%rbp), %rdi
callq 0x21f0
leaq 0x56a2(%rip), %rdi      # 0xa061
leaq -0x38(%rbp), %rsi
callq 0x5860
movb %al, -0x3e1(%rbp)
jmp 0x49d0
movb -0x3e1(%rbp), %al
testb $0x1, %al
jne 0x49df
jmp 0x4a73
movq 0xa5d2(%rip), %rdi      # 0xefb8
leaq 0x5677(%rip), %rsi      # 0xa064
callq 0x21a0
movq %rax, -0x3f0(%rbp)
jmp 0x49fb
movq -0x3f0(%rbp), %rdi
leaq 0x5675(%rip), %rsi      # 0xa07e
callq 0x21a0
movq %rax, -0x3f8(%rbp)
jmp 0x4a17
movq -0x3f8(%rbp), %rdi
movq 0xa573(%rip), %rsi      # 0xef98
callq 0x21e0
jmp 0x4a2c
movl $0x0, -0x4(%rbp)
movl $0x1, -0x50(%rbp)
jmp 0x4b7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x39(%rbp), %rdi
callq 0x21f0
jmp 0x572c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x2368
jmp 0x572c
leaq 0x5608(%rip), %rdi      # 0xa082
leaq -0x38(%rbp), %rsi
callq 0x5860
movb %al, -0x3f9(%rbp)
jmp 0x4a8b
movb -0x3f9(%rbp), %al
testb $0x1, %al
jne 0x4a9a
jmp 0x4b4b
movq 0xa517(%rip), %rdi      # 0xefb8
leaq 0x55dd(%rip), %rsi      # 0xa085
callq 0x21a0
movq %rax, -0x408(%rbp)
jmp 0x4ab6
movq -0x408(%rbp), %rdi
movq 0xa4d4(%rip), %rsi      # 0xef98
callq 0x21e0
movq %rax, -0x410(%rbp)
jmp 0x4ad2
movq -0x410(%rbp), %rdi
leaq 0x55b5(%rip), %rsi      # 0xa095
callq 0x21a0
movq %rax, -0x418(%rbp)
jmp 0x4aee
movq -0x418(%rbp), %rdi
movq 0xa49c(%rip), %rsi      # 0xef98
callq 0x21e0
movq %rax, -0x420(%rbp)
jmp 0x4b0a
movq -0x420(%rbp), %rdi
leaq 0x55a1(%rip), %rsi      # 0xa0b9
callq 0x21a0
movq %rax, -0x428(%rbp)
jmp 0x4b26
movq -0x428(%rbp), %rdi
movq 0xa464(%rip), %rsi      # 0xef98
callq 0x21e0
jmp 0x4b3b
movl $0x0, -0x4(%rbp)
movl $0x1, -0x50(%rbp)
jmp 0x4b7a
leaq 0x557a(%rip), %rdi      # 0xa0cc
leaq -0x38(%rbp), %rsi
callq 0x5860
movb %al, -0x429(%rbp)
jmp 0x4b63
movb -0x429(%rbp), %al
testb $0x1, %al
jne 0x4b6f
jmp 0x4b73
movb $0x1, -0x11(%rbp)
movl $0x0, -0x50(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x2368
movl -0x50(%rbp), %eax
testl %eax, %eax
je 0x4b91
jmp 0x4b8c
jmp 0x5720
jmp 0x4b93
leaq -0x89(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x2310
movq -0x438(%rbp), %rdx
leaq 0x551b(%rip), %rsi      # 0xa0cf
leaq -0x88(%rbp), %rdi
callq 0x2220
jmp 0x4bc2
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x7180
jmp 0x4bd4
leaq -0x88(%rbp), %rdi
callq 0x2368
leaq -0x89(%rbp), %rdi
callq 0x21f0
leaq -0xc8(%rbp), %rdi
movl $0x4, %esi
callq 0x8230
jmp 0x4bff
leaq -0xe0(%rbp), %rdi
callq 0x5890
movb $0x1, -0xe1(%rbp)
leaq -0x68(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rdi
callq 0x58b0
movq %rax, -0xf8(%rbp)
movq -0xf0(%rbp), %rdi
callq 0x58e0
movq %rax, -0x100(%rbp)
leaq -0xf8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x5910
testb $0x1, %al
jne 0x4c5f
jmp 0x5473
leaq -0xf8(%rbp), %rdi
callq 0x5950
movq %rax, %rsi
leaq -0x120(%rbp), %rdi
callq 0x20d0
jmp 0x4c7c
testb $0x1, -0xe1(%rbp)
je 0x4cf1
movb $0x0, -0xe1(%rbp)
movl $0x3, -0x50(%rbp)
jmp 0x5232
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4cbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x2368
leaq -0x89(%rbp), %rdi
callq 0x21f0
jmp 0x572c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5715
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x56fd
leaq -0x158(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x20d0
jmp 0x4d06
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
movl $0x20, %edx
movl $0x6, %ecx
callq 0x77c0
jmp 0x4d25
leaq -0x158(%rbp), %rdi
callq 0x2368
movb -0x11(%rbp), %cl
movb $0x0, -0x179(%rbp)
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x439(%rbp)
jne 0x4dac
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x448(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x59a0
movq -0x448(%rbp), %rdx
movq %rax, %rsi
leaq -0x178(%rbp), %rdi
movl $0x5, %ecx
callq 0x21d0
jmp 0x4d7c
movb $0x1, -0x179(%rbp)
leaq 0x5356(%rip), %rsi      # 0xa0e0
leaq -0x178(%rbp), %rdi
callq 0x5970
movb %al, -0x449(%rbp)
jmp 0x4d9e
movb -0x449(%rbp), %al
movb %al, -0x439(%rbp)
jmp 0x4dac
movb -0x439(%rbp), %al
movb %al, -0x44a(%rbp)
testb $0x1, -0x179(%rbp)
jne 0x4dc3
jmp 0x4dcf
leaq -0x178(%rbp), %rdi
callq 0x2368
movb -0x44a(%rbp), %al
testb $0x1, %al
jne 0x4ddb
jmp 0x4e4e
movl $0x3, -0x50(%rbp)
jmp 0x5216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5462
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x2368
jmp 0x5462
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x179(%rbp)
jne 0x4e3d
jmp 0x4e49
leaq -0x178(%rbp), %rdi
callq 0x2368
jmp 0x5456
leaq -0x138(%rbp), %rdi
movq %rdi, -0x468(%rbp)
movl $0x4, %esi
movq %rsi, -0x460(%rbp)
callq 0x59a0
movq -0x468(%rbp), %rdi
movq -0x460(%rbp), %rsi
movq %rax, -0x458(%rbp)
callq 0x59a0
movq %rax, %rdi
callq 0x2270
movq -0x458(%rbp), %rsi
movq %rax, %rcx
decq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x1a0(%rbp), %rdi
callq 0x21d0
jmp 0x4eae
leaq -0x1a0(%rbp), %rdi
callq 0x76c0
movl %eax, -0x46c(%rbp)
jmp 0x4ec2
movl -0x46c(%rbp), %eax
movl %eax, -0x180(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x59c0
jmp 0x4ee3
leaq -0x1a0(%rbp), %rdi
callq 0x2368
leaq -0x138(%rbp), %rdi
movl $0x2, %esi
callq 0x59a0
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x20d0
jmp 0x4f11
leaq -0x1c8(%rbp), %rdi
callq 0x76c0
movl %eax, -0x470(%rbp)
jmp 0x4f25
leaq -0x1c8(%rbp), %rdi
callq 0x2368
movl -0x470(%rbp), %eax
movl %eax, -0x1a4(%rbp)
leaq -0x138(%rbp), %rdi
movl $0x3, %esi
callq 0x59a0
movq %rax, %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x20d0
jmp 0x4f5f
leaq -0x1f0(%rbp), %rdi
callq 0x76c0
movl %eax, -0x474(%rbp)
jmp 0x4f73
leaq -0x1f0(%rbp), %rdi
callq 0x2368
movl -0x474(%rbp), %eax
movl %eax, -0x1cc(%rbp)
movl -0x1a4(%rbp), %esi
leaq -0x218(%rbp), %rdi
callq 0x75d0
jmp 0x4f9f
movl -0x1cc(%rbp), %esi
movl -0x1a4(%rbp), %eax
addl %eax, %esi
leaq -0x240(%rbp), %rdi
callq 0x75d0
jmp 0x4fbb
movb $0x1, -0x379(%rbp)
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2f0(%rbp)
leaq -0x310(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x5ac0
jmp 0x4fe5
leaq -0x210(%rbp), %rsi
leaq -0x330(%rbp), %rdi
callq 0x5b70
jmp 0x4ffa
leaq -0x2e8(%rbp), %rdi
leaq -0x310(%rbp), %rsi
leaq -0x330(%rbp), %rdx
callq 0x59f0
jmp 0x5016
leaq -0x2c8(%rbp), %rax
movq %rax, -0x488(%rbp)
movq %rax, -0x2f0(%rbp)
leaq -0x331(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x2310
movq -0x488(%rbp), %rdi
movq -0x480(%rbp), %rdx
leaq 0x5091(%rip), %rsi      # 0xa0e4
callq 0x2220
jmp 0x505a
leaq -0x2a8(%rbp), %rax
movq %rax, -0x490(%rbp)
movq %rax, -0x2f0(%rbp)
leaq -0x358(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x5ac0
jmp 0x5084
leaq -0x238(%rbp), %rsi
leaq -0x378(%rbp), %rdi
callq 0x5b70
jmp 0x5099
movq -0x490(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x378(%rbp), %rdx
callq 0x59f0
jmp 0x50b5
leaq -0x288(%rbp), %rax
movq %rax, -0x498(%rbp)
movq %rax, -0x2f0(%rbp)
leaq -0x138(%rbp), %rdi
movl $0x5, %esi
callq 0x59a0
movq -0x498(%rbp), %rdi
movq %rax, %rsi
callq 0x20d0
jmp 0x50ec
movb $0x0, -0x379(%rbp)
leaq -0x2e8(%rbp), %rax
movq %rax, -0x268(%rbp)
movq $0x4, -0x260(%rbp)
leaq -0x37a(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
callq 0x5740
movq -0x4a0(%rbp), %rcx
movq -0x268(%rbp), %rsi
movq -0x260(%rbp), %rdx
leaq -0x258(%rbp), %rdi
callq 0x5760
jmp 0x5142
leaq -0xc8(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x8300
jmp 0x5157
leaq -0x258(%rbp), %rdi
callq 0x5800
leaq -0x37a(%rbp), %rdi
callq 0x57e0
leaq -0x2e8(%rbp), %rax
movq %rax, -0x4b0(%rbp)
addq $0x80, %rax
movq %rax, -0x4a8(%rbp)
movq -0x4a8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x2368
movq -0x4b0(%rbp), %rcx
movq -0x4b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4a8(%rbp)
jne 0x518a
leaq -0x378(%rbp), %rdi
callq 0x2368
leaq -0x358(%rbp), %rdi
callq 0x2368
leaq -0x331(%rbp), %rdi
callq 0x21f0
leaq -0x330(%rbp), %rdi
callq 0x2368
leaq -0x310(%rbp), %rdi
callq 0x2368
leaq -0x240(%rbp), %rdi
callq 0x5c20
leaq -0x218(%rbp), %rdi
callq 0x5c20
movl $0x0, -0x50(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x5800
movl -0x50(%rbp), %eax
testl %eax, %eax
jne 0x5232
jmp 0x522b
movl $0x0, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x2368
movl -0x50(%rbp), %eax
testl %eax, %eax
je 0x5249
jmp 0x5247
jmp 0x524b
jmp 0x524b
leaq -0xf8(%rbp), %rdi
callq 0x5c40
jmp 0x4c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x2368
jmp 0x5456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2368
jmp 0x5456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x2368
jmp 0x5456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x544a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x53e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x53da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x53ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x53c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x53b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x53aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5350
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x5800
leaq -0x37a(%rbp), %rdi
callq 0x57e0
leaq -0x2e8(%rbp), %rax
movq %rax, -0x4c8(%rbp)
addq $0x80, %rax
movq %rax, -0x4c0(%rbp)
movq -0x4c0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x2368
movq -0x4c8(%rbp), %rcx
movq -0x4d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4c0(%rbp)
jne 0x5377
jmp 0x53aa
leaq -0x378(%rbp), %rdi
callq 0x2368
leaq -0x358(%rbp), %rdi
callq 0x2368
leaq -0x331(%rbp), %rdi
callq 0x21f0
leaq -0x330(%rbp), %rdi
callq 0x2368
leaq -0x310(%rbp), %rdi
callq 0x2368
testb $0x1, -0x379(%rbp)
jne 0x53f1
jmp 0x543e
movq -0x2f0(%rbp), %rax
leaq -0x2e8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x4d8(%rbp)
je 0x543c
movq -0x4d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4e0(%rbp)
callq 0x2368
movq -0x4e0(%rbp), %rax
leaq -0x2e8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4d8(%rbp)
jne 0x540b
jmp 0x543e
leaq -0x240(%rbp), %rdi
callq 0x5c20
leaq -0x218(%rbp), %rdi
callq 0x5c20
leaq -0x138(%rbp), %rdi
callq 0x5800
leaq -0x120(%rbp), %rdi
callq 0x2368
jmp 0x56fd
movq 0x9b3e(%rip), %rdi      # 0xefb8
movl $0x20, %esi
callq 0x2200
movq %rax, -0x4e8(%rbp)
jmp 0x548d
leaq -0xe0(%rbp), %rdi
callq 0x5c60
movq -0x4e8(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x4f0(%rbp)
jmp 0x54b1
movq -0x4f0(%rbp), %rdi
leaq 0x4c27(%rip), %rsi      # 0xa0e6
callq 0x21a0
movq %rax, -0x4f8(%rbp)
jmp 0x54cd
movq -0x4f8(%rbp), %rdi
movq 0x9abd(%rip), %rsi      # 0xef98
callq 0x21e0
jmp 0x54e2
leaq -0xc8(%rbp), %rdi
callq 0x8470
movl %eax, -0x4fc(%rbp)
jmp 0x54f6
movl -0x4fc(%rbp), %eax
movl %eax, -0x380(%rbp)
callq 0x7320
movq %rax, -0x508(%rbp)
jmp 0x5510
movq -0x508(%rbp), %rax
movq %rax, -0x388(%rbp)
movl -0x388(%rbp), %eax
cmpl -0x380(%rbp), %eax
jae 0x5570
movq 0x9a85(%rip), %rdi      # 0xefb8
leaq 0x4bb4(%rip), %rsi      # 0xa0ee
callq 0x21a0
movq %rax, -0x510(%rbp)
jmp 0x5548
movq -0x510(%rbp), %rdi
movq 0x9a42(%rip), %rsi      # 0xef98
callq 0x21e0
jmp 0x555d
movl $0x0, -0x4(%rbp)
movl $0x1, -0x50(%rbp)
jmp 0x56da
movl -0x388(%rbp), %eax
subl -0x380(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x38c(%rbp)
movl $0x0, -0x390(%rbp)
movl -0x390(%rbp), %eax
movq %rax, -0x518(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x5c60
movq %rax, %rcx
movq -0x518(%rbp), %rax
cmpq %rcx, %rax
jae 0x56cc
movq 0x99f6(%rip), %rdi      # 0xefb8
movl $0x20, %esi
callq 0x2200
movq %rax, -0x520(%rbp)
jmp 0x55d5
movl -0x390(%rbp), %eax
movl %eax, %esi
leaq -0xe0(%rbp), %rdi
callq 0x5c80
movl (%rax), %esi
movl -0x38c(%rbp), %edx
leaq -0x3b0(%rbp), %rdi
movl $0x3d, %ecx
callq 0x7380
jmp 0x5604
movq -0x520(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x2170
movq %rax, -0x528(%rbp)
jmp 0x5620
movl -0x390(%rbp), %edx
leaq -0x3d0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x84c0
jmp 0x563b
movq -0x528(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x2170
movq %rax, -0x530(%rbp)
jmp 0x5657
movq -0x530(%rbp), %rdi
movq 0x9933(%rip), %rsi      # 0xef98
callq 0x21e0
jmp 0x566c
leaq -0x3d0(%rbp), %rdi
callq 0x2368
leaq -0x3b0(%rbp), %rdi
callq 0x2368
movl -0x390(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x390(%rbp)
jmp 0x558f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x56be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x2368
leaq -0x3b0(%rbp), %rdi
callq 0x2368
jmp 0x56fd
movl $0x0, -0x4(%rbp)
movl $0x1, -0x50(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x5ca0
leaq -0xc8(%rbp), %rdi
callq 0x5d00
leaq -0x68(%rbp), %rdi
callq 0x5800
jmp 0x5720
leaq -0xe0(%rbp), %rdi
callq 0x5ca0
leaq -0xc8(%rbp), %rdi
callq 0x5d00
leaq -0x68(%rbp), %rdi
callq 0x5800
jmp 0x572c
movl -0x4(%rbp), %eax
addq $0x530, %rsp            # imm = 0x530
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x2300
nopw %cs:(%rax,%rax)
nop