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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x5d92ad
sub esp, 0x94
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x5d89f8
nop
movzx edx, byte [0x7c0510]
test dl, dl
je 0x5d89b5
mov edx, dword [esp + 0xa4]
mov dword [0x7c0514], edx
mov ebx, dword [0x7e77b0]
test ebx, ebx
jne 0x5d89a1
mov eax, dword [esp + 0xa8]
mov dword [0x7c0518], eax
jmp 0x5d89c3
lea edi, [0x7c0518]
mov eax, dword [esp + 0xa8]
call fcn.0045e950
jmp 0x5d89c3
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x5d89ee
nop
movzx ebx, byte [ecx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x5d89ea
or ebx, 0x80
mov ebp, eax
jmp 0x5d8a0c
mov ebp, eax
xor ebx, ebx
xor ecx, ecx
xor eax, eax
jmp 0x5d8a0c
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa8]
xor ebx, ebx
xor ecx, ecx
xor eax, eax
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
jne 0x5d8a43
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.004b8740
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa8]
mov esi, ebx
nop
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x30], esi
lea edi, [esi - 2]
nop
cmp edi, 4
ja 0x5d8a5d
mov edi, 2
jmp 0x5d8a7d
lea edi, [esi - 7]
cmp edi, 4
ja 0x5d8a6c
mov edi, 7
jmp 0x5d8a7d
lea edi, [esi - 0xd]
cmp edi, 1
ja 0x5d8a7b
mov edi, 0xd
jmp 0x5d8a7d
mov edi, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004bae60
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
cmp edx, 2
jne 0x5d8b53
mov eax, dword [esp + 0x30]
cmp eax, 3
ja 0x5d8ae4
cmp eax, 2
jne 0x5d8acd
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov ecx, eax
sar eax, 0x1f
jmp 0x5d8b21
cmp eax, 3
jne 0x5d9272
mov ecx, dword [esp + 0x38]
movsx eax, byte [ecx]
mov ecx, eax
sar eax, 0x1f
jmp 0x5d8b21
cmp eax, 4
jne 0x5d8af7
mov ecx, dword [esp + 0x38]
movsx eax, word [ecx]
mov ecx, eax
sar eax, 0x1f
jmp 0x5d8b21
cmp eax, 5
jne 0x5d8b09
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov ecx, eax
sar eax, 0x1f
jmp 0x5d8b21
cmp eax, 6
jne 0x5d9272
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, eax
mov eax, ecx
mov ecx, edx
mov edx, dword [esp + 0xac]
mov dword [esp], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004ba370
jmp 0x5d9095
cmp edx, 7
jne 0x5d8bfa
mov eax, dword [esp + 0x30]
cmp eax, 9
ja 0x5d8b98
cmp eax, 7
jne 0x5d8b74
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
xor ecx, ecx
jmp 0x5d8bc8
cmp eax, 8
jne 0x5d8b84
mov ecx, dword [esp + 0x38]
movzx eax, byte [ecx]
xor ecx, ecx
jmp 0x5d8bc8
cmp eax, 9
jne 0x5d9238
mov ecx, dword [esp + 0x38]
movzx eax, word [ecx]
xor ecx, ecx
jmp 0x5d8bc8
cmp eax, 0xa
jne 0x5d8ba7
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5d8bc8
cmp eax, 0xb
jne 0x5d8bb7
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x5d8bc8
cmp eax, 0xc
jne 0x5d9238
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
xor ecx, ecx
mov edx, dword [esp + 0xac]
mov dword [esp], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
call fcn.004ba370
jmp 0x5d9095
cmp edx, 0xd
jne 0x5d8c6b
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jne 0x5d8c16
mov eax, dword [esp + 0x38]
movss xmm0, dword [eax]
cvtss2sd xmm0, xmm0
jmp 0x5d8c27
cmp eax, 0xe
jne 0x5d91fe
mov eax, dword [esp + 0x38]
movsd xmm0, qword [eax]
movsd qword [esp], xmm0
call fcn.00458be0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xac]
mov dword [esp], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004ba370
jmp 0x5d9095
cmp edx, 1
jne 0x5d8d24
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx]
movzx ebp, byte [ebp + 0xb]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5d8d2b
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
call fcn.004b7600
movzx eax, byte [esp + 0xc]
test al, al
je 0x5d8cea
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
call fcn.004ba370
jmp 0x5d9095
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
call fcn.004ba370
jmp 0x5d9095
mov ebx, dword [esp + 0x98]
cmp edx, 0x18
jne 0x5d8ede
mov edx, dword [ebx]
movzx edx, byte [edx + 0xb]
test dl, dl
je 0x5d8ede
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
call fcn.004bad70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x5d8d75
mov eax, 1
lea ecx, [0x62dc6d]
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0xac]
mov dword [esp], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xb4]
mov dword [esp + 8], ebp
call fcn.004bae60
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
call fcn.004a63a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test edx, edx
je 0x5d8eac
mov dword [esp + 0x54], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
call fcn.00408e00
mov eax, dword [esp + 8]
lea ecx, [0x606f80]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5d8e53
mov ebx, dword [eax + 4]
jmp 0x5d8e55
mov ebx, eax
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x70], eax
lea eax, [0x637d3b]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c0250
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x94
ret
mov edx, dword [esp + 0xac]
mov dword [esp], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004ba370
jmp 0x5d9095
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], eax
mov edx, dword [eax + 0x78]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 4]
cmp dword [esp + 8], 0xd
je 0x5d8efd
xor eax, eax
jmp 0x5d8f14
mov dword [esp], eax
lea eax, [0x6309ed]
mov dword [esp + 4], eax
call fcn.004025c0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5d8f1c
xor eax, eax
jmp 0x5d8f4c
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
cmp dword [esp + 8], 6
jne 0x5d8f4a
cmp dword [eax], 0x626d754e
jne 0x5d8f4a
cmp word [eax + 4], 0x7265
sete al
jmp 0x5d8f4c
xor eax, eax
test al, al
je 0x5d90b2
mov eax, dword [esp + 0xa4]
lea ecx, [0x612d60]
cmp eax, ecx
jne 0x5d91e8
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
nop
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.004a63a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
test eax, eax
je 0x5d9068
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
call fcn.00408e00
mov eax, dword [esp + 8]
lea ecx, [0x606f80]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5d900f
mov ecx, dword [eax + 4]
jmp 0x5d9011
mov ecx, eax
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
lea eax, [0x63bef2]
mov dword [esp], eax
mov dword [esp + 4], 0x26
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c0250
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x94
ret
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebp
call fcn.004ba370
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x94
ret
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.004bae60
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x34]
mov dword [esp], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], edx
call fcn.004bae60
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
lea edi, [esp + 0x74]
xor eax, eax
call fcn.0045eb78
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
call fcn.00408e00
mov eax, dword [esp + 8]
lea ecx, [0x606f80]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5d9155
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x5d916f
mov eax, dword [eax + 4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x90], eax
lea eax, [0x63fe27]
mov dword [esp], eax
mov dword [esp + 4], 0x41
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
call fcn.004c0250
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x94
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x6068c0]
mov dword [esp + 8], eax
call fcn.00408a50
lea eax, [0x611440]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x633510]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
lea ecx, [0x60ac00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004337b0
lea eax, [0x611440]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x632c12]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
lea ecx, [0x60ac00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004337b0
lea eax, [0x611440]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x11
lea ecx, [0x632415]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
lea ecx, [0x60ac00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004337b0
nop
call fcn.0045d540
jmp fcn.005d8940