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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x18c
mov eax, dword [esp + 0x1ac]
mov edx, dword [esp + 0x1a8]
lea ebx, [esp + 0x16c]
lea ebp, [esp + 0xe8]
fld qword [esp + 0x1b8]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x154], edx
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x144], edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x230]
fstp qword [esp + 0xd0]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d8]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x134], edx
mov edx, dword [esp + 0x1ec]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x208]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x104], edx
mov edx, dword [esp + 0x214]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x200]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x218]
mov dword [esp + 8], ebx
mov edx, dword [esp + 0x220]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x21c]
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x228]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x22c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x234]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x238]
mov dword [esp + 0xdc], eax
mov eax, dword [0xd48044]
mov dword [esp + 0x17c], eax
xor eax, eax
lea eax, [esp + 0x163]
mov dword [esp + 4], eax
lea eax, [esp + 0x164]
mov dword [esp], eax
call fcn.00509aa0
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 0x6af7c]
test eax, eax
je 0x58d42d
lea esi, [esp + 0x168]
mov dword [esp + 0xb8], esi
cmp eax, 2
ja 0x58cd7d
lea esi, [esi]
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], ebx
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00509c20
mov edi, dword [esp + 0xe8]
mov edx, dword [esp + 0x164]
mov eax, dword [edi + 0x6af70]
test edx, edx
je 0x58cd30
cmp eax, dword [edi + 0x6af84]
jae 0x58cd30
mov ecx, dword [edi + 0x6af74]
sub ecx, edx
cmp ecx, 0x7efa
ja 0x58cd30
mov eax, dword [edi + 0x6af8c]
cmp dword [edi + 0x6af7c], eax
jb 0x58d420
lea eax, [esp + 0x170]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], eax
lea eax, [esp + 0x164]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0x48], eax
lea eax, [esp + 0xec]
mov dword [esp + 0x40], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x10c]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x114]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x118]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x128]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x12c]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x13c]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x148]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x140]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x14c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x158]
mov dword [esp + 8], eax
lea eax, [esp + 0x150]
mov dword [esp + 4], eax
lea eax, [esp + 0x15c]
mov dword [esp], eax
call fcn.00509d20
lea eax, [esp + 0x170]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00509d60
mov edi, dword [esp + 0xe8]
mov eax, dword [esp + 0x16c]
cmp dword [edi + 0x6af7c], eax
jb 0x58d400
cmp eax, 3
je 0x58d3d0
mov eax, dword [edi + 0x6af70]
lea esi, [esi]
cmp eax, 2
jbe 0x58cd42
cmp eax, dword [esp + 0x16c]
jae 0x58cf90
cmp byte [esp + 0x163], 0
mov eax, dword [edi + 0x6af74]
jne 0x58cda8
mov byte [esp + 0x163], 1
add eax, 1
mov dword [edi + 0x6af74], eax
mov eax, dword [edi + 0x6af7c]
sub eax, 1
mov dword [edi + 0x6af7c], eax
cmp eax, 0x105
jbe 0x58d1f0
mov dword [esp], ebp
call fcn.00509b40
lea eax, [esp + 0x164]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00509b90
mov dword [esp], ebp
call fcn.00509be0
jmp 0x58cba8
movzx eax, byte [edi + eax + 0x1af63]
mov edx, edi
call fcn.0058c620
test al, al
jne 0x58cdd0
mov edi, dword [esp + 0xe8]
mov eax, dword [edi + 0x6af74]
jmp 0x58cd5a
mov eax, dword [esp + 0xe8]
xor esi, esi
mov edi, dword [esp + 0x15c]
vmovsd xmm0, qword [esp + 0x100]
fld qword [esp + 0xf8]
fld qword [esp + 0x120]
mov edx, dword [eax + 0x6af68]
mov dword [esp + 0x90], edi
vmovsd xmm1, qword [esp + 0x130]
mov edi, dword [esp + 0xc0]
vmovsd qword [esp + 0x9c], xmm0
lea ecx, [eax + edx + 0x1af64]
test edx, edx
vmovsd xmm2, qword [esp + 0x150]
cmovns esi, ecx
mov ecx, dword [esp + 0x158]
fst qword [esp + 0x84]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x10c]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x13c]
fstp qword [esp + 0x78]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x108]
vmovsd qword [esp + 0x70], xmm1
vmovsd qword [esp + 0x50], xmm2
mov dword [esp + 0x58], edi
fst qword [esp + 0x64]
mov dword [esp + 0x94], esi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0x12c]
mov dword [esp + 4], edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xbc]
fstp qword [esp + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x6af74]
mov dword [esp], eax
call fcn.004026d0
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x128]
mov dword [esp], eax
call fcn.0058db80
mov edi, dword [esp + 0xe8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x58d358
mov eax, dword [edi + 0x6af74]
mov dword [edi + 0x6af68], eax
jmp 0x58cd5a
lea eax, [esp + 0x174]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00509e90
lea eax, [esp + 0x170]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
lea eax, [esp + 0x162]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], eax
call fcn.00509ed0
mov edi, dword [esp + 0xe8]
mov esi, dword [esp + 0x174]
lea esi, [esi]
mov dword [esp], ebp
call fcn.00509fa0
cmp esi, dword [edi + 0x6af74]
mov dword [esp], ebp
jae 0x58d380
call fcn.0050a110
mov eax, dword [edi + 0x6af70]
test eax, eax
jne 0x58cfe0
lea eax, [esp + 0x163]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0050a140
mov dword [esp], ebx
call fcn.0050a1c0
cmp byte [esp + 0x162], 0
je 0x58d1db
mov eax, dword [edi + 0x6af68]
xor edx, edx
mov esi, dword [esp + 0x108]
vmovsd xmm3, qword [esp + 0xd0]
fld qword [esp + 0xf8]
lea ecx, [edi + eax + 0x1af64]
test eax, eax
mov dword [esp + 0xbc], esi
vmovsd xmm4, qword [esp + 0x140]
cmovns edx, ecx
mov esi, dword [esp + 0x15c]
mov ecx, dword [esp + 0x12c]
vmovsd qword [esp + 0x84], xmm3
vmovsd xmm5, qword [esp + 0x100]
vmovsd qword [esp + 0x70], xmm3
vmovsd xmm6, qword [esp + 0x150]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x114]
vmovsd qword [esp + 0x9c], xmm4
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0xbc]
vmovsd qword [esp + 0x78], xmm5
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x170]
mov dword [esp + 0x58], esi
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x114]
fst qword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x138]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x5c], edx
vmovsd qword [esp + 0x50], xmm6
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x170]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
fstp qword [esp + 0xc]
mov dword [esp + 0x1c], 0
mov dword [esp + 4], eax
mov eax, dword [edi + 0x6af74]
mov dword [esp], eax
call fcn.004026d0
mov edx, dword [esp + 0xbc]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.0058db80
mov edi, dword [esp + 0xe8]
mov eax, dword [edi]
mov esi, dword [eax + 0x20]
test esi, esi
jne 0x58d358
mov eax, dword [edi + 0x6af74]
mov dword [edi + 0x6af68], eax
mov eax, dword [edi + 0x6af7c]
cmp eax, 0x105
ja 0x58cd7d
lea esi, [esi]
mov eax, dword [esp + 0x10c]
fld qword [esp + 0x140]
mov dword [esp + 0x68], edi
vmovsd xmm7, qword [esp + 0x150]
mov edx, dword [esp + 0x138]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0x14c]
mov dword [esp + 0x58], edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x148]
vmovsd qword [esp + 0x50], xmm7
vmovsd xmm7, qword [esp + 0x100]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x88], edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x15c]
fst qword [esp + 0x60]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x48], eax
vmovsd qword [esp + 0x3c], xmm7
mov eax, dword [esp + 0xc4]
vmovsd xmm7, qword [esp + 0xd0]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x118]
vmovsd qword [esp + 0x1c], xmm7
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x108]
fstp qword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x108]
mov dword [esp], eax
call fcn.0058d700
mov eax, dword [esp + 0xe8]
mov edx, dword [eax]
mov edx, dword [edx + 0x20]
test edx, edx
je 0x58cb7f
lea esi, [esi]
mov eax, dword [esp + 0x17c]
sub eax, dword [0xd48044]
jne 0x58d52c
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00509fd0
lea eax, [esp + 0x164]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0050a020
lea eax, [esp + 0x164]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0050a0b0
mov dword [esp], ebp
mov edi, dword [esp + 0xe8]
call fcn.0050a110
mov eax, dword [edi + 0x6af70]
test eax, eax
jne 0x58cfe0
jmp 0x58d006
mov eax, dword [edi + 0x6af74]
sub eax, dword [edi + 0x6af78]
cmp eax, 0x1000
jbe 0x58cd27
mov dword [esp], ebx
call fcn.00509e10
mov edi, dword [esp + 0xe8]
jmp 0x58cd27
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.00509dd0
mov eax, dword [esp + 0x16c]
jmp 0x58cd1e
mov dword [esp], ebp
call fcn.00509ce0
jmp 0x58cc0d
lea eax, [esp + 0x178]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x58], eax
lea eax, [esp + 0x170]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x163]
mov dword [esp + 0x50], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0x48], eax
lea eax, [esp + 0xe4]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x108]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x10c]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x114]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x11c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x128]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x12c]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x130]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x138]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x13c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x14c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x158]
mov dword [esp + 8], eax
lea eax, [esp + 0x150]
mov dword [esp + 4], eax
lea eax, [esp + 0x15c]
mov dword [esp], eax
call fcn.00509750
jmp 0x58d358
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub esp, 0x1c
mov ecx, dword [0xd48044]
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
sub ecx, dword [0xd48044]
jne 0x58d574
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
add esp, 0x1c
jmp dword [0xd4a334]
call fcn.00401690
nop
nop
nop
nop
nop
nop
nop