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

Disassembly:
mov ecx, dword [0x7c3e14]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x4a4]
cmp eax, dword [ecx + 8]
jbe 0x58f16a
sub esp, 0x524
mov eax, dword [esp + 0x528]
mov dword [esp], eax
call fcn.0058bd30
mov eax, dword [esp + 4]
test eax, eax
je 0x58de73
mov ebx, dword [eax]
cmp ebx, 0x12
je 0x58db72
mov ebp, dword [eax + 4]
mov dword [esp + 0x88], ebp
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x80], edx
cmp ebx, 0x13
je 0x58d882
cmp ebx, 0x14
je 0x58d649
mov ebx, ecx
mov esi, edx
mov edi, ebp
mov ecx, 0
mov dword [esp + 0x38], ecx
mov edx, 0
mov dword [esp + 0xd4], edx
mov ebx, 0
mov dword [esp + 0x24], ebx
mov ebp, 0
mov dword [esp + 0x28], ebp
mov esi, 0
mov dword [esp + 0xd0], esi
mov edi, 0
mov dword [esp + 0x34], edi
mov ecx, 0
mov dword [esp + 0x2c], ecx
mov ecx, 0
mov dword [esp + 0x30], ecx
mov ecx, 0
mov dword [esp + 0x58], ecx
mov ecx, 0
mov dword [esp + 0x5c], ecx
mov ecx, 0
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x88]
mov ebx, ecx
mov esi, edx
mov edi, ebp
jmp 0x58d846
mov esi, dword [eax + 0x24]
mov dword [esp + 0x38], esi
mov edi, dword [eax + 0x20]
mov dword [esp + 0xd4], edi
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xd0], ecx
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
nop
mov ebp, dword [esp + 0x528]
mov byte [ebp + 0xf8], 0
inc dword [ebp + 0xf4]
mov esi, dword [ebp + 0xe8]
mov edi, dword [ebp + 0xf0]
cmp esi, edi
jbe 0x58f160
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], ecx
mov eax, dword [ebp + 0xe4]
lea ecx, [edi + edi*8]
lea eax, [eax + ecx*8]
cmp dword [eax], 2
sete al
mov byte [ebp + 0xdd], al
inc dword [ebp + 0xf0]
mov dword [esp], ebp
call fcn.0058bd30
mov eax, dword [esp + 4]
test eax, eax
je 0x58d873
cmp dword [eax], 0x13
je 0x58d712
mov ebx, dword [esp + 0x7c]
cmp ebx, 0x14
mov ecx, 0
mov edx, 0
mov ebx, 0
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
jmp 0x58d7bc
mov edx, dword [eax + 0x24]
mov dword [esp + 0x58], edx
mov ebx, dword [eax + 0x28]
mov ebp, dword [eax + 0x20]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x78], eax
nop
mov edx, dword [esp + 0x528]
mov byte [edx + 0xf8], 0
inc dword [edx + 0xf4]
mov eax, dword [edx + 0xe8]
mov ecx, dword [edx + 0xf0]
cmp eax, ecx
jbe 0x58f155
mov dword [esp + 0xdc], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x5c], ebx
mov eax, dword [edx + 0xe4]
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*8]
cmp dword [eax], 2
sete al
mov byte [edx + 0xdd], al
inc dword [edx + 0xf0]
mov dword [esp], edx
call fcn.0058bd30
mov eax, dword [esp + 4]
test eax, eax
je 0x58d864
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x14
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], eax
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x58], eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0xdc], ebx
mov ecx, ebp
mov edx, esi
mov ebp, edi
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0xc4]
sete bl
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x94]
jmp 0x58dad0
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov ebx, dword [eax + 0x24]
mov dword [esp + 0x58], ebx
mov esi, dword [eax + 0x28]
mov dword [esp + 0x5c], esi
mov edi, dword [eax + 0x20]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
nop
mov ebp, dword [esp + 0x528]
mov byte [ebp + 0xf8], 0
inc dword [ebp + 0xf4]
mov ebx, dword [ebp + 0xe8]
mov esi, dword [ebp + 0xf0]
cmp ebx, esi
jbe 0x58f14c
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0xdc], edi
mov dword [esp + 0x70], ecx
mov eax, dword [ebp + 0xe4]
lea ecx, [esi + esi*8]
lea eax, [eax + ecx*8]
cmp dword [eax], 2
sete al
mov byte [ebp + 0xdd], al
inc dword [ebp + 0xf0]
mov dword [esp], ebp
call fcn.0058bd30
mov eax, dword [esp + 4]
test eax, eax
je 0x58db63
mov ebx, dword [eax]
cmp ebx, 0x14
je 0x58d96d
mov ecx, 0
mov edx, 0
mov ebx, 0
mov ebp, 0
mov esi, 0
mov edi, 0
mov ecx, 0
mov dword [esp + 0x2c], ecx
mov ecx, 0
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x50], ebx
mov ecx, 0
mov edx, 0
mov ebx, 0
jmp 0x58da70
mov edx, dword [eax + 0x24]
mov dword [esp + 0x38], edx
mov ebp, dword [eax + 0x20]
mov esi, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xd0], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x64], eax
nop
mov edx, dword [esp + 0x528]
mov byte [edx + 0xf8], 0
inc dword [edx + 0xf4]
mov eax, dword [edx + 0xe8]
mov ecx, dword [edx + 0xf0]
cmp eax, ecx
jbe 0x58f141
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0xd4], ebp
mov dword [esp + 0x60], ebx
mov eax, dword [edx + 0xe4]
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*8]
cmp dword [eax], 2
sete al
mov byte [edx + 0xdd], al
inc dword [edx + 0xf0]
mov dword [esp], edx
call fcn.0058bd30
mov eax, dword [esp + 4]
test eax, eax
je 0x58db54
mov ebx, dword [esp + 0x60]
cmp ebx, 0x14
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xcc], eax
sete al
mov dword [esp + 0x38], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0xd0], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], edi
mov byte [esp + 0x9c], al
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
movzx ebx, byte [esp + 0x9c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0xcc], eax
test bl, bl
je 0x58db3c
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x58db19
mov dword [esp + 0x4c], edx
mov ebp, dword [esp + 0x528]
mov ecx, dword [ebp + 0x140]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x8c]
jmp 0x58eebc
mov ebx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0x24]
jmp 0x58de95
xor ebx, ebx
xor ebx, ebx
mov dword [esp + 0xd8], ebx
xor ebx, ebx
mov dword [esp + 0x40], ebx
xor ebx, ebx
jmp 0x58de95
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov ebx, dword [esp + 0x528]
mov ecx, dword [ebx + 0x128]
lea ebp, [ecx - 1]
cmp ecx, ebp
jbe 0x58de8e
mov ebp, dword [ebx + 0x124]
mov ebp, dword [ebp + ecx*4 - 4]
mov dword [ebx + 0x120], ebp
mov edx, dword [ebx + 0x12c]
mov ebp, dword [ebx + 0x128]
lea ecx, [ebp - 1]
cmp edx, ecx
jb 0x58de89
mov dword [esp + 0xcc], eax
mov dword [ebx + 0x128], ecx
lea edi, [esp + 0x49c]
xor eax, eax
call fcn.004685ee
mov byte [esp + 0x49c], 5
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov eax, dword [ecx + 4]
mov dword [esp + 0x4a0], eax
mov dword [esp + 0x4a4], edx
mov dword [esp + 0x4a8], ebp
mov edx, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x18]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x4ac], eax
mov dword [esp + 0x4b0], edx
mov dword [esp + 0x4b4], ebp
mov edx, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x500], ebp
mov dword [esp + 0x504], ecx
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58dc73
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x49c]
mov dword [esp + 8], eax
call fcn.00411660
mov ebx, dword [esp + 0x528]
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x49c]
call fcn.004689cc
mov ecx, dword [ebx + 0x94]
mov edx, dword [ebx + 0x98]
nop
mov ebp, dword [ebx + 0x90]
mov eax, ebx
mov ebx, dword [esp + 0x52c]
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x38], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58dcb8
call fcn.00468410
mov dword [edi], ebp
mov edx, dword [ebx + 0x30]
mov dword [edi + 4], edx
mov dword [ebx + 0x30], ebp
mov edx, dword [eax + 0xa0]
mov ebp, dword [eax + 0xa4]
mov esi, dword [eax + 0x9c]
mov dword [ebx + 0x40], edx
mov dword [ebx + 0x44], ebp
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58dcea
call fcn.00468410
mov dword [edi], esi
mov edx, dword [ebx + 0x3c]
mov dword [edi + 4], edx
mov dword [ebx + 0x3c], esi
mov edx, dword [eax + 0xac]
mov ebp, dword [eax + 0xb0]
mov esi, dword [eax + 0xa8]
mov dword [ebx + 0x4c], edx
mov dword [ebx + 0x50], ebp
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58dd1c
call fcn.00468410
mov dword [edi], esi
mov edx, dword [ebx + 0x48]
mov dword [edi + 4], edx
mov dword [ebx + 0x48], esi
mov dword [eax + 0x94], 0
mov dword [eax + 0x98], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58dd4a
mov edx, dword [eax + 0x90]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0x90], 0
mov dword [eax + 0xa0], 0
mov dword [eax + 0xa4], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58dd7f
mov edx, dword [eax + 0x9c]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0x9c], 0
mov dword [eax + 0xac], 0
mov dword [eax + 0xb0], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58ddb4
mov edx, dword [eax + 0xa8]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0xa8], 0
mov dword [eax + 0xb8], 0
mov dword [eax + 0xbc], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58dde9
mov edx, dword [eax + 0xb4]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0xb4], 0
mov dword [eax + 0xc4], 0
mov dword [eax + 0xc8], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58de1e
mov edx, dword [eax + 0xc0]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0xc0], 0
nop
mov byte [eax + 0xf8], 0
inc dword [eax + 0xf4]
mov ecx, dword [eax + 0xe8]
mov edx, dword [eax + 0xf0]
cmp ecx, edx
jbe 0x58de82
mov ecx, dword [eax + 0xe4]
lea edx, [edx + edx*8]
lea ecx, [ecx + edx*8]
cmp dword [ecx], 2
sete cl
mov byte [eax + 0xdd], cl
inc dword [eax + 0xf0]
mov byte [esp + 0x534], 1
add esp, 0x524
ret
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov eax, edx
call fcn.00468460
call fcn.004684a0
mov eax, ebp
call fcn.00468460
test ebx, ebx
sete cl
mov byte [esp + 0x23], cl
movzx ebp, byte [esp + 0x531]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x58dfc6
cmp dword [eax], 0xe
jne 0x58dfc6
mov edx, dword [eax + 0x10]
mov ebp, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x528]
mov dword [ecx + 0x120], 0xa
lea edi, [esp + 0x414]
lea esi, [0x65ad10]
call fcn.004689cc
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x41c], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x420], ecx
mov dword [esp + 0x424], edx
mov dword [esp + 0x428], eax
mov dword [esp + 0x42c], ebp
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x474], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x478], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x47c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x488], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x498], al
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58dfab
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x414]
mov dword [esp + 8], eax
call fcn.00411660
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x414]
call fcn.004689cc
mov byte [esp + 0x534], 1
add esp, 0x524
ret
mov dword [esp + 0x3c], ebx
mov ebp, dword [eax]
cmp ebp, 0x15
jne 0x58e39a
mov ebp, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x88], edx
mov edx, dword [eax + 0x14]
test ebx, ebx
jne 0x58dfef
cmp byte [eax + 0x44], 2
je 0x58e004
cmp ebx, 1
jne 0x58e016
mov ebx, dword [esp + 0xd8]
cmp byte [ebx], 0x21
jne 0x58e01d
mov ebx, dword [esp + 0x3c]
mov ecx, 1
xor ecx, ecx
mov byte [esp + 0x21], cl
mov ecx, 1
jmp 0x58e02e
mov ebx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x3c]
xor ecx, ecx
movzx ecx, byte [esp + 0x23]
mov byte [esp + 0x21], cl
xor ecx, ecx
mov byte [esp + 0x22], cl
mov ebx, dword [esp + 0x528]
mov ecx, dword [ebx + 0x128]
lea eax, [ecx - 1]
cmp ecx, eax
jbe 0x58ee8e
mov eax, dword [ebx + 0x124]
mov eax, dword [eax + ecx*4 - 4]
mov dword [ebx + 0x120], eax
mov eax, dword [ebx + 0x12c]
mov ecx, dword [ebx + 0x128]
dec ecx
cmp eax, ecx
jb 0x58ee87
mov dword [ebx + 0x128], ecx
mov eax, edi
lea edi, [esp + 0x38c]
lea esi, [0x65a958]
call fcn.004689cc
mov dword [esp + 0x390], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x394], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x398], ecx
mov dword [esp + 0x39c], ebp
mov dword [esp + 0x3a0], edx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x3a4], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x3ec], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3f0], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x3f4], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x3f8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x3fc], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x24]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x404], edx
mov dword [esp + 0x408], ebp
mov dword [esp + 0x40c], eax
movzx edx, byte [esp + 0x22]
mov byte [esp + 0x410], dl
movzx edx, byte [esp + 0x21]
mov byte [esp + 0x411], dl
movzx ecx, byte [ecx + 0x44]
mov byte [esp + 0x412], cl
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e196
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x38c]
mov dword [esp + 8], eax
call fcn.00411660
mov ebx, dword [esp + 0x528]
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x38c]
call fcn.004689cc
mov ecx, dword [ebx + 0x94]
mov edx, dword [ebx + 0x98]
nop
mov ebp, dword [ebx + 0x90]
mov eax, ebx
mov ebx, dword [esp + 0x52c]
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x38], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e1db
call fcn.00468410
mov dword [edi], ebp
mov edx, dword [ebx + 0x30]
mov dword [edi + 4], edx
mov dword [ebx + 0x30], ebp
mov edx, dword [eax + 0xa0]
mov ebp, dword [eax + 0xa4]
mov esi, dword [eax + 0x9c]
mov dword [ebx + 0x40], edx
mov dword [ebx + 0x44], ebp
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e20d
call fcn.00468410
mov dword [edi], esi
mov edx, dword [ebx + 0x3c]
mov dword [edi + 4], edx
mov dword [ebx + 0x3c], esi
mov edx, dword [eax + 0xac]
mov ebp, dword [eax + 0xb0]
mov esi, dword [eax + 0xa8]
mov dword [ebx + 0x4c], edx
mov dword [ebx + 0x50], ebp
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e23f
call fcn.00468410
mov dword [edi], esi
mov edx, dword [ebx + 0x48]
mov dword [edi + 4], edx
mov dword [ebx + 0x48], esi
mov dword [eax + 0x94], 0
mov dword [eax + 0x98], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e26d
mov edx, dword [eax + 0x90]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0x90], 0
mov dword [eax + 0xa0], 0
mov dword [eax + 0xa4], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e2a2
mov edx, dword [eax + 0x9c]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0x9c], 0
mov dword [eax + 0xac], 0
mov dword [eax + 0xb0], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e2d7
mov edx, dword [eax + 0xa8]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0xa8], 0
mov dword [eax + 0xb8], 0
mov dword [eax + 0xbc], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e30c
mov edx, dword [eax + 0xb4]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0xb4], 0
mov dword [eax + 0xc4], 0
mov dword [eax + 0xc8], 0
mov edx, dword [0x7c3fa0]
test edx, edx
je 0x58e341
mov edx, dword [eax + 0xc0]
call fcn.00468400
mov dword [edi], edx
mov dword [eax + 0xc0], 0
nop
mov byte [eax + 0xf8], 0
inc dword [eax + 0xf4]
mov ecx, dword [eax + 0xe8]
mov edx, dword [eax + 0xf0]
cmp ecx, edx
jbe 0x58ee80
mov ecx, dword [eax + 0xe4]
lea edx, [edx + edx*8]
lea ecx, [ecx + edx*8]
cmp dword [ecx], 2
sete cl
mov byte [eax + 0xdd], cl
inc dword [eax + 0xf0]
mov byte [esp + 0x534], 1
add esp, 0x524
ret
cmp ebp, 0xa
jne 0x58e65e
mov edx, dword [eax + 0x10]
mov ebp, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x528]
mov dword [ecx + 0x120], 0xe
lea edi, [esp + 0x304]
lea esi, [0x65ad98]
call fcn.004689cc
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x308], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x30c], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x310], ecx
mov dword [esp + 0x314], edx
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], ebp
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x364], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x368], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x378], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x388], al
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58e495
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x304]
mov dword [esp + 8], eax
call fcn.00411660
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x304]
call fcn.004689cc
mov eax, dword [esp + 0x528]
mov ecx, dword [eax + 0x94]
mov edx, dword [eax + 0x98]
nop
mov ebx, dword [eax + 0x90]
mov ebp, dword [esp + 0x52c]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e4df
call fcn.00468410
mov dword [edi], ebx
mov ecx, dword [ebp + 0x30]
mov dword [edi + 4], ecx
mov dword [ebp + 0x30], ebx
mov ecx, dword [eax + 0xa0]
mov edx, dword [eax + 0xa4]
mov ebx, dword [eax + 0x9c]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e511
call fcn.00468410
mov dword [edi], ebx
mov ecx, dword [ebp + 0x3c]
mov dword [edi + 4], ecx
mov dword [ebp + 0x3c], ebx
mov ecx, dword [eax + 0xac]
mov edx, dword [eax + 0xb0]
mov ebx, dword [eax + 0xa8]
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x50], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e543
call fcn.00468410
mov dword [edi], ebx
mov ecx, dword [ebp + 0x48]
mov dword [edi + 4], ecx
mov dword [ebp + 0x48], ebx
mov dword [eax + 0x94], 0
mov dword [eax + 0x98], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e571
mov ecx, dword [eax + 0x90]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0x90], 0
mov dword [eax + 0xa0], 0
mov dword [eax + 0xa4], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e5a6
mov ecx, dword [eax + 0x9c]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0x9c], 0
mov dword [eax + 0xac], 0
mov dword [eax + 0xb0], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e5db
mov ecx, dword [eax + 0xa8]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0xa8], 0
mov dword [eax + 0xb8], 0
mov dword [eax + 0xbc], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e610
mov ecx, dword [eax + 0xb4]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0xb4], 0
mov dword [eax + 0xc4], 0
mov dword [eax + 0xc8], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e645
mov ecx, dword [eax + 0xc0]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0xc0], 0
mov byte [esp + 0x534], 1
add esp, 0x524
ret
cmp ebp, 0xc
jne 0x58e922
mov edx, dword [eax + 0x10]
mov ebp, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x528]
mov dword [ecx + 0x120], 0x13
lea edi, [esp + 0x27c]
lea esi, [0x65ae20]
call fcn.004689cc
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x280], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x284], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], edx
mov dword [esp + 0x290], eax
mov dword [esp + 0x294], ebp
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2ec], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2f0], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x300], al
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58e759
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x27c]
mov dword [esp + 8], eax
call fcn.00411660
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x27c]
call fcn.004689cc
mov eax, dword [esp + 0x528]
mov ecx, dword [eax + 0x94]
mov edx, dword [eax + 0x98]
nop
mov ebx, dword [eax + 0x90]
mov ebp, dword [esp + 0x52c]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e7a3
call fcn.00468410
mov dword [edi], ebx
mov ecx, dword [ebp + 0x30]
mov dword [edi + 4], ecx
mov dword [ebp + 0x30], ebx
mov ecx, dword [eax + 0xa0]
mov edx, dword [eax + 0xa4]
mov ebx, dword [eax + 0x9c]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e7d5
call fcn.00468410
mov dword [edi], ebx
mov ecx, dword [ebp + 0x3c]
mov dword [edi + 4], ecx
mov dword [ebp + 0x3c], ebx
mov ecx, dword [eax + 0xac]
mov edx, dword [eax + 0xb0]
mov ebx, dword [eax + 0xa8]
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x50], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e807
call fcn.00468410
mov dword [edi], ebx
mov ecx, dword [ebp + 0x48]
mov dword [edi + 4], ecx
mov dword [ebp + 0x48], ebx
mov dword [eax + 0x94], 0
mov dword [eax + 0x98], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e835
mov ecx, dword [eax + 0x90]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0x90], 0
mov dword [eax + 0xa0], 0
mov dword [eax + 0xa4], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e86a
mov ecx, dword [eax + 0x9c]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0x9c], 0
mov dword [eax + 0xac], 0
mov dword [eax + 0xb0], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e89f
mov ecx, dword [eax + 0xa8]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0xa8], 0
mov dword [eax + 0xb8], 0
mov dword [eax + 0xbc], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e8d4
mov ecx, dword [eax + 0xb4]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0xb4], 0
mov dword [eax + 0xc4], 0
mov dword [eax + 0xc8], 0
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58e909
mov ecx, dword [eax + 0xc0]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax + 0xc0], 0
mov byte [esp + 0x534], 1
add esp, 0x524
ret
movzx ebx, byte [esp + 0x530]
test bl, bl
je 0x58ec60
cmp ebp, 7
jne 0x58eac5
mov edx, dword [eax + 0x10]
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ebp, dword [esp + 0x528]
mov dword [ebp + 0x120], 8
lea edi, [esp + 0x1f4]
lea esi, [0x65ad10]
call fcn.004689cc
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1fc], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x200], ecx
mov dword [esp + 0x204], edx
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], ebx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x268], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x278], al
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58ea38
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x1f4]
mov dword [esp + 8], eax
call fcn.00411660
mov ebp, dword [esp + 0x528]
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x1f4]
call fcn.004689cc
mov eax, dword [ebp + 0xc0]
test eax, eax
je 0x58eab6
mov ecx, dword [ebp + 0xc4]
mov edx, dword [ebp + 0xc8]
mov ebx, dword [esp + 0x52c]
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x38], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58ea7e
call fcn.00468410
mov dword [edi], eax
mov ecx, dword [ebx + 0x30]
mov dword [edi + 4], ecx
mov dword [ebx + 0x30], eax
mov dword [ebp + 0xc4], 0
mov dword [ebp + 0xc8], 0
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58eaac
mov eax, dword [ebp + 0xc0]
call fcn.00468400
mov dword [edi], eax
mov dword [ebp + 0xc0], 0
mov byte [esp + 0x534], 1
add esp, 0x524
ret
test bl, bl
je 0x58ec60
cmp ebp, 8
jne 0x58ec60
mov edx, dword [eax + 0x10]
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov ebp, dword [esp + 0x528]
mov dword [ebp + 0x120], 0xb
lea edi, [esp + 0x16c]
lea esi, [0x65aea8]
call fcn.004689cc
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x17c], edx
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], ebx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1e0], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x1f0], al
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58ebd3
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
call fcn.00411660
mov ebp, dword [esp + 0x528]
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0x16c]
call fcn.004689cc
mov eax, dword [ebp + 0xc0]
test eax, eax
je 0x58ec51
mov ecx, dword [ebp + 0xc4]
mov edx, dword [ebp + 0xc8]
mov ebx, dword [esp + 0x52c]
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x38], edx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58ec19
call fcn.00468410
mov dword [edi], eax
mov ecx, dword [ebx + 0x30]
mov dword [edi + 4], ecx
mov dword [ebx + 0x30], eax
mov dword [ebp + 0xc4], 0
mov dword [ebp + 0xc8], 0
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58ec47
mov eax, dword [ebp + 0xc0]
call fcn.00468400
mov dword [edi], eax
mov dword [ebp + 0xc0], 0
mov byte [esp + 0x534], 1
add esp, 0x524
ret
mov ebp, dword [esp + 0x58]
test ebp, ebp
jne 0x58ec78
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x58edb1
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x528]
mov eax, dword [ebx + 0x128]
lea ecx, [eax - 1]
cmp eax, ecx
jbe 0x58ee75
mov ecx, dword [ebx + 0x124]
mov eax, dword [ecx + eax*4 - 4]
mov dword [ebx + 0x120], eax
mov eax, dword [ebx + 0x12c]
mov ecx, dword [ebx + 0x128]
dec ecx
cmp eax, ecx
jb 0x58ee6e
mov dword [ebx + 0x128], ecx
mov eax, edi
lea edi, [esp + 0xe4]
lea esi, [0x65af30]
call fcn.004689cc
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ebp
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x158], eax
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x168], al
mov edi, dword [esp + 0x52c]
test byte [edi], al
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58ed96
lea eax, [0x5feda0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xe4]
mov dword [esp + 8], eax
call fcn.00411660
mov edi, dword [esp + 0x52c]
lea esi, [esp + 0xe4]
call fcn.004689cc
mov byte [esp + 0x534], 1
add esp, 0x524
ret
test bl, bl
je 0x58edc2
mov ecx, 0x1a
lea edx, [0x6130b6]
jmp 0x58edcd
mov ecx, 0x19
lea edx, [0x612805]
nop
mov ebx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
mov dword [esp + 0x88], ebp
mov eax, dword [eax + 8]
mov ebp, dword [esp + 0x528]
mov dword [ebp], 4
mov dword [ebp + 0x24], ecx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58ee18
mov dword [esp + 0x80], eax
mov ecx, edi
call fcn.00468410
mov dword [edi], edx
mov eax, dword [ebp + 0x20]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x80]
mov edi, ecx
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x2c], esi
mov ecx, dword [esp + 0x84]
mov dword [ebp + 0x30], ecx
mov dword [ebp + 8], 0x22
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x58ee46
mov ecx, dword [ebp + 4]
call fcn.00468400
mov dword [edi], ecx
lea ecx, [0x6168f6]
mov dword [ebp + 4], ecx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x88]
mov dword [ebp + 0x1c], eax
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov edx, eax
call fcn.004684a0
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00468460
mov eax, edx
call fcn.00468460
mov edx, eax
call fcn.004684a0
call fcn.00468460
lea eax, [ebx + 1]
mov edx, dword [esp + 0x528]
mov edx, dword [esp + 0x4c]
mov ebx, ebp
mov ebp, dword [esp + 0x528]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0x48]
cmp ebx, ecx
jge 0x58f080
mov edx, dword [ebp + 0x140]
cmp ebx, edx
jae 0x58f138
mov edx, dword [ebp + 0x13c]
lea eax, [ebx + ebx*2]
lea esi, [edx + eax*8]
mov esi, dword [esi + 4]
lea edx, [edx + eax*8]
mov ebp, dword [esp + 0x38]
cmp ebp, esi
je 0x58eef4
xor edx, edx
jmp 0x58ef2f
mov dword [esp + 0x74], eax
mov eax, dword [edx]
mov dword [esp], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00403320
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x88]
mov edx, eax
mov eax, dword [esp + 0x74]
test dl, dl
je 0x58ee93
mov edx, dword [esp + 0x528]
mov ecx, dword [edx + 0x140]
cmp ebx, ecx
jae 0x58f131
mov ecx, dword [edx + 0x13c]
lea ebx, [ecx + eax*8]
mov ebx, dword [ebx + 0x10]
lea eax, [ecx + eax*8 + 0xc]
mov eax, dword [eax]
test ebx, ebx
ja 0x58ef6a
xor ecx, ecx
xor ebp, ebp
xor esi, esi
jmp 0x58efb8
mov dword [esp + 0xe0], eax
mov dword [esp + 0x78], ebx
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
lea eax, [0x5ddd80]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x78]
mov ebp, eax
mov esi, ecx
mov eax, dword [esp + 0xe0]
mov ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0xd8], ebp
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00468d00
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x40]
cmp ebx, edx
jb 0x58eff3
mov ebp, dword [esp + 0xd8]
jmp 0x58f02e
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea ecx, [0x5ddd80]
mov dword [esp + 0x10], ecx
call fcn.0044db70
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0xd8], ebp
add ecx, ebp
mov dword [esp], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00468d00
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x528]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
jmp 0x58f08f
xor ecx, ecx
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0xd8], ecx
xor ecx, ecx
test ecx, ecx
jne 0x58f11e
mov dword [ebp], 4
mov dword [ebp + 0x24], 0x14
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58f0bd
mov eax, dword [ebp + 0x20]
mov ecx, edi
call fcn.00468400
mov dword [edi], eax
mov edi, ecx
lea eax, [0x60feeb]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x2c], esi
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x30], eax
mov dword [ebp + 8], 0x1a
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x58f0f1
mov eax, dword [ebp + 4]
call fcn.00468400
mov dword [edi], eax
lea eax, [0x61309c]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x1c], eax
mov byte [esp + 0x534], 0
add esp, 0x524
ret
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x40], ebx
mov ebx, ecx
mov ecx, dword [esp + 0x54]
jmp 0x58de95
mov eax, ebx
call fcn.00468460
mov eax, ebx
mov ecx, edx
call fcn.00468460
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00468460
mov eax, esi
mov ecx, ebx
call fcn.00468460
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00468460
mov eax, edi
mov ecx, esi
call fcn.00468460
nop
call fcn.00467000
jmp fcn.0058d540