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

Disassembly:
sub esp, 0x58
mov eax, dword [esp + 0x5c]
push ebx
push ebp
mov dword [esp + 0x30], 0
cmp byte [eax + 0x2a0], 0
mov ebx, dword [eax + 0x68]
mov ebp, dword [eax + 0x2a4]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebp
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 8], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], 0
je 0x4c7649
test ebp, ebp
je 0x4c7649
push esi
push edi
lea eax, [esp + 0x6c]
push eax
push 0
push dword [esp + 0x80]
push 0
push 8
push ecx
call fcn.004ff8c0
mov edi, eax
add esp, 0x18
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], edi
test eax, eax
jne 0x4c7637
mov eax, dword [esp + 0x74]
mov dword [eax], edi
mov eax, dword [esp + 0x70]
cmp eax, dword [ebp + 0x20]
jae 0x4c763f
lea esi, [eax*4]
mov eax, dword [ebp + 0x24]
mov ecx, dword [esi + eax]
cmp ecx, dword [esi + eax + 4]
je 0x4c763f
push ecx
push ebx
call fcn.004fdf70
add esp, 8
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x4c761c
mov eax, dword [ebp + 0x24]
mov ecx, dword [esi + eax + 4]
sub ecx, dword [esi + eax]
push ecx
push ebx
call fcn.004fd600
add esp, 8
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x4c761c
mov esi, dword [ebx + 0x20]
lea eax, [esp + 0x6c]
sub esi, dword [ebx]
push eax
push 0
push dword [ebp]
push 0
push 4
push dword [esp + 0x24]
call fcn.004ff8c0
add esp, 0x18
mov dword [esp + 0x24], eax
cmp dword [esp + 0x6c], 0
jne 0x4c760b
lea eax, [esp + 0x6c]
push eax
push 0
push dword [ebp]
push 0
push 4
push dword [esp + 0x24]
call fcn.004ff8c0
add esp, 0x18
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x6c], 0
jne 0x4c760b
lea eax, [esp + 0x6c]
push eax
push 0
push dword [ebp]
push 0
push 4
push dword [esp + 0x24]
call fcn.004ff8c0
add esp, 0x18
mov dword [esp + 0x30], eax
cmp dword [esp + 0x6c], 0
jne 0x4c760b
push ebx
call fcn.004fd820
movzx eax, ax
push ebx
mov dword [esp + 0x28], eax
call fcn.004fd820
movzx edx, ax
add esp, 8
mov eax, dword [esp + 0x20]
add edx, esi
mov dword [esp + 0x14], edx
test eax, 0x8000
je 0x4c7319
mov esi, dword [ebx + 0x20]
mov eax, dword [ebx]
sub esi, eax
add eax, edx
mov dword [ebx + 0x20], eax
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004c80e0
mov ecx, dword [ebx]
add esp, 8
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x20]
sub eax, ecx
add ecx, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x20], ecx
and eax, 0xfff
mov dword [esp + 0x58], 0
mov dword [esp + 0x20], eax
jbe 0x4c75e6
push ebx
call fcn.004fd820
movzx eax, ax
push ebx
mov dword [esp + 0x5c], eax
call fcn.004fd820
movzx edi, ax
add esp, 8
mov dword [esp + 0x28], edi
test edi, 0x8000
je 0x4c737c
xor esi, esi
cmp dword [ebp], esi
jbe 0x4c73ae
mov edi, dword [esp + 0x24]
push ebx
call fcn.004fd820
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebp]
jb 0x4c7360
mov edi, dword [esp + 0x28]
jmp 0x4c73ae
mov edx, edi
and edx, 0xfff
cmp edx, dword [ebp + 0x18]
jae 0x4c75da
mov ecx, dword [ebp]
lea eax, [ecx*4]
imul ecx, edx
push eax
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
push eax
push dword [esp + 0x2c]
call fcn.00489260
add esp, 0xc
test edi, 0x4000
je 0x4c7400
xor esi, esi
cmp dword [ebp], esi
jbe 0x4c73db
mov edi, dword [esp + 0x2c]
push ebx
call fcn.004fd820
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebp]
jb 0x4c73c1
mov edi, dword [esp + 0x28]
xor esi, esi
cmp dword [ebp], esi
jbe 0x4c7400
mov edi, dword [esp + 0x30]
push ebx
call fcn.004fd820
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebp]
jb 0x4c73e6
mov edi, dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push edi
push ebp
call fcn.004c7ac0
add esp, 0x14
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4c742b
mov eax, dword [esp + 0x54]
add dword [esp + 0x14], eax
jmp 0x4c75c5
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx]
sub ecx, eax
mov dword [esp + 0x64], ecx
test edi, 0x2000
je 0x4c7461
add eax, dword [esp + 0x14]
mov dword [ebx + 0x20], eax
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.004c80e0
mov edi, dword [esp + 0x44]
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], eax
jmp 0x4c7471
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edi
test edi, edi
mov dword [esp + 0x28], edi
mov esi, edi
cmove esi, dword [esp + 0x78]
push esi
push ebx
call fcn.004c7fd0
push esi
push ebx
mov dword [esp + 0x60], eax
call fcn.004c7fd0
mov edx, eax
add esp, 0x10
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], edx
test eax, eax
je 0x4c757e
test edx, edx
je 0x4c757e
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4c757e
cmp eax, 0xffffffff
jne 0x4c7507
xor edi, edi
cmp dword [esp + 0x78], edi
jbe 0x4c757e
mov ebx, dword [esp + 0x44]
mov ebp, ecx
mov esi, edx
sub ebp, edx
movsx eax, word [esi + ebp]
push ebx
push eax
call fcn.004e6a60
mov ecx, dword [esp + 0x20]
push ebx
add dword [ecx + edi*8], eax
movsx eax, word [esi]
push eax
call fcn.004e6a60
mov ecx, dword [esp + 0x28]
lea esi, [esi + 2]
add esp, 0x10
add dword [ecx + edi*8 + 4], eax
inc edi
cmp edi, dword [esp + 0x78]
jb 0x4c74d4
jmp 0x4c7576
test edi, edi
je 0x4c757e
mov ebp, dword [esp + 0x1c]
sub ecx, edx
mov ebx, dword [esp + 0x44]
sub edx, ebp
mov dword [esp + 0x40], ecx
mov dword [esp + 0x5c], edx
nop
movzx eax, word [ebp]
cmp eax, dword [esp + 0x78]
jae 0x4c756c
movzx eax, word [ebp]
lea edi, [edx + ebp]
mov edx, dword [esp + 0x18]
push ebx
lea esi, [edx + eax*8]
movsx eax, word [ecx + edi]
push eax
call fcn.004e6a60
add dword [esi], eax
movzx eax, word [ebp]
mov ecx, dword [esp + 0x20]
push ebx
lea esi, [ecx + eax*8]
movsx eax, word [edi]
push eax
call fcn.004e6a60
mov edi, dword [esp + 0x38]
add esp, 0x10
add dword [esi + 4], eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x5c]
add ebp, 2
dec edi
mov dword [esp + 0x28], edi
jne 0x4c7520
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
cmp edi, 0xffffffff
je 0x4c759d
push edi
push esi
call fcn.004ff740
add esp, 8
mov dword [esp + 0x1c], 0
push dword [esp + 0x50]
push esi
call fcn.004ff740
push dword [esp + 0x68]
push esi
call fcn.004ff740
mov eax, dword [esp + 0x64]
add esp, 0x10
add dword [esp + 0x14], eax
mov eax, dword [ebx]
add eax, dword [esp + 0x64]
mov dword [ebx + 0x20], eax
mov esi, dword [esp + 0x58]
inc esi
mov dword [esp + 0x58], esi
cmp esi, dword [esp + 0x20]
jb 0x4c7330
jmp 0x4c75e2
mov dword [esp + 0x6c], 8
mov edi, dword [esp + 0x18]
push dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
push ebp
call fcn.004ff740
push dword [esp + 0x34]
push ebp
call fcn.004ff740
push dword [esp + 0x40]
push ebp
call fcn.004ff740
add esp, 0x18
push ebx
call fcn.004fd6e0
mov eax, dword [esp + 0x70]
add esp, 4
test eax, eax
je 0x4c7637
push edi
push dword [esp + 0x14]
call fcn.004ff740
mov eax, dword [esp + 0x7c]
add esp, 8
mov dword [eax], 0
mov eax, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret
pop ebp
mov eax, 6
pop ebx
add esp, 0x58
ret