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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4ec6f1
sub esp, 0x54
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x4ec6a7
mov ebp, dword [esp + 0x58]
test byte [ebp], al
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
jmp 0x4ec400
mov edx, ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x38]
sub ebx, esi
cmp ebx, 4
jl 0x4ec69e
mov ebx, dword [esp + 0x44]
sub edx, ebx
cmp edx, 4
jl 0x4ec5cf
lea ebx, [esi + 4]
cmp ebx, edi
ja 0x4ec6e7
cmp esi, ebx
ja 0x4ec6de
mov dword [esp + 0x3c], ebx
sub edi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
movzx esi, byte [eax + edi]
movzx esi, byte [esi + ebp + 0x40]
xchg esi, eax
mov byte [esp + 0x32], al
xchg esi, eax
movzx ebx, byte [eax + edi + 1]
movzx ebx, byte [ebx + ebp + 0x40]
mov byte [esp + 0x31], bl
movzx ebx, byte [eax + edi + 2]
movzx ebx, byte [ebx + ebp + 0x40]
movzx edi, byte [eax + edi + 3]
movzx edi, byte [edi + ebp + 0x40]
movzx ebp, byte [esp + 0x31]
or esi, ebp
or esi, ebx
or esi, edi
xchg esi, eax
cmp al, 0xff
xchg esi, eax
jne 0x4ec591
mov ebx, 0
je 0x4ec4eb
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x44]
cmp ebp, esi
jb 0x4ec6d5
mov dword [esp + 0x34], ebx
mov edi, dword [esp + 0x64]
mov edx, edi
sub edi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
shr ebx, 0x18
mov byte [ecx + edi], bl
mov ebx, dword [esp + 0x34]
shr ebx, 0x10
mov byte [ecx + edi + 1], bl
mov ebx, dword [esp + 0x34]
shr ebx, 8
mov byte [ecx + edi + 2], bl
mov ebx, dword [esp + 0x34]
mov byte [ecx + edi + 3], bl
lea ebx, [esi + 3]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
jmp 0x4ec3e2
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x44]
cmp ebx, ebp
jb 0x4ec6cc
mov ebx, dword [esp + 0x58]
mov dword [esp], ebx
mov esi, dword [esp + 0x64]
sub esi, ebp
mov dword [esp + 0x3c], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebp
add esi, ecx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
call fcn.004ebdc0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
add ebx, ebp
test eax, eax
jne 0x4ec581
mov ebp, dword [esp + 0x60]
mov esi, edx
mov edi, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
jmp 0x4ec3e2
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x54
ret
xchg esi, eax
mov byte [esp + 0x33], al
xchg esi, eax
movzx esi, byte [esp + 0x32]
xchg esi, eax
movzx eax, al
xchg esi, eax
shl esi, 0x1a
xchg ebp, eax
movzx eax, al
xchg ebp, eax
shl ebp, 0x14
or ebp, esi
movzx ebx, bl
shl ebx, 0xe
or ebx, ebp
xchg edi, eax
movzx ebp, al
xchg edi, eax
shl ebp, 8
or ebx, ebp
movzx ebp, byte [esp + 0x33]
xchg ebp, eax
cmp al, 0xff
xchg ebp, eax
jmp 0x4ec48e
mov edx, dword [esp + 0x64]
jmp 0x4ec5f7
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
mov esi, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
cmp esi, edi
jge 0x4ec686
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x60]
cmp esi, ebx
jb 0x4ec6c3
mov dword [esp + 0x44], ebx
mov dword [esp], ebp
sub edx, ebx
mov dword [esp + 0x3c], edx
neg edx
sar edx, 0x1f
and edx, ebx
add edx, ecx
mov dword [esp + 4], edx
sub esi, ebx
mov dword [esp + 8], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x1c], esi
call fcn.004ebdc0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
add ebx, ebp
test eax, eax
je 0x4ec5d5
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x54
ret
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x7c], eax
add esp, 0x54
ret
mov ebx, dword [esp + 0x44]
jmp 0x4ec5cf
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
add esp, 0x54
ret
mov eax, ebx
mov ecx, esi
call fcn.0045c410
mov eax, ebp
mov ecx, ebx
call fcn.0045c410
mov eax, esi
mov ecx, ebp
call fcn.0045c410
mov eax, esi
mov ecx, ebx
call fcn.0045c410
mov ecx, ebx
mov edx, edi
call fcn.0045c3f0
nop
call fcn.0045ade0
jmp fcn.004ec380