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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x10444724]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x8c]
lea eax, [esp + 0x3c]
push edi
mov edi, dword [esp + 0x94]
mov ebp, ecx
push 4
add edi, esi
mov byte [esp + 0x40], 1
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
call fcn.1009a850
test al, al
je 0x1014a2de
mov al, 1
xor ecx, ecx
movzx ebx, al
mov eax, dword [esp + 0x40]
cmp al, 5
cmove ebx, ecx
shr eax, 0x1c
sub eax, ecx
je 0x1014a043
sub eax, 1
jne 0x1014a2de
push 4
lea eax, [esp + 0x24]
mov byte [esp + 0x54], 1
push eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
call fcn.1009a850
test al, al
je 0x1014a2de
mov eax, dword [esp + 0x20]
xorps xmm0, xmm0
mov ebx, eax
mov dword [esp + 0x84], 0
shr eax, 0x1a
and eax, 3
shr ebx, 8
movups xmmword [esp + 0x54], xmm0
movups xmmword [esp + 0x64], xmm0
movups xmmword [esp + 0x74], xmm0
sub eax, 0
je 0x10149fa9
sub eax, 1
jne 0x1014a2de
lea esi, [eax + 1]
jmp 0x10149fab
xor esi, esi
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10043760
add esp, 8
test al, al
je 0x1014a2de
push 4
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.1009a850
test al, al
je 0x1014a2de
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x10149fe9
xor ecx, ecx
jmp 0x10149ff3
mov ecx, 7
cmp eax, ecx
cmovl ecx, eax
cmp eax, ecx
jne 0x1014a2de
mov ecx, ebp
call fcn.1004cfc0
push dword [esp + 0x14]
lea eax, [esp + 0x58]
mov ecx, ebp
push esi
push eax
call fcn.10048e80
mov al, byte [ebp + 0xa]
lea ecx, [esp + 0x44]
xor al, bl
and al, 3
xor byte [ebp + 0xa], al
call fcn.1009a8d0
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x44]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.1037e005
add esp, 0x7c
ret 8
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x38]
call fcn.1009a850
test al, al
je 0x1014a2de
push 4
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x38]
call fcn.1009a850
test al, al
je 0x1014a2de
push 4
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
call fcn.1009a850
test al, al
je 0x1014a2de
push 8
push dword [esp + 0x14]
call fcn.100cc5e0
add esp, 8
lea ecx, [esp + 0x30]
push eax
call fcn.1009a8a0
push 4
push dword [esp + 0x20]
mov esi, eax
call fcn.100cc5e0
add esp, 8
lea ecx, [esp + 0x30]
push eax
call fcn.1009a8a0
push 1
push dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
call fcn.100cc5e0
add esp, 8
lea ecx, [esp + 0x30]
push eax
call fcn.1009a8a0
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.1009a8d0
cmp byte [esp + 0x3c], 0
je 0x1014a2de
test bl, bl
je 0x1014a0fa
mov ecx, dword [esp + 0x18]
dec ecx
add edi, ecx
movzx eax, bl
lea ecx, [esp + 0x24]
xor eax, 1
lea eax, [eax*2 - 1]
mov dword [esp + 0x20], eax
call fcn.10046670
mov ecx, dword [esp + 0x40]
mov al, byte [esp + 0x2e]
push dword [esp + 0x10]
shr ecx, 8
xor cl, al
and cl, 3
xor al, cl
lea ecx, [esp + 0x28]
mov byte [esp + 0x32], al
call fcn.1004c3a0
xor ebx, ebx
cmp dword [esp + 0x18], ebx
jle 0x1014a27a
movzx eax, byte [edi]
cmp eax, 5
ja case.default.0x1014a14f
jmp dword [eax*4 + 0x1014a2f8]
sub dword [esp + 0x10], 1
js case.default.0x1014a14f
mov eax, esi
lea ecx, [esp + 0x24]
sub esp, 8
add esi, 8
movss xmm0, dword [eax + 4]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax]
movss dword [esp], xmm0
call fcn.1004cb60
jmp 0x1014a26b
sub dword [esp + 0x10], 1
js case.default.0x1014a14f
mov eax, esi
lea ecx, [esp + 0x24]
sub esp, 8
add esi, 8
movss xmm0, dword [eax + 4]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax]
movss dword [esp], xmm0
call fcn.1004cb10
jmp 0x1014a26b
sub dword [esp + 0x10], 2
js case.default.0x1014a14f
movups xmm0, xmmword [esi]
sub esp, 0x10
lea ecx, [esp + 0x34]
movups xmmword [esp], xmm0
call fcn.1004cf50
add esi, 0x10
jmp 0x1014a26b
sub dword [esp + 0x10], 2
js case.default.0x1014a14f
sub dword [esp + 0x1c], 1
js case.default.0x1014a14f
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x24]
sub esp, 0x14
movss xmm0, dword [eax]
add eax, 4
movss dword [esp + 0x10], xmm0
movups xmm0, xmmword [esi]
mov dword [esp + 0x28], eax
movups xmmword [esp], xmm0
call fcn.1004b1f0
add esi, 0x10
jmp 0x1014a26b
sub dword [esp + 0x10], 3
js case.default.0x1014a14f
movups xmm0, xmmword [esi + 8]
sub esp, 0x18
lea ecx, [esp + 0x3c]
movups xmmword [esp + 8], xmm0
movss xmm0, dword [esi + 4]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi]
movss dword [esp], xmm0
call fcn.1004c010
add esi, 0x18
jmp 0x1014a26b
lea ecx, [esp + 0x24]
call fcn.1004acf0
add edi, dword [esp + 0x20]
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x1014a143
cmp dword [esp + 0x10], 0
jne case.default.0x1014a14f
cmp dword [esp + 0x1c], 0
jne case.default.0x1014a14f
lea eax, [esp + 0x24]
mov ecx, ebp
push eax
call fcn.10046770
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0x24]
sub esi, dword [esp + 0x30]
call fcn.10046740
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.1037e005
add esp, 0x7c
ret 8
lea ecx, [esp + 0x24]
xor esi, esi
call fcn.10046740
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.1037e005
add esp, 0x7c
ret 8
mov ecx, dword [esp + 0x88]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1037e005
add esp, 0x7c
ret 8