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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x584fca
sub esp, 0x50
mov eax, 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x2f], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x584f12
mov ecx, dword [esp + 0x58]
movzx edx, byte [ecx]
mov byte [esp + 0x2e], dl
mov byte [esp], 7
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.005846f0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
test edx, edx
jne 0x584eea
mov dword [esp + 0x38], edi
mov eax, ebp
mov ebp, dword [esp + 0x54]
mov ecx, ebp
mov ebp, dword [ebp + 0x30]
test ebp, ebp
je 0x584ee3
mov edx, ebp
sar ebp, 0x1f
cmp edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
cmp edx, ebx
mov edx, ebx
setb bl
and ebp, ebx
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x584ea0
cmp edx, eax
seta bl
mov ebp, eax
sar eax, 0x1f
mov edi, dword [esp + 0x38]
cmp eax, edi
mov eax, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov edx, edi
xchg edi, ebx
setb bl
xchg edi, ebx
and ebp, ebx
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x584e61
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], eax
movzx ebx, byte [esp + 0x2e]
test bl, 0x80
je 0x584dc6
movzx ebx, byte [esp + 0x64]
test bl, bl
jne 0x584c33
xor ecx, ecx
test edx, edx
jne 0x584f5a
cmp esi, eax
ja 0x584f51
mov edx, dword [esp + 0x60]
sub edx, esi
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, esi
mov ebp, dword [esp + 0x58]
add edx, ebp
mov dword [esp + 0x70], edx
sub eax, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
test cl, 1
jne 0x584c0e
add esp, 0x50
ret
and ecx, 0xfffffffe
mov byte [esp + 0x2f], cl
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00470e30
jmp 0x584c0a
lea eax, [0x77dfb0]
mov dword [esp], eax
call fcn.00470ed0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
lea edx, [0x6082e0]
cmp edx, ecx
jne 0x584f80
nop
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov byte [eax + 0x10], 0
lea ebx, [0x6272f0]
mov dword [esp + 0x44], ebx
lea ebx, [0x77dfb0]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov byte [esp + 0x2f], 1
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x584f73
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
cmp ecx, edx
ja 0x584f6e
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x54]
mov ebx, dword [ebx + 0x30]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.00584fe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x584d57
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + 4]
mov ebx, dword [edx]
mov ebp, dword [edx + 8]
mov eax, dword [edx + 0xc]
cmp eax, ecx
ja 0x584f69
mov dword [esp], 0
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
lea edx, [ebx + ebp]
mov dword [esp + 4], edx
sub ecx, eax
mov dword [esp + 8], ecx
call fcn.00448630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov byte [eax + 0x10], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ecx, 1
jmp 0x584bbf
nop
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov byte [eax + 0x10], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
mov byte [esp + 0x2f], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00470e30
add esp, 0x50
ret
movzx ebx, byte [esp + 0x64]
test bl, bl
je 0x584e0b
test edx, edx
jne 0x584fb1
mov ebx, dword [esp + 0x60]
cmp esi, ebx
ja 0x584fa8
mov dword [esp], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00448630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x584f9b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
ja 0x584f96
mov edx, dword [esp + 0x60]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x58]
add edx, ebp
mov dword [esp + 0x70], edx
sub ecx, eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
add esp, 0x50
ret
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x78], eax
mov eax, dword [0x783500]
mov ecx, dword [0x783504]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x50
ret
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [0x7834f8]
mov ecx, dword [0x7834fc]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x50
ret
mov edx, ebx
jmp 0x584b6e
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebp
mov eax, dword [esp + 0x60]
mov dword [esp + 0x78], eax
add esp, 0x50
ret
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x78], eax
mov eax, dword [0x783500]
mov ecx, dword [0x783504]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x50
ret
mov ecx, eax
mov eax, esi
call fcn.0045df00
mov ecx, esi
mov esi, edx
mov ebx, eax
mov eax, ecx
mov ecx, ebx
call fcn.0045e010
call fcn.0045def0
call fcn.0045dee0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
call fcn.0045dfd0
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0x5daa80]
mov dword [esp + 8], eax
call fcn.00408de0
call fcn.0045df00
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
call fcn.0045e010
mov ecx, esi
mov edx, ebx
call fcn.0045dee0
mov eax, esi
mov esi, edx
mov ecx, eax
mov edx, dword [esp + 0x60]
call fcn.0045dfd0
nop
call fcn.00430cc0
add esp, 0x50
ret
call fcn.0045c8b0
jmp fcn.00584a50