Function at 0x515998
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2e
push 0
push 0
dec ecx
jne 0x5159a0
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x516792
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.00516938
mov dl, 1
mov eax, dword [0x41adf8]
call fcn.00403ec0
mov dword [ebp - 0x20], eax
mov dl, 1
mov eax, dword [0x41adf8]
call fcn.00403ec0
mov dword [ebp - 0x24], eax
mov dl, 1
mov eax, dword [0x41adf8]
call fcn.00403ec0
mov dword [ebp - 0x28], eax
mov dl, 1
mov eax, dword [0x41adf8]
call fcn.00403ec0
mov dword [ebp - 0x2c], eax
mov eax, 0xff
call fcn.0040b4d0
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x516765
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5cf3f0]
cmp byte [eax], 0
je 0x515a37
lea eax, [ebp - 4]
mov edx, 0x5167a8
call fcn.00404ec8
jmp 0x515a44
lea eax, [ebp - 4]
mov edx, 0x5167d0
call fcn.00404ec8
call fcn.004af4a0
mov esi, eax
mov eax, dword [0x5cf3f0]
cmp byte [eax], 0
je 0x516253
mov edx, 0x80000002
mov eax, esi
call fcn.0042b3f8
mov edx, 0x5167a8
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x516728
mov edx, dword [ebp - 0x20]
mov eax, esi
call fcn.0042ba10
mov eax, esi
call fcn.0042b3c8
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x516728
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], 0
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0x68]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x68]
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.004051e0
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x516242
mov edx, dword [ebp - 0x24]
mov eax, esi
call fcn.0042ba10
mov eax, esi
call fcn.0042b3c8
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x516242
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], 0
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0x70]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x70]
push 0x5167e0
lea ecx, [ebp - 0x74]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x74]
lea eax, [ebp - 0x6c]
mov edx, 5
call fcn.004051e0
mov edx, dword [ebp - 0x6c]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x516236
mov edx, dword [ebp - 0x28]
mov eax, esi
call fcn.0042ba10
mov eax, esi
call fcn.0042b3c8
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x516236
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], 0
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0x7c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x7c]
push 0x5167e0
lea ecx, [ebp - 0x80]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x80]
push 0x5167e0
lea ecx, [ebp - 0x84]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x84]
lea eax, [ebp - 0x78]
mov edx, 7
call fcn.004051e0
mov edx, dword [ebp - 0x78]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x51622a
mov eax, dword [ebp - 8]
cmp byte [eax + 0xf0], 0
je 0x515c18
mov edx, 0x5167ec
mov eax, esi
call fcn.0042bf18
test al, al
je 0x51622a
mov edx, dword [0x513a30]
mov eax, 0x90
call fcn.0040601c
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ebx, eax
lea ecx, [ebp - 0x8c]
mov edx, 0x5167fc
mov eax, esi
call fcn.0042bc70
mov eax, dword [ebp - 0x8c]
lea edx, [ebp - 0x88]
call fcn.00409ae4
mov edx, dword [ebp - 0x88]
lea eax, [ebx + 0x18]
call fcn.00404e84
lea ecx, [ebp - 0x90]
mov edx, 0x516810
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x90]
lea eax, [ebx + 0x10]
call fcn.00404e84
mov edx, dword [ebx + 0x10]
mov eax, 0x516828
call fcn.00405428
test eax, eax
jle 0x515cb3
lea eax, [ebx + 0x10]
push eax
mov edx, dword [ebx + 0x10]
mov eax, 0x516828
call fcn.00405428
mov edx, eax
inc edx
mov eax, dword [ebx + 0x10]
mov ecx, 0x400
call fcn.00405344
lea ecx, [ebp - 0x94]
mov edx, 0x516834
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x94]
lea eax, [ebx + 0x14]
call fcn.00404e84
mov edx, dword [ebx + 0x14]
mov eax, 0x516828
call fcn.00405428
test eax, eax
jle 0x515d05
lea eax, [ebx + 0x14]
push eax
mov edx, dword [ebx + 0x14]
mov eax, 0x516828
call fcn.00405428
mov edx, eax
inc edx
mov eax, dword [ebx + 0x14]
mov ecx, 0x400
call fcn.00405344
lea edx, [ebp - 0x98]
mov eax, dword [ebx + 0x10]
call fcn.00409ec8
cmp dword [ebp - 0x98], 0
jne 0x515d28
mov eax, ebx
mov edx, dword [ebx + 0x14]
call fcn.00404e84
jmp 0x515d32
mov eax, ebx
mov edx, dword [ebx + 0x10]
call fcn.00404e84
lea ecx, [ebp - 0x9c]
mov edx, 0x516848
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x9c]
lea eax, [ebx + 0x1c]
call fcn.00404e84
mov edx, dword [ebx + 0x1c]
mov eax, 0x516828
call fcn.00405428
test eax, eax
jle 0x515d84
lea eax, [ebx + 0x1c]
push eax
mov edx, dword [ebx + 0x1c]
mov eax, 0x516828
call fcn.00405428
mov edx, eax
inc edx
mov eax, dword [ebx + 0x1c]
mov ecx, 0x400
call fcn.00405344
lea ecx, [ebp - 0xa0]
mov edx, 0x516854
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0xa0]
lea eax, [ebx + 0x54]
call fcn.00404e84
lea ecx, [ebp - 0xa4]
mov edx, 0x516864
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0xa4]
lea eax, [ebx + 0x20]
call fcn.00404e84
lea eax, [ebx + 0x2c]
push eax
lea ecx, [ebx + 0x28]
lea edx, [ebx + 0x24]
mov eax, dword [ebx + 0x20]
call fcn.00513dd0
cmp dword [ebx + 0x20], 0
jne 0x515e02
lea eax, [ebx + 0x60]
push eax
lea ecx, [ebp - 0xa8]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0xa8]
lea ecx, [ebx + 0x5c]
lea edx, [ebx + 0x20]
call fcn.005153a8
lea eax, [ebx + 0xc]
push eax
lea ecx, [ebx + 8]
lea edx, [ebx + 4]
mov eax, dword [ebx + 0x18]
call fcn.00514ec4
cmp dword [ebx + 4], 0
jne 0x515e3a
lea ecx, [ebp - 0xac]
mov edx, 0x516880
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0xac]
lea eax, [ebx + 4]
call fcn.00404e84
lea ecx, [ebp - 0xb0]
mov edx, 0x516890
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0xb0]
lea eax, [ebx + 0x40]
call fcn.00404e84
lea eax, [ebx + 0x4c]
push eax
lea eax, [ebx + 0x50]
push eax
lea ecx, [ebx + 0x48]
lea edx, [ebx + 0x44]
mov eax, dword [ebx + 0x40]
call fcn.00515178
lea eax, [ebx + 0x60]
push eax
lea ecx, [ebx + 0x5c]
lea edx, [ebx + 0x58]
mov eax, dword [ebx + 0x54]
call fcn.005153a8
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0xb4]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xb4]
push 0x5167e0
lea ecx, [ebp - 0xb8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xb8]
push 0x5167e0
lea ecx, [ebp - 0xbc]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xbc]
lea eax, [ebx + 0x64]
mov edx, 7
call fcn.004051e0
lea ecx, [ebp - 0xc0]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0xc0]
lea eax, [ebx + 0x38]
call fcn.00404e84
push 0
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0xcc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xcc]
push 0x5167e0
lea ecx, [ebp - 0xd0]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xd0]
push 0x5167e0
lea ecx, [ebp - 0xd4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xd4]
lea eax, [ebp - 0xc8]
mov edx, 7
call fcn.004051e0
mov edx, dword [ebp - 0xc8]
mov ecx, 0x5168a0
mov eax, 0x80000002
call fcn.004af58c
mov edx, dword [ebp - 0xc4]
lea eax, [ebx + 0x30]
call fcn.00404e84
lea eax, [ebx + 0x7c]
push eax
lea eax, [ebx + 0x80]
push eax
lea ecx, [ebx + 0x78]
lea edx, [ebx + 0x74]
mov eax, dword [ebx + 0x30]
call fcn.005157a8
lea ecx, [ebx + 0x6c]
lea edx, [ebx + 0x68]
mov eax, dword [ebx + 0x64]
call fcn.00515510
lea ecx, [ebp - 0xd8]
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x30]
call fcn.00514b20
mov edx, dword [ebp - 0xd8]
lea eax, [ebx + 0x34]
call fcn.00404e84
mov eax, esi
call fcn.0042b3c8
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0xe0]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xe0]
push 0x5167e0
lea ecx, [ebp - 0xe4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xe4]
push 0x5167e0
lea ecx, [ebp - 0xe8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xe8]
push 0x5167e0
push 0x5167ec
lea eax, [ebp - 0xdc]
mov edx, 9
call fcn.004051e0
mov edx, dword [ebp - 0xdc]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x5160af
lea edx, [ebp - 0x60]
mov eax, esi
call fcn.0042b9a8
xor edx, edx
lea eax, [ebp - 0x4c]
call fcn.004a99cc
fstp qword [ebx + 0x88]
wait
mov eax, dword [ebp - 8]
cmp byte [eax + 0xe0], 0
je 0x5160a8
push dword [ebx + 0x8c]
push dword [ebx + 0x88]
call fcn.004a86e0
fstp qword [ebx + 0x88]
wait
mov eax, esi
call fcn.0042b3c8
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0xf0]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xf0]
push 0x5167e0
lea ecx, [ebp - 0xf4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xf4]
push 0x5167e0
lea ecx, [ebp - 0xf8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0xf8]
push 0x5167e0
push 0x5168b4
lea eax, [ebp - 0xec]
mov edx, 9
call fcn.004051e0
mov edx, dword [ebp - 0xec]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x5161dc
mov edx, dword [ebp - 0x2c]
mov eax, esi
call fcn.0042bad8
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x5161d5
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0xfc]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
cmp dword [ebp - 0xfc], 0
je 0x5161cd
lea ecx, [ebp - 0x100]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x100]
mov eax, esi
call fcn.0042bc18
cmp al, 1
jne 0x5161cd
lea ecx, [ebp - 0x108]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x108]
lea ecx, [ebp - 0x104]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x104]
lea eax, [ebx + 0x3c]
call fcn.00404e84
jmp 0x5161d5
inc dword [ebp - 0x1c]
dec dword [ebp - 0x44]
jne 0x51615d
mov eax, esi
call fcn.0042b3c8
lea edx, [ebp - 0x10c]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call fcn.00409ec8
cmp dword [ebp - 0x10c], 0
je 0x51621c
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call fcn.00513c48
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x70], al
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x51622a
mov edx, dword [0x513a30]
mov eax, dword [ebp - 0x30]
call fcn.00406030
inc dword [ebp - 0x18]
dec dword [ebp - 0x40]
jne 0x515b8c
inc dword [ebp - 0x14]
dec dword [ebp - 0x3c]
jne 0x515b0f
inc dword [ebp - 0x10]
dec dword [ebp - 0x38]
jne 0x515aa8
jmp 0x516728
mov edx, 0x80000006
mov eax, esi
call fcn.0042b3f8
xor ecx, ecx
mov edx, 0x5168d0
mov eax, esi
call fcn.0042b53c
test al, al
je 0x516307
mov edx, dword [ebp - 0x20]
mov eax, esi
call fcn.0042ba10
mov eax, esi
call fcn.0042b3c8
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x516307
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x114]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ecx, dword [ebp - 0x114]
lea eax, [ebp - 0x110]
mov edx, 0x5168f0
call fcn.00405164
mov edx, dword [ebp - 0x110]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x5162ff
lea ecx, [ebp - 0x118]
mov edx, 0x516910
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, esi
call fcn.0042b3c8
inc dword [ebp - 0x10]
dec dword [ebp - 0x38]
jne 0x51629e
mov edx, 0x80000002
mov eax, esi
call fcn.0042b3f8
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x516728
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x120]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0x11c]
call fcn.00409ae4
mov edx, dword [ebp - 0x11c]
mov eax, 0x516924
call fcn.00405428
test eax, eax
jne 0x51671c
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x128]
lea eax, [ebp - 0x124]
mov edx, 3
call fcn.004051e0
mov edx, dword [ebp - 0x124]
xor ecx, ecx
mov eax, esi
call fcn.0042b53c
test al, al
je 0x51671c
mov edx, dword [ebp - 0x2c]
mov eax, esi
call fcn.0042ba10
mov edx, dword [0x513a30]
mov eax, 0x90
call fcn.0040601c
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ebx, eax
mov edx, 0x5167fc
lea ecx, [ebp - 0x130]
mov eax, esi
call fcn.0042bc70
mov eax, dword [ebp - 0x130]
lea edx, [ebp - 0x12c]
call fcn.00409ae4
mov edx, dword [ebp - 0x12c]
lea eax, [ebx + 0x18]
call fcn.00404e84
mov edx, 0x516810
lea ecx, [ebp - 0x134]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x134]
lea eax, [ebx + 0x10]
call fcn.00404e84
mov edx, 0x516834
lea ecx, [ebp - 0x138]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x138]
lea eax, [ebx + 0x14]
call fcn.00404e84
lea edx, [ebp - 0x13c]
mov eax, dword [ebx + 0x10]
call fcn.00409ec8
cmp dword [ebp - 0x13c], 0
jne 0x516465
mov eax, ebx
mov edx, dword [ebx + 0x14]
call fcn.00404e84
jmp 0x51646f
mov eax, ebx
mov edx, dword [ebx + 0x10]
call fcn.00404e84
mov edx, 0x516848
lea ecx, [ebp - 0x140]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x140]
lea eax, [ebx + 0x1c]
call fcn.00404e84
mov edx, 0x516854
lea ecx, [ebp - 0x144]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x144]
lea eax, [ebx + 0x54]
call fcn.00404e84
mov edx, 0x516864
lea ecx, [ebp - 0x148]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x148]
lea eax, [ebx + 0x20]
call fcn.00404e84
lea eax, [ebx + 0x2c]
push eax
lea ecx, [ebx + 0x28]
lea edx, [ebx + 0x24]
mov eax, dword [ebx + 0x20]
call fcn.00513dd0
cmp dword [ebx + 0x20], 0
jne 0x51650d
lea eax, [ebx + 0x60]
push eax
lea ecx, [ebp - 0x14c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x14c]
lea ecx, [ebx + 0x5c]
lea edx, [ebx + 0x20]
call fcn.005153a8
lea eax, [ebx + 0xc]
push eax
lea ecx, [ebx + 8]
lea edx, [ebx + 4]
mov eax, dword [ebx + 0x18]
call fcn.00514ec4
cmp dword [ebx + 4], 0
jne 0x516545
mov edx, 0x516880
lea ecx, [ebp - 0x150]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x150]
lea eax, [ebx + 4]
call fcn.00404e84
mov edx, 0x516890
lea ecx, [ebp - 0x154]
mov eax, esi
call fcn.0042bc70
mov edx, dword [ebp - 0x154]
lea eax, [ebx + 0x40]
call fcn.00404e84
lea eax, [ebx + 0x4c]
push eax
lea eax, [ebx + 0x50]
push eax
lea ecx, [ebx + 0x48]
lea edx, [ebx + 0x44]
mov eax, dword [ebx + 0x40]
call fcn.00515178
lea eax, [ebx + 0x60]
push eax
lea ecx, [ebx + 0x5c]
lea edx, [ebx + 0x58]
mov eax, dword [ebx + 0x54]
call fcn.005153a8
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0x158]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x158]
lea eax, [ebx + 0x64]
mov edx, 3
call fcn.004051e0
lea ecx, [ebp - 0x15c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x15c]
lea eax, [ebx + 0x38]
call fcn.00404e84
push 0
lea eax, [ebp - 0x160]
push eax
push dword [ebp - 4]
push 0x5167e0
lea ecx, [ebp - 0x168]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x168]
lea eax, [ebp - 0x164]
mov edx, 3
call fcn.004051e0
mov edx, dword [ebp - 0x164]
mov ecx, 0x5168a0
mov eax, 0x80000002
call fcn.004af58c
mov edx, dword [ebp - 0x160]
lea eax, [ebx + 0x30]
call fcn.00404e84
lea eax, [ebx + 0x7c]
push eax
lea eax, [ebx + 0x80]
push eax
lea ecx, [ebx + 0x78]
lea edx, [ebx + 0x74]
mov eax, dword [ebx + 0x30]
call fcn.005157a8
lea eax, [ebx + 0x34]
call fcn.00404e30
lea ecx, [ebx + 0x6c]
lea edx, [ebx + 0x68]
mov eax, dword [ebx + 0x64]
call fcn.00515768
lea edx, [ebp - 0x16c]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call fcn.00409ec8
cmp dword [ebp - 0x16c], 0
je 0x516707
mov eax, dword [ebp - 0x30]
push dword [eax + 4]
push 0x516934
mov eax, dword [ebp - 0x30]
push dword [eax + 0x14]
lea eax, [ebp - 0x170]
mov edx, 3
call fcn.004051e0
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jne 0x516707
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call fcn.00513c48
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x70], al
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x30]
push dword [eax + 4]
push 0x516934
mov eax, dword [ebp - 0x30]
push dword [eax + 0x14]
lea eax, [ebp - 0x174]
mov edx, 3
call fcn.004051e0
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x516715
mov edx, dword [0x513a30]
mov eax, dword [ebp - 0x30]
call fcn.00406030
mov eax, esi
call fcn.0042b3c8
inc dword [ebp - 0x10]
dec dword [ebp - 0x38]
jne 0x51632f
mov eax, esi
call fcn.00403ef0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51676c
mov eax, dword [ebp - 0x34]
call fcn.0040b51c
mov eax, dword [ebp - 0x20]
call fcn.00403ef0
mov eax, dword [ebp - 0x24]
call fcn.00403ef0
mov eax, dword [ebp - 0x28]
call fcn.00403ef0
mov eax, dword [ebp - 0x2c]
call fcn.00403ef0
ret