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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5e70ff
mov eax, dword fs:[0]
push eax
sub esp, 0x188
mov eax, dword [0x62fda0]
xor eax, esp
mov dword [esp + 0x180], eax
push ebx
push esi
push edi
mov eax, dword [0x62fda0]
xor eax, esp
push eax
lea eax, [esp + 0x198]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], esi
test eax, eax
je 0x58e9c9
mov edi, eax
jmp 0x58e9f3
mov ecx, esi
call fcn.004c1290
movzx eax, ax
push eax
call fcn.005056d0
mov ecx, eax
call fcn.005058a0
test eax, eax
je 0x58e9ec
mov edi, eax
mov dword [esp + 0x68], eax
jmp 0x58e9f7
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + 0x24]
mov dword [esp + 0x68], edi
test ebx, ebx
je 0x58ea01
mov dword [esp + 0x30], ebx
jmp 0x58ea2d
mov ecx, esi
call fcn.0048b100
movzx edx, ax
push edx
call fcn.005056d0
mov ecx, eax
call fcn.005058a0
test eax, eax
je 0x58ea22
mov dword [esp + 0x30], eax
jmp 0x58ea2d
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x30], ecx
test edi, edi
jne 0x58ea3b
cmp dword [esp + 0x30], edi
je 0x58f70d
test byte [esi + 0x2c], 1
mov dword [esp + 0x6c], 0
je 0x58ea51
mov dword [esp + 0x6c], 1
mov ecx, esi
call fcn.004f8770
mov ecx, esi
mov dword [esp + 0xc0], eax
call fcn.0046a8b0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], edx
mov edx, dword [esi + 8]
fst qword [esp + 0x4c]
fild dword [esp + 0x14]
mov dword [esp + 0x14], edx
xor ebx, ebx
mov dword [esp + 0xd4], ebx
fstp qword [esp + 0x11c]
fld st(0)
fadd st(1)
fst qword [esp + 0x12c]
fild dword [esp + 0x14]
fst qword [esp + 0x34]
fldz
fst qword [esp + 0xf4]
fst qword [esp + 0x104]
fst qword [esp + 0xfc]
fstp qword [esp + 0x114]
cmp edi, ebx
je 0x58eb55
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x58eae7
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x18], ecx
jmp 0x58eaeb
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
fdivp st(3)
fxch st(2)
fstp qword [esp + 0xf4]
cmp eax, ebx
je 0x58eb07
mov edx, dword [eax + 0x34]
mov dword [esp + 0x18], edx
jmp 0x58eb0b
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
cmp eax, ebx
je 0x58eb1e
mov ecx, dword [eax + 0x20]
and ecx, 0xffff0000
jmp 0x58eb20
xor ecx, ecx
test ecx, 0x10000
je 0x58eb4a
cmp eax, ebx
je 0x58eb41
fdivr st(2)
mov eax, dword [eax + 0x38]
mov dword [esp + 0xd4], eax
fstp qword [esp + 0xfc]
jmp 0x58eb57
xor eax, eax
mov dword [esp + 0xd4], eax
fdivr st(2)
fstp qword [esp + 0xfc]
jmp 0x58eb57
fstp st(2)
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x58eba7
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x58eb6f
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x18], ecx
jmp 0x58eb73
mov dword [esp + 0x18], ebx
fidiv dword [esp + 0x18]
fstp qword [esp + 0x104]
cmp eax, ebx
je 0x58eb96
mov edx, dword [eax + 0x34]
mov dword [esp + 0x18], edx
fidiv dword [esp + 0x18]
fstp qword [esp + 0x114]
jmp 0x58ebab
mov dword [esp + 0x18], ebx
fidiv dword [esp + 0x18]
fstp qword [esp + 0x114]
jmp 0x58ebab
fstp st(1)
fstp st(0)
mov eax, dword [esi]
mov edx, dword [eax + 0x78]
lea ecx, [esp + 0x10c]
push ecx
mov ecx, esi
call edx
mov ecx, esi
call fcn.00457680
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x60], edx
mov dword [esp + 0x84], ebx
fstp qword [esp + 0xc4]
mov dword [esp + 0x88], ebx
fld qword [esi + 0x18]
fst qword [esp + 0xec]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x58ec09
xor edi, edi
jmp 0x58ec0e
mov edi, 1
lea ecx, [esp + 0x124]
push ecx
mov ecx, esi
mov dword [esp + 0x1c], edi
call fcn.004f87c0
push eax
lea ecx, [esp + 0xdc]
call fcn.004f7e30
mov dword [esp + 0x1a0], ebx
mov bl, byte [esi + 0x2b]
mov byte [esp + 0x22], bl
test edi, edi
je 0x58ec65
fld qword [esp + 0xec]
lea edx, [esp + 0x5c]
push edx
fchs
sub esp, 8
mov eax, esp
lea ecx, [esp + 0xe4]
fstp qword [eax]
mov dword [esp + 0x20], esp
call fcn.004f74d0
mov al, bl
and al, 1
mov byte [esp + 0x21], al
je 0x58ec80
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xdc]
call fcn.004f7a00
and bl, 2
mov byte [esp + 0x20], bl
je 0x58ec9a
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0xdc]
call fcn.004f7a50
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0xdc]
call fcn.005344f0
mov eax, dword [eax + 4]
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0xdc]
mov dword [esp + 0x114], eax
call fcn.005344f0
cmp dword [esp + 0xc0], 0
mov edx, dword [eax]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x2c], 0
fst qword [esp + 0x8c]
fst qword [esp + 0x74]
fild dword [esp + 0x110]
fstp qword [esp + 0xe4]
jle 0x58f285
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x68]
jmp 0x58ed17
fld qword [esp + 0x8c]
mov edx, dword [esp + 0x64]
mov al, byte [ebx + edx]
cmp al, 0xa
jne 0x58ed45
fstp qword [esp + 0x74]
inc ebx
fld qword [esp + 0xc4]
fadd qword [esp + 0x34]
fsubr qword [esp + 0xe4]
fstp qword [esp + 0xe4]
jmp 0x58f276
movsx esi, al
fstp st(0)
mov ecx, esi
shr ecx, 7
not cl
and cl, 1
mov byte [esp + 0x23], cl
je 0x58ee5a
test edi, edi
je 0x58ee4d
mov ecx, edi
call fcn.004f8210
mov ecx, edi
test eax, 0x20000
je 0x58ee16
lea eax, [esp + 0xbc]
push eax
push esi
call fcn.005040f0
mov esi, eax
inc ebx
add esi, esi
cmp dword [esp + 0xbc], 0
mov dword [esp + 0x2c], ebx
jle 0x58eded
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov ecx, edi
fimul dword [esp + 0xbc]
fstp qword [esp + 0x4c]
call fcn.004f8230
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fldz
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x58ee38
fdivr qword [esp + 0x4c]
mov edx, dword [0x630a4c]
mov dword [esp + 0x80], edx
fstp qword [esp + 0x4c]
fld qword [esp + 0x4c]
jmp 0x58ee9d
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [0x630a4c]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
mov dword [esp + 0x80], edx
fstp qword [esp + 0x4c]
fld qword [esp + 0x4c]
jmp 0x58ee9d
push esi
call fcn.00504110
fld qword [esp + 0x4c]
mov edx, dword [0x630a4c]
mov esi, eax
add esi, esi
inc ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x80], edx
jmp 0x58ee9d
mov edx, dword [0x630a4c]
fstp st(0)
fld qword [esp + 0x4c]
mov dword [esp + 0x80], edx
jmp 0x58ee9d
fld qword [esp + 0x4c]
inc ebx
mov dword [esp + 0x2c], ebx
xor esi, esi
jmp 0x58ee9d
inc ebx
mov byte [esp + 0x49], al
mov al, byte [ebx + edx]
inc ebx
cmp dword [esp + 0x30], 0
mov byte [esp + 0x48], al
mov dword [esp + 0x2c], ebx
je 0x58ee94
movzx ecx, word [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00504110
mov edx, dword [0x630a4c]
mov esi, eax
add esi, esi
mov dword [esp + 0x80], edx
jmp 0x58ee96
xor esi, esi
fld qword [esp + 0x12c]
fst qword [esp + 0x13c]
test esi, esi
jg 0x58eeb4
fadd qword [esp + 0x11c]
jmp 0x58f26e
xor ecx, ecx
fstp st(0)
mov eax, esi
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call sub.MSVCR90.dll_void____cdecl_operator_new___unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1a0], 1
test eax, eax
je 0x58ef0b
push fcn.0045c490
push fcn.00568b40
push esi
lea ebx, [eax + 4]
push 0x10
push ebx
mov dword [eax], esi
call fcn.005bd55c
mov dword [esp + 0x28], ebx
jmp 0x58ef13
mov dword [esp + 0x28], 0
xor edi, edi
cmp esi, edi
mov byte [esp + 0x1a0], 0
mov dword [esp + 0x7c], edi
jle 0x58f230
lea esp, [esp]
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
test byte [ebx + eax], 0x80
jne 0x58f02e
test edi, edi
je 0x58f02c
mov ecx, dword [esp + 0x28]
push edi
push ecx
lea ecx, [esp + 0xa4]
call fcn.005281f0
cmp byte [esp + 0x22], 0
mov byte [esp + 0x1a0], 2
je 0x58ef9e
cmp byte [esp + 0x21], 0
je 0x58ef86
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0xa0]
call fcn.0052aef0
cmp byte [esp + 0x20], 0
je 0x58ef9e
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xa0]
call fcn.0052b050
cmp dword [esp + 0x18], 0
je 0x58efc8
fld qword [esp + 0xec]
lea ecx, [esp + 0x5c]
push ecx
sub esp, 8
mov eax, esp
lea ecx, [esp + 0xa8]
fstp qword [eax]
mov dword [esp + 0x20], esp
call fcn.0052a160
cmp dword [ebp + 0x14], 0
jne 0x58eff1
cmp dword [esp + 0x6c], 0
je 0x58efdc
cmp dword [esp + 0x58], 0
jne 0x58eff1
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x9c]
push eax
call edx
jmp 0x58f011
mov edi, dword [esp + 0xa8]
push 0
lea ecx, [esp + 0xa0]
call fcn.0052c760
mov ecx, dword [esp + 0x20]
push eax
push edi
call fcn.005659d0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1a0], 0
call fcn.0052d4d0
mov eax, dword [esp + 0x80]
xor edi, edi
movzx ecx, byte [ebx + eax]
movzx eax, byte [ebx + eax + 1]
and ecx, 0x7f
and eax, 0x7f
cmp byte [esp + 0x23], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x70], eax
fild dword [esp + 0x14]
je 0x58f0ac
fmul qword [esp + 0xf4]
sub eax, dword [esp + 0xd4]
mov dword [esp + 0x70], eax
fadd qword [esp + 0x74]
fldz
fcom st(1)
fnstsw ax
fld qword [0x5ecc78]
test ah, 0x41
jp 0x58f07b
fadd st(2), st(0)
jmp 0x58f07d
fsub st(2), st(0)
fxch st(2)
call fcn.005bd3f0
fild dword [esp + 0x70]
mov dword [esp + 0x84], eax
fmul qword [esp + 0xfc]
fadd qword [esp + 0xe4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x58f0fd
faddp st(1)
jmp 0x58f0ff
fmul qword [esp + 0x104]
fadd qword [esp + 0x74]
fldz
fcom st(1)
fnstsw ax
fld qword [0x5ecc78]
test ah, 0x41
jp 0x58f0cc
fadd st(2), st(0)
jmp 0x58f0ce
fsub st(2), st(0)
fxch st(2)
call fcn.005bd3f0
fild dword [esp + 0x70]
mov dword [esp + 0x84], eax
fmul qword [esp + 0x114]
fadd qword [esp + 0xe4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x58f0fd
faddp st(1)
jmp 0x58f0ff
fsubrp st(1)
call fcn.005bd3f0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
mov edx, edi
shl edx, 4
lea ecx, [esp + 0x84]
lea ebx, [edx + eax]
push ecx
mov ecx, ebx
call fcn.00568b90
test byte [ebx + 2], 8
je 0x58f135
mov edx, dword [esp + 0x58]
mov dword [ebx + 4], edx
jmp 0x58f13c
mov eax, dword [esp + 0x58]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x7c]
add eax, 2
inc edi
cmp eax, esi
mov dword [esp + 0x7c], eax
jl 0x58ef30
test edi, edi
je 0x58f230
mov ecx, dword [esp + 0x28]
push edi
push ecx
lea ecx, [esp + 0xa4]
call fcn.005281f0
cmp byte [esp + 0x22], 0
mov byte [esp + 0x1a0], 3
je 0x58f1a9
cmp byte [esp + 0x21], 0
je 0x58f191
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0xa0]
call fcn.0052aef0
cmp byte [esp + 0x20], 0
je 0x58f1a9
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xa0]
call fcn.0052b050
cmp dword [esp + 0x18], 0
je 0x58f1d3
fld qword [esp + 0xec]
lea ecx, [esp + 0x5c]
push ecx
sub esp, 8
mov eax, esp
lea ecx, [esp + 0xa8]
fstp qword [eax]
mov dword [esp + 0x20], esp
call fcn.0052a160
cmp dword [ebp + 0x14], 0
jne 0x58f1fc
cmp dword [esp + 0x6c], 0
je 0x58f1e7
cmp dword [esp + 0x58], 0
jne 0x58f1fc
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x9c]
push eax
call edx
jmp 0x58f21c
mov esi, dword [esp + 0xa8]
push 0
lea ecx, [esp + 0xa0]
call fcn.0052c760
mov ecx, dword [esp + 0x20]
push eax
push esi
call fcn.005659d0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1a0], 0
call fcn.0052d4d0
cmp dword [esp + 0x28], 0
je 0x58f258
mov eax, dword [esp + 0x28]
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push fcn.0045c490
push ecx
push 0x10
push eax
call fcn.005bd4f9
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
fld qword [esp + 0x11c]
mov ebx, dword [esp + 0x2c]
fadd qword [esp + 0x13c]
mov edi, dword [esp + 0x68]
fadd qword [esp + 0x74]
fstp qword [esp + 0x74]
cmp ebx, dword [esp + 0xc0]
jl 0x58ed10
jmp 0x58f287
fstp st(0)
mov ebx, dword [esp + 0x24]
test byte [ebx + 0x2c], 2
je 0x58f3a8
push ebx
lea ecx, [esp + 0x150]
call fcn.004f9140
mov eax, dword [ebx + 0x34]
sar eax, 1
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1a0], 4
mov dword [esp + 0x180], eax
call fcn.004fbc90
lea edx, [esp + 0x12c]
push edx
lea ecx, [esp + 0x150]
mov byte [esp + 0x1a4], 5
call fcn.004f88e0
push 4
lea ecx, [esp + 0x130]
call fcn.00459dc0
push eax
lea ecx, [esp + 0xa4]
call fcn.00528110
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1a0], 6
call fcn.00459dc0
push eax
lea ecx, [esp + 0xa0]
call fcn.0052d7e0
mov eax, dword [ebx + 0x34]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xa4]
call fcn.0052d540
cmp dword [ebp + 0x14], 0
je 0x58f354
mov esi, dword [esp + 0xa8]
push 0
lea ecx, [esp + 0xa0]
call fcn.0052c760
mov ecx, dword [esp + 0x20]
push eax
push esi
call fcn.005659d0
jmp 0x58f367
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x9c]
push edx
call eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1a0], 5
call fcn.0052d4d0
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1a0], 4
call fcn.004fc5f0
lea ecx, [esp + 0x14c]
mov byte [esp + 0x1a0], 0
call fcn.004f94c0
jmp 0x58f6f6
cmp dword [esp + 0x6c], 0
je 0x58f6f6
cmp dword [ebp + 0x14], 0
jne 0x58f6f6
lea ecx, [esp + 0x13c]
call fcn.004fbc90
lea ecx, [esp + 0x13c]
push ecx
mov ecx, ebx
mov byte [esp + 0x1a4], 7
call fcn.004f88e0
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x150]
call fcn.005121f0
cmp dword [esp + 0x58], 0
mov byte [esp + 0x1a0], 8
jne 0x58f446
mov eax, dword [ebx + 0x34]
fld qword [ebx + 0x18]
sub esp, 8
mov dword [esp + 0x160], eax
mov dword [esp + 0x174], eax
mov eax, esp
lea ecx, [esp + 0x154]
fstp qword [eax]
mov dword [esp + 0x6c], esp
call fcn.00512310
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x14c]
push edx
call eax
jmp 0x58f6ce
lea ecx, [esp + 0x34]
call fcn.004f6ca0
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x1a4], 9
call fcn.00564a60
lea ecx, [esp + 0xc4]
call fcn.004f6ca0
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1a0], 0xa
call fcn.004f6ca0
push 1
push 0
push 0
push 0
lea ecx, [esp + 0xac]
mov byte [esp + 0x1b0], 0xb
call fcn.00536630
cmp dword [esp + 0x34], 0
mov byte [esp + 0x1a0], 0xc
mov dword [esp + 0x24], 0
jle 0x58f56c
lea esp, [esp]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
push 0
push 0
push 0
push 0
lea edx, [esp + 0xd4]
push edx
mov edx, dword [eax + ecx*4]
push edx
lea ecx, [esp + 0xb4]
call fcn.00538920
xor esi, esi
cmp dword [esp + 0xc4], esi
jle 0x58f54d
push 0x2c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x64], eax
mov byte [esp + 0x1a0], 0xd
test eax, eax
je 0x58f523
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + esi*4]
push edx
mov ecx, eax
call fcn.005146a0
mov edi, eax
jmp 0x58f525
xor edi, edi
mov eax, dword [esp + 0x8c]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1a4], 0xc
call fcn.005bbe80
inc esi
mov dword [eax], edi
cmp esi, dword [esp + 0xc4]
jl 0x58f4f3
lea ecx, [esp + 0xc4]
call fcn.004f6cf0
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
jl 0x58f4c0
lea ecx, [esp + 0x34]
call fcn.004f6cf0
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0x154]
call fcn.00512780
lea ecx, [esp + 0x8c]
call fcn.004f6cf0
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [0x630c78], eax
mov dword [0x630c7c], eax
mov dword [ecx + 0xc], 1
fld qword [ebx + 0x18]
mov esi, dword [ebx + 0x34]
fstp qword [esp + 0x12c]
xor edi, edi
cmp dword [esp + 0x34], eax
jle 0x58f678
mov ebx, ecx
mov edx, dword [esp + 0x3c]
fld qword [esp + 0x12c]
mov eax, dword [edx + edi*4]
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + edi*4]
mov dword [eax + 0x20], esi
sub esp, 8
mov eax, esp
fstp qword [eax]
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + edi*4]
mov dword [esp + 0x6c], esp
call fcn.00512310
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + edi*4]
test eax, eax
je 0x58f60e
add eax, 0x14
jmp 0x58f610
xor eax, eax
push eax
lea ecx, [esp + 0x50]
call fcn.005b83f0
mov eax, dword [esp + 0x50]
mov byte [esp + 0x1a0], 0xe
test eax, eax
je 0x58f64b
add eax, 0xffffffec
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
cmp eax, dword [ecx]
jne 0x58f640
xor eax, eax
jmp 0x58f643
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x58f62a
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + edi*4]
mov edx, dword [ebx]
mov edx, dword [edx + 0x18]
push ecx
mov ecx, ebx
call edx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1a0], 0xc
call fcn.0045c490
inc edi
cmp edi, dword [esp + 0x34]
jl 0x58f5cc
lea ecx, [esp + 0x34]
call fcn.004f6cf0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1a0], 0xb
call fcn.00536770
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1a0], 0xa
call fcn.00467410
lea ecx, [esp + 0xc4]
mov byte [esp + 0x1a0], 9
call fcn.00467410
lea ecx, [esp + 0x34]
mov byte [esp + 0x1a0], 8
call fcn.00467410
lea ecx, [esp + 0x14c]
mov byte [esp + 0x1a0], 7
call fcn.00514dd0
lea ecx, [esp + 0x13c]
mov byte [esp + 0x1a0], 0
call fcn.004fc5f0
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1a0], 0xffffffff
call fcn.004f7e90
mov ecx, dword [esp + 0x198]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x180]
xor ecx, esp
call fcn.005bd2c6
mov esp, ebp
pop ebp
ret 0x10