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

Disassembly:
mov al, byte [esp + 4]
sub esp, 0x28
push ebx
xor ebx, ebx
push ebp
push esi
cmp al, bl
push edi
mov esi, ecx
je 0x4ecbe5
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x30], ecx
mov cl, byte [esi + 0x41]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x3c]
mov byte [esp + 0x13], cl
mov ecx, dword [0x72d944]
mov dword [esp + 0x2c], eax
mov al, byte [esi + 0x40]
mov dword [esp + 0x34], edx
mov edi, dword [ecx + 0x88]
mov edx, dword [esi + 0x44]
mov byte [esp + 0x12], al
mov al, byte [esi + 0x48]
cmp edi, ebx
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], al
je 0x4eca94
mov edx, dword [edi]
push 0x3b0c
mov ecx, edi
call dword [edx + 4]
test al, al
je 0x4eca94
mov cl, byte [esi + 0x24]
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x184]
cmp eax, ebx
je 0x4eca94
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x30], edx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x34], ecx
mov dl, byte [eax + 0x18]
mov cl, byte [eax + 0x19]
mov byte [esp + 0x12], dl
mov edx, dword [eax + 0x1c]
mov al, byte [eax + 0x20]
mov byte [esp + 0x13], cl
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], al
mov cl, byte [esp + 0x12]
mov dl, byte [esp + 0x13]
mov eax, dword [esp + 0x20]
mov byte [esi + 0x25], cl
mov ecx, dword [esp + 0x24]
mov byte [esi + 0x26], dl
mov edx, dword [esp + 0x28]
mov dword [esi + 0x64], eax
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], edx
mov eax, dword [0x72c608]
xor edi, edi
mov dword [esi + 0x70], eax
mov ecx, dword [0x72c60c]
mov dword [esi + 0x74], ecx
mov edx, dword [0x72c610]
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x98], ebx
mov dword [esi + 0x9c], ebx
mov byte [esi + 0xac], 0xff
mov byte [esi + 0xb0], bl
mov byte [esi + 0xc0], 0xff
mov byte [esi + 0xc4], bl
mov dword [esi + 0xc8], ebx
mov eax, dword [0x72c69c]
mov dword [esi + 0xcc], eax
mov ecx, dword [0x72c6a0]
mov dword [esi + 0xd0], ecx
mov edx, dword [0x72c6a4]
mov dword [esi + 0xd4], edx
mov dword [esi + 0xd8], ebx
mov dword [esi + 0xdc], ebx
mov eax, dword [0x72c69c]
mov dword [esi + 0xe0], eax
mov ecx, dword [0x72c6a0]
mov dword [esi + 0xe4], ecx
mov edx, dword [0x72c6a4]
mov dword [esi + 0xe8], edx
mov dword [esi + 0xec], ebx
mov dword [esi + 0xf0], ebx
mov dword [esi + 0xf8], 0x3f800000
mov byte [esi + 0x114], 0xff
mov dword [esi + 0x118], ebx
mov dword [esi + 0x11c], ebx
mov dword [esi + 0x120], ebx
mov dword [esi + 0x124], ebx
mov word [esi + 0x128], 0xffff
mov byte [esi + 0x130], bl
mov ecx, dword [esi + 0x20]
mov dl, byte [esi + 0x24]
push edi
push edx
mov eax, dword [ecx]
call dword [eax + 0x15c]
mov ecx, dword [esi + 0x4c]
movsx eax, al
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x20], ebx
je 0x4ecc4d
mov ecx, dword [esi + 0x20]
mov al, byte [esi + 0x24]
push edi
push eax
mov edx, dword [ecx]
call dword [edx + 0x15c]
mov byte [esi + edi + 0x131], al
jmp 0x4ecc55
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 4]
add eax, 0x40
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 0x30]
add eax, 0x30
mov dword [esp + 0x2c], ecx
mov cl, byte [esi + 0x25]
mov edx, dword [eax + 4]
mov byte [esp + 0x12], cl
mov dword [esp + 0x30], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
xor eax, eax
mov al, byte [esi + 0x2d8]
mov dl, byte [esi + 0x26]
shr eax, 6
and eax, 1
mov byte [esp + 0x13], dl
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x2d4]
shr eax, 0x16
and al, 1
jmp 0x4eca90
mov byte [esi + edi + 0x131], 0xff
inc edi
cmp edi, 6
jb 0x4ecbaa
mov ecx, dword [esi + 0x20]
mov al, byte [esi + 0x24]
mov edi, dword [esi + 0x180]
push eax
mov edx, dword [ecx]
call dword [edx + 0x10c]
mov byte [esp + 0x1c], al
mov ecx, dword [esp + 0x1c]
and ecx, 0xff
jbe 0x4ecc97
lea eax, [edi + 0x25]
mov edi, ecx
mov cl, byte [eax - 4]
mov byte [eax + 1], bl
mov byte [eax], cl
add eax, 0x28
dec edi
jne 0x4ecc89
mov ecx, dword [esi + 0x20]
mov al, byte [esi + 0x24]
mov edi, dword [esi + 0x184]
push eax
mov edx, dword [ecx]
call dword [edx + 0x114]
mov byte [esp + 0x1c], al
mov ecx, dword [esp + 0x1c]
and ecx, 0xff
jbe 0x4ecccf
lea eax, [edi + 5]
mov edi, ecx
mov cl, byte [eax - 1]
mov byte [eax + 1], bl
mov byte [eax], cl
add eax, 8
dec edi
jne 0x4eccc1
mov al, byte [esp + 0x3c]
mov dword [esi + 0x2d0], ebx
cmp al, bl
mov dword [esi + 0x2d4], ebx
mov dword [esi + 0x2d8], ebx
mov dword [esi + 0x2dc], ebx
mov dword [esi + 0x2e0], ebx
je 0x4ecd64
mov dl, byte [esi + 0x24]
mov al, byte [esi + 0x25]
cmp dl, al
je 0x4ecd0d
mov eax, dword [esp + 0x14]
mov byte [esp + 0x3c], 1
cmp eax, 1
je 0x4ecd11
mov byte [esp + 0x3c], bl
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x2d8]
and eax, 0xff
and ecx, 0xffffffbf
shl eax, 6
or eax, ecx
mov dword [esi + 0x2d8], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x2d4]
and eax, 0xff
mov ecx, eax
and edx, 0xffbfffff
shl ecx, 0x16
or edx, ecx
mov dword [esi + 0x2d4], edx
mov edx, dword [esi + 0x2dc]
and dh, 0xef
shl eax, 0xc
or edx, eax
mov dword [esi + 0x2dc], edx
mov eax, dword [0x72c69c]
lea edi, [esi + 0x354]
mov dword [esi + 0x2e8], eax
mov ecx, dword [0x72c6a0]
mov dword [esi + 0x2ec], ecx
mov edx, dword [0x72c6a4]
mov dword [esi + 0x2f0], edx
mov eax, dword [0x72c69c]
mov dword [esi + 0x2f4], eax
mov ecx, dword [0x72c6a0]
mov dword [esi + 0x2f8], ecx
mov edx, dword [0x72c6a4]
mov dword [esi + 0x2fc], edx
mov dword [esi + 0x300], ebx
mov word [esi + 0x304], bx
mov word [esi + 0x306], bx
mov byte [esi + 0x308], bl
mov byte [esi + 0x309], bl
mov eax, dword [0x72c69c]
lea ebp, [esi + 0x364]
mov dword [esi + 0x30c], eax
mov ecx, dword [0x72c6a0]
mov dword [esi + 0x310], ecx
mov edx, dword [0x72c6a4]
mov dword [esi + 0x314], edx
mov eax, dword [0x72c69c]
mov dword [esi + 0x318], eax
mov ecx, dword [0x72c6a0]
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x31c], ecx
mov edx, dword [0x72c6a4]
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x320], edx
mov edx, dword [esp + 0x34]
mov dword [esi + 0x324], ebx
mov byte [esi + 0x328], bl
mov dword [esi + 0x32c], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x330], ecx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x334], edx
mov edx, dword [esp + 0x28]
mov dword [esi + 0x338], eax
mov dword [esi + 0x33c], ecx
mov dword [esi + 0x340], edx
mov dword [esi + 0x344], eax
mov dword [esi + 0x348], ecx
mov dword [esi + 0x34c], edx
mov eax, dword [esi + 0x2b4]
mov dword [esi + 0x350], ebx
mov ecx, dword [edi]
push edi
shl eax, 3
and ecx, 0xfffffc07
or eax, ecx
mov dword [edi], eax
fld dword [esi + 0x1c4]
fstp dword [esi + 0x358]
mov edx, dword [edi]
and edx, 0xfffffff9
or edx, 1
mov ecx, edx
mov dword [edi], edx
or ch, 4
mov dword [edi], ecx
mov ecx, ebp
call fcn.004ed460
fld dword [edi + 4]
fstp dword [ebp + 4]
fld dword [esi + 0x228]
fcom dword [0x704dbc]
fnstsw ax
test ah, 5
jnp 0x4eced7
fstp st(0)
fld dword [0x704dbc]
fld st(0)
fmul st(1)
lea eax, [esp + 0x20]
lea ecx, [esi + 0x35c]
push eax
fstp dword [esi + 0x360]
fstp st(0)
call fcn.004863e0
mov ecx, dword [esi + 0x3b8]
mov ebp, 1
or ecx, ebp
mov edi, 0xc47a0000
mov dword [esi + 0x3b8], ecx
mov ecx, dword [0x72c69c]
mov dword [esi + 0x3c0], ecx
mov edx, dword [0x72c6a0]
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x3c4], edx
mov eax, dword [0x72c6a4]
mov edx, dword [esp + 0x24]
mov dword [esi + 0x3c8], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x3cc], ecx
mov dword [esi + 0x3d0], edx
mov dword [esi + 0x3d4], eax
mov dword [esi + 0x3d8], ebx
mov dword [esi + 0x3dc], edi
mov dword [esi + 0x3e0], edi
mov dword [esi + 0x3e4], edi
mov ecx, dword [0x72c69c]
mov dword [esi + 0x3e8], ecx
mov edx, dword [0x72c6a0]
mov dword [esi + 0x3ec], edx
mov eax, dword [0x72c6a4]
mov dword [esi + 0x3f0], eax
mov ecx, dword [0x72c69c]
mov dword [esi + 0x4ec], ecx
mov edx, dword [0x72c6a0]
mov dword [esi + 0x4f0], edx
mov eax, dword [0x72c6a4]
mov dword [esi + 0x4f4], eax
mov dword [esi + 0x500], ebp
mov dword [esi + 0x504], ebx
mov ecx, dword [esi + 0x224]
fld dword [esi + 0x19c]
fstp dword [esi + 0x4f8]
fld dword [esi + 0x224]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x20]
mov dword [esi + 0x560], ecx
push edx
fstp dword [esi + 0x4fc]
push eax
mov ecx, esi
mov byte [esi + 0x570], 0xff
mov dword [esi + 0x574], ebx
mov dword [esi + 0x578], ebx
call fcn.004f5ff0
mov ecx, esi
call fcn.004f6be0
mov ecx, dword [esi + 0x1a8]
mov dword [esi + 0x580], ecx
mov edx, dword [0x72c608]
mov dword [esi + 0x5a8], edx
mov eax, dword [0x72c60c]
mov dword [esi + 0x5ac], eax
mov ecx, dword [0x72c610]
mov dword [esi + 0x5b0], ecx
mov edx, dword [esi + 0x590]
mov dword [esi + 0x5b4], edx
mov eax, dword [esi + 0x594]
mov dword [esi + 0x5b8], eax
mov ecx, dword [esi + 0x598]
mov dword [esi + 0x5bc], ecx
mov byte [esi + 0x5c0], bl
mov byte [esi + 0x5c1], bl
mov dword [esi + 0x5c4], ebx
mov byte [esi + 0x5c8], 0xff
mov byte [esi + 0x5c9], 0xff
mov dword [esi + 0x5cc], ebx
mov dword [esi + 0x5d0], ebx
mov dword [esi + 0x5d4], ebx
mov dword [esi + 0x5d8], ebx
mov dword [esi + 0x5dc], ebx
mov edx, dword [0x72c69c]
mov dword [esi + 0x5e0], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x5e4], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x5e8], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x5ec], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x5f0], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x5f4], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x5f8], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x5fc], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x600], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x604], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x608], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x60c], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x610], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x614], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x618], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x61c], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x620], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x624], ecx
mov dword [esi + 0x628], edi
mov dword [esi + 0x62c], ebx
mov edx, dword [0x72c69c]
mov dword [esi + 0x680], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x684], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x688], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x68c], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x690], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x694], ecx
mov dword [esi + 0x698], ebx
mov dword [esi + 0x69c], ebx
mov byte [esi + 0x6a0], bl
mov edx, dword [0x72c69c]
mov dword [esi + 0x6a4], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x6a8], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x6ac], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x6b0], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x6b4], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x6b8], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x6bc], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x6c0], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x6c4], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x6c8], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x6cc], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x6d0], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x6d4], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x6d8], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x6dc], ecx
mov dword [esi + 0x6e0], ebx
mov dword [esi + 0x6e4], ebx
mov dword [esi + 0x6e8], ebx
mov dword [esi + 0x6ec], ebx
mov byte [esi + 0x6f0], 1
mov byte [esi + 0x6f1], bl
mov edx, dword [0x72c69c]
mov dword [esi + 0x6f4], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x6f8], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x6fc], ecx
mov edx, dword [0x72c69c]
mov dword [esi + 0x700], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x704], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x708], ecx
mov dword [esi + 0x70c], edi
mov dword [esi + 0x710], edi
mov dword [esi + 0x714], edi
mov edx, dword [0x72c69c]
mov dword [esi + 0x718], edx
mov eax, dword [0x72c6a0]
mov dword [esi + 0x71c], eax
mov ecx, dword [0x72c6a4]
mov dword [esi + 0x720], ecx
lea eax, [esi + 0x72c]
mov ecx, 0xa
mov edx, dword [0x72c6ac]
mov dword [eax - 8], edx
mov edx, dword [0x72c6b0]
mov dword [eax - 4], edx
mov edx, dword [0x72c6b4]
mov dword [eax], edx
add eax, 0xc
dec ecx
jne 0x4ed326
mov eax, dword [0x72c6ac]
mov dword [esi + 0x79c], eax
mov ecx, dword [0x72c6b0]
mov dword [esi + 0x7a0], ecx
mov edx, dword [0x72c6b4]
mov dword [esi + 0x7a4], edx
mov eax, dword [esi + 0x1c4]
mov byte [esi + 0x7a8], bl
mov dword [esi + 0x7ac], ebx
mov dword [esi + 0x7b0], edi
mov dword [esi + 0x7b4], eax
mov dword [esi + 0x7c0], ebp
mov dword [esi + 0x7c4], 8
fld dword [esi + 0x19c]
fstp dword [esi + 0x7b8]
fld dword [esi + 0x19c]
fadd dword [0x6d1c14]
mov dword [esi + 0x820], ebx
mov dword [esi + 0x824], ebx
mov dword [esi + 0x828], ebx
fstp dword [esi + 0x7bc]
mov dword [esi + 0x82c], edi
mov ecx, dword [0x72c69c]
mov dword [esi + 0x830], ecx
mov edx, dword [0x72c6a0]
mov dword [esi + 0x834], edx
mov eax, dword [0x72c6a4]
mov dword [esi + 0x838], eax
mov ecx, dword [0x72c69c]
mov dword [esi + 0x83c], ecx
mov edx, dword [0x72c6a0]
mov dword [esi + 0x840], edx
mov eax, dword [0x72c6a4]
mov dword [esi + 0x844], eax
mov dword [esi + 0x848], edi
mov dword [esi + 0x84c], ebx
mov dword [esi + 0x850], edi
mov dword [esi + 0x854], edi
mov dword [esi + 0x858], edi
mov ecx, dword [esi + 0x28c]
mov dword [esi + 0x85c], ecx
mov ecx, esi
mov dword [esi + 0x860], ebx
call fcn.004ed480
mov ecx, esi
call fcn.004eee70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4