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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c183c
sub esp, 0x74
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
lea edx, [0x521ef4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004a8b70
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x1c], 5
jne 0x4c17ad
mov dword [esp + 0x58], eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], 0x20
call fcn.00466c40
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
jne 0x4c179a
test eax, eax
sete dl
cmp ecx, 0xffffffff
seta bl
test eax, eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebx, edx
or ebx, ebp
test bl, bl
jne 0x4c1714
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov edx, dword [esp + 0x58]
mov eax, 1
jmp 0x4c138d
mov word [esp + edx*2 + 0x48], cx
lea eax, [edx + 1]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
cmp eax, 3
jg 0x4c1419
cmp eax, 5
jae 0x4c170a
mov dword [esp + 0x24], eax
lea ecx, [edx + eax*8]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], 0x10
call fcn.00466c40
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
jne 0x4c16f7
cmp ecx, 0xffff
seta dl
test eax, eax
sete bl
xchg ebp, ebx
seta bl
xchg ebp, ebx
and edx, ebx
or edx, ebp
test dl, dl
jne 0x4c1633
mov edx, dword [esp + 0x24]
lea eax, [edx - 1]
cmp eax, 3
jb 0x4c137d
jmp 0x4c1629
mov eax, dword [edx + 0x20]
mov ecx, dword [edx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], 0x40
call fcn.00466c40
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
jne 0x4c1616
cmp ecx, 0xffffffff
seta dl
cmp eax, 0xffff
sete bl
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebx, edx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4c1590
movzx edx, word [esp + 0x4e]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
nop
mov byte [esp + 0x50], cl
shl edx, 0x10
or edx, eax
mov dword [esp + 0x40], edx
mov eax, ecx
shr ecx, 8
mov ebx, edx
shl edx, 0x18
or edx, ecx
mov byte [esp + 0x51], dl
mov ecx, eax
shr eax, 0x10
mov edx, ebx
shl ebx, 0x10
or ebx, eax
mov byte [esp + 0x52], bl
mov eax, edx
shl edx, 8
shr ecx, 0x18
or ecx, edx
mov byte [esp + 0x53], cl
mov dword [esp + 0x54], eax
nop
movzx ecx, byte [esp + 0x53]
mov dword [esp + 0x3c], ecx
movzx edx, byte [esp + 0x52]
mov dword [esp + 0x38], edx
movzx ebx, byte [esp + 0x51]
mov dword [esp + 0x34], ebx
movzx ebp, byte [esp + 0x50]
mov dword [esp + 0x44], ebp
lea esi, [0x4e3bc0]
mov dword [esp], esi
call fcn.0040b990
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
movzx ecx, word [esp + 0x4a]
mov word [eax + 4], cx
movzx ecx, word [esp + 0x4c]
mov word [eax + 6], cx
mov ecx, dword [esp + 0x40]
mov edx, ecx
shr ecx, 8
mov ebx, edx
shr edx, 0x10
mov ebp, ebx
shr ebx, 0x18
movzx edx, dl
mov esi, edx
shl edx, 8
or ebx, edx
movzx ecx, cl
mov edx, ecx
shl ecx, 0x10
or ecx, ebx
xchg ebp, eax
movzx ebx, al
xchg ebp, eax
mov ebp, ebx
shl ebx, 0x18
or ebx, ecx
mov dword [eax + 8], ebx
shr esi, 0x18
shr edx, 0x10
or edx, esi
shr ebp, 8
or edx, ebp
mov ecx, dword [esp + 0x3c]
or ecx, edx
mov edx, dword [esp + 0x38]
shl edx, 8
or ecx, edx
mov edx, dword [esp + 0x34]
shl edx, 0x10
or ecx, edx
mov edx, dword [esp + 0x44]
shl edx, 0x18
or ecx, edx
mov dword [eax + 0xc], ecx
mov dword [esp + 0x80], eax
add esp, 0x74
ret
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004092c0
mov eax, dword [esp + 8]
lea ecx, [0x4db1a0]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x4f78fa]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0049fe20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4db020]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434880
test ebx, ebx
je 0x4c161d
mov ebx, dword [ebx + 4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00434880
mov ecx, 3
call fcn.00460aa0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.00409260
mov eax, dword [esp + 4]
lea ecx, [0x4da960]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004092c0
mov eax, dword [esp + 8]
lea ecx, [0x4db1a0]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
lea eax, [0x4f832e]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.0049fe20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4db020]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434880
test ebx, ebx
je 0x4c16fe
mov ebx, dword [ebx + 4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00434880
mov ecx, 5
call fcn.00460aa0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004092c0
mov eax, dword [esp + 8]
lea ecx, [0x4db1a0]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x4f78e2]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0049fe20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4db020]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434880
test ebx, ebx
je 0x4c17a1
mov ebx, dword [ebx + 4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00434880
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4db020]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x4f79a2]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0049fe20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409370
mov eax, dword [esp + 8]
lea ecx, [0x4db020]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434880
nop
call fcn.0045f610
jmp fcn.004c12a0