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

Disassembly:
mov ecx, dword [0xf33f68]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x108]
cmp eax, dword [ecx + 8]
jbe 0x5d8fe7
sub esp, 0x188
mov eax, dword [esp + 0x18c]
mov ecx, dword [eax + 0x1a0]
test ecx, ecx
jne 0x5d8ad2
mov ecx, dword [esp + 0x198]
test ecx, ecx
je 0x5d857d
mov edx, dword [esp + 0x194]
mov ebx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x34]
cmp dword [eax + 0x28], ebp
jne 0x5d84f1
mov ecx, dword [ebx + 0x30]
mov edx, dword [eax + 0x24]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00403420
movzx eax, byte [esp + 0xc]
test al, al
je 0x5d84ea
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x198]
jmp 0x5d857d
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], 5
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
lea eax, [0x79aa80]
mov dword [esp], eax
lea eax, [esp + 0x16c]
mov dword [esp + 4], eax
call fcn.0040aba0
mov eax, dword [esp + 8]
lea ecx, [0xc7f340]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
mov edx, dword [esp + 0x1a0]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0x90]
call fcn.0046cf5e
lea edi, [esp + 0x78]
lea esi, [esp + 0x90]
call fcn.0046cf5e
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
test ecx, 0x80000000
je 0x5d85d9
shl ecx, 1
mov ebp, ebx
shl ebx, 1
mov esi, ebp
shr ebp, 0x1f
or ebp, ecx
mov ecx, ebp
shl ebp, 1
shr ebx, 0x1f
or ebx, ebp
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
jmp 0x5d85eb
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov esi, ebx
mov ebx, ebp
test ecx, ecx
sete cl
test ebx, ebx
sete bl
and ecx, ebx
test cl, cl
je 0x5d861e
test esi, 0x3fffffff
jne 0x5d861e
call fcn.0048f6d0
lea edi, [esp + 0x90]
lea esi, [esp]
call fcn.0046cf5e
mov eax, dword [esp + 0x18c]
lea esi, [eax + 0x158]
mov dword [esp + 0x184], esi
lea edi, [esp + 0x138]
call fcn.0046cf5e
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0046cf5e
lea edi, [esp + 0x14]
lea esi, [esp + 0x138]
call fcn.0046cf5e
call fcn.0048d860
movzx eax, byte [esp + 0x28]
test al, al
jne 0x5d892b
mov eax, dword [esp + 0x18c]
lea esi, [eax + 0x16c]
mov dword [esp + 0x184], esi
lea edi, [esp + 0x110]
call fcn.0046cf5e
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0046cf5e
lea edi, [esp + 0x14]
lea esi, [esp + 0x110]
call fcn.0046cf5e
call fcn.0048d740
movzx eax, byte [esp + 0x28]
test al, al
jne 0x5d8784
mov eax, dword [esp + 0x1a0]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x5d86d3
mov dword [esp + 0x3c], 0x3d090
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x190]
cmp eax, 1
jne 0x5d86f2
mov ecx, dword [esp + 0x198]
test ecx, ecx
jmp 0x5d8700
cmp eax, 2
jne 0x5d8743
mov ecx, dword [esp + 0x198]
test ecx, ecx
je 0x5d8707
cmp eax, 1
jmp 0x5d874d
lea eax, [0x783b80]
mov dword [esp], eax
call fcn.0040d540
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x38
lea ecx, [0x7e84a9]
mov dword [eax], ecx
lea ecx, [0xc7eec4]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
cmp eax, 1
mov ecx, dword [esp + 0x198]
je 0x5d8754
cmp eax, 2
jne 0x5d877d
mov edx, dword [esp + 0x18c]
mov ebx, dword [edx + 0x184]
nop
mov ebp, dword [0xed25f8]
mov esi, dword [0xed25fc]
mov dword [esp + 0x38], esi
mov edi, dword [edx + 0x188]
jmp 0x5d8f52
xor edx, edx
jmp 0x5d8af3
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0046cf5e
lea eax, [0x7ca34b]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.004872a0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x180], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0xfc]
mov esi, dword [esp + 0x184]
call fcn.0046cf5e
lea edi, [esp]
lea esi, [esp + 0xfc]
call fcn.0046cf5e
lea ecx, [0x7ca34b]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.004872a0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x17c], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov edx, dword [esp + 0x180]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
call fcn.0040add0
mov eax, dword [esp + 8]
lea ecx, [0x776800]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.0040add0
mov eax, dword [esp + 8]
lea ecx, [0x776800]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
lea eax, [0x7cc756]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
lea eax, [esp + 0x15c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004d30d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x16c], edx
mov dword [esp + 0x170], 1
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ecx
lea eax, [0x79aa80]
mov dword [esp], eax
lea eax, [esp + 0x16c]
mov dword [esp + 4], eax
call fcn.0040aba0
mov eax, dword [esp + 8]
lea ecx, [0xc7f340]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0046cf5e
lea eax, [0x7ca34b]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.004872a0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x180], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0x124]
mov esi, dword [esp + 0x184]
call fcn.0046cf5e
lea edi, [esp]
lea esi, [esp + 0x124]
call fcn.0046cf5e
lea ecx, [0x7ca34b]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.004872a0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x17c], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov edx, dword [esp + 0x180]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
call fcn.0040add0
mov eax, dword [esp + 8]
lea ecx, [0x776800]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.0040add0
mov eax, dword [esp + 8]
lea ecx, [0x776800]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
lea eax, [0x7cd6f9]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0x15c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004d30d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x16c], edx
mov dword [esp + 0x170], 1
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ecx
lea eax, [0x79aa80]
mov dword [esp], eax
lea eax, [esp + 0x16c]
mov dword [esp + 4], eax
call fcn.0040aba0
mov eax, dword [esp + 8]
lea ecx, [0xc7f340]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
lea eax, [0xc7f3a4]
mov dword [esp + 0x1a4], eax
lea eax, [0xf33e00]
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
test dl, dl
je 0x5d8b0d
mov edx, dword [esp + 0x194]
xor ebx, ebx
xor ebp, ebp
lea esi, [esp + 0x50]
xor edi, edi
jmp 0x5d8c4b
cmp eax, 1
jne 0x5d8b8f
mov eax, dword [esp + 0x18c]
movzx edx, byte [eax + 0x1c0]
test dl, dl
je 0x5d8b2f
movzx edx, byte [eax + 0x1c1]
test dl, dl
jne 0x5d8b96
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
lea eax, [0x79aa80]
mov dword [esp], eax
lea eax, [esp + 0x16c]
mov dword [esp + 4], eax
call fcn.0040aba0
mov eax, dword [esp + 8]
lea ecx, [0xc7f340]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
mov eax, dword [esp + 0x18c]
movzx edx, byte [eax + 0x1c0]
test dl, dl
je 0x5d8c10
mov edx, dword [eax + 0x1c4]
test edx, edx
jl 0x5d8c10
dec ecx
cmp edx, ecx
jge 0x5d8c10
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], 3
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
lea eax, [0x79aa80]
mov dword [esp], eax
lea eax, [esp + 0x16c]
mov dword [esp + 4], eax
call fcn.0040aba0
mov eax, dword [esp + 8]
lea ecx, [0xc7f340]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x188
ret
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
add esp, 0x188
ret
mov ecx, dword [esp + 0x6c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
mov edi, eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x74], esi
cmp ecx, ebx
jle 0x5d8d04
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x30], ebp
mov eax, dword [edx + ebx*4]
mov dword [esp + 0xf8], eax
mov edx, dword [eax + 0x184]
mov ecx, dword [0xed25e8]
mov dword [esp + 0x8c], ecx
mov ebx, dword [0xed25ec]
mov dword [esp + 0x34], ebx
mov eax, dword [eax + 0x188]
jmp 0x5d8eb4
jle 0x5d8cfd
lea eax, [edi + 1]
cmp ebp, eax
jae 0x5d8ccc
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x7ac6e0]
mov dword [esp + 0x10], eax
call fcn.00450c90
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [0xf34078]
test ecx, ecx
jne 0x5d8cdf
mov ecx, dword [esp + 0xf8]
jmp 0x5d8cf4
call fcn.0046c7e0
mov ecx, dword [esp + 0xf8]
mov dword [edi], ecx
mov edx, dword [esi + eax*4 - 4]
mov dword [edi + 4], edx
mov dword [esi + eax*4 - 4], ecx
jmp 0x5d8c2d
mov eax, edi
jmp 0x5d8c2d
xor edx, edx
jmp 0x5d8d25
mov ebx, dword [esp + 0x6c]
lea edx, [ebx + 1]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x198]
cmp edx, edi
jge 0x5d8ddb
mov dword [esp + 0x6c], edx
mov ebx, dword [esi + edx*4]
mov ebp, dword [ebx + 0x184]
mov ebx, dword [ebx + 0x188]
jmp 0x5d8df6
xor ebx, ebx
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x70], ebx
xor ebx, ebx
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
lea eax, [0x5d9000]
mov dword [esp + 0x14c], eax
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x150], ecx
lea edx, [esp + 0x4c]
mov dword [esp + 0x154], edx
lea edx, [esp + 0x3c]
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
lea edx, [esp + 0x14c]
mov dword [esp + 0xc], edx
call fcn.005cf350
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5d8d08
jmp 0x5d8e49
cmp eax, 1
jmp 0x5d8b10
add ebp, 0x1c
dec ebx
mov ecx, dword [esp + 0x198]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x2c]
test ebx, ebx
jle 0x5d8d45
lea edi, [esp + 0xdc]
mov esi, ebp
call fcn.0046cf4a
mov ecx, dword [esp + 0xe0]
cmp dword [0xed25ec], ecx
jne 0x5d8de3
mov dword [esp + 0x68], ebx
mov esi, dword [esp + 0xdc]
mov edi, dword [0xed25e8]
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x5d8e6f
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
jmp 0x5d8de3
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
add esp, 0x188
ret
inc eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
cmp eax, ecx
jge 0x5d8e83
mov edx, dword [esi + eax*4]
lea ebx, [edi + eax*4]
cmp dword [ebx], edx
je 0x5d8e62
jmp 0x5d8e38
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0x70], eax
jmp 0x5d8d51
add edx, 0x1c
dec eax
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x2c]
test eax, eax
jle 0x5d8c95
lea edi, [esp + 0xa4]
mov esi, edx
call fcn.0046cf4a
mov ecx, dword [esp + 0xa8]
cmp ecx, ebx
jne 0x5d8ea1
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
jmp 0x5d8f18
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
jmp 0x5d8ea1
lea eax, [ebx + 1]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x40]
cmp ebx, ecx
jge 0x5d8f2c
mov ebp, dword [esi + ebx*4]
lea eax, [edi + ebx*4]
cmp dword [eax], ebp
je 0x5d8f05
jmp 0x5d8ef7
test eax, eax
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x2c]
jmp 0x5d8c95
add ebx, 0x1c
mov ecx, dword [esp + 0x6c]
lea edi, [ecx - 1]
mov ecx, dword [esp + 0x198]
mov edx, esi
mov esi, dword [esp + 0x38]
test edi, edi
jle 0x5d8fa0
mov dword [esp + 0x6c], edi
lea edi, [esp + 0xc0]
mov esi, ebx
call fcn.0046cf4a
mov ecx, dword [esp + 0xc4]
mov esi, edx
mov edx, dword [esp + 0x38]
cmp ecx, edx
jne 0x5d8f3b
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x44], eax
jmp 0x5d8fba
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x18c]
jmp 0x5d8f3b
setg bl
mov edx, ebx
jmp 0x5d8af3
inc eax
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x18c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
cmp eax, ecx
jge 0x5d8fcf
mov esi, dword [edi + eax*4]
lea edx, [ebp + eax*4]
cmp dword [edx], esi
je 0x5d8faa
jmp 0x5d8f8c
mov ebx, dword [esp + 0x6c]
test ebx, ebx
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x198]
mov edx, esi
jmp 0x5d8fa0
call fcn.0046b3d0
jmp fcn.005d8460