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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x10162378]
xor eax, esp
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [0x10167324]
mov esi, ecx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x4064]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], esi
mov byte [eax + 0xe1], 1
mov eax, dword [edi + 0x4064]
mov dword [esp + 0x18], eax
cmp byte [eax + 0xe4], 0
jne 0x1008ba7c
mov ecx, dword [eax + 0x11c]
xor edx, edx
mov eax, dword [eax + 0x124]
push dword [eax + ecx*4 - 4]
mov ecx, esi
call fcn.10003fd0
mov ecx, dword [esp + 0x1c]
mov ebx, eax
add esp, 4
mov ecx, dword [ecx]
cmp dword [ecx + 0x4098], ebx
jne 0x1008b52c
push ecx
push esi
mov edx, 0xb
mov ecx, ebx
call fcn.10034370
add esp, 8
mov eax, dword [0x10167324]
test byte [eax + 0x4988], 1
mov ecx, dword [eax + 0x4064]
je 0x1008b54a
movss xmm1, dword [eax + 0x4990]
jmp 0x1008b552
movss xmm1, dword [ecx + 0x1d8]
xorps xmm2, xmm2
comiss xmm2, xmm1
jbe 0x1008b593
cmp dword [ecx + 0x1c8], 0
jne 0x1008b571
cmp dword [eax + 0x4db4], 0
mov edx, 0x260
je 0x1008b576
mov edx, 0x230
movss xmm0, dword [ecx + edx]
subss xmm0, dword [ecx + 0x128]
addss xmm0, xmm1
movss xmm1, dword [0x1015ca30]
maxss xmm1, xmm0
mov edx, dword [esp + 0x20]
mov ecx, edx
cvttss2si esi, xmm1
cmp edx, 0xffffffff
jae 0x1008b5c1
mov dl, byte [ecx]
test dl, dl
je 0x1008b5b8
cmp dl, 0x23
jne 0x1008b5b2
cmp byte [ecx + 1], dl
je 0x1008b5b8
inc ecx
cmp ecx, 0xffffffff
jb 0x1008b5a2
mov eax, dword [0x10167324]
mov edx, dword [esp + 0x20]
movss xmm0, dword [eax + 0x3dcc]
cmp edx, ecx
jne 0x1008b5d2
movaps xmm4, xmm2
jmp 0x1008b61b
movss xmm3, dword [0x1015cc20]
movaps xmm2, xmm0
push 0
push ecx
push edx
push ecx
lea ecx, [esp + 0x38]
mov dword [esp], 0xbf800000
push ecx
mov ecx, dword [eax + 0x3dc8]
call fcn.10071f40
movss xmm0, dword [esp + 0x28]
xorps xmm2, xmm2
addss xmm0, dword [0x1015ca28]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x2c]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
comiss xmm4, xmm2
mov eax, dword [esp + 0x18]
movss xmm5, dword [eax + 0x128]
movss xmm7, dword [edi + 0x3994]
movaps xmm3, xmm5
movd xmm1, esi
mov esi, eax
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x30], xmm4
addss xmm3, xmm1
movaps xmm1, xmm7
addss xmm1, xmm7
addss xmm1, xmm0
addss xmm1, dword [esi + 0x12c]
movss dword [esp + 0x38], xmm5
movss xmm6, dword [esi + 0x12c]
movss dword [esp + 0x3c], xmm6
movss dword [esp + 0x40], xmm3
movss dword [esp + 0x44], xmm1
jbe 0x1008b68a
movaps xmm0, xmm4
addss xmm0, dword [edi + 0x39a8]
jmp 0x1008b68d
movaps xmm0, xmm2
mov eax, dword [ebp + 0x18]
addss xmm1, xmm2
addss xmm3, xmm0
shr eax, 7
not al
movss dword [esp + 0x58], xmm5
and eax, 0xffffff01
movss dword [esp + 0x5c], xmm6
lea ecx, [esp + 0x48]
mov dword [esp + 0x28], eax
movss dword [esp + 0x64], xmm1
subss xmm1, xmm6
movss dword [esp + 0x60], xmm3
subss xmm3, xmm5
movss dword [esp + 0x4c], xmm1
movaps xmm1, xmm7
movss dword [esp + 0x48], xmm3
call fcn.10016fc0
mov ecx, dword [esp + 0x28]
mov edx, ebx
movzx eax, cl
lea ecx, [esp + 0x58]
shl eax, 0xa
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10017120
add esp, 8
test al, al
je 0x1008ba7c
cmp dword [esp + 0x14], 0
jne 0x1008b71c
mov eax, dword [esp + 0x1c]
shl eax, 4
mov eax, dword [eax + 0x1012e120]
mov dword [esp + 0x14], eax
push dword [edi + 0x49ac]
mov edx, ebx
lea ecx, [esp + 0x3c]
call fcn.10009630
mov ecx, dword [0x10167324]
add esp, 4
cmp byte [esp + 0x28], 0
mov byte [esp + 0x12], al
je 0x1008b766
cmp dword [ecx + 0x40b0], ebx
jne 0x1008b755
cmp dword [ecx + 0x5d4c], ebx
je 0x1008b821
test dword [edi + 0x49b0], 0x100
mov byte [esp + 0x11], 1
jne 0x1008b76b
mov byte [esp + 0x11], 0
test al, al
je 0x1008b7a4
cmp byte [ecx + 0xe10], 0
je 0x1008b7a4
movss xmm1, dword [ecx + 0x3860]
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x1008b7a4
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1008b7a4
mov edx, 0x28f
call fcn.10002ff0
test ebx, ebx
jne 0x1008b7c3
cmp byte [eax + 8], bl
je 0x1008b7d4
xor al, al
mov dl, byte [esp + 0x11]
mov byte [esp + 0x13], al
test dl, dl
jne 0x1008b7d8
test al, al
jne 0x1008b7dc
cmp dword [edi + 0x4b40], ebx
je 0x1008b7f9
jmp 0x1008b893
mov edx, dword [eax]
cmp edx, ebx
je 0x1008b7d4
cmp byte [eax + 8], 0
jne 0x1008b7a4
cmp edx, 0xffffffff
jne 0x1008b7a4
mov al, 1
jmp 0x1008b7a6
test al, al
je 0x1008b7f9
mov edx, 0x28f
call fcn.10002ff0
mov dl, byte [esp + 0x11]
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov word [eax + 8], 0
mov al, byte [esp + 0x13]
cmp byte [esp + 0x28], 0
je 0x1008b871
test dl, dl
jne 0x1008b821
test al, al
je 0x1008b810
cmp byte [edi + 0xe28], dl
jne 0x1008b821
cmp dword [edi + 0x4b40], ebx
jne 0x1008b871
test byte [edi + 0x4b4c], 1
je 0x1008b871
mov ecx, dword [ebp + 0x18]
mov eax, 0
shr ecx, 4
mov edx, ebx
test cl, 1
cmovne eax, dword [ebp + 0x10]
push eax
xor eax, eax
test cl, 1
lea ecx, [esp + 0x3c]
cmovne eax, dword [ebp + 0xc]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push dword [esp + 0x34]
call fcn.1008c5b0
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.10110a52
mov esp, ebp
pop ebp
ret
mov edx, esi
mov ecx, ebx
call fcn.10009200
mov edx, esi
mov ecx, ebx
call fcn.10019980
xor edx, edx
mov ecx, esi
call fcn.10013b80
or dword [edi + 0x4970], 3
cmp dword [edi + 0x40b0], ebx
jne 0x1008b8a2
mov ecx, 9
jmp 0x1008b8aa
movzx ecx, byte [esp + 0x12]
add ecx, 7
movss xmm1, dword [0x1015ca30]
call fcn.10005cf0
push 1
mov edx, ebx
lea ecx, [esp + 0x3c]
mov esi, eax
call fcn.10006d70
movss xmm2, dword [edi + 0x3998]
add esp, 4
mov dl, 1
mov ecx, esi
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.10006a10
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x58]
push eax
push dword [ebp + 0x18]
xorps xmm0, xmm0
lea ecx, [esp + 0x50]
push esi
push dword [ebp + 0x10]
mov edx, ebx
push dword [ebp + 0xc]
movups xmmword [esp + 0x6c], xmm0
push dword [esp + 0x48]
push dword [esp + 0x44]
call fcn.1008b260
add esp, 0x2c
mov byte [esp + 0x12], al
test al, al
je 0x1008b951
mov ecx, dword [0x10167324]
cmp word [ecx + 0x5dc6], 0
jg 0x1008b951
mov edx, dword [ecx + 0x40b0]
cmp edx, ebx
je 0x1008b941
test edx, edx
jne 0x1008b94a
mov word [ecx + 0x40c0], 0x101
or dword [ecx + 0x49b0], 4
movss xmm0, dword [esp + 0x50]
comiss xmm0, dword [esp + 0x48]
jbe 0x1008b9a3
movss xmm0, dword [edi + 0x39d4]
movss xmm1, dword [0x1015ca30]
push 0
push ecx
xor ecx, ecx
movss dword [esp], xmm0
cmp dword [edi + 0x40b0], ebx
sete cl
add ecx, 0x13
call fcn.10005cf0
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x2a4]
call fcn.1006d780
push esi
push dword [esp + 0x28]
mov edx, 0x40
lea ecx, [esp + 0x70]
push dword [esp + 0x24]
call fcn.100892e0
lea ecx, [esp + 0x74]
add esp, 0xc
add ecx, eax
cmp byte [edi + 0x5f08], 0
je 0x1008b9e5
mov eax, dword [0x10167324]
mov dword [eax + 0x5f20], 0x1015aa3c
mov dword [eax + 0x5f24], 0x1015aa38
push 0
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0x3f000000
push eax
push 0
push ecx
lea eax, [esp + 0x78]
mov dword [esp + 0x5c], 0x3f000000
push eax
lea edx, [esp + 0x54]
lea ecx, [esp + 0x4c]
call fcn.100063e0
movss xmm0, dword [esp + 0x44]
add esp, 0x14
comiss xmm0, dword [0x1015c950]
jbe 0x1008ba63
movss xmm0, dword [esp + 0x40]
xor edx, edx
addss xmm0, dword [edi + 0x39a8]
mov ecx, dword [esp + 0x20]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x3c]
addss xmm0, dword [edi + 0x3994]
movss dword [esp + 0x34], xmm0
push dword [esp + 0x34]
push dword [esp + 0x34]
push 1
call fcn.10006330
add esp, 0xc
mov al, byte [esp + 0x12]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.10110a52
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xac]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10110a52
mov esp, ebp
pop ebp
ret