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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
push ebx
push esi
push edi
push dword [0x9f7e6c]
mov edi, dword [0x72a1d0]
mov esi, ecx
mov byte [ebp - 2], 0
call edi
test eax, eax
je 0x5984b9
cmp byte [eax], 0
je 0x5984bb
xor eax, eax
mov eax, dword [eax + 0x18c]
xor ecx, ecx
push dword [0x9f7e6c]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x20], eax
call edi
test eax, eax
je 0x5984e0
cmp byte [eax], 0
je 0x5984e2
xor eax, eax
mov eax, dword [eax + 0x18c]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], eax
lea ebx, [esi + 0x10]
cmp dword [esi + 0x3c], 0x46
jne 0x598556
mov eax, dword [esi + 0x30]
mov dword [esi + 0x3c], eax
cmp eax, 0x45
jne 0x598556
mov eax, dword [esi]
mov ecx, ebx
mov edi, dword [eax + 0x18c]
call fcn.00548a70
push eax
push edi
call fcn.004d37b0
add esp, 8
mov edi, eax
lea eax, [ebp - 0x58]
mov ecx, ebx
push eax
call fcn.00548b10
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x114]
push eax
push 0x72cc90
push dword [ebp - 0x58]
push esi
call fcn.005b1b00
add esp, 0x10
cmp dword [esi + 0x3c], 0x4e
je 0x59859b
mov eax, dword [esi]
lea ecx, [esi + 0x10]
mov ebx, dword [0x9fca8c]
mov edi, dword [eax + 0x18c]
call fcn.00548a70
push eax
push edi
call fcn.004d37b0
add esp, 8
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
jne 0x59920b
mov ecx, esi
call fcn.005913c0
cmp eax, 0x3a
jne 0x59920b
lea ebx, [esi + 0x10]
mov eax, dword [esi + 0x44]
mov edi, dword [eax + 4]
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x54
call fcn.004d0f20
add esp, 8
test eax, eax
je 0x5985c7
push dword [edi + 0x10]
mov ecx, eax
push dword [edi + 0xc]
push edi
call fcn.005ef190
jmp 0x5985c9
xor eax, eax
push eax
mov ecx, esi
call fcn.0058dad0
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00548b10
mov eax, dword [0x9f93c8]
lea ecx, [esi + 0x10]
mov ebx, dword [0x9fca8c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x54], eax
mov eax, dword [esi]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x50], 0
mov edi, dword [eax + 0x18c]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
call fcn.00548a70
push eax
push edi
call fcn.004d37b0
add esp, 8
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
jne 0x5986fe
mov ecx, esi
call fcn.005913c0
cmp eax, 0x3a
jne 0x5986fe
lea eax, [ebp - 0xb8]
push eax
lea ecx, [esi + 0x10]
call fcn.00548b10
lea ecx, [esi + 0x10]
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x598695
cmp byte [0x9fafc6], 0
je 0x598695
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
mov eax, dword [esi]
mov ecx, esi
push 4
push 0
mov edi, dword [eax + 0x18c]
call fcn.005af8d0
push edi
mov ebx, eax
call fcn.00518e30
mov edx, eax
add esp, 4
mov eax, dword [0x9f7dcc]
cmp ebx, eax
je 0x5986f0
mov dword [edx + 4], ebx
test bl, 1
jne 0x5986d3
mov ecx, dword [0x9fba00]
mov dword [edx], ecx
mov dword [ebp - 0x40], edx
jmp 0x598706
movzx eax, word [ebx + 1]
mov ecx, 0x27
cmp eax, 0x7e
mov dword [ebp - 0x40], edx
cmovae eax, ecx
mov eax, dword [eax*4 + 0x9fba08]
mov dword [edx], eax
jmp 0x598706
mov dword [edx + 4], eax
mov dword [edx], 0x954f00
mov dword [ebp - 0x40], edx
jmp 0x598706
mov eax, dword [0x9fbc8c]
mov dword [ebp - 0x40], eax
cmp dword [esi + 0x3c], 0x46
lea ebx, [esi + 0x10]
jne 0x59875c
mov eax, dword [esi + 0x30]
mov dword [esi + 0x3c], eax
cmp eax, 0x45
jne 0x59875c
mov eax, dword [esi]
mov ecx, ebx
mov edi, dword [eax + 0x18c]
call fcn.00548a70
push eax
push edi
call fcn.004d37b0
add esp, 8
mov edi, eax
lea eax, [ebp - 0x5c]
mov ecx, ebx
push eax
call fcn.00548b10
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x114]
push eax
push 0x72cc90
push dword [ebp - 0x5c]
push esi
call fcn.005b1b00
add esp, 0x10
cmp dword [esi + 0x3c], 0x4e
jne 0x59897b
lea eax, [ebp - 0xbc]
mov ecx, ebx
push eax
call fcn.00548b10
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x5987b3
cmp byte [0x9fafc6], 0
je 0x5987b3
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
mov ecx, esi
call fcn.005913c0
cmp eax, 1
je 0x5987d3
push dword [0x9f91e4]
push 0x96e798
push esi
call fcn.005b1aa0
add esp, 0xc
lea eax, [ebp - 0xc0]
mov ecx, ebx
push eax
call fcn.00548b10
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x598820
cmp byte [0x9fafc6], 0
je 0x598820
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
lea eax, [ebp - 0x68]
mov ecx, ebx
push eax
call fcn.00548b10
mov eax, dword [ebp - 0x68]
mov ecx, esi
push 0x96c5c0
mov dword [ebp - 0x44], eax
call fcn.005925d0
cmp dword [esi + 0x3c], 0x46
mov dword [ebp - 0x3c], eax
jne 0x598893
mov eax, dword [esi + 0x30]
mov dword [esi + 0x3c], eax
cmp eax, 0x45
jne 0x598893
mov eax, dword [esi]
mov ecx, ebx
mov edi, dword [eax + 0x18c]
call fcn.00548a70
push eax
push edi
call fcn.004d37b0
add esp, 8
mov edi, eax
lea eax, [ebp - 0x64]
mov ecx, ebx
push eax
call fcn.00548b10
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x114]
push eax
push 0x72cc90
push dword [ebp - 0x64]
push esi
call fcn.005b1b00
add esp, 0x10
cmp dword [esi + 0x3c], 0x1c
jne 0x59890e
lea eax, [ebp - 0xc4]
mov ecx, ebx
push eax
call fcn.00548b10
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x5988e6
cmp byte [0x9fafc6], 0
je 0x5988e6
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
mov eax, dword [0x9fbc8c]
mov ecx, ebx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00548b10
mov eax, dword [ebp - 0x60]
mov ecx, esi
push 0x96c5c0
mov dword [ebp - 0x54], eax
call fcn.005925d0
mov dword [ebp - 0x4c], eax
mov ecx, esi
call fcn.005913c0
cmp eax, 2
je 0x59892e
push dword [0x9f91e8]
push 0x96e798
push esi
call fcn.005b1aa0
add esp, 0xc
lea eax, [ebp - 0xc8]
mov ecx, ebx
push eax
call fcn.00548b10
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x59897b
cmp byte [0x9fafc6], 0
je 0x59897b
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
mov eax, dword [esi + 0x44]
mov edi, dword [eax + 4]
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x54
call fcn.004d0f20
add esp, 8
test eax, eax
je 0x5989a7
push dword [edi + 0x10]
mov ecx, eax
push dword [edi + 0xc]
push edi
call fcn.005ef190
jmp 0x5989a9
xor eax, eax
push eax
mov ecx, esi
call fcn.0058dad0
mov eax, dword [esi + 0x44]
mov ecx, esi
push dword [eax + 4]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0058b900
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x598a35
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x10
call fcn.004d0f20
mov edi, eax
add esp, 8
test edi, edi
je 0x598a27
mov ecx, dword [esi]
push dword [ecx + 0x18c]
push 0xc
call fcn.004d0f20
mov edx, eax
add esp, 8
test edx, edx
je 0x598a11
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x10]
mov dword [edx + 4], ecx
mov dword [edx], 0x95b2a0
mov dword [edx + 8], eax
jmp 0x598a13
xor edx, edx
mov eax, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov dword [edi], 0x959dbc
mov dword [edi + 8], ebx
mov dword [edi + 0xc], edx
jmp 0x598a29
xor edi, edi
mov ecx, dword [esi + 0x44]
push edi
mov ecx, dword [ecx + 8]
call fcn.004d14b0
mov ebx, dword [ebp - 0x48]
test ebx, ebx
je 0x598aaa
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x10
call fcn.004d0f20
mov edi, eax
add esp, 8
test edi, edi
je 0x598a9c
mov ecx, dword [esi]
push dword [ecx + 0x18c]
push 0xc
call fcn.004d0f20
mov edx, eax
add esp, 8
test edx, edx
je 0x598a86
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x14]
mov dword [edx + 4], ecx
mov dword [edx], 0x95b2a0
mov dword [edx + 8], eax
jmp 0x598a88
xor edx, edx
mov eax, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov dword [edi], 0x959dbc
mov dword [edi + 8], ebx
mov dword [edi + 0xc], edx
jmp 0x598a9e
xor edi, edi
mov ecx, dword [esi + 0x44]
push edi
mov ecx, dword [ecx + 8]
call fcn.004d14b0
mov ecx, esi
call fcn.005913c0
cmp eax, 5
je 0x598aca
push dword [0x9f91f4]
push 0x96e798
push esi
call fcn.005b1aa0
add esp, 0xc
mov eax, dword [esi + 0x44]
mov edi, dword [eax + 4]
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x54
call fcn.004d0f20
add esp, 8
test eax, eax
je 0x598af6
push dword [edi + 0x10]
mov ecx, eax
push dword [edi + 0xc]
push edi
call fcn.005ef190
jmp 0x598af8
xor eax, eax
push eax
mov ecx, esi
call fcn.0058dad0
mov ecx, esi
call fcn.005913c0
cmp eax, 5
jne 0x598bd6
lea eax, [ebp - 0xcc]
lea ebx, [esi + 0x10]
push eax
mov ecx, ebx
call fcn.00548b10
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x598b60
cmp byte [0x9fafc6], 0
je 0x598b60
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
mov ecx, esi
call fcn.005aa9d0
mov ecx, esi
call fcn.005913c0
cmp eax, 6
je 0x598b87
push dword [0x9f91f8]
push 0x96e798
push esi
call fcn.005b1aa0
add esp, 0xc
lea eax, [ebp - 0xd0]
mov ecx, ebx
push eax
call fcn.00548b10
mov ecx, ebx
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], 0x46
call fcn.0053d800
cmp byte [0x9fb117], 0
je 0x598c0d
cmp byte [0x9fafc6], 0
je 0x598c0d
mov eax, dword [esi]
push 0
push 1
mov eax, dword [eax + 0x3e8]
add eax, 0x248
push eax
call fcn.004fed00
add esp, 0xc
jmp 0x598c0d
inc dword [esi + 0x78]
cmp dword [esi + 0x78], 0x100
jle 0x598bf0
push 0x96c450
push esi
call fcn.005b1aa0
add esp, 8
mov ecx, esi
call fcn.005aa260
test eax, eax
je 0x598c07
mov ecx, dword [esi + 0x44]
push eax
mov ecx, dword [ecx + 8]
call fcn.004d14b0
dec dword [esi + 0x78]
lea ebx, [esi + 0x10]
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
test ecx, ecx
je 0x598c37
mov eax, dword [edi + 4]
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, ebx
call fcn.00548b10
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x6c]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0x44]
push edi
mov ecx, dword [eax]
mov dword [esi + 0x44], ecx
mov ecx, dword [ecx + 8]
call fcn.004d14b0
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x598c76
mov eax, dword [ebx + 4]
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [esi + 0x10]
call fcn.00548b10
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x2c]
jle 0x598d89
push eax
call fcn.00705050
mov edi, eax
add esp, 4
cmp edi, 0x1fffffff
jle 0x598cca
push 4
push edi
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0x956a88
push 0x956d3c
push eax
mov dword [ebp - 0x74], 0xdf
mov dword [ebp - 0x70], 0
call fcn.00704ee0
add esp, 0x10
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
lea eax, [edx*4]
add eax, 7
add eax, ecx
and eax, 0xfffffff8
cmp eax, dword [ebx + 0x408]
mov ebx, dword [ebp - 0x10]
jne 0x598d12
mov ebx, dword [ebp - 0x28]
lea eax, [ecx + edi*4]
cmp eax, dword [ebx + 0x40c]
mov ebx, dword [ebp - 0x10]
ja 0x598d12
mov edx, dword [ebp - 0x28]
add eax, 7
and eax, 0xfffffff8
mov dword [ebp - 0x1c], ecx
mov dword [edx + 0x408], eax
jmp 0x598d86
cmp edi, edx
jg 0x598d1b
mov dword [ebp - 0x1c], ecx
jmp 0x598d86
cmp edi, 0x1fffffff
jle 0x598d52
push 4
push edi
lea eax, [ebp - 0x84]
mov dword [ebp - 0x84], 0x956a88
push 0x956d3c
push eax
mov dword [ebp - 0x80], 0xdf
mov dword [ebp - 0x7c], 0
call fcn.00704ee0
add esp, 0x10
mov ecx, dword [ebp - 0x28]
lea eax, [edi*4]
push eax
call fcn.004a4140
mov ecx, dword [ebp - 0x1c]
mov ebx, eax
test ecx, ecx
je 0x598d80
mov edx, dword [ebp - 0x2c]
lea eax, [edx*4]
push eax
push ecx
push ebx
call fcn.00706e00
add esp, 0xc
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov dword [eax + ecx*4 - 4], ebx
mov ebx, dword [ebp - 0x40]
mov ecx, ebx
mov eax, dword [ebx]
mov eax, dword [eax + 0x158]
call eax
test al, al
jne 0x598dba
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x15c]
call eax
mov byte [ebp - 1], 0
test al, al
je 0x598dbe
mov byte [ebp - 1], 1
mov ecx, ebx
call fcn.0055d0e0
test al, al
jne 0x599023
cmp byte [ebp - 1], al
jne 0x599023
mov eax, dword [ebx]
mov ecx, ebx
push 0
push 0x7fffffff
push 0
mov eax, dword [eax + 0x190]
call eax
test al, al
jne 0x598e01
mov ecx, esi
call fcn.00592c70
test eax, eax
jle 0x598e01
mov ecx, esi
call fcn.0058d970
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x10
call fcn.004d0f20
mov edi, eax
add esp, 8
test edi, edi
je 0x598e2e
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], ecx
mov dword [edi], 0x96b3a0
mov dword [edi + 8], ebx
mov byte [edi + 0xc], 0
jmp 0x598e30
xor edi, edi
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0xc
call fcn.004d0f20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x598e5c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x10]
mov dword [ebx + 4], ecx
mov dword [ebx], 0x95b2a0
mov dword [ebx + 8], eax
jmp 0x598e5e
xor ebx, ebx
mov ecx, dword [edi + 8]
push 0
push 0x7fffffff
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x190]
call eax
test al, al
jne 0x598e80
mov ecx, dword [esi + 0x54]
call fcn.00591430
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x14
call fcn.004d0f20
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
je 0x598eb6
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0xc], ebx
mov ebx, eax
mov dword [eax + 4], ecx
mov dword [eax], 0x95aed8
mov dword [eax + 8], 0x65
mov dword [eax + 0x10], edi
jmp 0x598eb8
xor ebx, ebx
mov edi, dword [ebp - 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp edi, dword [ebp - 0x18]
jle 0x598fdc
push edi
call fcn.00705050
mov edi, eax
add esp, 4
cmp edi, 0x1fffffff
jle 0x598f10
push 4
push edi
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x956a88
push 0x956d3c
push eax
mov dword [ebp - 0x8c], 0xdf
mov dword [ebp - 0x88], 0
call fcn.00704ee0
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
lea eax, [edx*4]
mov edx, dword [ebp - 0x20]
add eax, 7
add eax, ecx
and eax, 0xfffffff8
cmp eax, dword [edx + 0x408]
mov edx, dword [ebp - 0x18]
jne 0x598f58
lea eax, [ecx + edi*4]
mov ecx, dword [ebp - 0x20]
cmp eax, dword [ecx + 0x40c]
mov ecx, dword [ebp - 8]
ja 0x598f58
mov edx, dword [ebp - 0x20]
add eax, 7
and eax, 0xfffffff8
mov dword [ebp - 8], ecx
mov dword [edx + 0x408], eax
jmp 0x598fd6
cmp edi, edx
jg 0x598f61
mov dword [ebp - 8], ecx
jmp 0x598fd6
cmp edi, 0x1fffffff
jle 0x598f9e
push 4
push edi
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x9c], 0x956a88
push 0x956d3c
push eax
mov dword [ebp - 0x98], 0xdf
mov dword [ebp - 0x94], 0
call fcn.00704ee0
add esp, 0x10
mov ecx, dword [ebp - 0x20]
lea eax, [edi*4]
push eax
call fcn.004a4140
mov edx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
test edx, edx
je 0x598fd3
mov eax, dword [ebp - 0x18]
lea ecx, [eax*4]
mov eax, dword [ebp - 0x10]
push ecx
push edx
push eax
call fcn.00706e00
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
cmp byte [ebp - 2], 0
mov eax, dword [ebp - 8]
mov dword [eax + edi*4 - 4], ebx
lea ebx, [esi + 0x10]
jne 0x598503
mov edi, dword [ebp - 0x40]
mov ecx, edi
push 0
push 0x7fffffff
push 0
mov eax, dword [edi]
mov eax, dword [eax + 0x190]
call eax
lea ebx, [esi + 0x10]
test al, al
je 0x598503
mov ecx, dword [ebp + 0x20]
push 1
push edi
call fcn.0053b740
jmp 0x598500
mov eax, dword [esi]
mov byte [ebp - 2], 1
push dword [eax + 0x18c]
push 0xc
call fcn.004d0f20
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
je 0x599057
mov edx, dword [0x9fbc6c]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], ecx
mov dword [eax], 0x959b1c
mov dword [eax + 8], edx
jmp 0x59905e
mov dword [ebp - 0x10], 0
mov edi, dword [ebp - 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp edi, dword [ebp - 0x18]
jle 0x599182
push edi
call fcn.00705050
mov edi, eax
add esp, 4
cmp edi, 0x1fffffff
jle 0x5990b6
push 4
push edi
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0x956a88
push 0x956d3c
push eax
mov dword [ebp - 0xa4], 0xdf
mov dword [ebp - 0xa0], 0
call fcn.00704ee0
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
lea eax, [edx*4]
add eax, 7
add eax, ecx
and eax, 0xfffffff8
cmp eax, dword [ebx + 0x408]
mov ebx, dword [ebp - 0x40]
jne 0x5990fe
mov ebx, dword [ebp - 0x20]
lea eax, [ecx + edi*4]
cmp eax, dword [ebx + 0x40c]
mov ebx, dword [ebp - 0x40]
ja 0x5990fe
mov edx, dword [ebp - 0x20]
add eax, 7
and eax, 0xfffffff8
mov dword [ebp - 8], ecx
mov dword [edx + 0x408], eax
jmp 0x59917c
cmp edi, edx
jg 0x599107
mov dword [ebp - 8], ecx
jmp 0x59917c
cmp edi, 0x1fffffff
jle 0x599144
push 4
push edi
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb4], 0x956a88
push 0x956d3c
push eax
mov dword [ebp - 0xb0], 0xdf
mov dword [ebp - 0xac], 0
call fcn.00704ee0
add esp, 0x10
mov ecx, dword [ebp - 0x20]
lea eax, [edi*4]
push eax
call fcn.004a4140
mov edx, dword [ebp - 8]
mov dword [ebp - 0x30], eax
test edx, edx
je 0x599179
mov ebx, dword [ebp - 0x18]
lea ecx, [ebx*4]
push ecx
push edx
push eax
call fcn.00706e00
mov ebx, dword [ebp - 0x40]
add esp, 0xc
mov eax, dword [ebp - 0x30]
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
cmp byte [ebp - 1], 0
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov dword [ecx + edi*4 - 4], eax
je 0x5991f1
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x20
call fcn.004d0f20
mov edi, eax
add esp, 8
test edi, edi
je 0x5991d0
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], ecx
lea ecx, [edi + 0xc]
push 4
mov dword [edi], 0x95a998
mov dword [edi + 8], 0
call fcn.00505ab0
mov dword [edi + 0x1c], 0
jmp 0x5991d2
xor edi, edi
push 0
push ebx
push dword [ebp - 0x14]
mov ecx, esi
call fcn.005b6650
push eax
mov ecx, edi
call fcn.004d14b0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov dword [eax + ecx*4 - 4], edi
mov ecx, dword [ebp + 0x20]
push 1
push ebx
mov eax, dword [ecx + 4]
mov dword [eax + 7], 0
call fcn.0053b740
jmp 0x598500
xor edi, edi
cmp byte [ebp - 2], 0
jne 0x59931e
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x20
call fcn.004d0f20
mov edi, eax
add esp, 8
test edi, edi
je 0x59925b
mov dword [edi], 0x95995c
lea ecx, [edi + 0xc]
mov eax, dword [ebp + 8]
push 4
mov dword [edi + 4], eax
mov dword [edi], 0x95a998
mov dword [edi + 8], 0
call fcn.00505ab0
mov dword [edi + 0x1c], 0
jmp 0x59925d
xor edi, edi
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x10
call fcn.004d0f20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x59930f
mov ecx, dword [esi]
push dword [ecx + 0x18c]
push 0xc
call fcn.004d0f20
add esp, 8
mov dword [ebp + 0x20], eax
test eax, eax
je 0x5992ac
mov dword [eax], 0x95995c
mov ecx, dword [ebp + 8]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x14]
mov dword [eax], 0x95b2a0
mov dword [eax + 8], ecx
jmp 0x5992b3
mov dword [ebp + 0x20], 0
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0xc
call fcn.004d0f20
mov edx, eax
add esp, 8
test edx, edx
je 0x5992e5
mov eax, dword [ebp + 0x10]
mov dword [edx], 0x95995c
mov ecx, dword [ebp + 8]
mov dword [edx + 4], ecx
mov dword [edx], 0x95b2a0
mov dword [edx + 8], eax
jmp 0x5992e7
xor edx, edx
mov dword [ebx], 0x95995c
mov ecx, edi
mov eax, dword [ebp + 8]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x20]
push ebx
mov dword [ebx], 0x95b8c0
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
call fcn.004d14b0
mov ebx, dword [ebp - 8]
jmp 0x599383
xor ebx, ebx
mov ecx, edi
push ebx
call fcn.004d14b0
mov ebx, dword [ebp - 8]
jmp 0x599383
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebx + ecx*4 - 4]
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
je 0x599383
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
push dword [eax + ecx*4 - 4]
dec dword [ebp - 0xc]
lea eax, [eax + ecx*4]
dec ecx
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 0x44]
mov ecx, dword [ecx + 8]
call fcn.004d14b0
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
test ecx, ecx
je 0x59937b
mov eax, dword [edi + 4]
mov dword [ecx + 0x1c], eax
lea eax, [ebp + 0x20]
push eax
lea ecx, [esi + 0x10]
call fcn.00548b10
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x20]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x59943d
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + edx*4]
lea edx, [eax - 1]
add ecx, 0xfffffffc
lea edx, [ebx + edx*4]
mov ebx, eax
mov eax, edx
dec ebx
mov dword [ebp - 0xc], ebx
sub edx, 4
mov dword [ebp - 0x34], edx
mov ebx, dword [eax]
mov eax, dword [ecx]
sub ecx, 4
mov dword [ebp + 0x20], eax
mov eax, dword [esi]
mov dword [ebp - 0x30], ecx
push dword [eax + 0x18c]
push 0x14
call fcn.004d0f20
add esp, 8
test eax, eax
je 0x5993eb
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x20]
mov dword [eax], 0x95b1c0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edi
jmp 0x5993ed
xor eax, eax
mov ecx, dword [esi + 0x44]
push eax
mov ecx, dword [ecx + 8]
call fcn.004d14b0
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
test ecx, ecx
je 0x599424
mov eax, dword [edi + 4]
mov dword [ecx + 0x1c], eax
lea eax, [ebp + 0x24]
push eax
lea ecx, [esi + 0x10]
call fcn.00548b10
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x24]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0x44]
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [esi + 0x44], eax
test ebx, ebx
jne 0x5993a2
cmp byte [ebp + 0xc], 0
je 0x599577
test edi, edi
je 0x599577
mov eax, dword [esi]
push dword [eax + 0x18c]
push 0x20
call fcn.004d0f20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x599493
mov dword [ebx], 0x95995c
lea ecx, [ebx + 0xc]
mov eax, dword [ebp + 8]
push 4
mov dword [ebx + 4], eax
mov dword [ebx], 0x95a998
mov dword [ebx + 8], 0
call fcn.00505ab0
mov dword [ebx + 0x1c], 0
jmp 0x599495
xor ebx, ebx
mov eax, dword [esi + 0x68]
mov eax, dword [eax + 0x14]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x599550
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x599550
push dword [0x9fca60]
mov ecx, dword [edx]
call fcn.005f0380
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x24], eax
push dword [ecx + 0x18]
push dword [esi + 0x70]
push dword [esi]
call fcn.005947d0
mov ecx, dword [esi]
mov dword [ebp + 0xc], eax
push dword [ecx + 0x18c]
push 0x10
call fcn.004d0f20
add esp, 0x14
mov dword [ebp + 0x20], eax
test eax, eax
je 0x599546
mov ecx, dword [esi]
push dword [ecx + 0x18c]
push 0xc
call fcn.004d0f20
mov edx, eax
add esp, 8
test edx, edx
je 0x599528
mov ecx, dword [0x9f93c8]
mov eax, dword [ebp + 0xc]
mov dword [edx + 4], ecx
mov dword [edx], 0x95b2a0
mov dword [edx + 8], eax
jmp 0x59952a
xor edx, edx
mov ecx, dword [ebp + 0x20]
mov eax, dword [0x9f93c8]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x24]
mov dword [ecx], 0x959dbc
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
jmp 0x599548
xor ecx, ecx
push ecx
mov ecx, ebx
call fcn.004d14b0
push dword [ebp + 0x1c]
mov ecx, esi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.005b31c0
push edi
mov ecx, ebx
call fcn.004d14b0
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20