// File: yogesh1q2w[P]Dynamic-Graph-Algorithms/SPT.cpp
// Function: SPT::modify_inc(int, int, int, int)
void SPT::modify_inc(int u, int v, int oldwt, int diff) {
    set<int> M;
    unordered_map<int,int> M_inc;
    M.insert(v);
    M_inc[v] = diff;
    multiset<pair<int,pair<int,int>>> Q;
    Q.insert(make_pair(diff,make_pair(u,v)));
    
    vector<pair<int,int>> treeadj[spt.size()];
    int root;// get adjacency list representation of tree
    for (int i = 0; i < spt.size(); i++) { 
        if (spt[i].first == -1) 
            root = i; 
        else
            treeadj[spt[i].first].push_back(make_pair(i,spt[i].second));
    }

    vector<int> desc_v;
    descendants(v,desc_v,treeadj);
    for(auto &d: desc_v) {
        int min_inc = diff;
        pair<int,int> e_min_inc = make_pair(u,v);
        for(auto &sd: revadj[d]) {
            if(find(desc_v.begin(),desc_v.end(),sd) == desc_v.end()) {
                min_inc = min(dist[sd] + weight[make_pair(sd,d)] - dist[d], min_inc);
                e_min_inc = make_pair(d,sd);
            }
        }
        if(min_inc < M_inc[d]) {
            Q.insert(make_pair(min_inc,e_min_inc));
            M_inc[d] = min_inc;
        }
        for(auto &k:treeadj[d]) {
            M.insert(k.first);
            M_inc[k.first] = M_inc[d];
        }
    }

    while(!Q.empty()) {
        pair<int,pair<int,int>> e1 = *(Q.begin());
        Q.erase(Q.begin());
        spt[e1.second.second] = make_pair(e1.second.first,weight[e1.second]);
        treeadj[e1.second.first].push_back(make_pair(e1.second.second,e1.first));
        vector<int> desc_end_e1;
        descendants(e1.second.second,desc_end_e1,treeadj);
        for(auto &i:desc_end_e1) {
            dist[i] = dist[i] + e1.first;
            M.erase(i);
        }
        for(auto &i:Q) {
            if(find(desc_end_e1.begin(), desc_end_e1.end(), i.second.second) != desc_end_e1.end())
                Q.erase(i);
        }

        for(auto &i:desc_end_e1) {
            for(auto &j: M) {
                if(M.find(i) == M.end() && find(desc_end_e1.begin(),desc_end_e1.end(),j) == desc_end_e1.end() && weight.find(make_pair(i,j)) != weight.end()) {
                    int min_inc = dist[i] + weight[make_pair(i,j)] - dist[j];
                    if(min_inc < M_inc[j]) {
                        M_inc[j] = min_inc;
                        Q.insert(make_pair(min_inc,make_pair(i,j)));
                    }
                }
            }
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x600, %rsp            # imm = 0x600
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x3a0(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x20280
leaq -0x80(%rbp), %rdi
callq 0xae70
movq -0x398(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0xa7c0
movb %dl, -0x389(%rbp)
movq %rax, -0x388(%rbp)
jmp 0x1df2f
movb -0x389(%rbp), %al
movq -0x388(%rbp), %rcx
movq %rcx, -0xa0(%rbp)
movb %al, -0x98(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0x3ac(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3690
movq %rax, -0x3a8(%rbp)
jmp 0x1df68
movq -0x3a8(%rbp), %rax
movl -0x3ac(%rbp), %ecx
movl %ecx, (%rax)
leaq -0xd0(%rbp), %rdi
callq 0x202a0
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq %rax, -0x3b8(%rbp)
jmp 0x1df99
movq -0x3b8(%rbp), %rax
movq %rax, -0xe8(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x20300
movl %edx, -0x3c4(%rbp)
movq %rax, -0x3c0(%rbp)
jmp 0x1dfc6
movl -0x3c4(%rbp), %eax
movq -0x3c0(%rbp), %rcx
movq %rcx, -0xf8(%rbp)
movl %eax, -0xf0(%rbp)
movl -0xf0(%rbp), %eax
movl %eax, -0xd8(%rbp)
movq -0xf8(%rbp), %rax
movq %rax, -0xe0(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x202c0
movq %rax, -0x3d0(%rbp)
jmp 0x1e016
movq -0x3a0(%rbp), %rdi
movq -0x3d0(%rbp), %rax
movq %rax, -0x100(%rbp)
addq $0xe0, %rdi
callq 0x1af90
movq %rax, %rcx
movq %rcx, %rax
movq %rax, -0x3e0(%rbp)
movq %rsp, %rdx
movq %rdx, -0x108(%rbp)
leaq (%rcx,%rcx,2), %rcx
leaq 0xf(,%rcx,8), %rdx
andq $-0x10, %rdx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x3d8(%rbp)
movq %rcx, %rsp
movq %rax, -0x110(%rbp)
cmpq $0x0, %rax
je 0x1e0d2
movq -0x3d8(%rbp), %rax
movq -0x3e0(%rbp), %rcx
imulq $0x18, %rcx, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, -0x3f0(%rbp)
movq %rax, -0x3e8(%rbp)
movq -0x3e8(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x1a3d0
movq -0x3f8(%rbp), %rax
movq -0x3f0(%rbp), %rcx
addq $0x18, %rax
cmpq %rcx, %rax
movq %rax, -0x3e8(%rbp)
jne 0x1e0a1
movl $0x0, -0x118(%rbp)
movq -0x3a0(%rbp), %rdi
movslq -0x118(%rbp), %rax
movq %rax, -0x400(%rbp)
addq $0xe0, %rdi
callq 0x1af90
movq %rax, %rcx
movq -0x400(%rbp), %rax
cmpq %rcx, %rax
jae 0x1e22c
movq -0x3a0(%rbp), %rdi
addq $0xe0, %rdi
movslq -0x118(%rbp), %rsi
callq 0x20150
cmpl $-0x1, (%rax)
jne 0x1e16e
movl -0x118(%rbp), %eax
movl %eax, -0x114(%rbp)
jmp 0x1e216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x1f09e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x1f092
movq -0x3a0(%rbp), %rdi
addq $0xe0, %rdi
movq %rdi, -0x418(%rbp)
movslq -0x118(%rbp), %rsi
callq 0x20150
movq -0x418(%rbp), %rdi
movq %rax, %rcx
movq -0x3d8(%rbp), %rax
movslq (%rcx), %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rax,%rcx,8), %rax
movq %rax, -0x410(%rbp)
movslq -0x118(%rbp), %rsi
callq 0x20150
movq %rax, %rsi
addq $0x4, %rsi
leaq -0x118(%rbp), %rdi
callq 0x3520
movq %rax, -0x408(%rbp)
jmp 0x1e1da
movq -0x410(%rbp), %rdi
movq -0x408(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x120(%rbp), %rsi
callq 0x14b80
jmp 0x1e1fd
jmp 0x1e216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x1f03b
jmp 0x1e218
movl -0x118(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x118(%rbp)
jmp 0x1e0dc
leaq -0x138(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x1fe30
movq -0x3a0(%rbp), %rdi
movq -0x420(%rbp), %rdx
movq -0x3d8(%rbp), %rcx
movl -0x10(%rbp), %esi
callq 0x1fd40
jmp 0x1e25e
leaq -0x138(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rdi
callq 0x1fff0
movq %rax, -0x148(%rbp)
movq -0x140(%rbp), %rdi
callq 0x20020
movq %rax, -0x150(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x20170
testb $0x1, %al
jne 0x1e2ae
jmp 0x1e76b
leaq -0x148(%rbp), %rdi
callq 0x201b0
movq %rax, -0x158(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0x15c(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq %rax, -0x428(%rbp)
jmp 0x1e2e0
movq -0x3a0(%rbp), %rdi
movq -0x428(%rbp), %rax
movq %rax, -0x164(%rbp)
addq $0xa8, %rdi
movq -0x158(%rbp), %rsi
callq 0x1fe50
movq %rax, -0x430(%rbp)
jmp 0x1e311
movq -0x430(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rdi
callq 0x1fff0
movq %rax, -0x178(%rbp)
movq -0x170(%rbp), %rdi
callq 0x20020
movq %rax, -0x180(%rbp)
leaq -0x178(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x20170
testb $0x1, %al
jne 0x1e361
jmp 0x1e55c
leaq -0x178(%rbp), %rdi
callq 0x201b0
movq %rax, -0x188(%rbp)
leaq -0x138(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x1fff0
movq -0x440(%rbp), %rdi
movq %rax, -0x198(%rbp)
callq 0x20020
movq %rax, -0x1a0(%rbp)
movq -0x188(%rbp), %rdx
movq -0x198(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
callq 0x20380
movq %rax, -0x438(%rbp)
jmp 0x1e3c4
movq -0x438(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x20020
movq %rax, -0x1a8(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x20340
testb $0x1, %al
jne 0x1e401
jmp 0x1e549
movq -0x3a0(%rbp), %rdi
addq $0xf8, %rdi
movq -0x188(%rbp), %rax
movslq (%rax), %rsi
callq 0x15120
movq %rax, %rcx
movq -0x3a0(%rbp), %rax
movl (%rcx), %ecx
movl %ecx, -0x454(%rbp)
addq $0x8, %rax
movq %rax, -0x450(%rbp)
movq -0x188(%rbp), %rdi
movq -0x158(%rbp), %rsi
callq 0x3520
movq %rax, -0x448(%rbp)
jmp 0x1e457
movq -0x450(%rbp), %rdi
movq -0x448(%rbp), %rax
movq %rax, -0x1b4(%rbp)
leaq -0x1b4(%rbp), %rsi
callq 0x14aa0
movq %rax, -0x460(%rbp)
jmp 0x1e481
movq -0x3a0(%rbp), %rdi
movl -0x454(%rbp), %eax
movq -0x460(%rbp), %rcx
movl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x46c(%rbp)
addq $0xf8, %rdi
movq -0x158(%rbp), %rax
movslq (%rax), %rsi
callq 0x15120
movq %rax, %rcx
movl -0x46c(%rbp), %eax
movl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x1ac(%rbp)
leaq -0x1ac(%rbp), %rdi
leaq -0x15c(%rbp), %rsi
callq 0x203d0
movq %rax, -0x468(%rbp)
jmp 0x1e4e4
movq -0x468(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x15c(%rbp)
movq -0x158(%rbp), %rdi
movq -0x188(%rbp), %rsi
callq 0x3520
movq %rax, -0x478(%rbp)
jmp 0x1e50f
movq -0x478(%rbp), %rax
movq %rax, -0x1bc(%rbp)
leaq -0x164(%rbp), %rdi
leaq -0x1bc(%rbp), %rsi
callq 0x1cec0
jmp 0x1e549
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x1f02f
jmp 0x1e54b
leaq -0x178(%rbp), %rdi
callq 0x201d0
jmp 0x1e345
movl -0x15c(%rbp), %eax
movl %eax, -0x484(%rbp)
movq -0x158(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3690
movq %rax, -0x480(%rbp)
jmp 0x1e581
movl -0x484(%rbp), %eax
movq -0x480(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x1e64a
leaq -0x15c(%rbp), %rdi
leaq -0x164(%rbp), %rsi
callq 0x20410
movl %edx, -0x494(%rbp)
movq %rax, -0x490(%rbp)
jmp 0x1e5b8
movl -0x494(%rbp), %eax
movq -0x490(%rbp), %rcx
movq %rcx, -0x1d8(%rbp)
movl %eax, -0x1d0(%rbp)
movl -0x1d0(%rbp), %eax
movl %eax, -0x1c0(%rbp)
movq -0x1d8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x202c0
movq %rax, -0x4a0(%rbp)
jmp 0x1e608
movq -0x4a0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movl -0x15c(%rbp), %eax
movl %eax, -0x4ac(%rbp)
movq -0x158(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3690
movq %rax, -0x4a8(%rbp)
jmp 0x1e63b
movq -0x4a8(%rbp), %rax
movl -0x4ac(%rbp), %ecx
movl %ecx, (%rax)
movq -0x3d8(%rbp), %rax
movq -0x158(%rbp), %rcx
movslq (%rcx), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rdi
callq 0x15280
movq %rax, -0x1f0(%rbp)
movq -0x1e8(%rbp), %rdi
callq 0x152b0
movq %rax, -0x1f8(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x152e0
testb $0x1, %al
jne 0x1e6ab
jmp 0x1e758
leaq -0x1f0(%rbp), %rdi
callq 0x15320
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0xa7c0
movb %dl, -0x4b9(%rbp)
movq %rax, -0x4b8(%rbp)
jmp 0x1e6dd
movb -0x4b9(%rbp), %al
movq -0x4b8(%rbp), %rcx
movq %rcx, -0x210(%rbp)
movb %al, -0x208(%rbp)
movq -0x158(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3690
movq %rax, -0x4c8(%rbp)
jmp 0x1e710
movq -0x4c8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x4d4(%rbp)
movq -0x200(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3690
movq %rax, -0x4d0(%rbp)
jmp 0x1e738
movq -0x4d0(%rbp), %rax
movl -0x4d4(%rbp), %ecx
movl %ecx, (%rax)
leaq -0x1f0(%rbp), %rdi
callq 0x15370
jmp 0x1e68f
jmp 0x1e75a
leaq -0x148(%rbp), %rdi
callq 0x201d0
jmp 0x1e292
jmp 0x1e76d
leaq -0xd0(%rbp), %rdi
callq 0x20450
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e784
jmp 0x1efa1
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x20470
movq %rax, -0x228(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x204a0
movq -0x4e8(%rbp), %rdi
movl 0x8(%rax), %ecx
movl %ecx, -0x218(%rbp)
movq (%rax), %rax
movq %rax, -0x220(%rbp)
callq 0x20470
movq -0x4e8(%rbp), %rdi
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rsi
callq 0x204c0
movq %rax, -0x4e0(%rbp)
jmp 0x1e7ec
movq -0x3a0(%rbp), %rdi
movq -0x4e0(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq -0x21c(%rbp), %rsi
movq %rsi, -0x4f8(%rbp)
addq $0x8, %rdi
callq 0x20500
movq %rax, -0x4f0(%rbp)
jmp 0x1e821
movq -0x4f0(%rbp), %rsi
movq -0x4f8(%rbp), %rdi
callq 0x3520
movq %rax, -0x500(%rbp)
jmp 0x1e83d
movq -0x3a0(%rbp), %rdi
movq -0x500(%rbp), %rax
movq %rax, -0x240(%rbp)
addq $0xe0, %rdi
leaq -0x218(%rbp), %rax
movq %rax, -0x518(%rbp)
movslq -0x218(%rbp), %rsi
callq 0x20150
movq %rax, %rdi
leaq -0x240(%rbp), %rsi
callq 0x1cec0
movq -0x518(%rbp), %rdi
movq -0x3d8(%rbp), %rax
movslq -0x21c(%rbp), %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rax,%rcx,8), %rax
movq %rax, -0x510(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x3520
movq %rax, -0x508(%rbp)
jmp 0x1e8bb
movq -0x510(%rbp), %rdi
movq -0x508(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x248(%rbp), %rsi
callq 0x14b80
jmp 0x1e8de
leaq -0x260(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x1fe30
movq -0x3a0(%rbp), %rdi
movq -0x520(%rbp), %rdx
movq -0x3d8(%rbp), %rcx
movl -0x218(%rbp), %esi
callq 0x1fd40
jmp 0x1e913
leaq -0x260(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x268(%rbp), %rdi
callq 0x1fff0
movq %rax, -0x270(%rbp)
movq -0x268(%rbp), %rdi
callq 0x20020
movq %rax, -0x278(%rbp)
leaq -0x270(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x20170
testb $0x1, %al
jne 0x1e963
jmp 0x1ea10
leaq -0x270(%rbp), %rdi
callq 0x201b0
movq -0x3a0(%rbp), %rdi
movq %rax, -0x280(%rbp)
addq $0xf8, %rdi
movq %rdi, -0x530(%rbp)
movq -0x280(%rbp), %rax
movslq (%rax), %rsi
callq 0x15120
movq -0x530(%rbp), %rdi
movl (%rax), %eax
movl -0x220(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x524(%rbp)
movq -0x280(%rbp), %rax
movslq (%rax), %rsi
callq 0x15120
movl -0x524(%rbp), %ecx
movl %ecx, (%rax)
movq -0x280(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x20530
jmp 0x1e9da
jmp 0x1e9dc
leaq -0x270(%rbp), %rdi
callq 0x201d0
jmp 0x1e947
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x154a0
jmp 0x1f02f
leaq -0xd0(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x288(%rbp), %rdi
callq 0x20470
movq %rax, -0x290(%rbp)
movq -0x288(%rbp), %rdi
callq 0x20560
movq %rax, -0x298(%rbp)
leaq -0x290(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x20590
testb $0x1, %al
jne 0x1ea60
jmp 0x1eb2b
leaq -0x290(%rbp), %rdi
callq 0x204a0
movq %rax, -0x2a0(%rbp)
leaq -0x260(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x1fff0
movq -0x540(%rbp), %rdi
movq %rax, -0x2b0(%rbp)
callq 0x20020
movq %rax, -0x2b8(%rbp)
movq -0x2a0(%rbp), %rdx
addq $0x8, %rdx
movq -0x2b0(%rbp), %rdi
movq -0x2b8(%rbp), %rsi
callq 0x20380
movq %rax, -0x538(%rbp)
jmp 0x1eac7
movq -0x538(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x20020
movq %rax, -0x2c0(%rbp)
leaq -0x2a8(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x20170
testb $0x1, %al
jne 0x1eb01
jmp 0x1eb18
movq -0x2a0(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x205c0
jmp 0x1eb16
jmp 0x1eb18
jmp 0x1eb1a
leaq -0x290(%rbp), %rdi
callq 0x205f0
jmp 0x1ea44
leaq -0x260(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0x2c8(%rbp), %rdi
callq 0x1fff0
movq %rax, -0x2d0(%rbp)
movq -0x2c8(%rbp), %rdi
callq 0x20020
movq %rax, -0x2d8(%rbp)
leaq -0x2d0(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x20170
testb $0x1, %al
jne 0x1eb7b
jmp 0x1ef90
leaq -0x2d0(%rbp), %rdi
callq 0x201b0
movq %rax, -0x2e0(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x2e8(%rbp)
movq -0x2e8(%rbp), %rdi
callq 0x20620
movq %rax, -0x2f0(%rbp)
movq -0x2e8(%rbp), %rdi
callq 0x20650
movq %rax, -0x2f8(%rbp)
leaq -0x2f0(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x20680
testb $0x1, %al
jne 0x1ebdb
jmp 0x1ef7d
leaq -0x2f0(%rbp), %rdi
callq 0x12fb0
movq %rax, -0x300(%rbp)
movq -0x2e0(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x206b0
movq %rax, -0x548(%rbp)
jmp 0x1ec07
movq -0x548(%rbp), %rax
movq %rax, -0x308(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x20650
movq %rax, -0x310(%rbp)
leaq -0x308(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x12fd0
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x549(%rbp)
jne 0x1ec4c
jmp 0x1ed7a
leaq -0x260(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x1fff0
movq -0x560(%rbp), %rdi
movq %rax, -0x320(%rbp)
callq 0x20020
movq %rax, -0x328(%rbp)
movq -0x300(%rbp), %rdx
movq -0x320(%rbp), %rdi
movq -0x328(%rbp), %rsi
callq 0x20380
movq %rax, -0x558(%rbp)
jmp 0x1ec9c
movq -0x558(%rbp), %rax
movq %rax, -0x318(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x20020
movq %rax, -0x330(%rbp)
leaq -0x318(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x20340
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x549(%rbp)
jne 0x1ece4
jmp 0x1ed7a
movq -0x3a0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x570(%rbp)
movq -0x2e0(%rbp), %rdi
movq -0x300(%rbp), %rsi
callq 0x20720
movq %rax, -0x568(%rbp)
jmp 0x1ed12
movq -0x570(%rbp), %rdi
movq -0x568(%rbp), %rax
movq %rax, -0x340(%rbp)
leaq -0x340(%rbp), %rsi
callq 0x20220
movq %rax, -0x578(%rbp)
jmp 0x1ed3c
movq -0x3a0(%rbp), %rdi
movq -0x578(%rbp), %rax
movq %rax, -0x338(%rbp)
addq $0x8, %rdi
callq 0x20250
movq %rax, -0x348(%rbp)
leaq -0x338(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x206f0
movb %al, -0x549(%rbp)
movb -0x549(%rbp), %al
testb $0x1, %al
jne 0x1ed89
jmp 0x1ef6a
movq -0x3a0(%rbp), %rdi
addq $0xf8, %rdi
movq -0x2e0(%rbp), %rax
movslq (%rax), %rsi
callq 0x15120
movq %rax, %rcx
movq -0x3a0(%rbp), %rax
movl (%rcx), %ecx
movl %ecx, -0x58c(%rbp)
addq $0x8, %rax
movq %rax, -0x588(%rbp)
movq -0x2e0(%rbp), %rdi
movq -0x300(%rbp), %rsi
callq 0x20720
movq %rax, -0x580(%rbp)
jmp 0x1eddf
movq -0x588(%rbp), %rdi
movq -0x580(%rbp), %rax
movq %rax, -0x354(%rbp)
leaq -0x354(%rbp), %rsi
callq 0x14aa0
movq %rax, -0x598(%rbp)
jmp 0x1ee09
movq -0x3a0(%rbp), %rdi
movl -0x58c(%rbp), %eax
movq -0x598(%rbp), %rcx
movl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x5a8(%rbp)
addq $0xf8, %rdi
movq -0x300(%rbp), %rax
movslq (%rax), %rsi
callq 0x15120
movq %rax, %rcx
movl -0x5a8(%rbp), %eax
movl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x34c(%rbp)
movl -0x34c(%rbp), %eax
movl %eax, -0x5a4(%rbp)
movq -0x300(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3690
movq %rax, -0x5a0(%rbp)
jmp 0x1ee75
movl -0x5a4(%rbp), %eax
movq -0x5a0(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x1ef68
movl -0x34c(%rbp), %eax
movl %eax, -0x5b4(%rbp)
movq -0x300(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x3690
movq %rax, -0x5b0(%rbp)
jmp 0x1eeaf
movq -0x5b0(%rbp), %rax
movl -0x5b4(%rbp), %ecx
movl %ecx, (%rax)
movq -0x2e0(%rbp), %rdi
movq -0x300(%rbp), %rsi
callq 0x20720
movq %rax, -0x5c0(%rbp)
jmp 0x1eeda
movq -0x5c0(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq -0x34c(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x20300
movl %edx, -0x5cc(%rbp)
movq %rax, -0x5c8(%rbp)
jmp 0x1ef0a
movl -0x5cc(%rbp), %eax
movq -0x5c8(%rbp), %rcx
movq %rcx, -0x378(%rbp)
movl %eax, -0x370(%rbp)
movl -0x370(%rbp), %eax
movl %eax, -0x358(%rbp)
movq -0x378(%rbp), %rax
movq %rax, -0x360(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x202c0
movq %rax, -0x5d8(%rbp)
jmp 0x1ef5a
movq -0x5d8(%rbp), %rax
movq %rax, -0x380(%rbp)
jmp 0x1ef6a
jmp 0x1ef6c
leaq -0x2f0(%rbp), %rdi
callq 0x129c0
jmp 0x1ebbf
jmp 0x1ef7f
leaq -0x2d0(%rbp), %rdi
callq 0x201d0
jmp 0x1eb5f
leaq -0x260(%rbp), %rdi
callq 0x154a0
jmp 0x1e76d
leaq -0x138(%rbp), %rdi
callq 0x154a0
movq -0x3e0(%rbp), %rax
movq -0x3d8(%rbp), %rcx
imulq $0x18, %rax, %rdx
movq %rcx, %rax
addq %rdx, %rax
cmpq %rax, %rcx
movq %rax, -0x5e0(%rbp)
je 0x1f002
movq -0x5e0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x16330
movq -0x3d8(%rbp), %rcx
movq -0x5e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5e0(%rbp)
jne 0x1efd1
movq -0x108(%rbp), %rax
movq %rax, %rsp
leaq -0xd0(%rbp), %rdi
callq 0x20750
leaq -0x80(%rbp), %rdi
callq 0xb3c0
leaq -0x48(%rbp), %rdi
callq 0x20770
movq %rbp, %rsp
popq %rbp
retq
leaq -0x138(%rbp), %rdi
callq 0x154a0
movq -0x3d8(%rbp), %rcx
movq -0x3e0(%rbp), %rax
imulq $0x18, %rax, %rdx
movq %rcx, %rax
addq %rdx, %rax
cmpq %rax, %rcx
movq %rax, -0x5f0(%rbp)
je 0x1f090
movq -0x5f0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x16330
movq -0x3d8(%rbp), %rcx
movq -0x5f8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5f0(%rbp)
jne 0x1f05f
jmp 0x1f092
leaq -0xd0(%rbp), %rdi
callq 0x20750
leaq -0x80(%rbp), %rdi
callq 0xb3c0
leaq -0x48(%rbp), %rdi
callq 0x20770
movq -0x88(%rbp), %rdi
callq 0x2250
nopl (%rax)