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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c6b80
sub esp, 0x60
mov eax, dword [0x64a0f4]
test eax, eax
je 0x4c6b3f
mov ecx, dword [esp + 0x64]
cmp ecx, eax
jle 0x4c6b3f
mov edx, 1
jmp 0x4c667f
shl eax, 1
inc edx
mov ecx, ebx
mov ebx, ecx
sar ecx, 1
cmp eax, ecx
jge 0x4c668c
cmp edx, 0x40
jl 0x4c667a
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x68]
cmp eax, 0xa
jne 0x4c6b1a
lea eax, [0x66b3c0]
mov dword [esp], eax
call fcn.0046c600
mov ecx, dword [esp + 0x38]
cmp ecx, 0x40
ja 0x4c6b75
mov eax, 0x40
lea edx, [0x66b3c8]
lea ebx, [ecx - 1]
cmp ebx, ecx
jae 0x4c6b6e
mov dword [esp + 0x48], eax
mov dword [esp + 0x5c], edx
lea ebx, [ecx + ecx*4]
mov ebx, dword [edx + ebx*4 - 4]
test ebx, ebx
jne 0x4c6b11
xor ebx, ebx
jmp 0x4c66ea
inc ebx
cmp ebx, ecx
jge 0x4c6adc
cmp ebx, ecx
jae 0x4c6b67
lea ebp, [ebx + ebx*4]
mov esi, dword [edx + ebp*4 + 0x10]
test esi, esi
jne 0x4c66e9
mov dword [esp + 0x44], ebp
mov dword [esp + 0x3c], ebx
test ebx, ebx
jne 0x4c6a5c
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov ecx, dword [0x64a0f4]
mov dword [esp + 0x10], ecx
call fcn.004c6540
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov eax, dword [0x67bf10]
test eax, eax
jne 0x4c6a50
mov dword [edi], edx
mov eax, dword [0x64a0f4]
mov ecx, dword [esp + 0x6c]
imul eax, ecx
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x44]
mov edx, dword [edi + eax*4 + 4]
mov ebx, dword [edi + eax*4]
lea ebp, [edi + eax*4]
mov dword [esp + 0x58], ebp
test edx, edx
jg 0x4c69a6
mov esi, edx
xor edx, edx
mov dword [esp + 0x34], edx
mov edx, esi
xor esi, esi
mov dword [esp + 0x54], esi
mov esi, edx
cmp edx, esi
jle 0x4c699f
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x54]
cmp ecx, ebx
je 0x4c67d2
mov dword [esp], ecx
mov dword [esp + 4], ebx
shl esi, 2
mov dword [esp + 8], esi
call fcn.00456550
jmp 0x4c67d2
inc dword [ebx + ecx*4 + 0x10]
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x34]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], 0
call fcn.004c8ca0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4c691c
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
mov ebx, dword [edx + ecx*4 + 8]
mov ebp, dword [edx + ecx*4]
mov esi, dword [esp + 0x28]
cmp esi, ebx
jg 0x4c68a2
mov eax, esi
cmp esi, eax
jle 0x4c689c
mov edi, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
cmp ebp, ebx
je 0x4c685c
mov dword [esp], ebp
mov dword [esp + 4], ebx
shl eax, 2
mov dword [esp + 8], eax
call fcn.00456550
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov dword [ebx + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [ebx + ecx*4 + 8], edx
mov edx, dword [0x67bf10]
test edx, edx
jne 0x4c688a
mov eax, dword [esp + 0x50]
mov dword [ebx + ecx*4], eax
jmp 0x4c67ce
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
call fcn.00455bf0
jmp 0x4c67ce
mov edi, eax
mov eax, esi
jmp 0x4c6835
cmp esi, 1
jne 0x4c68e4
lea eax, [0x53ad80]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00440360
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
mov esi, 1
mov ebx, 1
jmp 0x4c682f
lea eax, [0x53ad80]
mov dword [esp], eax
mov dword [esp + 4], esi
lea ecx, [esi + 4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 8], ecx
call fcn.00440360
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
mov esi, eax
mov ebx, dword [esp + 0x2c]
jmp 0x4c682f
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [ebx + edx*4 + 4]
mov esi, dword [ebx + edx*4]
lea edi, [ebp - 1]
test edi, edi
jl 0x4c6993
mov ebp, dword [esi + ebp*4 - 4]
nop
cmp ebp, 0x10000
jb 0x4c698f
shr ebp, 0x10
mov eax, 0x10
cmp ebp, 0x100
jb 0x4c698b
shr ebp, 8
lea esi, [eax + 8]
cmp ebp, 0x100
jae 0x4c6b5b
shl edi, 5
mov eax, edx
lea edx, [0x64f440]
movzx ebp, byte [edx + ebp]
add ebp, esi
add ebp, edi
mov dword [ebx + eax*4 + 0xc], ebp
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
mov edx, ebx
mov ebx, dword [esp + 0x3c]
jmp 0x4c66e9
mov esi, eax
jmp 0x4c6955
xor eax, eax
jmp 0x4c6947
mov eax, edx
lea edx, [0x64f440]
xor ebp, ebp
jmp 0x4c6974
mov esi, edx
jmp 0x4c67ad
mov dword [esp + 0x24], edx
mov dword [esp + 0x4c], ebx
cmp edx, 1
jne 0x4c6a04
lea eax, [0x53ad80]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x5c]
mov edx, 1
mov dword [esp + 0x34], edx
mov edx, 1
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x44]
jmp 0x4c67a5
lea eax, [0x53ad80]
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [edx + 4]
mov dword [esp + 0x30], ecx
mov dword [esp + 8], ecx
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x34], edx
mov edx, esi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x44]
jmp 0x4c67a5
mov eax, edx
call fcn.00455bf0
jmp 0x4c6769
mov eax, dword [edx + ebp*4 - 0x10]
mov ecx, dword [edx + ebp*4 - 0x14]
mov ebx, dword [edx + ebp*4 - 0xc]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
call fcn.004beec0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x5c]
mov dword [ebp + ebx*4 + 4], edx
mov dword [ebp + ebx*4 + 8], eax
lea edi, [ebp + ebx*4]
mov eax, dword [0x67bf10]
test eax, eax
jne 0x4c6ad3
mov dword [ebp + ebx*4], ecx
mov eax, dword [ebp + ebx*4 - 4]
shl eax, 1
mov dword [ebp + ebx*4 + 0x10], eax
mov ecx, dword [esp + 0x6c]
mov edi, ebp
jmp 0x4c6779
mov eax, ecx
call fcn.00455bf0
jmp 0x4c6abe
mov ebx, dword [esp + 0x68]
cmp ebx, 0xa
je 0x4c6af5
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
add esp, 0x60
ret
lea eax, [0x66b3c0]
mov dword [esp], eax
call fcn.0046c9d0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
jmp 0x4c6ae5
mov ebx, dword [esp + 0x68]
cmp ebx, 0xa
jmp 0x4c6ae3
lea eax, [0x5479e0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00440360
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov eax, ecx
jmp 0x4c66c3
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
add esp, 0x60
ret
mov eax, ebp
mov ecx, 0x100
call fcn.00455c80
mov eax, ebx
call fcn.00455c70
mov eax, ebx
call fcn.00455c70
mov edx, 0x40
call fcn.00455c90
nop
call fcn.004543b0
jmp fcn.004c6640