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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 4]
cmp eax, dword [ecx + 8]
jbe 0x4c3d95
sub esp, 0x84
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x4c3cc2
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jne 0x4c3cac
test edx, edx
je 0x4c3b8f
mov ebp, 0xa
mov esi, 0x2e
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x34], ebp
mov ebp, 0xa
mov dword [esp + 0x78], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x30], esi
mov byte [esp + 0x2f], al
mov dword [esp + 0x50], ebp
mov dword [esp], ebp
call fcn.004c35c0
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x6c], eax
xor eax, eax
mov byte [esp + 0x2e], al
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], ecx
xor ecx, ecx
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov dword [esp + 0x8c], ecx
xor ecx, ecx
mov dword [esp + 0x44], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
jmp 0x4c37eb
mov dword [esp + 0x90], edi
mov dword [esp + 0x78], esi
mov byte [esp + 0x2e], al
mov byte [esp + 0xa0], cl
mov edx, dword [ebx + 0x10]
mov dword [esp], ebp
call edx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x54]
mov ebx, ebp
mov ebp, esi
mov dword [esp + 0x58], edx
mov byte [esp + 0x2f], al
mov byte [esp + 0x5c], al
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x90], edi
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4c3941
movzx eax, byte [esp + 0x2f]
cmp al, 0x2e
jne 0x4c3b82
movzx ecx, byte [esp + 0xa0]
test cl, cl
je 0x4c384b
mov eax, dword [esp + 0x30]
cmp eax, 0x5f
sete al
movzx ecx, byte [esp + 0x2e]
or eax, ecx
xor ecx, ecx
mov ecx, 0x2e
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], ecx
xor ecx, ecx
jmp 0x4c3771
cmp al, 0x5f
jne 0x4c3880
test edx, edx
jne 0x4c3880
mov eax, dword [esp + 0x30]
cmp eax, 0x30
setne al
movzx edx, byte [esp + 0x2e]
or eax, edx
mov edx, 0x5f
mov edx, dword [esp + 0x40]
mov dword [esp + 0x4c], edx
mov edx, 0x5f
mov dword [esp + 0x30], edx
jmp 0x4c3771
cmp al, 0x30
jb 0x4c3b36
cmp al, 0x39
ja 0x4c3b36
add eax, 0xffffffd0
movzx eax, al
mov edx, dword [esp + 0x50]
cmp eax, edx
jae 0x4c3939
mov ebp, dword [esp + 0x44]
imul ebp, edx
add eax, ebp
mov ebp, dword [esp + 0x3c]
inc ebp
mov edx, dword [esp + 0x38]
cmp edx, ebp
je 0x4c38de
mov edx, dword [esp + 0x40]
inc edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x44], eax
mov ebp, dword [esp + 0x98]
movzx eax, byte [esp + 0x2e]
mov edx, 0x30
jmp 0x4c3877
mov dword [esp], esi
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
call fcn.004bbc40
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
movzx ecx, byte [esp + 0xa0]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x94]
xor ebp, ebp
mov dword [esp + 0x8c], eax
xor eax, eax
jmp 0x4c38ba
mov eax, dword [ebx + 0x14]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 0x58]
cmp dword [0x601bc8], eax
je 0x4c3afd
mov ecx, dword [esp + 0x78]
test eax, eax
je 0x4c3ad5
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x4c3aca
mov ebx, dword [esp + 0x34]
cmp ebx, 0x30
je 0x4c3a7b
mov eax, dword [0x601c14]
mov ecx, dword [0x601c10]
mov dword [esp + 0x78], eax
mov dword [esp + 0x58], ecx
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jg 0x4c3a1c
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.004bb430
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x54]
test ebx, ebx
jl 0x4c3a16
mov ebp, dword [esp + 0x40]
sub ebx, ebp
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ebx
mov eax, dword [esp + 0x58]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xbc], eax
add esp, 0x84
ret
mov ebx, dword [esp + 0x40]
jmp 0x4c39d2
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.004c3610
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x74]
mov dword [esp], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x90]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
call fcn.004bbc40
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
jmp 0x4c39a8
mov edx, dword [esp + 0x74]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], 0
mov edx, dword [esp + 0x90]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], 0xa
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x84
ret
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x4c3982
movzx edx, byte [esp + 0x2e]
test dl, dl
je 0x4c3aef
mov ecx, dword [0x601c0c]
mov eax, dword [0x601c08]
jmp 0x4c395d
mov edx, dword [esp + 0x30]
cmp edx, 0x5f
je 0x4c3ade
jmp 0x4c395d
mov dword [esp], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov edx, dword [0x601bcc]
mov dword [esp + 8], edx
call fcn.004031c0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4c3b29
xor ecx, ecx
xor eax, eax
jmp 0x4c3955
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
jmp 0x4c3955
cmp al, 0x61
jb 0x4c3b4b
cmp al, 0x7a
ja 0x4c3b4b
add eax, 0xffffffa9
movzx eax, al
jmp 0x4c3898
cmp al, 0x41
jb 0x4c3b78
cmp al, 0x5a
ja 0x4c3b78
mov edx, dword [esp + 0x50]
cmp edx, 0x24
jg 0x4c3b70
add eax, 0xffffffc9
movzx eax, al
mov edx, dword [esp + 0x9c]
jmp 0x4c3898
add eax, 0xffffffe3
movzx eax, al
jmp 0x4c3b64
mov eax, 0x3f
jmp 0x4c3898
movzx ecx, byte [esp + 0xa0]
jmp 0x4c384b
cmp al, 0x30
jne 0x4c36c9
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test edx, edx
je 0x4c3be4
mov ebx, 0xa
mov ebp, 1
xor esi, esi
mov edi, ebp
mov dword [esp + 0x34], esi
mov ebp, ebx
mov esi, 0x30
mov ebx, dword [esp + 0x9c]
jmp 0x4c36e0
cmp al, 0x58
ja 0x4c3c97
cmp al, 0x42
jne 0x4c3c4d
mov ebx, 0x62
mov ebp, 2
test ebx, ebx
je 0x4c3c46
cmp ebx, 0x30
jne 0x4c3c11
xor esi, esi
mov edi, ebx
mov ebx, ebp
mov ebp, esi
mov esi, edi
jmp 0x4c3bcb
mov dword [esp + 0x34], ebx
mov dword [esp + 0x54], ebp
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x98]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x54]
jmp 0x4c3c05
mov esi, 1
jmp 0x4c3c07
cmp al, 0x4f
jne 0x4c3c5e
mov ebx, 0x6f
mov ebp, 8
jmp 0x4c3bfc
cmp al, 0x58
jne 0x4c3c6f
mov ebx, 0x78
mov ebp, 0x10
jmp 0x4c3bfc
movzx ebx, byte [esp + 0xa0]
test bl, bl
je 0x4c3c8b
xor ebp, ebp
mov esi, 0xa
mov ebx, ebp
mov ebp, esi
jmp 0x4c3bfc
mov ebp, 0x30
mov esi, 8
jmp 0x4c3c82
cmp al, 0x62
je 0x4c3bf2
cmp al, 0x6f
je 0x4c3c52
cmp al, 0x78
je 0x4c3c63
jmp 0x4c3c6f
mov ebp, ebx
mov esi, 0x2e
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x34], ebp
mov ebp, ebx
jmp 0x4c36e0
movzx ecx, byte [esp + 0xa0]
test cl, cl
je 0x4c3cf6
je 0x4c3d0c
cmp eax, 2
je 0x4c368f
cmp eax, 8
je 0x4c368f
cmp eax, 0xa
je 0x4c368f
cmp eax, 0x10
je 0x4c368f
jmp 0x4c3d0c
cmp eax, 2
jl 0x4c3d08
cmp eax, 0x3e
jle 0x4c368f
test cl, cl
jmp 0x4c3cce
test cl, cl
jmp 0x4c3cce
mov dword [esp], eax
call fcn.00407ea0
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea ecx, [0x4ff6c0]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
lea eax, [0x51fbda]
mov dword [esp], eax
mov dword [esp + 4], 0x16
lea eax, [esp + 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a4070
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00407f70
mov eax, dword [esp + 8]
lea ecx, [0x4fff00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042d810
nop
call fcn.004546e0
jmp fcn.004c3660