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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x38
push esi
mov esi, dword [0x1023ebe8]
xorps xmm1, xmm1
push edi
mov byte [esi + 0x357], 0
mov dword [esi + 0x1e10], 0
mov dword [esi + 0x1e14], 0
mov dl, byte [esi + 8]
and dl, 1
test byte [esi + 8], 2
mov byte [ebp - 2], dl
je 0x1004918d
test byte [esi + 0xc], 1
je 0x1004918d
cmp dword [esi + 0x1d40], 3
lea ecx, [esi + 0x1d40]
mov byte [ebp - 1], 1
je 0x10049197
movss xmm0, dword [esi + 0x300]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x308]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x304]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x30c]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x310]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x314]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x318]
comiss xmm0, xmm1
ja 0x10049181
movss xmm0, dword [esi + 0x31c]
lea ecx, [esi + 0x1d40]
comiss xmm0, xmm1
jbe 0x10049197
mov dword [esi + 0x1d40], 3
jmp 0x10049191
mov byte [ebp - 1], 0
lea ecx, [esi + 0x1d40]
test dl, dl
je 0x100492ee
mov edx, dword [esi + 0x64]
test edx, edx
js 0x100491c6
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x100491c6
mov dword [esi + 0x300], 0x3f800000
mov dword [ecx], 2
mov edx, dword [esi + 0x68]
test edx, edx
js 0x100491ed
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x100491ed
mov dword [esi + 0x308], 0x3f800000
mov dword [ecx], 2
mov edx, dword [esi + 0x6c]
test edx, edx
js 0x10049214
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x10049214
mov dword [esi + 0x304], 0x3f800000
mov dword [ecx], 2
mov edx, dword [esi + 0x38]
test edx, edx
js 0x1004923b
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x1004923b
mov dword [esi + 0x344], 0x3f800000
mov dword [ecx], 2
mov edx, dword [esi + 0x3c]
test edx, edx
js 0x10049262
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x10049262
mov dword [esi + 0x348], 0x3f800000
mov dword [ecx], 2
mov edx, dword [esi + 0x40]
test edx, edx
js 0x10049289
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x10049289
mov dword [esi + 0x34c], 0x3f800000
mov dword [ecx], 2
mov edx, dword [esi + 0x44]
test edx, edx
js 0x100492b0
mov eax, dword [0x1023ebe8]
mov al, byte [edx + eax + 0x100]
test al, al
je 0x100492b0
mov dword [esi + 0x350], 0x3f800000
mov dword [ecx], 2
mov al, byte [esi + 0xfc]
test al, al
je 0x100492c4
mov dword [esi + 0x338], 0x3f800000
cmp byte [esi + 0xfd], 0
je 0x100492d7
mov dword [esi + 0x33c], 0x3f800000
cmp byte [esi + 0xfe], 0
je 0x100492ee
test al, al
jne 0x100492ee
mov dword [esi + 0x340], 0x3f800000
movups xmm0, xmmword [esi + 0x1458]
mov eax, dword [esi + 0x14a8]
lea ecx, [esi + 0x1458]
movss xmm2, dword [0x10217cf8]
movups xmmword [esi + 0x14ac], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [esi + 0x14bc], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [esi + 0x14cc], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [esi + 0x14dc], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [esi + 0x14ec], xmm0
mov dword [esi + 0x14fc], eax
mov eax, 0x15
nop word [eax + eax]
movss xmm0, dword [ecx - 0x1158]
comiss xmm0, xmm1
jbe 0x10049372
movss xmm0, dword [ecx]
comiss xmm1, xmm0
jbe 0x1004936b
movaps xmm0, xmm1
jmp 0x10049375
addss xmm0, dword [esi + 0x18]
jmp 0x10049375
movaps xmm0, xmm2
movss dword [ecx], xmm0
add ecx, 4
sub eax, 1
jne 0x10049350
cmp dword [esi + 0x1d68], eax
je 0x100493f2
mov edx, dword [0x1023ebe8]
mov edi, dword [edx + 0x1d10]
test edi, edi
je 0x100493f2
mov ecx, dword [edx + 0x1d58]
mov eax, dword [edx + 0x1d68]
mov dword [edx + 0x1d14], eax
mov dword [edx + 0x1d58], ecx
mov dword [edx + 0x1d18], 0
mov dword [edi + ecx*4 + 0x33c], eax
add ecx, ecx
mov eax, dword [edx + 0x1d10]
movups xmm0, xmmword [edx + 0x1d6c]
movups xmmword [eax + ecx*8 + 0x344], xmm0
cmp byte [edx + 0x1d66], 0
je 0x100493f2
mov word [edx + 0x1d61], 1
mov byte [edx + 0x1d63], 1
cmp byte [esi + 0x1d7c], 0
mov word [esi + 0x1d65], 0
mov dword [esi + 0x1d68], 0
mov dword [esi + 0x1d30], 0
je 0x1004941d
call fcn.1004a330
cmp dword [esi + 0x1d84], 2
jne 0x10049449
cmp dword [esi + 0x1d9c], 0
jne 0x1004943f
cmp dword [esi + 0x1dec], 0
jne 0x1004943f
mov byte [esi + 0x1d62], 0
mov dword [esi + 0x1d84], 0
cmp byte [esi + 0x1d61], 0
je 0x100494c5
cmp byte [esi + 0x1d60], 0
je 0x100494c5
test byte [esi + 8], 4
je 0x100494be
test byte [esi + 0xc], 4
je 0x100494be
cmp byte [esi + 0x1d62], 0
jne 0x100494be
cmp byte [esi + 0x1d63], 0
je 0x100494be
cmp dword [esi + 0x1d10], 0
je 0x100494be
lea eax, [ebp - 0x28]
push eax
call fcn.100482f0
add esp, 4
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [esi + 0x380], xmm0
movss dword [esi + 0x384], xmm1
movss dword [esi + 0xe4], xmm0
movss dword [esi + 0xe8], xmm1
mov byte [esi + 0x357], 1
mov byte [esi + 0x1d61], 0
mov ecx, dword [esi + 0x1d10]
mov byte [esi + 0x1d60], 0
mov dword [esi + 0x1d2c], 0
test ecx, ecx
je 0x10049509
mov eax, ecx
cmp dword [eax + 0x32c], eax
je 0x100494ff
test dword [eax + 0x14], 0x14000000
jne 0x100494ff
mov eax, dword [eax + 0x328]
test eax, eax
jne 0x100494e2
jmp 0x10049509
cmp eax, ecx
je 0x10049509
mov dword [eax + 0x338], ecx
mov eax, dword [esi + 0x1d10]
test eax, eax
je 0x1004952f
cmp dword [eax + 0x338], 0
je 0x1004952f
cmp dword [esi + 0x1d58], 0
jne 0x1004952f
mov dword [eax + 0x338], 0
call fcn.1004a8f0
cmp byte [ebp - 2], 0
jne 0x10049540
cmp byte [ebp - 1], 0
je 0x1004959d
mov eax, dword [esi + 0x1d10]
test eax, eax
je 0x1004959d
test dword [eax + 0x14], 0x40000
jne 0x1004959d
mov byte [esi + 0x359], 1
cmp dword [esi + 0x1d14], 0
je 0x100495a4
cmp byte [esi + 0x1d62], 0
jne 0x100495a4
mov al, 1
mov byte [esi + 0x35a], al
xorps xmm1, xmm1
mov ecx, dword [0x1023ebe8]
movss xmm0, dword [ecx + 0x145c]
comiss xmm1, xmm0
ja 0x100495b1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100495b1
movss xmm0, dword [0x100fe7f4]
jmp 0x100495b4
mov byte [esi + 0x359], 0
cmp dword [esi + 0x1e18], 0
jne 0x1004956c
xor al, al
jmp 0x1004956e
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10049724
cmp dword [esi + 0x1be0], 0
je 0x100495e3
mov eax, dword [ecx + 0x1bfc]
shr eax, 1
test al, 1
jne 0x10049724
call fcn.10042da0
xorps xmm1, xmm1
jmp 0x10049724
mov edi, dword [esi + 0x1d10]
test edi, edi
je 0x100496a6
cmp edi, dword [edi + 0x32c]
je 0x100496a6
test dword [edi + 0x14], 0x4000000
jne 0x100496a6
mov eax, dword [edi + 0x328]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x100496a6
movss xmm0, dword [edi + 0x18]
movss dword [ebp - 8], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [edi + 0x20]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [edi + 0x24]
push eax
movss dword [ebp - 0x24], xmm0
call fcn.10044d10
movss xmm4, dword [ebp - 8]
movss xmm5, dword [ebp - 0x14]
movaps xmm3, xmm4
mov eax, dword [ebp - 0xc]
movaps xmm2, xmm5
addss xmm2, dword [ebp - 0x24]
addss xmm3, dword [ebp - 0x10]
subss xmm4, dword [eax + 0x18]
subss xmm5, dword [eax + 0x1c]
subss xmm2, dword [eax + 0x1c]
subss xmm3, dword [eax + 0x18]
lea eax, [ebp - 0x30]
push eax
push 0
push 0
push dword [edi + 0x60]
movss dword [ebp - 0x30], xmm4
movss dword [ebp - 0x2c], xmm5
movss dword [ebp - 0x28], xmm3
movss dword [ebp - 0x24], xmm2
call fcn.1004ff50
add esp, 0x14
xorps xmm1, xmm1
jmp 0x10049724
mov edx, dword [esi + 0x1cec]
test edx, edx
jle 0x100496d9
mov eax, dword [esi + 0x1cf4]
lea ecx, [edx + edx*8]
mov eax, dword [eax + ecx*4 - 0x20]
test dword [eax + 0x14], 0x8000000
jne 0x10049724
lea eax, [edx - 1]
push 1
push eax
call fcn.10042fb0
add esp, 8
xorps xmm1, xmm1
jmp 0x10049724
cmp dword [esi + 0x1d58], 0
je 0x100496f1
push 0
call fcn.10048b40
add esp, 4
xorps xmm1, xmm1
jmp 0x10049724
test edi, edi
je 0x10049710
mov eax, dword [edi + 0x14]
test eax, 0x4000000
jne 0x10049706
test eax, 0x1000000
jne 0x10049710
mov dword [edi + 0x33c], 0
mov dword [esi + 0x1d18], 0
mov dword [esi + 0x1d14], 0
mov ecx, dword [esi + 0x1d14]
mov dword [esi + 0x1d28], 0
mov dword [esi + 0x1d24], 0
mov dword [esi + 0x1d20], 0
mov dword [esi + 0x1d1c], 0
test ecx, ecx
je 0x10049845
cmp byte [esi + 0x1d62], 0
jne 0x10049845
cmp dword [esi + 0x1e18], 0
jne 0x10049845
mov eax, dword [esi + 0x1d10]
test eax, eax
je 0x10049845
test dword [eax + 0x14], 0x40000
jne 0x10049845
mov eax, dword [0x1023ebe8]
movss xmm0, dword [eax + 0x300]
comiss xmm0, xmm1
seta dh
test dh, dh
je 0x100497d2
movss xmm0, dword [eax + 0x1458]
comiss xmm1, xmm0
ja 0x100497c6
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100497c6
movss xmm0, dword [0x100fe7f4]
jmp 0x100497c9
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x100497d2
mov dl, 1
jmp 0x100497d4
xor dl, dl
mov eax, dword [esi + 0x1be0]
test eax, eax
jne 0x100497ea
test dl, dl
je 0x100497ee
mov dword [esi + 0x1d1c], ecx
jmp 0x100497ee
cmp eax, ecx
jne 0x10049845
test dh, dh
je 0x100497f8
mov dword [esi + 0x1d20], ecx
test eax, eax
je 0x10049800
cmp eax, ecx
jne 0x10049845
test dl, dl
je 0x1004980a
mov dword [esi + 0x1d24], ecx
test eax, eax
je 0x10049812
cmp eax, ecx
jne 0x10049845
mov eax, dword [0x1023ebe8]
movss xmm0, dword [eax + 0x1460]
comiss xmm1, xmm0
ja 0x10049837
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10049837
movss xmm0, dword [0x100fe7f4]
jmp 0x1004983a
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10049845
mov dword [esi + 0x1d28], ecx
mov ecx, dword [esi + 0x1d10]
test ecx, ecx
je 0x1004985f
test dword [ecx + 0x14], 0x40000
je 0x1004985f
mov byte [esi + 0x1d62], 1
mov eax, dword [esi + 0x1d3c]
mov byte [esi + 0x1d7c], 0
test eax, eax
je 0x10049888
mov dword [esi + 0x1d28], eax
mov dword [esi + 0x1d24], eax
mov dword [esi + 0x1d20], eax
mov dword [esi + 0x1d1c], eax
cmp dword [esi + 0x1d84], 0
mov dword [esi + 0x1d3c], 0
jne 0x10049cea
mov dword [esi + 0x1d8c], 0xffffffff
mov dword [esi + 0x1d80], 0
test ecx, ecx
je 0x10049cdc
cmp dword [esi + 0x1e18], 0
jne 0x10049cdc
test dword [ecx + 0x14], 0x40000
jne 0x10049cdc
mov edi, dword [0x1023ebe8]
movss xmm3, dword [0x10217040]
movss xmm4, dword [0x10217ca4]
test byte [edi + 0x1bf8], 1
jne 0x100499f4
movss xmm2, dword [edi + 0x1468]
lea eax, [edi + 0x90]
comiss xmm1, xmm2
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
jbe 0x10049919
xorps xmm0, xmm0
jmp 0x10049978
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, xmm3
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, xmm4
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
movss xmm3, dword [0x10217040]
lea ecx, [edi + 0x8c]
movss xmm4, dword [0x10217ca4]
lea edx, [edi + 0x18]
add esp, 0x10
xorps xmm1, xmm1
movd xmm0, eax
lea eax, [edi + 0x90]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x100499d4
movss xmm2, dword [edi + 0x149c]
comiss xmm1, xmm2
jbe 0x1004998f
xorps xmm0, xmm0
jmp 0x100499cf
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, xmm3
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, xmm4
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x100499e4
mov dword [esi + 0x1d8c], 0
mov edi, dword [0x1023ebe8]
movss xmm4, dword [0x10217ca4]
movss xmm3, dword [0x10217040]
mov eax, dword [edi + 0x1bf8]
shr eax, 1
test al, 1
jne 0x10049ae8
movss xmm2, dword [edi + 0x146c]
lea eax, [edi + 0x90]
comiss xmm1, xmm2
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
jbe 0x10049a25
xorps xmm0, xmm0
jmp 0x10049a74
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, xmm3
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, xmm4
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
xorps xmm1, xmm1
movd xmm0, eax
lea eax, [edi + 0x90]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x10049ad8
movss xmm2, dword [edi + 0x14a0]
comiss xmm1, xmm2
jbe 0x10049a8b
xorps xmm0, xmm0
jmp 0x10049ad3
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, dword [0x10217040]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [0x10217ca4]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10049ae8
mov dword [esi + 0x1d8c], 1
mov edi, dword [0x1023ebe8]
mov eax, dword [edi + 0x1bf8]
shr eax, 2
test al, 1
jne 0x10049be5
movss xmm2, dword [edi + 0x1470]
lea eax, [edi + 0x90]
comiss xmm1, xmm2
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
jbe 0x10049b1a
xorps xmm0, xmm0
jmp 0x10049b71
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, dword [0x10217040]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [0x10217ca4]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
xorps xmm1, xmm1
movd xmm0, eax
lea eax, [edi + 0x90]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x10049bd5
movss xmm2, dword [edi + 0x14a4]
comiss xmm1, xmm2
jbe 0x10049b88
xorps xmm0, xmm0
jmp 0x10049bd0
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, dword [0x10217040]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [0x10217ca4]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10049be5
mov dword [esi + 0x1d8c], 2
mov edi, dword [0x1023ebe8]
mov eax, dword [edi + 0x1bf8]
shr eax, 3
test al, 1
jne 0x10049cdc
movss xmm2, dword [edi + 0x1474]
lea eax, [edi + 0x90]
comiss xmm1, xmm2
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
jbe 0x10049c17
xorps xmm0, xmm0
jmp 0x10049c6e
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, dword [0x10217040]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [0x10217ca4]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
lea ecx, [edi + 0x8c]
lea edx, [edi + 0x18]
xorps xmm1, xmm1
movd xmm0, eax
lea eax, [edi + 0x90]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x10049cd2
movss xmm2, dword [edi + 0x14a8]
comiss xmm1, xmm2
jbe 0x10049c85
xorps xmm0, xmm0
jmp 0x10049ccd
movss xmm0, dword [eax]
sub esp, 0x10
mulss xmm0, dword [0x10217040]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx]
mulss xmm0, dword [0x10217ca4]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
subss xmm2, dword [edx]
movss dword [esp], xmm2
call fcn.100422d0
add esp, 0x10
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10049cdc
mov dword [esi + 0x1d8c], 3
mov eax, dword [esi + 0x1d8c]
mov dword [esi + 0x1d94], eax
jmp 0x10049cf4
mov dword [esi + 0x1d84], 2
cmp byte [ebp - 2], 0
xorps xmm0, xmm0
movss dword [ebp - 0xc], xmm0
je 0x10049d17
call fcn.1004a580
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
xorps xmm1, xmm1
movss dword [ebp - 0xc], xmm0
mov ecx, dword [esi + 0x1d8c]
cmp ecx, 0xffffffff
je 0x10049d3b
mov byte [esi + 0x1d7c], 1
mov eax, dword [esi + 0x37c]
mov dword [esi + 0x1d88], eax
mov dword [esi + 0x1d90], ecx
cmp byte [esi + 0x1d7c], 0
je 0x10049d67
cmp dword [esi + 0x1d14], 0
jne 0x10049d67
mov word [esi + 0x1d65], 0x101
mov dword [esi + 0x1d68], 0
mov byte [esi + 0x1d62], 0
mov eax, dword [0x1023ebe8]
cmp byte [eax + 0x1d7c], 0
jne 0x10049d82
cmp byte [eax + 0x1d65], 0
jne 0x10049d82
xor cl, cl
jmp 0x10049d84
mov cl, 1
movss xmm2, dword [0x100fe7c0]
mov byte [eax + 0x1d64], cl
mov edi, dword [esi + 0x1d10]
test edi, edi
je 0x10049f71
test dword [edi + 0x14], 0x40000
jne 0x10049f71
cmp dword [esi + 0x1e18], 0
jne 0x10049f71
mov eax, dword [0x1023ebe8]
movss xmm0, dword [eax + 0x1944]
mov eax, dword [edi + 0x328]
mulss xmm0, dword [edi + 0x28c]
test eax, eax
je 0x10049de1
mulss xmm0, dword [eax + 0x28c]
cmp dword [edi + 0x150], 0
mulss xmm0, dword [0x100fe800]
mulss xmm0, dword [esi + 0x18]
addss xmm0, xmm2
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [ebp - 8], xmm1
jne 0x10049ec3
cmp byte [edi + 0x15d], 0
je 0x10049ec3
cmp byte [esi + 0x1d7c], 0
je 0x10049ec3
mov eax, dword [esi + 0x1d8c]
test eax, eax
je 0x10049e42
cmp eax, 1
jne 0x10049e74
movss xmm0, dword [0x100fe7f4]
jmp 0x10049e4a
movss xmm0, dword [0x10217cf8]
mulss xmm0, xmm1
mov dword [edi + 0x7c], 0
mov dword [edi + 0x84], 0
addss xmm0, dword [edi + 0x64]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x74], xmm0
mov eax, dword [esi + 0x1d8c]
cmp eax, 2
je 0x10049e8e
cmp eax, 3
jne 0x10049ec3
movss xmm0, dword [0x100fe7f4]
jmp 0x10049e96
movss xmm0, dword [0x10217cf8]
mulss xmm0, xmm1
mov dword [edi + 0x80], 0
mov dword [edi + 0x88], 0
addss xmm0, dword [edi + 0x68]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x78], xmm0
sub esp, 8
lea eax, [ebp - 0x28]
mov dword [esp + 4], 0x41200000
mov dword [esp], 0x3dcccccd
push 0
push 4
push eax
call fcn.10045770
movss xmm0, dword [ebp - 0x28]
add esp, 0x14
movss xmm2, dword [ebp - 8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10049f2e
cmp byte [edi + 0x94], 0
je 0x10049f2e
mulss xmm0, xmm2
mov dword [edi + 0x7c], 0
mov dword [edi + 0x84], 0
addss xmm0, dword [edi + 0x64]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x74], xmm0
movss xmm0, dword [ebp - 0x24]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10049f69
mulss xmm0, xmm2
mov dword [edi + 0x80], 0
mov dword [edi + 0x88], 0
addss xmm0, dword [edi + 0x68]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x78], xmm0
movss xmm2, dword [0x100fe7c0]
mov dword [esi + 0x1d98], 0
xorps xmm0, xmm0
mov dword [esi + 0x1da0], 0
mov dword [esi + 0x1d9c], 0
mov dword [esi + 0x1dac], 0x7f7fffff
mov dword [esi + 0x1da8], 0x7f7fffff
mov dword [esi + 0x1da4], 0x7f7fffff
movups xmmword [esi + 0x1db0], xmm0
mov dword [esi + 0x1dc0], 0
mov dword [esi + 0x1dc8], 0
mov dword [esi + 0x1dc4], 0
mov dword [esi + 0x1dd4], 0x7f7fffff
mov dword [esi + 0x1dd0], 0x7f7fffff
mov dword [esi + 0x1dcc], 0x7f7fffff
movups xmmword [esi + 0x1dd8], xmm0
mov dword [esi + 0x1de8], 0
mov dword [esi + 0x1df0], 0
mov dword [esi + 0x1dec], 0
mov dword [esi + 0x1dfc], 0x7f7fffff
mov dword [esi + 0x1df8], 0x7f7fffff
mov dword [esi + 0x1df4], 0x7f7fffff
movups xmmword [esi + 0x1e00], xmm0
cmp byte [esi + 0x1d7c], 0
je 0x1004a1e1
cmp dword [esi + 0x1d40], 3
jne 0x1004a1e1
mov edx, dword [esi + 0x1d58]
movss xmm5, dword [0x100fe7f4]
test edx, edx
jne 0x1004a1e9
mov ecx, dword [esi + 0x1d10]
movss xmm3, dword [ecx + 0x200]
subss xmm3, dword [ecx + 0x18]
movss xmm7, dword [ecx + 0x208]
movss xmm6, dword [ecx + 0x20c]
movss xmm4, dword [ecx + 0x204]
subss xmm7, dword [ecx + 0x18]
subss xmm6, dword [ecx + 0x1c]
subss xmm4, dword [ecx + 0x1c]
movss xmm0, dword [ecx + 0x344]
subss xmm3, xmm5
addss xmm7, xmm5
addss xmm6, xmm5
subss xmm4, xmm5
comiss xmm0, xmm3
jb 0x1004a0e7
movss xmm0, dword [ecx + 0x348]
comiss xmm0, xmm4
jb 0x1004a0e7
comiss xmm7, dword [ecx + 0x34c]
jb 0x1004a0e7
comiss xmm6, dword [ecx + 0x350]
jae 0x1004a239
mov eax, dword [0x1023ebe8]
movss xmm5, dword [eax + 0x1944]
mov eax, dword [ecx + 0x328]
mulss xmm5, dword [ecx + 0x28c]
test eax, eax
je 0x1004a10e
mulss xmm5, dword [eax + 0x28c]
mulss xmm5, xmm2
movaps xmm1, xmm6
add edx, edx
subss xmm1, xmm4
movaps xmm2, xmm7
subss xmm2, xmm3
movss xmm0, dword [ecx + edx*8 + 0x348]
minss xmm1, xmm5
minss xmm2, xmm5
xorps xmm1, xmmword [0x100fe7e0]
xorps xmm2, xmmword [0x100fe7e0]
subss xmm4, xmm1
subss xmm3, xmm2
addss xmm7, xmm2
addss xmm6, xmm1
comiss xmm4, xmm0
jbe 0x1004a15b
movaps xmm1, xmm4
jmp 0x1004a162
movaps xmm1, xmm6
minss xmm1, xmm0
comiss xmm3, dword [ecx + 0x344]
jbe 0x1004a170
movaps xmm0, xmm3
jmp 0x1004a17c
movaps xmm0, xmm7
minss xmm0, dword [ecx + edx*8 + 0x344]
movss dword [ecx + edx*8 + 0x344], xmm0
movss dword [ecx + edx*8 + 0x348], xmm1
movss xmm0, dword [ecx + edx*8 + 0x350]
comiss xmm4, xmm0
ja 0x1004a1a3
movaps xmm4, xmm6
minss xmm4, xmm0
movss xmm0, dword [ecx + edx*8 + 0x34c]
comiss xmm3, xmm0
ja 0x1004a1b8
movaps xmm3, xmm7
minss xmm3, xmm0
movss dword [ecx + edx*8 + 0x34c], xmm3
xorps xmm1, xmm1
movss dword [ecx + edx*8 + 0x350], xmm4
mov dword [esi + 0x1d18], 0
mov dword [esi + 0x1d14], 0
movss xmm5, dword [0x100fe7f4]
mov eax, dword [esi + 0x1d10]
test eax, eax
je 0x1004a23e
mov ecx, dword [esi + 0x1d58]
add ecx, ecx
movss xmm0, dword [eax + ecx*8 + 0x344]
comiss xmm0, dword [eax + ecx*8 + 0x34c]
ja 0x1004a23e
movss xmm0, dword [eax + ecx*8 + 0x348]
comiss xmm0, dword [eax + ecx*8 + 0x350]
ja 0x1004a23e
movups xmm0, xmmword [eax + ecx*8 + 0x344]
movups xmmword [ebp - 0x30], xmm0
movss xmm1, dword [ebp - 0x28]
movss xmm4, dword [ebp - 0x30]
jmp 0x1004a253
xorps xmm1, xmm1
jmp 0x1004a1e9
mov dword [ebp - 0x2c], 0
xorps xmm4, xmm4
mov dword [ebp - 0x24], 0
test eax, eax
je 0x1004a28b
movss xmm2, dword [eax + 0x18]
movss xmm0, dword [eax + 0x1c]
movaps xmm3, xmm2
addss xmm3, xmm1
movaps xmm1, xmm0
addss xmm1, dword [ebp - 0x24]
addss xmm0, dword [ebp - 0x2c]
addss xmm2, xmm4
movss dword [ebp - 0x28], xmm3
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x2c], xmm0
movss dword [ebp - 0x30], xmm2
jmp 0x1004a292
xorps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm0
movss xmm1, dword [ebp - 0xc]
lea eax, [ebp - 0x30]
movups xmm0, xmmword [eax]
pop edi
movups xmmword [esi + 0x1d44], xmm0
movaps xmm0, xmm1
addss xmm0, dword [esi + 0x1d48]
addss xmm1, dword [esi + 0x1d50]
movss dword [esi + 0x1d48], xmm0
movss dword [esi + 0x1d50], xmm1
movss xmm0, dword [esi + 0x1d44]
addss xmm0, xmm5
mov dword [esi + 0x1d54], 0
minss xmm0, dword [esi + 0x1d4c]
movss dword [esi + 0x1d44], xmm0
movss dword [esi + 0x1d4c], xmm0
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret