// File: hanhwi[P]SimPoint/analysiscode/Utilities.cpp
// Function: Utilities::loadFVFile(FVParser&, Dataset*)
void Utilities::loadFVFile(FVParser &parser,
        Dataset *result) {
    check(NULL != result, "Utilities::loadFVFile() result is null");

    list<FVParserToken> current_vector;
    double totalWeight = 0.0;
    vector<double> rowWeights(result->numRows());

    int largestDimensionSeen = 0;

    while (parser.nextLine(&current_vector)) {
        unsigned int point = parser.currentLineNumber() - 1;
        if (point >= result->numRows()) {
            check(false, "Utilities::loadFVFile() more vectors than expected "
                    "(loading vector " + toString((int)(point + 1)) + " when expecting " 
                    + toString((int)(result->numRows())) + ")");
        }

        // normalize the vector
        double sumVector = 0.0;
        list<FVParserToken>::iterator i;
        for (i = current_vector.begin(); i != current_vector.end(); i++) {
            sumVector += i->value;
            if (i->dimension > largestDimensionSeen) { largestDimensionSeen = i->dimension; }
        }

        rowWeights[point] = sumVector;
        totalWeight += sumVector;

        for (i = current_vector.begin(); i != current_vector.end(); i++) {
            if (i->dimension > (int)result->numCols() || i->dimension < 1) {
                check(i->dimension <= (int)result->numCols(),
                    "Utilities::loadFVFile() expecting only " +
                    toString((int)result->numCols()) +
                    " dimensions, but found dimension " +
                    toString((int)i->dimension));
                check(i->dimension >= 1,
                    "Utilities::loadFVFile() dimension < 1");
            }
            // put the value in the destination dataset (switching to 0-offset
            // and normalizing by the total vector sum)
            (*result)[point][i->dimension - 1] = i->value / sumVector;
        }
    }
    check(parser.currentLineNumber() == (int)result->numRows(),
            "Utilities::loadFVFile() the number of vectors loaded "
            "disagrees with the number specified (expected " +
            toString((int)result->numRows()) + " but loaded " +
            toString(parser.currentLineNumber()) + ")");

    check(largestDimensionSeen == (int)result->numCols(),
            "Utilities::loadFVFile() the number of dimensions loaded "
            "disagrees with the number specified (expected " +
            toString((int)result->numCols()) + " but loaded " +
            toString((int)largestDimensionSeen) + ")");

    // normalize the weights and put them in the dataset
    for (unsigned int row = 0; row < result->numRows(); row++) {
        result->setWeight(row, rowWeights[row] / totalWeight);
    }
}

// Assembly:
subq $0x498, %rsp            # imm = 0x498
movq %rdi, 0x490(%rsp)
movq %rsi, 0x488(%rsp)
movq 0x488(%rsp), %rax
testq %rax, %rax
setne %al
movb %al, 0xaf(%rsp)
leaq 0x467(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x56a0
movq 0xb0(%rsp), %rdx
leaq 0x5f8b(%rip), %rsi      # 0x366eb
leaq 0x468(%rsp), %rdi
callq 0x74e0
jmp 0x3076f
movb 0xaf(%rsp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq 0x468(%rsp), %rsi
callq 0x7480
jmp 0x3078b
leaq 0x468(%rsp), %rdi
callq 0x5788
leaq 0x467(%rsp), %rdi
callq 0x53e0
leaq 0x438(%rsp), %rdi
callq 0x32550
movq $0x0, 0x430(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0c0
movl %eax, 0xa8(%rsp)
jmp 0x307d4
movl 0xa8(%rsp), %eax
movl %eax, %eax
movq %rax, 0x98(%rsp)
leaq 0x417(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0x99c0
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
leaq 0x418(%rsp), %rdi
callq 0x99d0
jmp 0x30819
leaq 0x417(%rsp), %rdi
callq 0x9a50
movl $0x0, 0x410(%rsp)
movq 0x490(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0xe8a0
movb %al, 0x97(%rsp)
jmp 0x3084f
movb 0x97(%rsp), %al
testb $0x1, %al
jne 0x3085f
jmp 0x31055
movq 0x490(%rsp), %rdi
callq 0x32600
movl %eax, 0x90(%rsp)
jmp 0x30875
movl 0x90(%rsp), %eax
decl %eax
movl %eax, 0x40c(%rsp)
movl 0x40c(%rsp), %eax
movl %eax, 0x88(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0c0
movl %eax, 0x8c(%rsp)
jmp 0x308a9
movl 0x88(%rsp), %eax
movl 0x8c(%rsp), %ecx
cmpl %ecx, %eax
jb 0x30b5c
movl 0x40c(%rsp), %esi
incl %esi
leaq 0x368(%rsp), %rdi
callq 0x2fe20
jmp 0x308d7
leaq 0x5e34(%rip), %rsi      # 0x36712
leaq 0x388(%rsp), %rdi
leaq 0x368(%rsp), %rdx
callq 0x2b830
jmp 0x308f5
leaq 0x5e5a(%rip), %rdx      # 0x36756
leaq 0x3a8(%rsp), %rdi
leaq 0x388(%rsp), %rsi
callq 0x7830
jmp 0x30913
movq 0x488(%rsp), %rdi
callq 0xc0c0
movl %eax, 0x84(%rsp)
jmp 0x30929
movl 0x84(%rsp), %esi
leaq 0x348(%rsp), %rdi
callq 0x2fe20
jmp 0x3093f
leaq 0x3c8(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
leaq 0x348(%rsp), %rdx
callq 0x7740
jmp 0x3095e
leaq 0x28ca(%rip), %rdx      # 0x3322f
leaq 0x3e8(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0x7830
jmp 0x3097c
xorl %edi, %edi
leaq 0x3e8(%rsp), %rsi
callq 0x7480
jmp 0x3098d
leaq 0x3e8(%rsp), %rdi
callq 0x5788
leaq 0x3c8(%rsp), %rdi
callq 0x5788
leaq 0x348(%rsp), %rdi
callq 0x5788
leaq 0x3a8(%rsp), %rdi
callq 0x5788
leaq 0x388(%rsp), %rdi
callq 0x5788
leaq 0x368(%rsp), %rdi
callq 0x5788
jmp 0x30b5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30a17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x468(%rsp), %rdi
callq 0x5788
leaq 0x467(%rsp), %rdi
callq 0x53e0
jmp 0x3158b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x3157e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x417(%rsp), %rdi
callq 0x9a50
jmp 0x3157e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30b4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30b3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30b30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30b23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30b16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x3e8(%rsp), %rdi
callq 0x5788
leaq 0x3c8(%rsp), %rdi
callq 0x5788
leaq 0x348(%rsp), %rdi
callq 0x5788
leaq 0x3a8(%rsp), %rdi
callq 0x5788
leaq 0x388(%rsp), %rdi
callq 0x5788
leaq 0x368(%rsp), %rdi
callq 0x5788
jmp 0x31571
xorps %xmm0, %xmm0
movsd %xmm0, 0x340(%rsp)
leaq 0x338(%rsp), %rdi
callq 0x32620
leaq 0x438(%rsp), %rdi
callq 0x32560
movq %rax, 0x330(%rsp)
movq 0x330(%rsp), %rax
movq %rax, 0x338(%rsp)
leaq 0x438(%rsp), %rdi
callq 0xefe0
movq %rax, 0x328(%rsp)
leaq 0x338(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0x32590
testb $0x1, %al
jne 0x30bca
jmp 0x30c3a
leaq 0x338(%rsp), %rdi
callq 0x325b0
movsd 0x8(%rax), %xmm0
addsd 0x340(%rsp), %xmm0
movsd %xmm0, 0x340(%rsp)
leaq 0x338(%rsp), %rdi
callq 0x325b0
movl (%rax), %eax
cmpl 0x410(%rsp), %eax
jle 0x30c1c
leaq 0x338(%rsp), %rdi
callq 0x325b0
movl (%rax), %eax
movl %eax, 0x410(%rsp)
jmp 0x30c1e
leaq 0x338(%rsp), %rdi
xorl %esi, %esi
callq 0x325d0
movq %rax, 0x320(%rsp)
jmp 0x30b9a
movsd 0x340(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movl 0x40c(%rsp), %eax
movl %eax, %esi
leaq 0x418(%rsp), %rdi
callq 0x9ba0
movsd 0x78(%rsp), %xmm0
movsd %xmm0, (%rax)
movsd 0x340(%rsp), %xmm0
addsd 0x430(%rsp), %xmm0
movsd %xmm0, 0x430(%rsp)
leaq 0x438(%rsp), %rdi
callq 0x32560
movq %rax, 0x318(%rsp)
movq 0x318(%rsp), %rax
movq %rax, 0x338(%rsp)
leaq 0x438(%rsp), %rdi
callq 0xefe0
movq %rax, 0x310(%rsp)
leaq 0x338(%rsp), %rdi
leaq 0x310(%rsp), %rsi
callq 0x32590
testb $0x1, %al
jne 0x30cdc
jmp 0x31050
leaq 0x338(%rsp), %rdi
callq 0x325b0
movl (%rax), %eax
movl %eax, 0x70(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0d0
movl %eax, 0x74(%rsp)
jmp 0x30d02
movl 0x70(%rsp), %eax
movl 0x74(%rsp), %ecx
cmpl %ecx, %eax
jg 0x30d24
leaq 0x338(%rsp), %rdi
callq 0x325b0
cmpl $0x1, (%rax)
jge 0x30fcf
leaq 0x338(%rsp), %rdi
callq 0x325b0
movl (%rax), %eax
movl %eax, 0x68(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0d0
movl %eax, 0x6c(%rsp)
jmp 0x30d4a
movl 0x6c(%rsp), %ecx
movl 0x68(%rsp), %eax
subl %ecx, %eax
setle %al
movb %al, 0x63(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0d0
movl %eax, 0x64(%rsp)
jmp 0x30d6e
movl 0x64(%rsp), %esi
leaq 0x290(%rsp), %rdi
callq 0x2fe20
jmp 0x30d81
leaq 0x59df(%rip), %rsi      # 0x36767
leaq 0x2b0(%rsp), %rdi
leaq 0x290(%rsp), %rdx
callq 0x2b830
jmp 0x30d9f
leaq 0x59e9(%rip), %rdx      # 0x3678f
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rsi
callq 0x7830
jmp 0x30dbd
leaq 0x338(%rsp), %rdi
callq 0x325b0
movl (%rax), %esi
leaq 0x270(%rsp), %rdi
callq 0x2fe20
jmp 0x30ddb
leaq 0x2f0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
leaq 0x270(%rsp), %rdx
callq 0x7740
jmp 0x30dfa
movb 0x63(%rsp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq 0x2f0(%rsp), %rsi
callq 0x7480
jmp 0x30e13
leaq 0x2f0(%rsp), %rdi
callq 0x5788
leaq 0x270(%rsp), %rdi
callq 0x5788
leaq 0x2d0(%rsp), %rdi
callq 0x5788
leaq 0x2b0(%rsp), %rdi
callq 0x5788
leaq 0x290(%rsp), %rdi
callq 0x5788
leaq 0x338(%rsp), %rdi
callq 0x325b0
movl (%rax), %eax
testl %eax, %eax
setg %al
movb %al, 0x57(%rsp)
leaq 0x24f(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x56a0
movq 0x58(%rsp), %rdx
leaq 0x5927(%rip), %rsi      # 0x367b1
leaq 0x250(%rsp), %rdi
callq 0x74e0
jmp 0x30e99
movb 0x57(%rsp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq 0x250(%rsp), %rsi
callq 0x7480
jmp 0x30eb2
leaq 0x250(%rsp), %rdi
callq 0x5788
leaq 0x24f(%rsp), %rdi
callq 0x53e0
jmp 0x30fcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30f74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30f67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30f5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30f4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x2f0(%rsp), %rdi
callq 0x5788
leaq 0x270(%rsp), %rdi
callq 0x5788
leaq 0x2d0(%rsp), %rdi
callq 0x5788
leaq 0x2b0(%rsp), %rdi
callq 0x5788
leaq 0x290(%rsp), %rdi
callq 0x5788
jmp 0x31571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x30fbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x250(%rsp), %rdi
callq 0x5788
leaq 0x24f(%rsp), %rdi
callq 0x53e0
jmp 0x31571
leaq 0x338(%rsp), %rdi
callq 0x325b0
movsd 0x8(%rax), %xmm0
divsd 0x340(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x488(%rsp), %rdi
movl 0x40c(%rsp), %eax
movl %eax, %esi
callq 0xc130
movq %rax, 0x40(%rsp)
leaq 0x338(%rsp), %rdi
callq 0x325b0
movq 0x40(%rsp), %rdi
movl (%rax), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x9ba0
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x338(%rsp), %rdi
xorl %esi, %esi
callq 0x325d0
movq %rax, 0x240(%rsp)
jmp 0x30ca9
jmp 0x30831
movq 0x490(%rsp), %rdi
callq 0x32600
movl %eax, 0x3c(%rsp)
jmp 0x31068
movq 0x488(%rsp), %rdi
callq 0xc0c0
movl %eax, 0x38(%rsp)
jmp 0x3107b
movl 0x38(%rsp), %ecx
movl 0x3c(%rsp), %eax
subl %ecx, %eax
sete %al
movb %al, 0x33(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0c0
movl %eax, 0x34(%rsp)
jmp 0x3109f
movl 0x34(%rsp), %esi
leaq 0x1a0(%rsp), %rdi
callq 0x2fe20
jmp 0x310b2
leaq 0x571e(%rip), %rsi      # 0x367d7
leaq 0x1c0(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
callq 0x2b830
jmp 0x310d0
leaq 0x5764(%rip), %rdx      # 0x3683b
leaq 0x1e0(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x7830
jmp 0x310ee
movq 0x490(%rsp), %rdi
callq 0x32600
movl %eax, 0x2c(%rsp)
jmp 0x31101
movl 0x2c(%rsp), %esi
leaq 0x180(%rsp), %rdi
callq 0x2fe20
jmp 0x31114
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0x7740
jmp 0x31133
leaq 0x20f5(%rip), %rdx      # 0x3322f
leaq 0x220(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x7830
jmp 0x31151
movb 0x33(%rsp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq 0x220(%rsp), %rsi
callq 0x7480
jmp 0x3116a
leaq 0x220(%rsp), %rdi
callq 0x5788
leaq 0x200(%rsp), %rdi
callq 0x5788
leaq 0x180(%rsp), %rdi
callq 0x5788
leaq 0x1e0(%rsp), %rdi
callq 0x5788
leaq 0x1c0(%rsp), %rdi
callq 0x5788
leaq 0x1a0(%rsp), %rdi
callq 0x5788
movl 0x410(%rsp), %eax
movl %eax, 0x24(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0d0
movl %eax, 0x28(%rsp)
jmp 0x311d6
movl 0x28(%rsp), %ecx
movl 0x24(%rsp), %eax
subl %ecx, %eax
sete %al
movb %al, 0x1f(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0d0
movl %eax, 0x20(%rsp)
jmp 0x311fa
movl 0x20(%rsp), %esi
leaq 0xe0(%rsp), %rdi
callq 0x2fe20
jmp 0x3120d
leaq 0x5634(%rip), %rsi      # 0x36848
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x2b830
jmp 0x3122b
leaq 0x5609(%rip), %rdx      # 0x3683b
leaq 0x120(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x7830
jmp 0x31249
movl 0x410(%rsp), %esi
leaq 0xc0(%rsp), %rdi
callq 0x2fe20
jmp 0x3125f
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x7740
jmp 0x3127e
leaq 0x1faa(%rip), %rdx      # 0x3322f
leaq 0x160(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x7830
jmp 0x3129c
movb 0x1f(%rsp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq 0x160(%rsp), %rsi
callq 0x7480
jmp 0x312b5
leaq 0x160(%rsp), %rdi
callq 0x5788
leaq 0x140(%rsp), %rdi
callq 0x5788
leaq 0xc0(%rsp), %rdi
callq 0x5788
leaq 0x120(%rsp), %rdi
callq 0x5788
leaq 0x100(%rsp), %rdi
callq 0x5788
leaq 0xe0(%rsp), %rdi
callq 0x5788
movl $0x0, 0xbc(%rsp)
movl 0xbc(%rsp), %eax
movl %eax, 0x14(%rsp)
movq 0x488(%rsp), %rdi
callq 0xc0c0
movl %eax, 0x18(%rsp)
jmp 0x3132c
movl 0x14(%rsp), %eax
movl 0x18(%rsp), %ecx
cmpl %ecx, %eax
jae 0x3154f
movq 0x488(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0xbc(%rsp), %eax
movl %eax, 0x10(%rsp)
movl %eax, %esi
leaq 0x418(%rsp), %rdi
callq 0x9ba0
movq 0x8(%rsp), %rdi
movl 0x10(%rsp), %esi
movsd (%rax), %xmm0
movsd 0x430(%rsp), %xmm1
divsd %xmm1, %xmm0
callq 0xc150
jmp 0x31384
jmp 0x31386
movl 0xbc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xbc(%rsp)
jmp 0x3130e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31465
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x3144b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x3143e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31431
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x220(%rsp), %rdi
callq 0x5788
leaq 0x200(%rsp), %rdi
callq 0x5788
leaq 0x180(%rsp), %rdi
callq 0x5788
leaq 0x1e0(%rsp), %rdi
callq 0x5788
leaq 0x1c0(%rsp), %rdi
callq 0x5788
leaq 0x1a0(%rsp), %rdi
callq 0x5788
jmp 0x31571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31540
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31533
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31526
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x31519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
jmp 0x3150c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x458(%rsp)
movl %eax, 0x454(%rsp)
leaq 0x160(%rsp), %rdi
callq 0x5788
leaq 0x140(%rsp), %rdi
callq 0x5788
leaq 0xc0(%rsp), %rdi
callq 0x5788
leaq 0x120(%rsp), %rdi
callq 0x5788
leaq 0x100(%rsp), %rdi
callq 0x5788
leaq 0xe0(%rsp), %rdi
callq 0x5788
jmp 0x31571
leaq 0x418(%rsp), %rdi
callq 0x9960
leaq 0x438(%rsp), %rdi
callq 0x32610
addq $0x498, %rsp            # imm = 0x498
retq
leaq 0x418(%rsp), %rdi
callq 0x9960
leaq 0x438(%rsp), %rdi
callq 0x32610
movq 0x458(%rsp), %rdi
callq 0x5690
nopl (%rax,%rax)