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

Disassembly:
sub esp, 0x3c
push ebx
push ebp
push esi
xor ebx, ebx
push edi
mov edi, eax
mov esi, dword [edi + 0x3c]
xor ebp, ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
cmp byte [edi + 3], bl
jne 0x4d14c8
lea ebp, [ebx + 4]
cmp byte [edi + 4], bl
je 0x4d14ed
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add eax, ecx
cdq
push edx
mov edx, dword [esp + 0x54]
push eax
lea ecx, [edx + ebp]
call fcn.004af9a0
add esp, 8
add ebp, eax
jmp 0x4d14f5
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
push eax
push ecx
lea ecx, [edx + ebp]
call fcn.004af9a0
mov ecx, dword [esp + 0x58]
add ebp, eax
lea eax, [esp + 0x34]
push eax
push ecx
push edi
call fcn.004b2af0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
add esp, 0x14
lea eax, [ecx + edx]
mov dword [esp + 0x10], eax
cmp byte [edi + 2], bl
je 0x4d1548
mov edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
mov edx, ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], ebx
jmp 0x4d1580
cmp dword [esp + 0x5c], ebx
jg 0x4d17b7
mov ecx, dword [esp + 0x58]
jl 0x4d1564
cmp ecx, 0x7fffffff
ja 0x4d17b7
mov edx, dword [esp + 0x54]
test edx, edx
je 0x4d17b7
add eax, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x68], ecx
mov edx, ecx
movzx ecx, word [esp + 0x4a]
mov edi, dword [esp + 0x6c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x50]
movzx edi, word [esp + 0x46]
add ebp, ecx
movzx ecx, word [esp + 0x48]
add ecx, dword [esp + 0x50]
mov dword [esp + 0x50], ecx
test eax, eax
jle 0x4d1785
jmp 0x4d15bc
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x68]
test edi, edi
jne 0x4d1706
cmp byte [esi + 0x12], 0
mov dword [esp + 0x28], ebx
je 0x4d1623
movzx ecx, word [esi + 0x16]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x1c]
movzx ecx, word [ecx + 0x14]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
mov eax, dword [0x5c1d64]
cdq
idiv ecx
lea ecx, [ebx - 2]
lea edi, [eax + 1]
lea ebx, [ebx]
inc ecx
xor edx, edx
mov eax, ecx
div esi
inc ebx
imul eax, esi
add eax, 2
cmp eax, edi
jne 0x4d1613
inc eax
cmp eax, ebx
je 0x4d1600
cmp ebx, edi
je 0x4d1600
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
push 0
push ebx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x30]
push eax
push esi
call fcn.004d0990
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
add esp, 0x14
cmp byte [esi + 0x12], 0
mov ebp, eax
je 0x4d1693
test ebp, ebp
jne 0x4d178f
mov eax, dword [esp + 0x28]
test eax, eax
setne cl
add cl, 3
push eax
movzx edx, cl
push edx
push esi
mov eax, ebx
call fcn.004cf410
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x4d169b
test edi, edi
je 0x4d1693
mov eax, dword [edi + 0x44]
test eax, eax
je 0x4d1693
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x28], ecx
call fcn.004b0c10
mov eax, dword [esp + 0x28]
call fcn.004cef80
test ebp, ebp
jne 0x4d178f
mov eax, dword [esp + 0x50]
mov edx, ebx
shr edx, 0x18
mov byte [eax], dl
mov ecx, ebx
mov edx, ebx
shr ecx, 0x10
shr edx, 8
mov byte [eax + 1], cl
mov byte [eax + 2], dl
mov byte [eax + 3], bl
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4d16d7
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4d16d7
mov ebp, dword [eax + 0x10]
call fcn.004b0c10
mov eax, ebp
call fcn.004cef80
mov eax, dword [edi + 0x40]
mov edx, dword [esp + 0x68]
mov byte [eax], 0
mov byte [eax + 1], 0
mov byte [eax + 2], 0
mov byte [eax + 3], 0
mov ebp, dword [edi + 0x40]
mov dword [esp + 0x18], edi
movzx edi, word [esi + 0x16]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
add ebp, 4
sub edi, 4
cmp eax, edi
mov esi, eax
jle 0x4d170e
mov esi, edi
test edx, edx
jle 0x4d1726
cmp esi, edx
jle 0x4d1718
mov esi, edx
mov eax, dword [esp + 0x14]
push esi
push eax
push ebp
call fcn.0052c7c0
jmp 0x4d172f
push esi
push 0
push ebp
call fcn.0052b590
mov eax, dword [esp + 0x74]
sub dword [esp + 0x1c], esi
add dword [esp + 0x20], esi
sub eax, esi
add esp, 0xc
add ebp, esi
sub edi, esi
mov dword [esp + 0x68], eax
test eax, eax
jne 0x4d175c
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x10], 0
jg 0x4d15b0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4d1785
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4d1785
mov esi, dword [eax + 0x10]
call fcn.004b0c10
mov eax, esi
call fcn.004cef80
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3c
ret
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4d17ad
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4d17ad
mov esi, dword [eax + 0x10]
call fcn.004b0c10
mov eax, esi
call fcn.004cef80
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3c
ret
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x3c
ret