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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c2162
sub esp, 0x54
mov eax, dword [esp + 0x58]
movzx ecx, word [eax]
test cx, 0x80
jne 0x4c1a4c
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 dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x54
ret
mov ecx, dword [esp + 0x60]
cmp ecx, 2
jl 0x4c1a07
mov edx, dword [esp + 0x5c]
cmp byte [edx], 0x5c
jne 0x4c1a07
movzx ebx, byte [edx + 1]
cmp bl, 0x70
je 0x4c2134
cmp bl, 0x50
xchg ebp, ebx
setne bl
xchg ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4c1a07
cmp bl, 0x50
jne 0x4c212a
mov ebx, 0xffffffff
mov dword [esp + 0x28], ebx
lea eax, [ecx - 2]
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, 2
add eax, edx
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.004c3940
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 8]
cmp ebp, 0x7b
test eax, eax
jne 0x4c20ed
cmp ebp, 0x7b
je 0x4c1efd
mov ebx, dword [esp + 0x60]
mov ebp, ebx
sub ebx, ecx
cmp ebx, ebp
ja 0x4c2158
cmp ebx, 2
jb 0x4c214c
lea eax, [ebx - 2]
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, 2
mov esi, dword [esp + 0x5c]
add eax, esi
test ebp, ebp
je 0x4c1ef4
cmp byte [eax], 0x5e
jne 0x4c1ef4
mov edi, dword [esp + 0x28]
xchg edi, ebx
neg ebx
xchg edi, ebx
dec ebp
mov dword [esp + 0x30], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add eax, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], edi
cmp ebp, 3
jne 0x4c1dd5
cmp word [eax], 0x6e41
jne 0x4c1dd5
cmp byte [eax + 2], 0x79
jne 0x4c1dd5
mov eax, dword [0x960388]
mov ebp, eax
test eax, eax
je 0x4c1d2c
mov ebx, dword [esp + 0x58]
movzx esi, word [ebx]
test si, 1
jne 0x4c1c15
test edi, edi
jle 0x4c1be7
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.004c3130
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x54
ret
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.004c3310
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x4c1bae
test ebp, ebp
je 0x4c1b7e
mov dword [esp + 0x50], ebp
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.004c3130
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
call fcn.004c3130
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x58]
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], eax
lea edi, [ebx + 0x20]
mov eax, dword [0x98ef80]
test eax, eax
jne 0x4c1d20
mov dword [ebx + 0x20], edx
mov dword [esp], edi
call fcn.004c2950
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
test ebx, ebx
jle 0x4c1cea
mov ebx, dword [esp + 0x64]
mov dword [esp], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004c2ea0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, eax
mov eax, ecx
mov ecx, edx
mov edx, ebx
jmp 0x4c1bae
mov ebx, dword [esp + 0x64]
mov dword [esp], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004c3020
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
jmp 0x4c1cdd
mov eax, edx
call fcn.004502f0
jmp 0x4c1c8d
lea eax, [0x67fba0]
mov dword [esp], eax
call fcn.0040a3f0
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1d
mov eax, dword [0x98ef80]
test eax, eax
jne 0x4c1dc8
lea ecx, [0x6c2e75]
mov dword [edi], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x98ef80]
test ecx, ecx
jne 0x4c1db2
mov eax, dword [esp + 0x5c]
mov dword [edi + 8], eax
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
lea eax, [0x71dfe0]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x54
ret
lea ecx, [edi + 8]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x5c]
call fcn.004502f0
mov edi, edx
jmp 0x4c1d6f
lea eax, [0x6c2e75]
call fcn.004502f0
jmp 0x4c1d57
mov dword [esp + 0x34], ebp
mov dword [esp + 0x48], eax
lea ecx, [0x66aa60]
mov dword [esp], ecx
mov edx, dword [0x97b4f0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
call fcn.0040ef80
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x4c1e56
mov dword [esp + 0x44], eax
lea eax, [0x66aa60]
mov dword [esp], eax
mov eax, dword [0x97b4f4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
call fcn.0040ef80
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
jmp 0x4c1b64
lea eax, [0x66aa60]
mov dword [esp], eax
mov ecx, dword [0x97b500]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
call fcn.0040ef80
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
jne 0x4c1ea5
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
xor eax, eax
xor ebp, ebp
jmp 0x4c1b64
mov dword [esp + 0x40], eax
lea eax, [0x66aa60]
mov dword [esp], eax
mov eax, dword [0x97b4f8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
call fcn.0040ef80
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
jmp 0x4c1b64
mov edi, dword [esp + 0x28]
jmp 0x4c1b2e
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x7d
call fcn.004b3f90
mov ecx, dword [esp + 0xc]
test ecx, ecx
jl 0x4c1fe3
lea ebx, [ecx + 1]
mov edx, dword [esp + 0x60]
cmp ebx, edx
ja 0x4c2145
sub edx, ebx
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, ebx
mov esi, dword [esp + 0x5c]
add edx, esi
cmp ecx, 3
jb 0x4c213b
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edx
lea eax, [ecx - 3]
mov dword [esp + 0x30], eax
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 3
add eax, esi
mov dword [esp + 0x4c], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004c3830
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x4c1fa6
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x4c1afc
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 dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
add esp, 0x54
ret
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
call fcn.004c3830
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x4c20b0
lea eax, [0x67fba0]
mov dword [esp], eax
call fcn.0040a3f0
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1d
mov eax, dword [0x98ef80]
test eax, eax
jne 0x4c20a3
lea ecx, [0x6c2e75]
mov dword [edi], ecx
mov ecx, dword [esp + 0x60]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x98ef80]
test ecx, ecx
jne 0x4c208d
mov eax, dword [esp + 0x5c]
mov dword [edi + 8], eax
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
lea eax, [0x71dfe0]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
add esp, 0x54
ret
lea ecx, [edi + 8]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x5c]
call fcn.004502f0
mov edi, edx
jmp 0x4c204a
lea eax, [0x6c2e75]
call fcn.004502f0
jmp 0x4c2032
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 dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
add esp, 0x54
ret
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 dword [esp + 0x84], eax
mov dword [esp + 0x88], ebx
add esp, 0x54
ret
mov ebx, 1
jmp 0x4c1a89
xor ebp, ebp
jmp 0x4c1a75
mov eax, 3
call fcn.004503d0
mov ecx, ebx
call fcn.00450390
mov eax, 2
mov ecx, ebx
call fcn.004503d0
mov ecx, ebx
mov edx, ebp
call fcn.00450390
nop
call fcn.0044eab0
jmp fcn.004c19e0