Function at 0x1002d410
Capabilities:
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x250
mov eax, dword [esp + 0x264]
mov ebp, dword [0x100ef758]
movzx ecx, byte [eax]
test cl, cl
je 0x1002d472
lea edx, [eax + 2]
mov esi, 0xffffffff
mov eax, 0xffffffff
jmp 0x1002d457
movzx edi, ch
movzx ebx, al
shr eax, 8
xor ebx, edi
xor eax, dword [ebx*4 + 0x1007362c]
inc edx
test cl, cl
je 0x1002d46e
mov ch, cl
mov cl, byte [edx - 1]
cmp ch, 0x23
jne 0x1002d440
cmp cl, 0x23
jne 0x1002d440
cmp byte [edx], 0x23
cmove eax, esi
jmp 0x1002d440
not eax
jmp 0x1002d474
xor eax, eax
mov edx, dword [ebp + 0x3df8]
mov dword [esp + 0xc], ebp
mov esi, dword [ebp + 0x3e00]
mov ecx, esi
test edx, edx
je 0x1002d4ad
mov ecx, esi
mov edi, edx
nop
mov ebx, edi
shr ebx, 1
mov ebp, ebx
not ebp
add ebp, edi
cmp dword [ecx + ebx*8], eax
lea edi, [ecx + ebx*8 + 8]
cmovae ebp, ebx
cmovb ecx, edi
mov edi, ebp
test ebp, ebp
jne 0x1002d490
lea edx, [esi + edx*8]
cmp ecx, edx
je 0x1002d4ee
cmp dword [ecx], eax
jne 0x1002d4ee
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x1002d4ee
mov dword [esp + 0x44], 0
mov ecx, ebx
xor edx, edx
push dword [esp + 0x26c]
call fcn.100358e0
add esp, 4
mov dword [esp + 0x128], 0
mov ebp, dword [esp + 0xc]
jmp 0x1002d798
mov ebp, dword [esp + 0xc]
lea edi, [ebp + 0x3df8]
test ebp, ebp
je 0x1002d502
inc dword [ebp + 0xa8]
push dword [0x100ef760]
push 0x330
call dword [0x100e7c10]
add esp, 8
mov esi, eax
mov ecx, eax
push dword [esp + 0x264]
push ebp
call fcn.10024210
mov dword [esp + 0x1c4], esi
mov ebx, dword [esp + 0x26c]
mov dword [esi + 8], ebx
mov ecx, edi
push esi
push dword [esi + 4]
call fcn.100223b0
mov eax, dword [0x100ef758]
mov ecx, dword [eax + 0x3fc0]
mov ecx, dword [ecx]
movsd xmm0, qword [ecx + 4]
addps xmm0, xmmword [0x10074310]
movlps qword [esi + 0x10], xmm0
test ebx, 0x100
jne 0x1002d60b
mov edx, dword [eax + 0x5218]
test edx, edx
je 0x1002d60b
mov edi, dword [esi + 4]
add edx, 4
mov ecx, edx
nop word cs:[eax + eax]
cmp dword [ecx], edi
je 0x1002d5a5
add ecx, dword [ecx - 4]
mov ebx, dword [eax + 0x5210]
add ebx, edx
cmp ecx, ebx
jne 0x1002d590
jmp 0x1002d60b
mov edx, ecx
sub edx, dword [ebp + 0x5218]
mov dword [esi + 0x248], edx
and dword [esi + 0xb4], 0xfffbfbfb
movd xmm0, dword [ecx + 4]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
movlps qword [esi + 0x10], xmm0
movzx edx, word [ecx + 8]
test dx, dx
jle 0x1002d601
movzx edi, word [ecx + 0xa]
test di, di
jle 0x1002d601
xorps xmm0, xmm0
pinsrw xmm0, edx, 1
pinsrw xmm0, edi, 3
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
movlhps xmm0, xmm0
movups xmmword [esi + 0x18], xmm0
movzx ecx, byte [ecx + 0xc]
mov byte [esi + 0x91], cl
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esi + 0xf8], edx
mov dword [esi + 0xf4], ecx
movq xmm0, qword [esi + 0x10]
pshufd xmm0, xmm0, 0x44
movdqu xmmword [esi + 0xe4], xmm0
mov ecx, dword [esp + 0x26c]
test cl, 0x40
jne 0x1002d670
pxor xmm0, xmm0
ucomiss xmm0, dword [esi + 0x18]
jb 0x1002d64c
mov byte [esi + 0xa8], 2
ucomiss xmm0, dword [esi + 0x1c]
jb 0x1002d659
mov byte [esi + 0xa9], 2
mov cl, 1
cmp byte [esi + 0xa8], 0
jg 0x1002d67b
cmp byte [esi + 0xa9], 0
setg cl
jmp 0x1002d67b
mov word [esi + 0xa8], 0x202
xor ecx, ecx
mov byte [esi + 0xab], cl
lea edi, [ebp + 0x3dc8]
test dword [esp + 0x26c], 0x2000
jne 0x1002d6b6
mov ecx, dword [ebp + 0x3dc8]
cmp ecx, dword [ebp + 0x3dcc]
jne 0x1002d6ca
lea ebx, [ecx + 1]
test ecx, ecx
je 0x1002d6d5
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
add edx, ecx
jmp 0x1002d6da
lea eax, [esp + 0x1c4]
mov ecx, edi
push eax
call fcn.100394a0
jmp 0x1002d76b
mov ebx, dword [ebp + 0x3dd0]
jmp 0x1002d766
mov edx, 8
cmp edx, ebx
cmovg ebx, edx
mov dword [esp], ebx
lea ecx, [ebx*4]
inc dword [eax + 0xa8]
push dword [0x100ef760]
push ecx
call dword [0x100e7c10]
add esp, 8
mov ebx, eax
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 0x3dd0]
test eax, eax
je 0x1002d751
mov ecx, dword [ebp + 0x3dc8]
shl ecx, 2
push ecx
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x3dd0]
test eax, eax
je 0x1002d73d
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002d73d
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov ebp, dword [esp + 0xc]
mov dword [ebp + 0x3dd0], ebx
mov eax, dword [esp]
mov dword [ebp + 0x3dcc], eax
mov ecx, dword [ebp + 0x3dc8]
mov dword [ebx + ecx*4], esi
inc dword [edi]
mov ecx, dword [esp + 0x1c4]
mov edx, 1
push dword [ecx + 8]
call fcn.100358e0
add esp, 4
mov ebx, dword [esp + 0x1c4]
mov al, 1
mov dword [esp + 0x44], eax
mov al, 1
mov dword [esp + 0x128], eax
mov edx, dword [esp + 0x26c]
mov eax, edx
not eax
mov ecx, edx
or ecx, 6
test eax, 0xc0200
cmovne ecx, edx
mov dword [esp + 4], ecx
mov edi, dword [ebp + 0x3db0]
cmp dword [ebp + 0x3dec], 0
je 0x1002d7c7
xor eax, eax
jmp 0x1002d7ce
movzx eax, byte [ebp + 0x3dbd]
mov edx, dword [ebx + 0x220]
mov byte [ebx + 0x96], al
lea eax, [edi - 1]
test dword [esp + 4], 0x4000000
mov dword [esp + 0x40], edx
jne 0x1002d80e
lea ecx, [ebx + 0x94]
mov dword [esp + 0x5c], ecx
cmp edx, eax
setl byte [ebx + 0x94]
jl 0x1002d850
mov dword [esp + 0x6c], 0
cmp edx, edi
je 0x1002d864
jmp 0x1002d87d
cmp edx, eax
setl al
mov ecx, dword [ebp + 0x3fa4]
mov edx, dword [ebp + 0x3fa8]
lea edx, [edx + edx*4]
mov esi, dword [ebx + 0xa4]
xor esi, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
xor ecx, ebx
or ecx, esi
setne cl
or cl, al
lea eax, [ebx + 0x94]
mov dword [esp + 0x5c], eax
mov byte [ebx + 0x94], cl
test cl, cl
je 0x1002d86d
mov edx, dword [esp + 0x40]
or dword [ebx + 0xb4], 0x80808
mov al, 1
mov dword [esp + 0x6c], eax
cmp edx, edi
jne 0x1002d87d
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
jmp 0x1002d8bd
mov dword [esp + 0x6c], 0
mov edx, dword [esp + 0x40]
cmp edx, edi
je 0x1002d864
mov eax, dword [esp + 4]
mov dword [ebx + 8], eax
mov dword [ebx + 0x220], edi
movsd xmm0, qword [ebp + 0x3da8]
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x224], xmm0
mov word [ebx + 0x9c], 0
mov eax, dword [ebp + 0x3e04]
lea ecx, [eax + 1]
mov dword [ebp + 0x3e04], ecx
mov word [ebx + 0x9e], ax
mov eax, dword [ebp + 0x3dec]
test eax, eax
je 0x1002d8e8
mov ecx, dword [ebp + 0x3df4]
imul edx, eax, 0x54
mov ecx, dword [edx + ecx - 0x54]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x40]
cmp edx, edi
jne 0x1002d8f4
mov ecx, dword [ebx + 0x2e0]
jmp 0x1002d903
mov dword [esp + 0x20], 0
cmp edx, edi
je 0x1002d8e0
mov ecx, dword [esp + 4]
and ecx, 0x5000000
cmovne ecx, dword [esp + 0x20]
mov dword [esp + 8], ecx
cmp dword [ebx + 0xc8], 0
mov dword [esp + 0xb8], edi
jne 0x1002d9c3
cmp dword [ebx + 0xcc], 0
je 0x1002d931
mov edi, dword [ebx + 0xd0]
xor eax, eax
jmp 0x1002d9b1
mov eax, dword [0x100ef758]
test eax, eax
je 0x1002d940
inc dword [eax + 0xa8]
push dword [0x100ef760]
push 0x20
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x1002d99b
mov ecx, dword [ebx + 0xc8]
shl ecx, 2
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x1002d98b
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002d98b
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebx + 0xd0], edi
mov dword [ebx + 0xcc], 8
mov eax, dword [ebx + 0xc8]
mov ecx, dword [ebx + 4]
mov dword [edi + eax*4], ecx
inc dword [ebx + 0xc8]
mov eax, dword [ebp + 0x3dec]
mov dword [esp], ebx
mov dword [ebp + 0x3e10], ebx
movups xmm0, xmmword [ebp + 0x3ee4]
movups xmmword [esp + 0x1f0], xmm0
movups xmm0, xmmword [ebp + 0x3ed8]
movups xmmword [esp + 0x1e4], xmm0
movups xmm0, xmmword [ebp + 0x3eb8]
movups xmm1, xmmword [ebp + 0x3ec8]
movups xmmword [esp + 0x1d4], xmm1
movups xmmword [esp + 0x1c4], xmm0
mov ecx, dword [0x100ef758]
mov edx, dword [ecx + 0x3e10]
movzx edx, word [edx + 0xc8]
mov word [esp + 0x30], dx
movzx edx, word [ecx + 0x3f54]
mov word [esp + 0xdc], dx
movzx edx, word [ecx + 0x3f60]
mov word [esp + 0x70], dx
movzx ebx, word [ecx + 0x3f6c]
movzx edi, word [ecx + 0x3f78]
mov word [esp + 0x54], di
movzx edi, word [ecx + 0x3f90]
movzx edx, word [ecx + 0x3f84]
mov word [esp + 0xbc], dx
movzx edx, word [ecx + 0x3fa8]
movzx esi, word [ecx + 0x51b0]
mov word [esp + 0x14c], si
cmp eax, dword [ebp + 0x3df0]
mov word [esp + 0x80], di
mov word [esp + 0x108], bx
jne 0x1002daae
mov word [esp + 0x13c], dx
lea esi, [eax + 1]
test eax, eax
je 0x1002dac3
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
add edx, eax
jmp 0x1002dac8
mov edi, dword [ebp + 0x3df4]
movzx esi, word [esp + 0x70]
movzx ebx, word [esp + 0x30]
jmp 0x1002db5a
mov edx, 8
cmp edx, esi
cmovg esi, edx
imul eax, esi, 0x54
inc dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 0x3df4]
test eax, eax
je 0x1002db36
imul ecx, dword [ebp + 0x3dec], 0x54
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x3df4]
test eax, eax
je 0x1002db22
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002db22
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov ebp, dword [esp + 0xc]
mov dword [ebp + 0x3df4], edi
mov dword [ebp + 0x3df0], esi
mov eax, dword [ebp + 0x3dec]
movzx ebx, word [esp + 0x30]
movzx esi, word [esp + 0x70]
movzx edx, word [esp + 0x13c]
imul eax, eax, 0x54
mov ecx, dword [esp]
mov dword [edi + eax], ecx
movups xmm0, xmmword [esp + 0x1c4]
movups xmm1, xmmword [esp + 0x1d4]
movups xmmword [edi + eax + 4], xmm0
movups xmmword [edi + eax + 0x14], xmm1
movups xmm0, xmmword [esp + 0x1e4]
movups xmmword [edi + eax + 0x24], xmm0
movdqu xmm0, xmmword [esp + 0x1f0]
movdqu xmmword [edi + eax + 0x30], xmm0
mov word [edi + eax + 0x40], bx
movzx ecx, word [esp + 0xdc]
mov word [edi + eax + 0x42], cx
mov word [edi + eax + 0x44], si
movzx ecx, word [esp + 0x108]
mov word [edi + eax + 0x46], cx
movzx ecx, word [esp + 0x54]
mov word [edi + eax + 0x48], cx
movzx ecx, word [esp + 0x80]
mov word [edi + eax + 0x4a], cx
movzx ecx, word [esp + 0xbc]
mov word [edi + eax + 0x4c], cx
mov word [edi + eax + 0x4e], dx
movzx ecx, word [esp + 0x14c]
mov word [edi + eax + 0x50], cx
inc dword [ebp + 0x3dec]
mov dword [ebp + 0x3e10], 0
mov eax, dword [esp + 4]
test eax, 0x10000000
mov ecx, dword [esp + 0x40]
je 0x1002dc18
inc dword [ebp + 0x3fb4]
test eax, 0x4000000
mov ebx, dword [esp]
mov edi, dword [esp + 0xb8]
jne 0x1002dcf5
cmp ecx, edi
jne 0x1002deba
test byte [ebp + 0x3ef4], 1
jne 0x1002df79
mov dword [esp + 0x20], 0
test byte [ebp + 0x3ef4], 2
je 0x1002e013
mov eax, dword [ebx + 0xb4]
mov ecx, eax
shr ecx, 8
movsx edx, cl
mov ecx, dword [ebp + 0x3efc]
test edx, ecx
je 0x1002ddc2
movss xmm0, dword [ebp + 0x3f14]
movss xmm1, dword [ebp + 0x3f18]
xorps xmm2, xmm2
ucomiss xmm0, xmm2
seta cl
mov dword [esp + 0x70], ecx
ucomiss xmm1, xmm2
seta cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x40]
and eax, 0xfffff1ff
mov dword [ebx + 0xb4], eax
xorps xmm3, xmm3
ucomiss xmm3, dword [ebp + 0x3f14]
movss xmm1, dword [ebx + 0x20]
movss xmm0, dword [ebx + 0x24]
setae al
add al, al
mov byte [ebx + 0xa8], al
ucomiss xmm3, dword [ebp + 0x3f18]
setae al
add al, al
mov byte [ebx + 0xa9], al
movss xmm2, dword [ebp + 0x3f14]
ucomiss xmm3, xmm2
jae 0x1002dd4d
cvttps2dq xmm2, xmm2
cvtdq2ps xmm2, xmm2
movss dword [ebx + 0x20], xmm2
jmp 0x1002dd57
mov eax, dword [ebp + 0x3fa4]
mov ecx, dword [ebp + 0x3fa8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
mov dword [eax + ecx*8 + 4], ebx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x12c]
mov dword [eax + ecx*8 + 0xc], edx
mov eax, dword [ebp + 0x3fa8]
cmp eax, dword [ebp + 0x3fac]
jne 0x1002dd42
lea ebx, [eax + 1]
test eax, eax
je 0x1002dde3
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1002dde8
mov edi, dword [ebp + 0x3fb0]
jmp 0x1002de79
mov byte [ebx + 0xab], 0
movaps xmm2, xmm1
movss xmm3, dword [ebp + 0x3f18]
xorps xmm4, xmm4
ucomiss xmm4, xmm3
jae 0x1002dd75
cvttps2dq xmm3, xmm3
cvtdq2ps xmm3, xmm3
movss dword [ebx + 0x24], xmm3
jmp 0x1002dd7f
mov byte [ebx + 0xab], 0
movaps xmm3, xmm0
ucomiss xmm1, xmm2
jne 0x1002dd91
jp 0x1002dd91
ucomiss xmm0, xmm3
jne 0x1002dd91
jnp 0x1002e023
test byte [ebx + 9], 1
jne 0x1002e023
mov eax, dword [0x100ef758]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x51f4]
jb 0x1002e023
movd xmm0, dword [eax + 0x1c]
movd dword [eax + 0x51f4], xmm0
jmp 0x1002e023
mov dword [esp + 0x30], 0
mov dword [esp + 0x70], 0
test ecx, ecx
mov ecx, dword [esp + 0x40]
jne 0x1002e023
jmp 0x1002dc9e
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
lea eax, [ebx*8]
lea eax, [eax + eax*4]
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002de07
inc dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x3fb0]
test eax, eax
je 0x1002de64
mov ecx, dword [ebp + 0x3fa8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x3fb0]
test eax, eax
je 0x1002de54
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002de54
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebp + 0x3fb0], edi
mov dword [ebp + 0x3fac], ebx
mov eax, dword [ebp + 0x3fa8]
mov ebx, dword [esp]
lea eax, [eax + eax*4]
movsd xmm0, qword [esi + 0x20]
movsd qword [edi + eax*8 + 0x20], xmm0
movdqu xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmmword [edi + eax*8 + 0x10], xmm1
movdqu xmmword [edi + eax*8], xmm0
inc dword [ebp + 0x3fa8]
mov eax, dword [esi]
mov dword [ebx + 0xa4], eax
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x40]
cmp ecx, edi
je 0x1002dc35
mov edx, dword [esp + 8]
mov dword [ebx + 0x2e0], edx
movd xmm0, ebx
pshufd xmm0, xmm0, 0
movdqu xmmword [ebx + 0x2e8], xmm0
mov eax, dword [esp + 4]
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x1002def5
test edx, edx
je 0x1002def5
mov eax, dword [edx + 0x2e8]
mov dword [ebx + 0x2e8], eax
test dword [esp + 4], 0x4000000
je 0x1002df16
cmp dword [esp + 8], 0
je 0x1002df16
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2ec]
mov dword [ebx + 0x2ec], eax
test dword [esp + 4], 0x8000000
jne 0x1002df42
mov eax, dword [esp + 4]
and eax, 0x5000000
je 0x1002df42
cmp dword [esp + 8], 0
je 0x1002df42
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2f0]
mov dword [ebx + 0x2f0], eax
test byte [ebx + 0xa], 0x80
je 0x1002df62
mov eax, ebx
nop word [eax + eax]
mov eax, dword [eax + 0x2e0]
mov dword [ebx + 0x2f4], eax
test byte [eax + 0xa], 0x80
jne 0x1002df50
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x2e4], eax
test byte [ebp + 0x3ef4], 1
je 0x1002dc42
mov eax, dword [ebx + 0xb4]
movsx edx, al
mov ecx, dword [ebp + 0x3ef8]
test edx, ecx
setne dl
mov dword [esp + 0x20], edx
je 0x1002dff1
movss xmm0, dword [ebp + 0x3f0c]
movss xmm1, dword [ebp + 0x3f10]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
ucomiss xmm0, dword [0x10074320]
jbe 0x1002dff1
movq xmm0, qword [ebp + 0x3f04]
movq qword [ebx + 0xb8], xmm0
mov ecx, dword [ebp + 0x3f0c]
mov edx, dword [ebp + 0x3f10]
mov dword [ebx + 0xc4], edx
mov dword [ebx + 0xc0], ecx
and eax, 0xfffffff1
mov dword [ebx + 0xb4], eax
mov al, 1
mov dword [esp + 0x20], eax
jmp 0x1002e002
lea eax, [ebp + 0x3f04]
push ecx
push eax
push ebx
call fcn.10027e40
add esp, 0xc
mov ecx, dword [esp + 0x40]
test byte [ebp + 0x3ef4], 2
jne 0x1002dc57
mov dword [esp + 0x30], 0
mov dword [esp + 0x70], 0
test byte [ebp + 0x3ef4], 0x80
je 0x1002e062
movss xmm1, dword [ebp + 0x3f24]
pxor xmm0, xmm0
ucomiss xmm1, xmm0
jb 0x1002e049
movss dword [ebx + 0x6c], xmm1
mov dword [ebx + 0x74], 0
movss xmm1, dword [ebp + 0x3f28]
ucomiss xmm1, xmm0
jb 0x1002e062
movss dword [ebx + 0x70], xmm1
mov dword [ebx + 0x78], 0
test byte [ebp + 0x3ef4], 4
jne 0x1002e07f
cmp ecx, edi
je 0x1002e08c
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0
jmp 0x1002e08c
movq xmm0, qword [ebp + 0x3f1c]
movq qword [ebx + 0x38], xmm0
mov eax, dword [ebp + 0x3ef4]
test al, 8
je 0x1002e0db
mov esi, dword [ebp + 0x3f00]
movzx ecx, byte [ebp + 0x3f2c]
mov edx, dword [ebx + 0xb4]
test esi, esi
je 0x1002e0c3
mov ebx, edx
shr ebx, 0x10
movsx edi, bl
mov ebx, dword [esp]
test edi, esi
mov edi, dword [esp + 0xb8]
je 0x1002e0db
and edx, 0xfff1ffff
mov dword [ebx + 0xb4], edx
mov byte [ebx + 0x91], cl
mov eax, dword [ebp + 0x3ef4]
test al, 0x20
je 0x1002e0e8
push ebx
call fcn.10027ad0
add esp, 4
mov eax, dword [esp + 0x5c]
cmp byte [eax], 0
mov eax, dword [esp + 0x40]
je 0x1002e0ff
and dword [ebx + 0xb4], 0xfff7f7f7
cmp eax, edi
jne 0x1002e12f
mov edi, dword [0x100ef758]
mov dword [edi + 0x3e10], ebx
mov eax, dword [ebx + 0x17c]
cmp eax, 0xffffffff
je 0x1002e3e4
imul eax, eax, 0x1d8
add eax, dword [edi + 0x4200]
jmp 0x1002e3e6
movzx eax, byte [ebx + 0xb1]
mov byte [esp + 0x108], al
mov byte [ebx + 0x8e], 1
cmp dword [esp + 0x268], 0
setne byte [ebx + 0x98]
movaps xmm0, xmmword [0x10074330]
movups xmmword [ebx + 0x1f8], xmm0
mov eax, dword [ebx + 0xcc]
test eax, eax
jg 0x1002e20b
mov ecx, eax
neg ecx
shr ecx, 1
mov edx, eax
sub edx, ecx
cmp edx, 2
mov ecx, 1
cmovge ecx, edx
test eax, eax
mov esi, 8
cmovne esi, ecx
lea eax, [esi*4]
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002e1a5
inc dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x1002e1ff
mov ecx, dword [ebx + 0xc8]
shl ecx, 2
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x1002e1ef
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002e1ef
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebx + 0xd0], edi
mov dword [ebx + 0xcc], esi
mov dword [ebx + 0xc8], 1
mov ecx, dword [ebx + 0x24c]
call fcn.1003b240
mov dword [ebx + 0x17c], 0xffffffff
cmp byte [ebx + 0x32c], 0
je 0x1002e23c
push ebx
call fcn.100252f0
add esp, 4
cmp dword [ebp + 0x411c], 0
je 0x1002e2ed
movzx eax, byte [ebx + 0xa]
and al, 8
shr al, 3
or al, byte [esp + 0x128]
jne 0x1002e2ed
mov edi, dword [ebx]
push edi
push dword [esp + 0x268]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x1002e2ed
mov esi, dword [ebx + 0x50]
push dword [esp + 0x264]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
inc ebx
cmp esi, ebx
jae 0x1002e2d4
test edi, edi
je 0x1002e2a1
mov eax, dword [0x100ef758]
test eax, eax
je 0x1002e2a1
dec dword [eax + 0xa8]
push dword [0x100ef760]
push edi
call dword [0x100e7c14]
add esp, 8
mov eax, dword [0x100ef758]
test eax, eax
je 0x1002e2c0
inc dword [eax + 0xa8]
push dword [0x100ef760]
push ebx
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov esi, ebx
push ebx
push dword [esp + 0x268]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp]
mov dword [ebx], edi
mov dword [ebx + 0x50], esi
lea edi, [ebx + 0x30]
lea ebp, [ebx + 0x28]
mov ecx, ebx
mov edx, ebp
push edi
call fcn.10035390
add esp, 4
movzx eax, byte [ebx + 0xb0]
test al, al
jle 0x1002e313
dec al
mov byte [ebx + 0xb0], al
movzx eax, byte [ebx + 0xb1]
test al, al
jle 0x1002e326
dec al
mov byte [ebx + 0xb1], al
movzx eax, byte [ebx + 0xb2]
test al, al
jle 0x1002e339
dec al
mov byte [ebx + 0xb2], al
cmp byte [esp + 0x128], 0
je 0x1002e354
mov eax, dword [esp + 0x70]
and al, byte [esp + 0x30]
jne 0x1002e354
mov byte [ebx + 0xb1], 1
test dword [esp + 4], 0x6000000
setne al
and al, byte [esp + 0x6c]
cmp al, 1
jne 0x1002e3a6
mov byte [ebx + 0xb1], 1
test byte [esp + 4], 0x40
je 0x1002e3a6
cmp byte [esp + 0x70], 0
jne 0x1002e38a
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x18], 0
cmp byte [esp + 0x30], 0
jne 0x1002e39f
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x1c], 0
xorps xmm0, xmm0
movups xmmword [ebp], xmm0
mov esi, dword [0x100ef758]
mov eax, dword [esi + 0x3fc0]
mov eax, dword [eax]
mov dword [esp + 0xdc], eax
mov dword [ebx + 0xc], eax
mov dword [esi + 0x3e10], ebx
mov eax, dword [ebx + 0x17c]
cmp eax, 0xffffffff
mov dword [esp + 0x138], ebp
je 0x1002e42c
imul eax, eax, 0x1d8
add eax, dword [esi + 0x4200]
jmp 0x1002e42e
xor eax, eax
mov dword [edi + 0x41e4], eax
movss xmm0, dword [edi + 0x3bb0]
mulss xmm0, dword [ebx + 0x244]
mov eax, dword [ebx + 0x2e0]
test eax, eax
je 0x1002e40e
mulss xmm0, dword [eax + 0x244]
movss dword [edi + 0x3bc0], xmm0
movss dword [edi + 0x3bac], xmm0
mov eax, dword [esp + 4]
and eax, 0x1000000
jmp 0x1003132e
xor eax, eax
mov ebp, dword [esp + 4]
and ebp, 0x1000000
mov dword [esi + 0x41e4], eax
movss xmm0, dword [esi + 0x3bb0]
mulss xmm0, dword [ebx + 0x244]
mov eax, dword [ebx + 0x2e0]
test eax, eax
je 0x1002e460
mulss xmm0, dword [eax + 0x244]
movss dword [esi + 0x3bc0], xmm0
movss dword [esi + 0x3bac], xmm0
test ebp, ebp
jne 0x1002e4ba
mov edx, dword [esp + 4]
test edx, 0x8000000
mov eax, 0x37c8
mov ecx, 0x37a4
cmovne eax, ecx
test edx, 0x6000000
cmove eax, ecx
mov ecx, dword [esp + 0xc]
movss xmm0, dword [ecx + eax]
movss dword [ebx + 0x4c], xmm0
mov eax, dword [ecx + 0x3798]
mov ecx, dword [ecx + 0x379c]
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x40], eax
movd xmm0, eax
jmp 0x1002e521
mov ecx, dword [esp + 0xc]
movss xmm2, dword [ecx + 0x37c0]
movss dword [ebx + 0x4c], xmm2
mov eax, dword [ecx + 0x3798]
mov ecx, dword [ecx + 0x379c]
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x40], eax
movd xmm0, eax
test dword [esp + 4], 0x4010000
jne 0x1002e51d
xorps xmm1, xmm1
ucomiss xmm2, xmm1
mov edx, dword [esp + 4]
jne 0x1002e521
jp 0x1002e521
test edx, 0x400
je 0x1002e50d
mov eax, dword [esp + 0xc]
movss xmm1, dword [eax + 0x379c]
mov dword [ebx + 0x40], 0
movss dword [ebx + 0x44], xmm1
pxor xmm0, xmm0
mov edx, dword [esp + 4]
test ebp, ebp
setne byte [esp + 0x80]
mov eax, dword [esp + 0xc]
movss xmm1, dword [eax + 0x3f4c]
movss xmm2, dword [eax + 0x37dc]
movaps xmm3, xmm2
cmpless xmm3, xmm0
andps xmm0, xmm3
andnps xmm3, xmm2
orps xmm3, xmm0
movaps xmm0, xmm1
cmpless xmm0, xmm3
movaps xmm2, xmm0
andps xmm2, xmm3
andnps xmm0, xmm1
orps xmm0, xmm2
movss dword [ebx + 0x13c], xmm0
movss xmm0, dword [eax + 0x3f50]
movss dword [ebx + 0x140], xmm0
test dl, 0x21
je 0x1002e58d
mov byte [ebx + 0x91], 0
jmp 0x1002e68a
movss xmm0, dword [ebx + 0x14]
mov edx, ebx
mov ebx, dword [ebx + 8]
xorps xmm1, xmm1
test bl, 1
jne 0x1002e5d4
movss xmm2, dword [esi + 0x3bb0]
mulss xmm2, dword [edx + 0x244]
mov eax, dword [edx + 0x2e0]
test eax, eax
je 0x1002e5c1
mulss xmm2, dword [eax + 0x244]
movss xmm1, dword [esi + 0x37d0]
addss xmm1, xmm1
addss xmm1, xmm2
mov edx, dword [esp]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
movss xmm2, dword [edx + 0x10]
unpcklps xmm2, xmm0
movss xmm0, dword [edx + 0x20]
unpcklps xmm0, xmm1
addps xmm0, xmm2
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
movlps qword [esp + 0x18], xmm0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3e14], edx
jne 0x1002e650
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3e34], 0
jne 0x1002e650
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3e38], 0
jne 0x1002e650
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
push 1
push eax
push ecx
call fcn.10025a10
add esp, 0xc
test al, al
je 0x1002e650
mov eax, dword [esp + 0xc]
cmp word [eax + 0x36fa], 2
jne 0x1002e650
mov eax, dword [esp]
mov byte [eax + 0x92], 1
mov eax, dword [esp]
cmp byte [eax + 0x92], 0
je 0x1002e687
mov eax, dword [esp]
xor byte [eax + 0x91], 1
test ebx, 0x100
jne 0x1002e687
xorps xmm0, xmm0
ucomiss xmm0, dword [esi + 0x51f4]
jb 0x1002e687
movss xmm0, dword [esi + 0x1c]
movss dword [esi + 0x51f4], xmm0
mov ebx, dword [esp]
mov byte [ebx + 0x92], 0
lea ecx, [esp + 0xf0]
mov edx, ebx
push edi
call fcn.100354d0
add esp, 4
test byte [esp + 4], 0x40
je 0x1002e6b7
cmp byte [ebx + 0x91], 0
je 0x1002e790
cmp byte [ebx + 0xa8], 0
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x44]
jle 0x1002e705
mov eax, ecx
cmp byte [esp + 0x70], 0
jne 0x1002e714
cmp byte [ebx + 0xab], 0
movss xmm0, dword [esp + 0xf0]
je 0x1002e6fc
movss xmm1, dword [ebx + 0x20]
movaps xmm2, xmm0
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
movss dword [ebx + 0x20], xmm0
mov al, 1
jmp 0x1002e714
cmp byte [ebx + 0xa9], 0
mov eax, ecx
jle 0x1002e7d3
cmp byte [esp + 0x30], 0
mov dword [esp + 0xbc], eax
jne 0x1002e75d
cmp byte [ebx + 0xa9], 0
jle 0x1002e75d
cmp byte [ebx + 0xab], 0
movss xmm0, dword [esp + 0xf4]
je 0x1002e756
movss xmm1, dword [ebx + 0x24]
movaps xmm2, xmm0
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
movss dword [ebx + 0x24], xmm0
mov cl, 1
cmp byte [ebx + 0x91], 0
mov dword [esp + 0x44], ecx
jne 0x1002e7da
test byte [ebx + 9], 1
jne 0x1002e7da
mov eax, dword [0x100ef758]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x51f4]
jb 0x1002e7da
movss xmm0, dword [eax + 0x1c]
movss dword [eax + 0x51f4], xmm0
jmp 0x1002e7da
mov eax, dword [esp + 0x44]
cmp byte [esp + 0x70], 0
mov edi, dword [esp + 8]
jne 0x1002e7af
movss xmm0, dword [esp + 0xf0]
movss dword [ebx + 0x20], xmm0
mov al, 1
mov dword [esp + 0xbc], eax
cmp byte [esp + 0x30], 0
jne 0x1002e7da
movss xmm0, dword [esp + 0xf4]
movss dword [ebx + 0x24], xmm0
mov al, 1
mov dword [esp + 0x44], eax
jmp 0x1002e7da
mov dword [esp + 0xbc], ecx
lea eax, [ebx + 0x20]
lea ecx, [esp + 0x10]
mov edx, ebx
push eax
call fcn.100356c0
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x20], ecx
cmp byte [ebx + 0x91], 0
movd xmm0, ecx
je 0x1002e866
test ebp, ebp
jne 0x1002e866
movss xmm1, dword [ebx + 0x14]
mov eax, dword [ebx + 8]
xorps xmm3, xmm3
test al, 1
jne 0x1002e852
mov ecx, dword [0x100ef758]
movss xmm2, dword [ecx + 0x3bb0]
mulss xmm2, dword [ebx + 0x244]
mov edx, dword [ebx + 0x2e0]
test edx, edx
je 0x1002e842
mulss xmm2, dword [edx + 0x244]
movss xmm3, dword [ecx + 0x37d0]
addss xmm3, xmm3
addss xmm3, xmm2
movss xmm2, dword [ebx + 0x10]
unpcklps xmm2, xmm1
punpckldq xmm0, xmm3
addps xmm0, xmm2
subps xmm0, xmm2
jmp 0x1002e871
movd xmm1, eax
mov eax, dword [ebx + 8]
punpckldq xmm0, xmm1
movq qword [ebx + 0x18], xmm0
xorps xmm7, xmm7
pxor xmm0, xmm0
movd dword [esp + 0x70], xmm0
test al, 1
jne 0x1002e91c
mov ecx, dword [0x100ef758]
movss xmm0, dword [ecx + 0x3bb0]
mulss xmm0, dword [ebx + 0x244]
mov edx, dword [ebx + 0x2e0]
test edx, edx
je 0x1002e8b3
mulss xmm0, dword [edx + 0x244]
movss xmm1, dword [ecx + 0x37d0]
addss xmm1, xmm1
addss xmm1, xmm0
movss dword [esp + 0x70], xmm1
test eax, 0x400
je 0x1002e923
mov eax, dword [0x100ef758]
movss xmm0, dword [ebx + 0x140]
movss xmm1, dword [eax + 0x3bb0]
mulss xmm1, dword [ebx + 0x244]
mov ecx, dword [ebx + 0x2e0]
test ecx, ecx
je 0x1002e8ff
mulss xmm1, dword [ecx + 0x244]
addss xmm0, xmm1
movss xmm7, dword [eax + 0x37d0]
addss xmm7, xmm7
addss xmm7, xmm0
cmp byte [esp + 0x6c], 0
je 0x1002e969
jmp 0x1002e92a
test eax, 0x400
jne 0x1002e8d0
cmp byte [esp + 0x6c], 0
je 0x1002e969
mov dword [ebx + 0xac], 0xffffffff
mov eax, dword [esp + 4]
and eax, 0xc000000
cmp eax, 0x4000000
setne al
or al, byte [esp + 0x20]
jne 0x1002e969
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x3fa8]
mov ecx, dword [ecx + 0x3fb0]
lea eax, [eax + eax*4]
movq xmm0, qword [ecx + eax*8 - 0x10]
movq qword [ebx + 0x10], xmm0
mov eax, dword [esp + 4]
and eax, 0x3000000
mov dword [esp + 0x5c], eax
test ebp, ebp
mov dword [esp + 0x54], ebp
movss dword [esp + 0x30], xmm7
je 0x1002ea8f
movzx eax, word [edi + 0x168]
mov word [ebx + 0x9c], ax
mov eax, dword [edi + 0x168]
cmp eax, dword [edi + 0x16c]
jne 0x1002e9b8
lea esi, [eax + 1]
test eax, eax
je 0x1002e9c3
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1002e9c8
mov ebp, dword [edi + 0x170]
jmp 0x1002ea5e
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
lea eax, [esi*4]
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002e9e4
inc dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c10]
add esp, 8
mov ebp, eax
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x170]
test eax, eax
je 0x1002ea46
mov ecx, dword [edi + 0x168]
shl ecx, 2
push ecx
push eax
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x170]
test eax, eax
je 0x1002ea32
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002ea32
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov edi, dword [esp + 8]
mov dword [edi + 0x170], ebp
mov dword [edi + 0x16c], esi
mov eax, dword [edi + 0x168]
movss xmm7, dword [esp + 0x30]
mov ecx, dword [esp + 4]
shr ecx, 0x1a
and ecx, 1
mov dword [ebp + eax*4], ebx
inc dword [edi + 0x168]
or cl, byte [esp + 0x20]
jne 0x1002ea8f
cmp dword [esp + 0x5c], 0x3000000
je 0x1002ea8f
movq xmm0, qword [edi + 0xd4]
movq qword [ebx + 0x10], xmm0
movss xmm0, dword [ebx + 0xb8]
ucomiss xmm0, dword [0x100740f0]
jne 0x1002eaa2
jnp 0x1002eaaf
cmp byte [ebx + 0xb1], 0
je 0x1002eced
mov eax, dword [esp + 4]
test eax, 0x10000000
jne 0x1002eaed
test eax, 0x4000000
sete al
or al, byte [esp + 0x20]
jne 0x1002ead2
cmp byte [esp + 0x108], 0
jg 0x1002eaed
test dword [esp + 4], 0x2000000
sete al
or al, byte [esp + 0x20]
jne 0x1002eb0c
cmp dword [esp + 0x5c], 0x3000000
je 0x1002eb0c
push ebx
lea eax, [esp + 0x14]
push eax
call fcn.10035ab0
movss xmm7, dword [esp + 0x38]
add esp, 8
movsd xmm0, qword [esp + 0x10]
movsd qword [ebx + 0x10], xmm0
mov eax, dword [esp + 0xdc]
movsd xmm1, qword [eax + 4]
movsd xmm0, qword [eax + 0xc]
addps xmm0, xmm1
movaps xmm2, xmm1
movlhps xmm2, xmm0
movups xmmword [esp + 0x240], xmm2
movsd xmm2, qword [eax + 0x14]
movsd xmm6, qword [eax + 0x1c]
addps xmm6, xmm2
mov ebp, dword [esp + 0xc]
movsd xmm3, qword [ebp + 0x3838]
movsd xmm4, qword [ebp + 0x3840]
movaps xmm5, xmm4
cmpleps xmm5, xmm3
andps xmm3, xmm5
andnps xmm5, xmm4
orps xmm5, xmm3
subps xmm6, xmm5
addps xmm5, xmm2
movups xmmword [esp + 0x13c], xmm5
movaps xmm2, xmm5
movlhps xmm2, xmm6
movups xmmword [esp + 0x230], xmm2
mov eax, dword [esp + 0x20]
or al, byte [esp + 0x80]
jne 0x1002ebd7
cmp byte [ebx + 0xa8], 0
jg 0x1002ebd7
cmp byte [ebx + 0xa9], 0
jg 0x1002ebd7
subps xmm0, xmm1
xorps xmm1, xmm1
cmpltps xmm1, xmm0
unpcklps xmm1, xmm1
movmskpd eax, xmm1
test al, 1
je 0x1002ebd7
shr al, 1
je 0x1002ebd7
lea edx, [esp + 0x230]
mov ecx, ebx
movups xmmword [esp + 0x17c], xmm6
call fcn.10035cc0
movss xmm7, dword [esp + 0x30]
movups xmm6, xmmword [esp + 0x17c]
movsd xmm0, qword [ebx + 0x10]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movlps qword [ebx + 0x10], xmm0
cmp dword [esp + 0x54], 0
jne 0x1002ec06
mov eax, dword [esp + 4]
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1002ec0e
lea eax, [ebp + 0x37c4]
jmp 0x1002ec14
lea eax, [ebp + 0x37bc]
jmp 0x1002ec14
lea eax, [ebp + 0x37a0]
movss xmm2, dword [eax]
movss dword [ebx + 0x48], xmm2
mov ecx, dword [esp + 4]
test ecx, 0x1000
sete al
and al, byte [esp + 0x6c]
cmp al, 1
jne 0x1002ecdd
mov eax, ecx
shr eax, 0x1a
and eax, 1
cmp dword [esp + 0x5c], 0
sete cl
or cl, al
mov dword [esp + 0x94], ecx
mov esi, dword [0x100ef758]
mov eax, dword [esi + 0x3f9c]
test eax, eax
jle 0x1002edbd
mov ecx, dword [esi + 0x3fa4]
lea edx, [eax + 1]
lea edi, [eax + eax*4]
lea ebx, [ecx + edi*8]
add ebx, 0xffffffdc
jmp 0x1002ec8d
dec edx
add ebx, 0xffffffd8
cmp edx, 2
jb 0x1002edb6
mov edi, dword [ebx]
test edi, edi
je 0x1002ec80
test byte [edi + 0xb], 8
je 0x1002ec80
mov ebx, dword [esp]
mov edx, dword [ebx + 0x2e8]
cmp edx, edi
je 0x1002edb9
nop word [eax + eax]
cmp ebx, edi
je 0x1002edb6
mov ebx, dword [ebx + 0x2e4]
test ebx, ebx
jne 0x1002ecb0
mov ebx, dword [esp]
cmp ebx, edx
je 0x1002efa4
mov dword [esp + 0x94], 0
jmp 0x1002edb9
mov dword [esp + 0x94], 0
jmp 0x1002edbd
and byte [ebx + 0xb4], 0xf1
mov dword [ebx + 0xb8], 0x7f7fffff
movss xmm1, dword [ebx + 0xbc]
mov dword [ebx + 0xbc], 0x7f7fffff
movsd xmm2, qword [ebx + 0x10]
movsd xmm3, qword [ebx + 0x18]
movsd xmm4, qword [ebx + 0xc0]
mulps xmm4, xmm3
unpcklps xmm0, xmm1
subps xmm0, xmm4
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movlps qword [ebx + 0x10], xmm0
subps xmm0, xmm2
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x1002ed55
jp 0x1002ed55
movaps xmm2, xmm0
shufps xmm2, xmm0, 0x55
ucomiss xmm2, xmm1
jne 0x1002ed55
jnp 0x1002eb0c
test byte [ebx + 9], 1
jne 0x1002ed76
mov eax, dword [0x100ef758]
ucomiss xmm1, dword [eax + 0x51f4]
jb 0x1002ed76
movss xmm1, dword [eax + 0x1c]
movss dword [eax + 0x51f4], xmm1
movsd xmm1, qword [ebx + 0xd4]
addps xmm1, xmm0
movlps qword [ebx + 0xd4], xmm1
movaps xmm1, xmm0
movlhps xmm1, xmm0
movsd xmm2, qword [ebx + 0xf4]
addps xmm2, xmm0
movlps qword [ebx + 0xf4], xmm2
movups xmm0, xmmword [ebx + 0xe4]
addps xmm0, xmm1
movups xmmword [ebx + 0xe4], xmm0
jmp 0x1002eb0c
mov ebx, dword [esp]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x44]
xorps xmm0, xmm0
movups xmmword [esp + 0x1b4], xmm0
cmp byte [ebp + 0x5e], 1
mov ecx, 2
sbb ecx, 0
mov dword [esp + 0xdc], ecx
addss xmm2, dword [0x1006d630]
movss xmm0, dword [esp + 0x70]
addss xmm0, xmm7
movss dword [esp + 0x70], xmm0
movss xmm0, dword [ebp + 0x3bac]
cmp byte [ebx + 0x91], 0
movss dword [esp + 0x108], xmm2
movups xmmword [esp + 0x14c], xmm0
je 0x1002ee32
lea eax, [ebx + 0x99]
mov dword [esp + 0xf8], eax
mov byte [ebx + 0x99], 0xff
jmp 0x1002f074
test byte [ebx + 8], 0x42
jne 0x1002ee4e
cmp byte [ebx + 0xa8], 0
jg 0x1002ee4e
cmp byte [ebx + 0xa9], 0
jle 0x100315be
lea ecx, [ebx + 0x99]
mov dword [esp + 0xf8], ecx
mov byte [ebx + 0x99], 0xff
xorps xmm0, xmm0
cmp byte [esp + 0x128], 0
jne 0x1002ee7f
movsd xmm1, qword [ebx + 0x28]
movsd xmm0, qword [ebx + 0x40]
addps xmm0, xmm0
addps xmm0, xmm1
cmp byte [esp + 0xbc], 0
je 0x1002eeac
movss xmm2, dword [ebx + 0x20]
test al, al
jne 0x1002eec8
movss xmm1, dword [ebx + 0x1c4]
subss xmm1, dword [ebx + 0x1bc]
addss xmm1, dword [ebx + 0x88]
jmp 0x1002eed3
movss xmm2, dword [ebx + 0x1c0]
subss xmm2, dword [ebx + 0x1b8]
addss xmm2, dword [ebx + 0x84]
test al, al
je 0x1002ee92
movss xmm1, dword [ebx + 0x24]
subss xmm1, dword [esp + 0x70]
mov edx, dword [esp + 4]
test edx, 0x4000
jne 0x1002ef10
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
ucomiss xmm3, xmm1
seta cl
test dl, 8
sete al
and al, cl
lea ecx, [ebx + 0x8d]
mov byte [ebx + 0x8d], al
test dx, dx
js 0x1002ef70
test al, al
jne 0x1002ef22
xorps xmm3, xmm3
xor eax, eax
jmp 0x1002ef2c
mov byte [ebx + 0x8d], 1
test dx, dx
js 0x1002ef8a
lea ecx, [ebx + 0x8d]
movss xmm3, dword [ebp + 0x3804]
mov al, 1
subss xmm2, xmm3
ucomiss xmm0, xmm2
jbe 0x1002ef98
mov edx, dword [esp + 4]
and edx, 8
jne 0x1002ef98
mov esi, ebx
mov ebx, dword [esp + 4]
and ebx, 0x800
mov edx, ebx
shr edx, 0xb
mov byte [esi + 0x8c], dl
xorps xmm2, xmm2
test ebx, ebx
jne 0x1002f017
mov ebx, dword [esp]
test al, al
jne 0x1002f050
jmp 0x1002f061
mov byte [ebx + 0x8c], 1
test al, al
jne 0x1002f044
lea edx, [ebx + 0x8c]
jmp 0x1002f024
mov byte [ebx + 0x8c], 1
mov al, 1
jmp 0x1002f044
mov byte [ebx + 0x8c], 0
jmp 0x1002f05a
dec eax
lea edx, [eax + eax*4]
mov edx, dword [ecx + edx*8 + 4]
test edx, edx
je 0x1002efa4
test byte [edx + 0xb], 8
je 0x1002efa4
cmp byte [edx + 0x8e], 0
jne 0x1002efc8
cmp byte [edx + 0x8f], 0
je 0x1002efa4
mov edi, dword [edx + 0x2e4]
mov edi, dword [edi + 0x2e8]
test edi, edi
je 0x1002efa4
cmp ebx, edi
je 0x10031b5d
mov ebx, dword [esp]
nop word cs:[eax + eax]
cmp ebx, edi
je 0x10031b5d
mov ebx, dword [ebx + 0x2e4]
test ebx, ebx
jne 0x1002eff0
mov edi, dword [edi + 0x2e4]
mov edi, dword [edi + 0x2e8]
test edi, edi
mov ebx, dword [esp]
jne 0x1002efd8
jmp 0x1002efa4
test al, al
jne 0x1002f03d
mov eax, dword [esp]
lea edx, [eax + 0x8c]
shufps xmm0, xmm0, 0x55
ucomiss xmm0, xmm1
seta bl
test byte [esp + 4], 8
sete al
and al, bl
mov byte [ecx], al
movzx edx, byte [edx]
test dl, dl
mov ebx, dword [esp]
je 0x1002f05a
movss xmm2, dword [ebp + 0x3804]
test al, al
je 0x1002f061
movss xmm0, dword [ebp + 0x3804]
jmp 0x1002f064
xorps xmm2, xmm2
test al, al
jne 0x1002f050
xorps xmm0, xmm0
movss dword [ebx + 0x84], xmm0
movss dword [ebx + 0x88], xmm2
mov esi, ebx
cmp dword [esp + 0x5c], 0x3000000
sete al
cmp dword [esp + 0x54], 0
sete cl
mov ebx, dword [esp + 4]
shr ebx, 0x1a
and ebx, 1
or bl, cl
lea ecx, [edi + 0x1f8]
or bl, al
lea eax, [esp + 0x240]
cmove eax, ecx
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x15c], xmm0
movsd xmm3, qword [esi + 0x10]
movsd xmm1, qword [esi + 0x18]
movaps xmm0, xmm3
addps xmm0, xmm1
xorps xmm2, xmm2
test byte [esi + 8], 1
jne 0x1002f105
mov eax, dword [0x100ef758]
movss xmm4, dword [eax + 0x3bb0]
mulss xmm4, dword [esi + 0x244]
mov ecx, dword [esi + 0x2e0]
test ecx, ecx
je 0x1002f0f2
mulss xmm4, dword [ecx + 0x244]
movss xmm2, dword [eax + 0x37d0]
addss xmm2, xmm2
addss xmm2, xmm4
mov esi, dword [esp]
mov eax, dword [esp + 4]
mov ecx, eax
mov edi, eax
and ecx, 0x401
lea eax, [ebp + 0x37d8]
lea edx, [esi + 0x4c]
cmp ecx, 1
cmove eax, edx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
movss xmm4, dword [esi + 0x20]
unpcklps xmm4, xmm2
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], ecx
addps xmm4, xmm3
movlps qword [esp + 0xb0], xmm4
movaps xmm2, xmm3
shufps xmm2, xmm3, 0x55
movups xmm4, xmmword [esp + 0x15c]
movlhps xmm3, xmm0
movaps xmm5, xmm4
cmpleps xmm5, xmm3
movaps xmm6, xmm3
cmpltps xmm6, xmm4
movsd xmm6, xmm5
andps xmm3, xmm6
andnps xmm6, xmm4
orps xmm6, xmm3
movups xmmword [esi + 0x1a8], xmm6
movd xmm3, ecx
mov dword [esi + 0x1b8], ecx
addss xmm2, dword [esp + 0x70]
movss dword [esi + 0x1bc], xmm2
movaps xmm5, xmm1
addss xmm5, xmm3
movsd xmm6, qword [esi + 0x84]
movss xmm0, xmm5
subps xmm0, xmm6
movlps qword [esi + 0x1c0], xmm0
movss xmm5, dword [esi + 0x40]
movss xmm6, dword [esi + 0x4c]
mulss xmm5, dword [0x10073628]
cvttps2dq xmm5, xmm5
movups xmmword [esp + 0x20], xmm1
cvtdq2ps xmm7, xmm5
movaps xmm5, xmm6
cmpless xmm5, xmm7
andps xmm7, xmm5
andnps xmm5, xmm6
orps xmm5, xmm7
movaps xmm6, xmm2
movlhps xmm6, xmm3
shufps xmm6, xmm0, 0x42
addps xmm6, xmmword [0x100743b0]
movss xmm7, dword [eax]
unpcklps xmm5, xmm7
movss xmm7, dword [esi + 0x4c]
movaps xmm1, xmm6
addps xmm1, xmm5
shufps xmm5, xmm7, 0x24
movups xmm7, xmmword [esp + 0x20]
shufps xmm5, xmm5, 0xc4
subps xmm6, xmm5
movsd xmm6, xmm1
cvttps2dq xmm1, xmm6
cvtdq2ps xmm1, xmm1
movaps xmm5, xmm4
movlhps xmm5, xmm4
movhlps xmm4, xmm4
minps xmm4, xmm1
cmpltps xmm1, xmm5
andps xmm5, xmm1
andnps xmm1, xmm4
orps xmm1, xmm5
movups xmmword [esi + 0x1c8], xmm1
lea esi, [esp + 0x164]
mov eax, edi
test al, 0x40
jne 0x1002f269
xorps xmm1, xmm1
ucomiss xmm7, xmm1
jbe 0x1002f269
mov eax, dword [esp + 4]
and eax, 0x2000000
jne 0x1002f269
mulss xmm7, dword [0x100743c0]
jmp 0x1002f279
movss xmm7, dword [ebp + 0x3bac]
mulss xmm7, dword [0x100743c4]
cvttps2dq xmm1, xmm7
cvtdq2ps xmm1, xmm1
mov edi, dword [esp]
movss dword [edi + 0x228], xmm1
unpcklps xmm3, xmm2
subps xmm0, xmm3
movsd xmm1, qword [edi + 0x28]
movsd xmm2, qword [edi + 0x40]
addps xmm2, xmm2
addps xmm2, xmm1
subps xmm2, xmm0
xorps xmm0, xmm0
movaps xmm1, xmm2
cmpnleps xmm1, xmm0
andps xmm1, xmm2
movlps qword [edi + 0x64], xmm1
lea ecx, [esp + 0x10]
mov edx, edi
call fcn.10035d40
movsd xmm0, qword [esp + 0x10]
movsd qword [edi + 0x5c], xmm0
mov dword [edi + 0x6c], 0x7f7fffff
mov dword [edi + 0x70], 0x7f7fffff
mov ecx, dword [edi + 0x24c]
mov eax, dword [ebp + 0x3ba8]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.1003bd10
mov eax, dword [0x100ef758]
mov ecx, dword [eax + 0x3e10]
mov byte [ecx + 0x90], 1
mov edi, dword [eax + 0x3e10]
mov ecx, dword [edi + 0x24c]
lea eax, [esp + 0x15c]
push 0
push esi
push eax
call fcn.1003bbb0
mov eax, dword [edi + 0x24c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
shl ecx, 4
movups xmm0, xmmword [ecx + eax - 0x10]
movups xmmword [edi + 0x1f8], xmm0
test bl, bl
je 0x1002f344
xor ebx, ebx
jmp 0x1002f3e5
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x168]
cmp eax, 2
jl 0x1002f3ad
mov ecx, dword [edi + 0x170]
mov ecx, dword [ecx + eax*4 - 8]
test ecx, ecx
mov esi, dword [esp]
je 0x1002f3b4
movss xmm0, dword [ecx + 0x14]
movss xmm2, dword [ecx + 0x1c]
addss xmm2, xmm0
movss xmm1, dword [esi + 0x14]
xor eax, eax
ucomiss xmm2, xmm1
jbe 0x1002f3b6
addss xmm1, dword [esi + 0x1c]
ucomiss xmm1, xmm0
jbe 0x1002f3b6
movss xmm0, dword [ecx + 0x10]
movss xmm2, dword [ecx + 0x18]
addss xmm2, xmm0
movss xmm1, dword [esi + 0x10]
ucomiss xmm2, xmm1
jbe 0x1002f3b6
addss xmm1, dword [esi + 0x18]
ucomiss xmm1, xmm0
seta al
jmp 0x1002f3b6
xor eax, eax
mov esi, dword [esp]
jmp 0x1002f3b6
xor eax, eax
mov ecx, dword [esi + 0x24c]
mov edx, dword [ecx]
mov ecx, dword [ecx + 8]
lea edx, [edx + edx*4]
xor ebx, ebx
cmp dword [ecx + edx*8 - 0xc], 0
jne 0x1002f3e5
mov ecx, dword [edi + 0x24c]
cmp dword [ecx + 0x18], 0
jle 0x1002f3e5
test al, al
jne 0x1002f3e5
mov dword [esi + 0x24c], ecx
mov bl, 1
mov dword [esp + 0x118], ebx
mov eax, dword [ebp + 0x4114]
test eax, eax
jne 0x1002f3fc
mov eax, dword [ebp + 0x3fc4]
mov bl, 1
cmp byte [esp + 0x94], 0
jne 0x1002f422
test eax, eax
je 0x1002f420
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x2f0]
cmp ecx, dword [eax + 0x2f0]
sete bl
jmp 0x1002f422
xor ebx, ebx
mov edi, dword [0x100ef758]
mov eax, dword [esp]
mov ecx, dword [eax + 8]
mov byte [eax + 0x93], 0
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [eax + 0x4c]
cmp byte [eax + 0x91], 0
je 0x1002f586
movss xmm1, dword [edi + 0x37d8]
movss dword [esp + 0x20], xmm1
movss dword [edi + 0x37d8], xmm0
mov eax, 0xc
test bl, bl
je 0x1002f47b
cmp byte [edi + 0x4002], 1
sbb eax, 0
shl eax, 4
movss xmm3, dword [edi + eax + 0x3858]
movss xmm1, dword [edi + eax + 0x385c]
movss xmm0, dword [edi + eax + 0x3864]
mulss xmm0, dword [edi + 0x3790]
movss xmm2, dword [0x1006d630]
movaps xmm4, xmm2
minss xmm4, xmm3
xorps xmm5, xmm5
cmpltss xmm3, xmm5
andnps xmm3, xmm4
movss xmm4, dword [0x10074170]
mulss xmm3, xmm4
movss xmm6, dword [0x10073628]
addss xmm3, xmm6
cvttss2si ecx, xmm3
minss xmm2, xmm1
cmpltss xmm1, xmm5
andnps xmm1, xmm2
mulss xmm1, xmm4
addss xmm1, xmm6
cvttss2si edx, xmm1
shl edx, 8
movss xmm1, dword [edi + eax + 0x3860]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x10074180]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x10074190]
or edx, ecx
addps xmm1, xmmword [0x10074160]
cvttps2dq xmm0, xmm1
pshufd xmm1, xmm0, 0x55
pslld xmm0, 0x10
movd eax, xmm0
or eax, edx
pslld xmm1, 0x18
movd ecx, xmm1
or ecx, eax
movups xmm0, xmmword [esp + 0xa8]
sub esp, 0x1c
movss xmm1, dword [esp + 0x4c]
movss dword [esp + 0x18], xmm1
movups xmmword [esp], xmm0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 1
call fcn.10023930
add esp, 0x1c
movss xmm0, dword [esp + 0x20]
movss dword [edi + 0x37d8], xmm0
mov ebx, dword [esp]
jmp 0x10030554
movups xmmword [esp + 0x80], xmm0
test cl, cl
mov dword [esp + 0x20], ecx
js 0x1002f67f
mov eax, ecx
and eax, 0x1000000
cmp eax, 1
mov eax, ecx
mov ecx, 3
sbb ecx, 0
test eax, 0x6000000
mov eax, 4
cmove eax, ecx
shl eax, 4
movss xmm4, dword [edi + eax + 0x3858]
movss xmm1, dword [0x1006d630]
movaps xmm2, xmm1
minss xmm2, xmm4
xorps xmm0, xmm0
cmpltss xmm4, xmm0
andnps xmm4, xmm2
movss xmm2, dword [0x10074170]
mulss xmm4, xmm2
movss xmm3, dword [0x10073628]
addss xmm4, xmm3
cvttss2si ecx, xmm4
movsd xmm4, qword [edi + eax + 0x385c]
xorps xmm5, xmm5
movaps xmm6, xmmword [0x10074180]
minps xmm6, xmm4
cmpnltps xmm4, xmm5
andps xmm4, xmm6
mulps xmm4, xmmword [0x10074190]
addps xmm4, xmmword [0x10074160]
cvttps2dq xmm4, xmm4
pshufd xmm5, xmm4, 0x55
pslld xmm4, 8
movd edx, xmm4
or edx, ecx
pslld xmm5, 0x10
movd ecx, xmm5
or ecx, edx
test byte [edi + 0x3ef4], 0x40
mov dword [esp + 0x5c], ebx
jne 0x1002f691
movss xmm4, dword [edi + eax + 0x3864]
mulss xmm4, dword [edi + 0x3790]
minss xmm1, xmm4
cmpltss xmm4, xmm0
andnps xmm4, xmm1
mulss xmm4, xmm2
addss xmm4, xmm3
cvttss2si eax, xmm4
jmp 0x1002f6bf
mov esi, ecx
and esi, 1
test esi, esi
jne 0x1002f895
jmp 0x1002f783
movss xmm2, dword [edi + 0x3f48]
and ecx, 0xffffff
minss xmm1, xmm2
cmpltss xmm2, xmm0
andnps xmm2, xmm1
mulss xmm2, dword [0x10074170]
addss xmm2, dword [0x10073628]
cvttss2si eax, xmm2
shl eax, 0x18
or eax, ecx
mov esi, dword [esp]
mov ecx, dword [esi + 0x24c]
xor ebp, ebp
mov ebx, dword [esp + 0x20]
mov edx, ebx
and edx, 1
mov dword [esp + 0x44], edx
mov edx, 0xc0
cmovne edx, ebp
movsd xmm1, qword [esi + 0x10]
movsd xmm2, qword [esi + 0x18]
addps xmm2, xmm1
movlps qword [esp + 0x10], xmm2
test bl, 1
mov ebx, dword [esp + 0x5c]
jne 0x1002f734
movss xmm2, dword [edi + 0x3bb0]
mov esi, dword [esp]
mulss xmm2, dword [esi + 0x244]
mov ebp, dword [esi + 0x2e0]
test ebp, ebp
je 0x1002f724
mulss xmm2, dword [ebp + 0x244]
movss xmm0, dword [edi + 0x37d0]
addss xmm0, xmm0
addss xmm0, xmm2
xorps xmm2, xmm2
unpcklps xmm2, xmm0
addps xmm1, xmm2
movlps qword [esp + 0x98], xmm1
sub esp, 0x14
mov dword [esp + 0x10], edx
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0xc], xmm0
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
mov dword [esp + 4], eax
lea eax, [esp + 0xac]
mov dword [esp], eax
call fcn.1003e530
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x1002f895
lea eax, [esp + 0xb0]
movzx ecx, bl
shl ecx, 4
mov edx, dword [0x100ef758]
movss xmm3, dword [edx + ecx + 0x38f8]
movss xmm1, dword [edx + ecx + 0x38fc]
movss xmm0, dword [edx + ecx + 0x3904]
mulss xmm0, dword [edx + 0x3790]
movss xmm2, dword [0x1006d630]
movaps xmm4, xmm2
minss xmm4, xmm3
pxor xmm5, xmm5
cmpltss xmm3, xmm5
andnps xmm3, xmm4
movss xmm4, dword [0x10074170]
mulss xmm3, xmm4
movss xmm6, dword [0x10073628]
addss xmm3, xmm6
cvttss2si ebx, xmm3
minss xmm2, xmm1
cmpltss xmm1, xmm5
andnps xmm1, xmm2
mulss xmm1, xmm4
addss xmm1, xmm6
cvttss2si ebp, xmm1
shl ebp, 8
movss xmm1, dword [edx + ecx + 0x3900]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x10074180]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x10074190]
or ebp, ebx
addps xmm1, xmmword [0x10074160]
cvttps2dq xmm0, xmm1
pshufd xmm1, xmm0, 0x55
pslld xmm0, 0x10
movd ecx, xmm0
or ecx, ebp
pslld xmm1, 0x18
movd edx, xmm1
or edx, ecx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x24c]
sub esp, 0x14
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0xc], xmm0
mov dword [esp + 4], eax
lea eax, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0x10], 0x30
call fcn.1003e530
mov ecx, dword [esp + 0x20]
test ecx, 0x400
mov ebx, dword [esp]
je 0x1002fc26
mov ecx, dword [ebx + 8]
pxor xmm1, xmm1
mov eax, dword [0x100ef758]
xorps xmm2, xmm2
test cl, 1
jne 0x1002f8ea
movss xmm0, dword [eax + 0x3bb0]
mulss xmm0, dword [ebx + 0x244]
mov edx, dword [ebx + 0x2e0]
test edx, edx
je 0x1002f8da
mulss xmm0, dword [edx + 0x244]
movss xmm2, dword [eax + 0x37d0]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm3, dword [ebx + 0x14]
test ecx, 0x400
je 0x1002f935
movss xmm0, dword [ebx + 0x140]
movss xmm1, dword [eax + 0x3bb0]
mulss xmm1, dword [ebx + 0x244]
mov ecx, dword [ebx + 0x2e0]
test ecx, ecx
je 0x1002f921
mulss xmm1, dword [ecx + 0x244]
addss xmm0, xmm1
movss xmm1, dword [eax + 0x37d0]
addss xmm1, xmm1
addss xmm1, xmm0
addss xmm2, xmm3
movss xmm5, dword [ebx + 0x10]
movaps xmm0, xmm3
cmpless xmm0, xmm2
movaps xmm4, xmm0
andps xmm4, xmm2
andnps xmm0, xmm3
orps xmm0, xmm4
movaps xmm4, xmm5
unpcklps xmm4, xmm2
movd xmm6, dword [ebx + 0x20]
punpckldq xmm6, xmm1
addps xmm6, xmm4
movsd xmm1, qword [ebx + 0x18]
movups xmmword [esp + 0xbc], xmm5
movaps xmm2, xmm5
unpcklps xmm2, xmm3
addps xmm2, xmm1
minps xmm6, xmm2
movaps xmm1, xmm6
shufps xmm1, xmm6, 0x55
movups xmmword [esp + 0x44], xmm1
mov ecx, dword [ebx + 0x24c]
xorps xmm7, xmm7
xorps xmm1, xmm1
test esi, esi
je 0x1002f99f
movss xmm1, dword [esp + 0x30]
movss dword [esp + 0x5c], xmm1
movss xmm4, dword [eax + 0x3928]
movss xmm2, dword [eax + 0x3934]
mulss xmm2, dword [eax + 0x3790]
movss xmm3, dword [eax + 0x392c]
movss xmm1, dword [0x1006d630]
movaps xmm5, xmm1
minss xmm5, xmm4
cmpltss xmm4, xmm7
andnps xmm4, xmm5
movss xmm5, dword [0x10074170]
mulss xmm4, xmm5
movss xmm7, dword [0x10073628]
addss xmm4, xmm7
cvttss2si edx, xmm4
minss xmm1, xmm3
cmpltss xmm3, dword [0x10074150]
andnps xmm3, xmm1
mulss xmm3, xmm5
addss xmm3, xmm7
cvttss2si esi, xmm3
movss xmm3, dword [eax + 0x3930]
unpcklps xmm3, xmm2
xorps xmm2, xmm2
movaps xmm4, xmmword [0x10074180]
minps xmm4, xmm3
cmpnltps xmm3, xmm2
andps xmm3, xmm4
mulps xmm3, xmmword [0x10074190]
addps xmm3, xmmword [0x10074160]
cvttps2dq xmm2, xmm3
pshufd xmm3, xmm2, 0x55
pslld xmm2, 0x10
movd eax, xmm2
pslld xmm3, 0x18
movd ebx, xmm3
mov ebp, dword [esp]
movss xmm2, dword [ebp + 0x10]
movups xmmword [esp + 0x128], xmm6
movaps xmm3, xmm6
movups xmm4, xmmword [esp + 0x80]
subss xmm3, xmm4
movss dword [esp + 0x10], xmm3
movaps xmm3, xmm4
unpcklps xmm3, xmm0
addps xmm3, xmm2
movlps qword [esp + 0x98], xmm3
shl esi, 8
or esi, edx
or eax, esi
or ebx, eax
movups xmm0, xmmword [esp + 0x44]
movss dword [esp + 0x14], xmm0
sub esp, 0x14
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0xc], xmm0
lea eax, [esp + 0x24]
mov dword [esp + 4], eax
lea esi, [esp + 0xac]
mov dword [esp], esi
mov dword [esp + 8], ebx
mov ebx, ebp
mov dword [esp + 0x10], 0x30
call fcn.1003e530
movups xmm4, xmmword [esp + 0x44]
movss xmm0, dword [edi + 0x37d8]
ucomiss xmm0, dword [0x10074150]
mov ecx, dword [esp + 0x20]
jbe 0x1002fc26
movss xmm1, dword [ebx + 0x14]
addss xmm1, dword [ebx + 0x1c]
ucomiss xmm1, xmm4
jbe 0x1002fc26
mov ecx, dword [0x100ef758]
movss xmm1, dword [ecx + 0x38a8]
movss xmm5, dword [0x1006d630]
movaps xmm2, xmm5
minss xmm2, xmm1
xorps xmm3, xmm3
cmpltss xmm1, xmm3
andnps xmm1, xmm2
movss xmm2, dword [0x10074170]
mulss xmm1, xmm2
movss xmm6, dword [0x10073628]
addss xmm1, xmm6
cvttss2si eax, xmm1
movss xmm1, dword [ecx + 0x38ac]
minss xmm5, xmm1
cmpltss xmm1, xmm3
andnps xmm1, xmm5
mulss xmm1, xmm2
addss xmm1, xmm6
movss xmm2, dword [ecx + 0x38b4]
mulss xmm2, dword [ecx + 0x3790]
cvttss2si edx, xmm1
movss xmm1, dword [ecx + 0x38b0]
unpcklps xmm1, xmm2
xorps xmm2, xmm2
movaps xmm3, xmmword [0x10074180]
minps xmm3, xmm1
cmpnltps xmm1, xmm2
andps xmm1, xmm3
mulps xmm1, xmmword [0x10074190]
addps xmm1, xmmword [0x10074160]
cvttps2dq xmm1, xmm1
pshufd xmm2, xmm1, 0x55
pslld xmm1, 0x10
movd edi, xmm1
pslld xmm2, 0x18
movd ebx, xmm2
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x24c]
movups xmm1, xmmword [esp + 0x128]
movlps qword [esp + 0x10], xmm1
movdqu xmm1, xmmword [esp + 0xbc]
movd dword [esp + 0x98], xmm1
movss dword [esp + 0x9c], xmm4
shl edx, 8
or edx, eax
or edi, edx
or ebx, edi
sub esp, 0x10
movss dword [esp + 0xc], xmm0
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
call fcn.1003e2d0
mov ecx, dword [esp + 0x20]
cmp byte [ebx + 0x8c], 0
je 0x1002fc3d
push 0
call fcn.10051cd0
mov ecx, dword [esp + 0x24]
add esp, 4
cmp byte [ebx + 0x8d], 0
je 0x1002fc54
push 1
call fcn.10051cd0
mov ecx, dword [esp + 0x24]
add esp, 4
test cl, 2
jne 0x1002ff9d
movss xmm0, dword [0x10074340]
movups xmm3, xmmword [esp + 0x14c]
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x108]
mulss xmm3, dword [0x10074344]
movaps xmm1, xmm0
cmpless xmm1, xmm3
movaps xmm2, xmm1
andnps xmm2, xmm0
andps xmm1, xmm3
orps xmm1, xmm2
cvttps2dq xmm0, xmm1
cvtdq2ps xmm0, xmm0
movss xmm2, dword [esp + 0x30]
movups xmm1, xmmword [esp + 0x80]
addss xmm2, xmm1
unpcklps xmm1, xmm0
movups xmmword [esp + 0x80], xmm1
shufps xmm1, xmm1, 0xe1
movups xmmword [esp + 0x108], xmm1
shufps xmm2, xmm2, 0
movups xmmword [esp + 0xbc], xmm2
xor edx, edx
mov esi, 0x10073e80
jmp 0x1002fd6c
mov edi, dword [ebp + 0x5c]
mulps xmm4, xmm3
addps xmm4, xmm2
movlps qword [edi + ebx*8], xmm4
inc dword [ebp + 0x54]
mov ebx, dword [esp]
mov ecx, dword [ebx + 0x24c]
mov eax, dword [esi - 4]
mov edx, dword [esi]
movups xmm0, xmmword [esp + 0xbc]
mulps xmm3, xmm0
addps xmm3, xmm2
movlps qword [esp + 0x10], xmm3
sub esp, 0x10
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
movss xmm0, dword [esp + 0x40]
movss dword [esp + 4], xmm0
lea eax, [esp + 0x20]
mov dword [esp], eax
call fcn.1003d500
mov edi, dword [ebx + 0x24c]
mov ecx, edi
mov ebp, dword [esp + 0x20]
push dword [esp + ebp*4 + 0x1b4]
push dword [edi + 0x54]
push dword [edi + 0x5c]
call fcn.1003c9c0
mov edx, ebp
mov dword [edi + 0x54], 0
inc edx
add esi, 0x18
cmp dword [esp + 0xdc], edx
je 0x1002ff9d
mov edi, dword [ebx + 0x24c]
xor ecx, ecx
test dl, 1
mov eax, ebx
sete bl
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax + 0x18]
movsd xmm1, qword [esi - 0x14]
movsd xmm3, qword [esi - 0xc]
mov ebp, dword [edi + 0x54]
cmp ebp, dword [edi + 0x58]
mov dword [esp + 0x20], edx
movups xmmword [esp + 0x44], xmm3
jne 0x1002fdc0
test ebp, ebp
je 0x1002fdc8
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
add eax, ebp
jmp 0x1002fdcd
mov eax, dword [edi + 0x5c]
jmp 0x1002fe85
mov eax, 8
movups xmmword [esp + 0x13c], xmm1
movups xmmword [esp + 0x128], xmm0
mov byte [esp + 0x14c], bl
movups xmmword [esp + 0x5c], xmm2
inc ebp
cmp eax, ebp
cmovg ebp, eax
mov eax, dword [0x100ef758]
test eax, eax
je 0x1002fdfe
inc dword [eax + 0xa8]
lea eax, [ebp*8]
push dword [0x100ef760]
push eax
call dword [0x100e7c10]
add esp, 8
mov edx, dword [edi + 0x5c]
test edx, edx
je 0x1002fe58
mov ecx, dword [edi + 0x54]
shl ecx, 3
push ecx
push edx
mov ebx, eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x1002fe46
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002fe46
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov eax, ebx
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], ebp
mov ebp, dword [edi + 0x54]
movups xmm2, xmmword [esp + 0x5c]
movups xmm3, xmmword [esp + 0x44]
xor ecx, ecx
movzx ebx, byte [esp + 0x14c]
movups xmm0, xmmword [esp + 0x128]
movups xmm1, xmmword [esp + 0x13c]
addps xmm2, xmm0
subps xmm2, xmm0
mulps xmm2, xmm1
addps xmm2, xmm0
mov cl, bl
movd xmm0, ecx
pshufd xmm4, xmm0, 0x50
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqu xmm0, xmmword [esp + 0x80]
pand xmm0, xmm4
movdqu xmm1, xmmword [esp + 0x108]
pandn xmm4, xmm1
por xmm4, xmm0
pshufd xmm0, xmm4, 0xe1
mulps xmm0, xmm3
addps xmm0, xmm2
movlps qword [eax + ebp*8], xmm0
inc dword [edi + 0x54]
mov eax, dword [esp]
mov ebp, dword [eax + 0x24c]
mov ebx, dword [ebp + 0x54]
cmp ebx, dword [ebp + 0x58]
jne 0x1002fce0
test ebx, ebx
je 0x1002fefc
mov eax, ebx
shr eax, 0x1f
add eax, ebx
sar eax, 1
add eax, ebx
jmp 0x1002ff01
mov eax, 8
movdqu xmmword [esp + 0x14c], xmm4
movups xmmword [esp + 0x5c], xmm2
inc ebx
cmp eax, ebx
cmovg ebx, eax
mov eax, dword [0x100ef758]
test eax, eax
je 0x1002ff24
inc dword [eax + 0xa8]
lea eax, [ebx*8]
push dword [0x100ef760]
push eax
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x1002ff7c
mov ecx, dword [ebp + 0x54]
shl ecx, 3
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x1002ff6c
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1002ff6c
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x58], ebx
mov ebx, dword [ebp + 0x54]
movups xmm2, xmmword [esp + 0x5c]
movups xmm3, xmmword [esp + 0x44]
movdqu xmm4, xmmword [esp + 0x14c]
jmp 0x1002fce3
mov edi, dword [0x100ef758]
movss xmm7, dword [ebx + 0x48]
movss xmm1, dword [ebx + 0x4c]
xorps xmm0, xmm0
movss dword [esp + 0x20], xmm1
ucomiss xmm1, xmm0
jbe 0x100300de
test byte [ebx + 8], 0x80
jne 0x100300de
lea eax, [ebx + 0x10]
mov ecx, dword [ebx + 0x24c]
movss xmm3, dword [edi + 0x38a8]
movss xmm1, dword [edi + 0x38ac]
movss xmm0, dword [edi + 0x38b4]
mulss xmm0, dword [edi + 0x3790]
movss xmm2, dword [0x1006d630]
movaps xmm4, xmm2
minss xmm4, xmm3
xorps xmm5, xmm5
cmpltss xmm3, xmm5
andnps xmm3, xmm4
movss xmm4, dword [0x10074170]
mulss xmm3, xmm4
movss xmm6, dword [0x10073628]
addss xmm3, xmm6
cvttss2si esi, xmm3
minss xmm2, xmm1
cmpltss xmm1, xmm5
andnps xmm1, xmm2
mulss xmm1, xmm4
addss xmm1, xmm6
cvttss2si edx, xmm1
shl edx, 8
or edx, esi
movss xmm1, dword [edi + 0x38b0]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x10074180]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x10074190]
addps xmm1, xmmword [0x10074160]
cvttps2dq xmm0, xmm1
pshufd xmm1, xmm0, 0x55
pslld xmm0, 0x10
movd esi, xmm0
or esi, edx
pslld xmm1, 0x18
movd edx, xmm1
or edx, esi
movsd xmm0, qword [ebx + 0x10]
movsd xmm1, qword [ebx + 0x18]
addps xmm1, xmm0
movlps qword [esp + 0x10], xmm1
sub esp, 0x18
movss xmm0, dword [esp + 0x38]
movss dword [esp + 0x14], xmm0
movss dword [esp + 0xc], xmm7
lea esi, [esp + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0x10], 0
movups xmmword [esp + 0x5c], xmm7
call fcn.1003e450
movups xmm7, xmmword [esp + 0x44]
mov eax, dword [esp + 0xf8]
movsx esi, byte [eax]
cmp esi, 0xffffffff
mov ebp, dword [esp + 0xc]
je 0x100303c8
mov dword [esp + 0x5c], edi
lea eax, [esi + esi*8]
lea edi, [eax + eax*2]
lea eax, [esi + edi]
add eax, 0x10073ecc
xorps xmm3, xmm3
xorps xmm4, xmm4
cmp esi, 3
ja case.default.0x10030145
mov ecx, dword [esp]
movss xmm4, dword [ecx + 0x10]
movss xmm0, dword [ecx + 0x14]
movss xmm2, dword [ecx + 0x1c]
addss xmm2, xmm0
movss xmm1, dword [ecx + 0x18]
addss xmm1, xmm4
movss xmm3, dword [0x100741a0]
addss xmm1, xmm3
addss xmm2, xmm3
jmp dword [esi*4 + 0x10074548]
subss xmm2, xmm7
xorps xmm3, xmm3
addss xmm3, xmm4
unpcklps xmm3, xmm2
addss xmm0, xmm7
unpcklps xmm4, xmm0
jmp case.default.0x10030145
subss xmm2, xmm7
addss xmm0, xmm7
movaps xmm3, xmm1
unpcklps xmm3, xmm2
unpcklps xmm1, xmm0
movaps xmm4, xmm1
jmp case.default.0x10030145
xorps xmm2, xmm2
addss xmm2, xmm0
subss xmm1, xmm7
unpcklps xmm1, xmm2
addss xmm4, xmm7
unpcklps xmm4, xmm0
jmp 0x1003019e
subss xmm1, xmm7
addss xmm4, xmm7
unpcklps xmm1, xmm2
unpcklps xmm4, xmm2
movaps xmm3, xmm1
movups xmmword [esp + 0xdc], xmm4
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x24c]
movss xmm1, dword [esi + edi + 0x10073ee4]
movss xmm0, dword [0x100743c8]
addss xmm0, xmm1
movaps xmm5, xmm1
movss dword [esp + 0x80], xmm1
subps xmm3, xmm4
movups xmmword [esp + 0xbc], xmm3
movsd xmm1, qword [eax]
movaps xmm2, xmm7
shufps xmm2, xmm7, 0
mulps xmm2, xmm1
movups xmmword [esp + 0x30], xmm2
movsd xmm1, qword [esi + edi + 0x10073ed4]
mulps xmm1, xmm3
addps xmm1, xmm4
addps xmm1, xmmword [0x10074160]
addps xmm1, xmm2
movlps qword [esp + 0x10], xmm1
sub esp, 0x14
movss dword [esp + 0xc], xmm5
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm7
lea ebx, [esp + 0x24]
mov dword [esp], ebx
mov dword [esp + 0x10], 0
movups xmmword [esp + 0x58], xmm7
call fcn.1003d5d0
mov eax, dword [esp]
mov ecx, dword [eax + 0x24c]
movss xmm0, dword [0x100743cc]
movss xmm2, dword [esp + 0x80]
addss xmm0, xmm2
movsd xmm1, qword [esi + edi + 0x10073edc]
movups xmm3, xmmword [esp + 0xbc]
mulps xmm1, xmm3
movups xmm3, xmmword [esp + 0xdc]
addps xmm1, xmm3
addps xmm1, xmmword [0x10074160]
movups xmm3, xmmword [esp + 0x30]
addps xmm1, xmm3
movlps qword [esp + 0x10], xmm1
sub esp, 0x14
movss dword [esp + 0xc], xmm0
movss dword [esp + 8], xmm2
movups xmm0, xmmword [esp + 0x58]
movss dword [esp + 4], xmm0
mov dword [esp], ebx
mov dword [esp + 0x10], 0
call fcn.1003d5d0
mov eax, dword [0x100ef758]
movss xmm1, dword [eax + 0x3a28]
movss xmm0, dword [0x1006d630]
movaps xmm2, xmm0
minss xmm2, xmm1
xorps xmm3, xmm3
cmpltss xmm1, xmm3
andnps xmm1, xmm2
movss xmm2, dword [0x10074170]
mulss xmm1, xmm2
movss xmm4, dword [0x10073628]
addss xmm1, xmm4
cvttss2si ecx, xmm1
movss xmm1, dword [eax + 0x3a2c]
minss xmm0, xmm1
cmpltss xmm1, xmm3
andnps xmm1, xmm0
mulss xmm1, xmm2
addss xmm1, xmm4
movss xmm0, dword [eax + 0x3a34]
mulss xmm0, dword [eax + 0x3790]
cvttss2si edx, xmm1
movss xmm1, dword [eax + 0x3a30]
unpcklps xmm1, xmm0
movaps xmm0, xmmword [0x10074180]
minps xmm0, xmm1
cmpnltps xmm1, xmmword [0x1006d150]
andps xmm1, xmm0
mulps xmm1, xmmword [0x10074190]
addps xmm1, xmmword [0x10074160]
cvttps2dq xmm0, xmm1
pshufd xmm1, xmm0, 0x55
pslld xmm0, 0x10
movd eax, xmm0
mov esi, dword [esp]
mov edi, dword [esi + 0x24c]
shl edx, 8
or edx, ecx
pslld xmm1, 0x18
movd ecx, xmm1
movss xmm0, dword [0x10072f68]
maxss xmm0, dword [esp + 0x20]
or eax, edx
or ecx, eax
mov eax, dword [edi + 0x54]
mov edx, dword [edi + 0x5c]
sub esp, 0x14
movss dword [esp + 0x10], xmm0
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov ecx, edi
call fcn.1003bf10
mov dword [edi + 0x54], 0
mov edi, dword [esp + 0x5c]
movss xmm0, dword [edi + 0x37d8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
mov ebx, dword [esp]
jbe 0x10030554
test byte [ebx + 8], 1
jne 0x10030554
movss xmm1, dword [ebx + 0x14]
mov eax, dword [0x100ef758]
movss xmm3, dword [eax + 0x3bb0]
mulss xmm3, dword [ebx + 0x244]
mov ecx, dword [ebx + 0x2e0]
test ecx, ecx
je 0x10030415
mulss xmm3, dword [ecx + 0x244]
movss xmm4, dword [eax + 0x37d0]
movss xmm2, dword [eax + 0x38a8]
addss xmm4, xmm4
addss xmm4, xmm3
addss xmm1, xmm4
movss xmm3, dword [0x1006d630]
movaps xmm4, xmm3
minss xmm4, xmm2
xorps xmm5, xmm5
cmpltss xmm2, xmm5
andnps xmm2, xmm4
movss xmm4, dword [0x10074170]
mulss xmm2, xmm4
movss xmm6, dword [0x10073628]
addss xmm2, xmm6
cvttss2si edx, xmm2
movss xmm2, dword [eax + 0x38ac]
minss xmm3, xmm2
cmpltss xmm2, xmm5
andnps xmm2, xmm3
mulss xmm2, xmm4
movss xmm3, dword [eax + 0x38b4]
mulss xmm3, dword [eax + 0x3790]
addss xmm2, xmm6
cvttss2si esi, xmm2
movss xmm2, dword [eax + 0x38b0]
unpcklps xmm2, xmm3
xorps xmm3, xmm3
movaps xmm4, xmmword [0x10074180]
minps xmm4, xmm2
cmpnltps xmm2, xmm3
andps xmm2, xmm4
mulps xmm2, xmmword [0x10074190]
mov ecx, dword [ebx + 0x24c]
addps xmm2, xmmword [0x10074160]
cvttps2dq xmm2, xmm2
pshufd xmm3, xmm2, 0x55
pslld xmm2, 0x10
movd edi, xmm2
pslld xmm3, 0x18
movd eax, xmm3
movss xmm2, dword [ebx + 0x10]
movss xmm3, dword [ebx + 0x18]
addss xmm3, xmm2
movss xmm4, dword [esp + 0x20]
subss xmm3, xmm4
movss dword [esp + 0x10], xmm3
addss xmm4, xmm2
movss dword [esp + 0x98], xmm4
addss xmm1, dword [0x100741a0]
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x9c], xmm1
shl esi, 8
or esi, edx
or edi, esi
or eax, edi
sub esp, 0x10
movss dword [esp + 0xc], xmm0
lea edx, [esp + 0x20]
mov dword [esp + 4], edx
lea edx, [esp + 0xa8]
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.1003e2d0
cmp byte [esp + 0x118], 0
mov esi, dword [esp + 8]
je 0x1003056e
lea eax, [ebx + 0x250]
mov dword [ebx + 0x24c], eax
movss xmm0, dword [ebx + 0x38]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
movaps xmm6, xmm0
jne 0x100305c6
jp 0x100305c6
mov eax, dword [esp + 4]
and eax, 0x808
movss xmm2, dword [ebx + 0x18]
movss xmm3, dword [ebx + 0x40]
addss xmm3, xmm3
subss xmm2, xmm3
subss xmm2, dword [ebx + 0x84]
cmp eax, 0x800
jne 0x100305b5
mov eax, dword [esp + 0x138]
movss xmm1, dword [eax]
movaps xmm6, xmm2
cmpless xmm6, xmm1
andps xmm1, xmm6
andnps xmm6, xmm2
orps xmm6, xmm1
movss xmm1, dword [ebx + 0x3c]
movss xmm5, dword [ebx + 0x44]
xorps xmm3, xmm3
ucomiss xmm1, xmm3
movaps xmm4, xmm1
jne 0x10030618
jp 0x10030618
movss xmm2, dword [ebx + 0x1c]
movaps xmm4, xmm5
addss xmm4, xmm5
subss xmm2, xmm4
subss xmm2, dword [esp + 0x70]
subss xmm2, dword [ebx + 0x88]
test byte [esp + 4], 8
jne 0x10030607
movss xmm3, dword [ebx + 0x2c]
movaps xmm4, xmm2
cmpless xmm4, xmm3
andps xmm3, xmm4
andnps xmm4, xmm2
orps xmm4, xmm3
unpcklps xmm6, xmm4
xorps xmm2, xmm2
ucomiss xmm0, xmm2
movss xmm2, dword [ebx + 0x40]
movsd xmm3, qword [ebx + 0x5c]
movaps xmm7, xmm2
unpcklps xmm7, xmm5
movaps xmm4, xmm5
movss xmm5, dword [ebx + 0x4c]
shufps xmm5, xmm5, 0
movups xmmword [esp + 0x44], xmm7
maxps xmm7, xmm5
movsd xmm5, qword [ebx + 0x1b8]
subps xmm5, xmm3
addps xmm5, xmm7
cvttps2dq xmm5, xmm5
cvtdq2ps xmm5, xmm5
addps xmm6, xmm5
movlhps xmm5, xmm6
movups xmmword [ebx + 0x1d8], xmm5
movups xmm5, xmmword [ebx + 0x1d8]
movups xmmword [ebx + 0x1e8], xmm5
movsd xmm7, qword [ebx + 0x10]
movaps xmm6, xmm7
movups xmmword [esp + 0x20], xmm3
subps xmm6, xmm3
movaps xmm5, xmm2
addss xmm5, xmm6
movss dword [ebx + 0x208], xmm5
shufps xmm6, xmm6, 0x55
movups xmmword [esp + 0x5c], xmm4
addss xmm6, xmm4
addss xmm6, dword [esp + 0x70]
movss dword [ebx + 0x20c], xmm6
jne 0x100306cb
jp 0x100306cb
movss xmm0, dword [ebx + 0x18]
movaps xmm4, xmm2
addss xmm4, xmm2
subss xmm0, xmm4
subss xmm0, dword [ebx + 0x84]
ucomiss xmm1, dword [0x10074150]
addss xmm5, xmm0
movss dword [ebx + 0x210], xmm5
jne 0x10030702
jp 0x10030702
movss xmm1, dword [ebx + 0x1c]
movups xmm0, xmmword [esp + 0x5c]
addss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [esp + 0x70]
subss xmm1, dword [ebx + 0x88]
addss xmm6, xmm1
movss dword [ebx + 0x214], xmm6
xorps xmm1, xmm1
addss xmm2, xmm1
movups xmm3, xmmword [esp + 0x20]
subss xmm2, xmm3
movss dword [ebx + 0x118], xmm2
cvtps2pd xmm2, xmm7
cvtps2pd xmm0, qword [esp + 0x44]
cvtps2pd xmm3, xmm3
addpd xmm0, xmm2
subpd xmm0, xmm3
movss xmm2, dword [esp + 0x70]
cvtss2sd xmm2, xmm2
xorpd xmm3, xmm3
unpcklpd xmm3, xmm2
addpd xmm3, xmm0
cvtpd2ps xmm0, xmm3
xorps xmm2, xmm2
cvtps2pd xmm4, xmm0
subpd xmm3, xmm4
cvtpd2ps xmm3, xmm3
xorpd xmm4, xmm4
unpcklpd xmm4, xmm3
movupd xmmword [ebx + 0x11c], xmm4
movlpd qword [ebx + 0xe4], xmm0
movq xmm0, qword [ebx + 0xe4]
pshufd xmm0, xmm0, 0x44
movdqu xmmword [ebx + 0xd4], xmm0
movdqu xmmword [ebx + 0xec], xmm0
mov dword [ebx + 0x12c], 0
movups xmmword [ebx + 0xfc], xmm2
movups xmmword [ebx + 0x105], xmm2
movzx eax, word [ebx + 0x132]
mov word [ebx + 0x130], ax
mov word [ebx + 0x132], 0
mov byte [ebx + 0x138], 0
movss xmm0, dword [ebx + 0x68]
ucomiss xmm0, xmm1
seta byte [ebx + 0x139]
mov byte [ebx + 0x13a], 0
lea ecx, [ebx + 0x144]
movss xmm0, dword [ebp + 0x37dc]
sub esp, 8
movzx eax, byte [esp + 0x74]
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.1005e070
mov dword [ebx + 0x160], 0
mov dword [ebx + 0x164], 0
cmp dword [ebx + 0x16c], 0
jns 0x100308a1
mov eax, dword [0x100ef758]
test eax, eax
je 0x10030832
inc dword [eax + 0xa8]
push dword [0x100ef760]
push 0
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0x170]
test eax, eax
je 0x1003088d
mov ecx, dword [ebx + 0x168]
shl ecx, 2
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x170]
test eax, eax
je 0x1003087d
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1003087d
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebx + 0x170], edi
mov dword [ebx + 0x16c], 0
mov esi, dword [esp + 8]
mov dword [ebx + 0x168], 0
lea eax, [ebx + 0x22c]
mov dword [ebx + 0x174], eax
mov dword [ebx + 0x178], 0
mov dword [ebx + 0x180], 1
test esi, esi
je 0x100308d7
mov eax, dword [esi + 0x180]
jmp 0x100308dc
mov eax, 1
mov dword [ebx + 0x184], eax
movss xmm0, dword [ebx + 0x228]
movss dword [ebx + 0x188], xmm0
mov dword [ebx + 0x18c], 0xbf800000
cmp dword [ebx + 0x194], 0
jns 0x1003097f
mov eax, dword [0x100ef758]
test eax, eax
je 0x10030914
inc dword [eax + 0xa8]
push dword [0x100ef760]
push 0
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0x198]
test eax, eax
je 0x1003096f
mov ecx, dword [ebx + 0x190]
shl ecx, 2
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x198]
test eax, eax
je 0x1003095f
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x1003095f
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebx + 0x198], edi
mov dword [ebx + 0x194], 0
mov dword [ebx + 0x190], 0
cmp dword [ebx + 0x1a0], 0
jns 0x10030a0c
mov eax, dword [0x100ef758]
test eax, eax
je 0x100309a1
inc dword [eax + 0xa8]
push dword [0x100ef760]
push 0
call dword [0x100e7c10]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0x1a4]
test eax, eax
je 0x100309fc
mov ecx, dword [ebx + 0x19c]
shl ecx, 2
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x1a4]
test eax, eax
je 0x100309ec
mov ecx, dword [0x100ef758]
test ecx, ecx
je 0x100309ec
dec dword [ecx + 0xa8]
push dword [0x100ef760]
push eax
call dword [0x100e7c14]
add esp, 8
mov dword [ebx + 0x1a4], edi
mov dword [ebx + 0x1a0], 0
mov dword [ebx + 0x19c], 0
movzx eax, byte [ebx + 0xa8]
test al, al
jle 0x10030a29
dec al
mov byte [ebx + 0xa8], al
movzx eax, byte [ebx + 0xa9]
test al, al
jle 0x10030a3c
dec al
mov byte [ebx + 0xa9], al
cmp byte [esp + 0x94], 0
je 0x10030a5a
push ebx
call fcn.10027ad0
add esp, 4
push 0
push ebx
call fcn.10034740
add esp, 8
mov edi, dword [0x100ef758]
movss xmm0, dword [esp + 0xa8]
test byte [esp + 4], 1
jne 0x10031290
movss xmm4, dword [esp + 0xb0]
movss xmm6, dword [ebx + 0x4c]
mov eax, dword [ebx + 8]
mov dword [esp + 0x80], eax
test al, 0x20
jne 0x10030a9c
cmp dword [edi + 0x37b8], 0xffffffff
setne al
jmp 0x10030a9e
xor eax, eax
mov ebx, dword [esp + 0x268]
movss xmm1, dword [esp + 0xb4]
movss dword [esp + 0x108], xmm1
movss xmm2, dword [esp + 0xac]
subss xmm4, xmm6
mov ebp, dword [edi + 0x3ea0]
mov ecx, ebp
or ecx, 0x10
mov dword [edi + 0x3ea0], ecx
mov ecx, dword [esp]
mov dword [ecx + 0x12c], 1
movss xmm7, dword [edi + 0x37cc]
movss xmm1, dword [edi + 0x3bac]
movups xmmword [esp + 0x20], xmm1
xorps xmm1, xmm1
movlps qword [esp + 0xd4], xmm1
movlps qword [esp + 0xcc], xmm1
movaps xmm3, xmm7
test ebx, ebx
je 0x10030b37
movaps xmm3, xmm7
addss xmm3, dword [esp + 0x20]
movaps xmm1, xmm4
subss xmm1, xmm3
subss xmm1, xmm7
movss dword [esp + 0xd4], xmm1
movss dword [esp + 0xd8], xmm2
addss xmm6, xmm0
test al, al
movups xmmword [esp + 0xbc], xmm6
movss dword [esp + 0x5c], xmm2
movss dword [esp + 0x30], xmm4
je 0x10030cd5
mov eax, dword [edi + 0x37b8]
test eax, eax
je 0x10030b98
cmp eax, 1
movups xmmword [esp + 0xdc], xmm7
jne 0x10030bca
addss xmm3, dword [esp + 0x20]
movaps xmm0, xmm4
movups xmmword [esp + 0x70], xmm3
subss xmm0, xmm3
subss xmm0, xmm7
movss dword [esp + 0xcc], xmm0
movss dword [esp + 0xd0], xmm2
jmp 0x10030bcf
movups xmmword [esp + 0x70], xmm3
movaps xmm0, xmm6
addss xmm0, xmm7
subss xmm0, xmm7
movss dword [esp + 0xcc], xmm0
movss dword [esp + 0xd0], xmm2
addss xmm7, dword [esp + 0x20]
movups xmmword [esp + 0xdc], xmm7
jmp 0x10030bcf
movups xmmword [esp + 0x70], xmm3
mov ecx, dword [esp]
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xd0]
mov eax, dword [ecx + eax*4 - 4]
movzx ecx, al
not eax
shr eax, 8
xor ecx, 0xdc
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x43
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x4f
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x4c
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x4c
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x41
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x50
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x53
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
mov esi, eax
shr esi, 8
xor ecx, 0x45
xor esi, dword [ecx*4 + 0x1007362c]
not esi
cmp dword [edi + 0x3e30], esi
jne 0x10030c95
push 0
push str.COLLAPSE
push 0xb
push esi
call fcn.10024e20
add esp, 0x10
lea eax, [esp + 0xcc]
push eax
push esi
call fcn.10051b00
add esp, 8
test al, al
je 0x10030cb4
mov eax, dword [esp]
mov byte [eax + 0x92], 1
movups xmm6, xmmword [esp + 0xbc]
movss xmm2, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x30]
movups xmm3, xmmword [esp + 0x70]
movups xmm7, xmmword [esp + 0xdc]
test ebx, ebx
movups xmmword [esp + 0x70], xmm3
movups xmmword [esp + 0xdc], xmm7
je 0x10030dbe
mov ecx, dword [esp]
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xd0]
mov eax, dword [ecx + eax*4 - 4]
movzx ecx, al
not eax
shr eax, 8
xor ecx, 0xdc
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x43
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x4c
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x4f
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
shr eax, 8
xor ecx, 0x53
xor eax, dword [ecx*4 + 0x1007362c]
movzx ecx, al
mov esi, eax
shr esi, 8
xor ecx, 0x45
xor esi, dword [ecx*4 + 0x1007362c]
not esi
mov eax, dword [0x100ef758]
cmp dword [eax + 0x3e30], esi
jne 0x10030d85
push 0
push str.CLOSE
push 0xb
push esi
call fcn.10024e20
add esp, 0x10
lea eax, [esp + 0xd4]
push eax
push esi
call fcn.10051890
add esp, 8
test al, al
movups xmm6, xmmword [esp + 0xbc]
movss xmm2, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x30]
movups xmm3, xmmword [esp + 0x70]
movups xmm7, xmmword [esp + 0xdc]
je 0x10030dbe
mov byte [ebx], 0
mov eax, dword [esp]
mov dword [eax + 0x12c], 0
mov dword [edi + 0x3ea0], ebp
movups xmm0, xmmword [esp + 0x20]
mulss xmm0, dword [0x100743d0]
movups xmmword [esp + 0x20], xmm0
xorps xmm0, xmm0
test dword [esp + 0x80], 0x100000
je 0x10030df8
movups xmm0, xmmword [esp + 0x20]
mov eax, dword [0x100ef758]
mov edx, dword [esp + 0x264]
cmp edx, 0xffffffff
mov ebp, dword [esp + 0xc]
movss dword [esp + 0x44], xmm0
je 0x10030e3a
mov ebx, edx
jmp 0x10030e2c
cmp byte [edx + 1], 0x23
je 0x10030e4e
inc edx
cmp edx, 0xffffffff
je 0x10030e49
movzx ecx, byte [edx]
cmp ecx, 0x23
je 0x10030e20
test ecx, ecx
jne 0x10030e26
jmp 0x10030e4e
mov ebx, edx
add eax, 0x3bac
xorps xmm1, xmm1
jmp 0x10030ed1
mov edx, 0xffffffff
movss xmm0, dword [eax + 0x3bac]
cmp edx, ebx
je 0x10030ed7
mov esi, ebx
mov ecx, dword [eax + 0x3ba8]
sub esp, 0x1c
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
movss dword [esp + 4], xmm0
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xbf800000
mov dword [esp + 8], 0x7f7fffff
call fcn.100492f0
movups xmm7, xmmword [esp + 0xdc]
movups xmm3, xmmword [esp + 0x70]
movss xmm4, dword [esp + 0x30]
movss xmm2, dword [esp + 0x5c]
movups xmm6, xmmword [esp + 0xbc]
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x100741ac]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm1, xmm0
lea eax, [esp + 0x14]
movss xmm0, dword [eax]
jmp 0x10030eda
xorps xmm1, xmm1
movss xmm5, dword [esp + 0x44]
addss xmm5, xmm1
xorps xmm1, xmm1
addss xmm1, xmm0
movss dword [esp + 0x44], xmm5
movss dword [esp + 0x18c], xmm5
movss dword [esp + 0x190], xmm1
movss xmm0, dword [edi + 0x37cc]
ucomiss xmm7, xmm0
mov eax, ebx
jbe 0x10030f1a
addss xmm7, dword [edi + 0x37e4]
ucomiss xmm3, xmm0
jbe 0x10030f27
addss xmm3, dword [edi + 0x37e4]
movss xmm0, dword [edi + 0x37b0]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x10030fe4
movss xmm2, dword [0x1006d630]
ucomiss xmm2, xmm0
jbe 0x10030fde
movaps xmm5, xmm3
movss xmm3, dword [0x100743d4]
addss xmm3, xmm0
andps xmm3, xmmword [0x1006d620]
addss xmm3, xmm3
movaps xmm1, xmm2
subss xmm1, xmm3
minss xmm2, xmm1
xorps xmm3, xmm3
cmpltss xmm1, xmm3
andnps xmm1, xmm2
movaps xmm2, xmm5
cmpless xmm2, xmm7
movaps xmm3, xmm2
andps xmm3, xmm7
andnps xmm2, xmm5
orps xmm2, xmm3
movaps xmm3, xmm4
subss xmm3, xmm6
subss xmm3, xmm7
subss xmm3, xmm5
subss xmm3, dword [esp + 0x44]
minss xmm2, xmm3
mulss xmm2, xmm1
movaps xmm1, xmm2
cmpless xmm1, xmm7
movaps xmm3, xmm1
andnps xmm3, xmm2
andps xmm1, xmm7
orps xmm1, xmm3
movaps xmm3, xmm2
cmpless xmm3, xmm5
movaps xmm4, xmm3
andnps xmm4, xmm2
andps xmm3, xmm5
orps xmm3, xmm4
movss xmm4, dword [esp + 0x30]
movaps xmm7, xmm1
movss xmm2, dword [esp + 0x5c]
movaps xmm1, xmm4
subss xmm1, xmm3
addss xmm6, xmm7
movss dword [esp + 0x10], xmm6
movss dword [esp + 0x14], xmm2
movss dword [esp + 0x18], xmm1
movaps xmm7, xmm2
movss xmm2, dword [esp + 0x108]
movss dword [esp + 0x1c], xmm2
movss xmm5, dword [edi + 0x37e4]
addss xmm5, xmm1
minss xmm5, xmm4
movss dword [esp + 0x98], xmm6
movss dword [esp + 0x9c], xmm7
movss dword [esp + 0xa0], xmm5
movss dword [esp + 0xa4], xmm2
test dword [esp + 0x80], 0x100000
mov ebx, dword [esp]
je 0x100311d9
movaps xmm3, xmm7
movaps xmm7, xmm1
subss xmm7, xmm6
movss xmm2, dword [esp + 0x44]
subss xmm7, xmm2
mulss xmm7, xmm0
addss xmm7, xmm6
addss xmm7, xmm2
minss xmm1, xmm7
cmpltss xmm7, xmm6
movaps xmm0, xmm7
andnps xmm0, xmm1
andps xmm7, xmm6
orps xmm7, xmm0
ucomiss xmm7, xmm6
jbe 0x100311d9
movss xmm6, dword [esp + 0x108]
addss xmm6, xmm3
mulss xmm6, dword [0x10073628]
mov esi, eax
mov eax, dword [0x100ef758]
movss xmm3, dword [eax + 0x3858]
movss xmm1, dword [eax + 0x385c]
movss xmm0, dword [eax + 0x3864]
mulss xmm0, dword [eax + 0x3790]
movss xmm2, dword [0x1006d630]
movaps xmm4, xmm2
minss xmm4, xmm3
movss dword [esp + 0x44], xmm5
xorps xmm5, xmm5
cmpltss xmm3, xmm5
andnps xmm3, xmm4
movss xmm5, dword [0x10074170]
mulss xmm3, xmm5
movss xmm4, dword [0x10073628]
addss xmm3, xmm4
cvttss2si ecx, xmm3
minss xmm2, xmm1
cmpltss xmm1, dword [0x10074150]
andnps xmm1, xmm2
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si edx, xmm1
shl edx, 8
movss xmm1, dword [eax + 0x3860]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x10074180]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x10074190]
or edx, ecx
addps xmm1, xmmword [0x10074160]
cvttps2dq xmm0, xmm1
pshufd xmm1, xmm0, 0x55
pslld xmm0, 0x10
movd eax, xmm0
or eax, edx
pslld xmm1, 0x18
movd ecx, xmm1
or ecx, eax
mov eax, dword [ebx + 0x24c]
sub esp, 0x10
movss dword [esp + 8], xmm6
movss dword [esp + 4], xmm7
mov dword [esp], eax
mov dword [esp + 0xc], ecx
movups xmmword [esp + 0x6c], xmm7
call fcn.100496c0
mov eax, esi
add esp, 0x10
movups xmm0, xmmword [esp + 0x20]
mulss xmm0, dword [0x10073628]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movups xmm1, xmmword [esp + 0x5c]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x44]
minss xmm0, xmm1
movss dword [esp + 0xa0], xmm0
cmp eax, 0xffffffff
je 0x10031281
mov esi, eax
add edi, 0x37b0
lea eax, [esp + 0x18]
mov edx, esi
jmp 0x1003120c
cmp byte [esi + 1], 0x23
je 0x1003121f
inc esi
cmp esi, 0xffffffff
je 0x1003121a
movzx ecx, byte [esi]
cmp ecx, 0x23
je 0x10031200
test ecx, ecx
jne 0x10031206
jmp 0x1003121f
mov esi, 0xffffffff
cmp esi, edx
je 0x10031281
mov ebx, dword [0x100ef758]
mov ecx, dword [ebx + 0x3e10]
lea edx, [esp + 0x98]
lea ebp, [esp + 0x18c]
push edx
push edi
push ebp
mov ebp, dword [esp + 0x18]
push esi
push dword [esp + 0x274]
push eax
lea eax, [esp + 0x28]
push eax
push dword [ecx + 0x24c]
call fcn.10023400
add esp, 0x20
cmp byte [ebx + 0x5238], 0
mov ebx, dword [esp]
je 0x10031281
mov edi, dword [0x100ef758]
movss xmm0, dword [esp + 0xa8]
mov dword [ebx + 0x218], 0
movss xmm2, dword [edi + 0x37f4]
subss xmm0, xmm2
movss xmm1, dword [edi + 0xdb0]
ucomiss xmm1, xmm0
jae 0x100312b7
xor eax, eax
jmp 0x100312fd
movss xmm0, dword [esp + 0xac]
movss xmm3, dword [edi + 0x37f8]
subss xmm0, xmm3
addss xmm2, dword [esp + 0xb0]
addss xmm3, dword [esp + 0xb4]
movss xmm4, dword [edi + 0xdb4]
cmpltps xmm1, xmm2
cmpleps xmm0, xmm4
andps xmm0, xmm1
ucomiss xmm3, xmm4
movd ecx, xmm0
seta al
and al, cl
movzx eax, al
mov ecx, dword [ebp + 0x3ea0]
mov edx, dword [ebx + 0x54]
mov dword [edi + 0x3eb8], edx
mov dword [edi + 0x3ebc], ecx
mov dword [edi + 0x3ec0], eax
movups xmm0, xmmword [esp + 0xa8]
movups xmmword [edi + 0x3ec4], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
test eax, eax
je 0x10031342
mov eax, dword [esp + 8]
mov ebx, dword [eax + 0x134]
jmp 0x100313b9
mov eax, dword [ebx + 0xc8]
mov ecx, dword [ebx + 0xd0]
mov eax, dword [ecx + eax*4 - 4]
not eax
mov dl, 0x23
mov ecx, 0xfffffff5
mov ebx, eax
jmp 0x10031379
movzx esi, dh
movzx ebp, bl
shr ebx, 8
xor ebp, esi
xor ebx, dword [ebp*4 + 0x1007362c]
inc ecx
mov ebp, dword [esp + 0xc]
je 0x10031397
mov dh, dl
mov dl, byte [ecx + str.VK_BROWSER_HOME]
cmp dh, 0x23
jne 0x10031360
cmp dl, 0x23
jne 0x10031360
cmp byte [ecx + 0x100e2b62], 0x23
cmove ebx, eax
jmp 0x10031360
not ebx
cmp dword [edi + 0x3e30], ebx
jne 0x100313b9
push 0
push str.FOCUSSCOPE
push 0xb
push ebx
call fcn.10024e20
add esp, 0x10
mov edi, dword [0x100ef758]
mov eax, dword [esp]
mov dword [eax + 0x134], ebx
mov ebx, eax
add eax, 0x1c8
lea edx, [ebx + 0x1d0]
mov ecx, dword [edi + 0x3e10]
mov byte [ecx + 0x90], 1
mov esi, dword [edi + 0x3e10]
mov ecx, dword [esi + 0x24c]
push 1
push edx
push eax
call fcn.1003bbb0
mov eax, dword [esi + 0x24c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
shl ecx, 4
movups xmm0, xmmword [ecx + eax - 0x10]
movups xmmword [esi + 0x1f8], xmm0
inc word [ebx + 0x9a]
mov byte [ebx + 0x90], 0
mov dword [ebp + 0x3ef4], 0
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0xb8]
jne 0x1003143d
movzx eax, byte [ebx + 0x93]
jmp 0x1003152b
cmp dword [esp + 0x54], 0
mov ecx, dword [esp + 8]
je 0x1003149b
test byte [esp + 4], 0x40
jne 0x10031465
cmp byte [ebx + 0xa8], 0
jg 0x10031465
cmp byte [ebx + 0xa9], 0
jle 0x10031547
test ecx, ecx
je 0x1003149b
cmp byte [ecx + 0x91], 0
jne 0x1003147b
cmp byte [ecx + 0xb0], 0
jle 0x1003148b
mov byte [ebx + 0xb0], 1
cmp byte [ecx + 0x91], 0
jne 0x10031494
cmp byte [ecx + 0xb1], 0
jle 0x1003149b
mov byte [ebx + 0xb1], 1
xorps xmm0, xmm0
ucomiss xmm0, dword [ebp + 0x3790]
jae 0x100314cd
mov al, 1
cmp byte [ebx + 0xb0], 0
mov cl, 1
jg 0x100314d8
mov al, 1
cmp byte [ebx + 0xb1], 0
jg 0x100314d8
cmp byte [ebx + 0xb2], 0
setg cl
xor eax, eax
jmp 0x100314d8
mov byte [ebx + 0xb0], 1
mov al, 1
mov cl, 1
mov byte [ebx + 0x95], cl
movzx ecx, byte [ebx + 0xb3]
test cl, cl
jle 0x100314f8
dec cl
mov byte [ebx + 0xb3], cl
or dword [ebx + 8], 0xc0200
cmp byte [ebx + 0x91], 0
jne 0x10031511
cmp byte [ebx + 0x8e], 0
setne cl
not al
test al, cl
jne 0x10031523
cmp byte [ebx + 0xa8], 0
jg 0x10031523
cmp byte [ebx + 0xa9], 0
jle 0x1003153b
xor eax, eax
mov byte [ebx + 0x93], al
test al, al
sete al
add esp, 0x250
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [ebx + 0xb1], 0
setle al
jmp 0x10031525
test dword [esp + 4], 0x800000
je 0x10031575
cmp byte [ebp + 0x4004], 0
je 0x10031575
mov eax, dword [ebp + 0x3fc4]
test eax, eax
je 0x10031575
mov eax, dword [eax + 0x2f4]
cmp eax, dword [ebx + 0x2f4]
sete al
jmp 0x10031577
xor eax, eax
cmp byte [ebp + 0x5238], 0
jne 0x10031465
test al, al
jne 0x10031465
movss xmm0, dword [ebx + 0x1a8]
ucomiss xmm0, dword [ebx + 0x1b0]
jae 0x100315b2
movss xmm0, dword [ebx + 0x1ac]
ucomiss xmm0, dword [ebx + 0x1b4]
jb 0x10031465
mov byte [ebx + 0xb0], 1
jmp 0x10031465
cmp byte [ebx + 0x8f], 0
je 0x1002ee4e
movups xmmword [esp + 0x17c], xmm6
mov eax, dword [0x100ef758]
movzx ecx, byte [eax + 0x5e]
mov dword [esp + 0x90], eax
movss xmm0, dword [eax + 0x3bac]
movss xmm1, dword [0x10074340]
mulss xmm1, xmm0
mulss xmm0, dword [0x10074348]
addss xmm1, xmm2
movaps xmm2, xmm1
cmpless xmm2, xmm0
movaps xmm3, xmm2
andnps xmm3, xmm1
andps xmm2, xmm0
orps xmm2, xmm3
cvttps2dq xmm0, xmm2
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1007434c]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movups xmmword [esp + 0x16c], xmm0
xorps xmm0, xmm0
mov byte [esp + 0x5b], cl
test cl, cl
je 0x10031648
movss xmm0, dword [0x10074350]
movups xmmword [esp + 0x194], xmm0
mov dword [ebx + 0x12c], 1
push str.RESIZE
call fcn.100369e0
add esp, 4
movups xmm0, xmmword [esp + 0x194]
shufps xmm0, xmm0, 0
movups xmmword [esp + 0x194], xmm0
movups xmm0, xmmword [esp + 0x16c]
shufps xmm0, xmm0, 0
movaps xmm1, xmmword [0x1006d570]
movups xmmword [esp + 0x210], xmm0
xorps xmm1, xmm0
movups xmmword [esp + 0x200], xmm1
movaps xmm0, xmmword [0x10074210]
mov dword [esp + 0xec], 0
mov eax, 0x10073e74
xor edx, edx
movaps xmm4, xmm0
jmp 0x100317d3
cmp al, 1
mov eax, 0x1f
sbb eax, 0
test cl, cl
mov ecx, 0x20
cmovne eax, ecx
mov edx, dword [0x100ef758]
shl eax, 4
movaps xmm2, xmm0
movss xmm0, dword [edx + eax + 0x3858]
movss xmm5, dword [0x1006d630]
movaps xmm1, xmm5
minss xmm1, xmm0
xorps xmm3, xmm3
cmpltss xmm0, xmm3
andnps xmm0, xmm1
movss xmm6, dword [0x10074170]
mulss xmm0, xmm6
movss xmm7, dword [0x10073628]
addss xmm0, xmm7
cvttss2si ecx, xmm0
movss xmm0, dword [edx + eax + 0x385c]
movaps xmm1, xmm5
minss xmm1, xmm0
cmpltss xmm0, xmm3
andnps xmm0, xmm1
movss xmm1, dword [edx + eax + 0x3864]
mulss xmm1, dword [edx + 0x3790]
mulss xmm0, xmm6
addss xmm0, xmm7
cvttss2si esi, xmm0
movss xmm0, dword [edx + eax + 0x3860]
unpcklps xmm0, xmm1
movaps xmm1, xmmword [0x10074180]
minps xmm1, xmm0
cmpnltps xmm0, xmmword [0x1006d150]
andps xmm0, xmm1
mulps xmm0, xmmword [0x10074190]
addps xmm0, xmmword [0x10074160]
cvttps2dq xmm0, xmm0
pshufd xmm1, xmm0, 0x55
pslld xmm0, 0x10
movd eax, xmm0
movaps xmm0, xmm2
pslld xmm1, 0x18
movd edx, xmm1
shl esi, 8
or esi, ecx
or eax, esi
or edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x1b4], edx
mov edx, dword [esp + 0x30]
inc edx
mov eax, dword [esp + 0x118]
add eax, 0x18
cmp dword [esp + 0xdc], edx
je 0x10031ba5
movups xmmword [esp + 0x80], xmm0
movsd xmm3, qword [eax - 8]
movsd xmm2, qword [eax]
movaps xmm1, xmm2
movups xmm0, xmmword [esp + 0x210]
mulps xmm1, xmm0
movups xmm5, xmmword [esp + 0x194]
movups xmmword [esp + 0xf8], xmm2
mulps xmm5, xmm2
movsd xmm0, qword [ebx + 0x10]
movsd xmm2, qword [ebx + 0x18]
addps xmm2, xmm0
subps xmm2, xmm0
movups xmmword [esp + 0x1a4], xmm3
mulps xmm2, xmm3
addps xmm2, xmm0
movlhps xmm2, xmm2
movups xmmword [esp + 0x220], xmm5
movaps xmm0, xmm5
movlhps xmm0, xmm1
movaps xmm1, xmm2
subps xmm1, xmm0
addps xmm0, xmm2
movaps xmm2, xmm0
movsd xmm2, xmm1
movupd xmmword [esp + 0x10], xmm2
movaps xmm2, xmm0
unpckhpd xmm2, xmm0
ucomiss xmm1, xmm2
jbe 0x10031862
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x18], xmm1
mov dword [esp + 0x118], eax
shufps xmm1, xmm1, 0x55
shufps xmm0, xmm0, 0xff
ucomiss xmm1, xmm0
jbe 0x10031882
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x1c], xmm1
mov edi, edx
shr edi, 8
mov ecx, edx
shr ecx, 0x10
mov ebp, edx
shr ebp, 0x18
mov eax, dword [ebx + 0xc8]
mov esi, dword [ebx + 0xd0]
mov ebx, dword [esi + eax*4 - 4]
not ebx
mov eax, edx
mov dword [esp + 0x30], edx
xor edx, ebx
shr ebx, 8
movzx eax, dl
xor ebx, dword [eax*4 + 0x1007362c]
mov eax, ebx
shr eax, 8
xor ebx, edi
movzx edx, bl
xor eax, dword [edx*4 + 0x1007362c]
mov edx, eax
shr edx, 8
xor eax, ecx
movzx eax, al
xor edx, dword [eax*4 + 0x1007362c]
movzx eax, dl
mov esi, edx
shr esi, 8
xor eax, ebp
xor esi, dword [eax*4 + 0x1007362c]
not esi
mov eax, dword [0x100ef758]
cmp dword [eax + 0x3e30], esi
movups xmmword [esp + 0x20], xmm4
jne 0x10031915
push 0
push dword [esp + 0x34]
push 4
push esi
call fcn.10024e20
add esp, 0x10
mov eax, dword [0x100ef758]
cmp dword [eax + 0x3e48], esi
jne 0x10031923
mov dword [eax + 0x3e4c], esi
cmp dword [eax + 0x3e70], esi
mov ebx, dword [esp]
jne 0x10031935
mov byte [eax + 0x3e74], 1
push 0x40800
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0xb0]
push eax
push esi
lea eax, [esp + 0x20]
push eax
call fcn.10050f40
add esp, 0x14
movzx eax, byte [esp + 0xd4]
movzx ecx, byte [esp + 0xa8]
or cl, al
jne 0x1003197e
movups xmm4, xmmword [esp + 0x20]
movups xmm0, xmmword [esp + 0x80]
jmp 0x10031b2c
mov esi, dword [esp + 0x30]
mov ecx, esi
and ecx, 1
mov edx, 6
sub edx, ecx
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x4140], edx
test al, al
movups xmm4, xmmword [esp + 0x20]
movups xmm0, xmmword [esp + 0x80]
je 0x10031a0b
test esi, esi
jne 0x10031a12
cmp word [ecx + 0x36fa], 2
jne 0x10031a12
lea ecx, [esp + 0x98]
mov edx, ebx
lea eax, [esp + 0xf0]
push eax
call fcn.100356c0
add esp, 4
movsd xmm0, qword [esp + 0x98]
movups xmmword [esp + 0x80], xmm0
push 0
push 0
call fcn.10025420
movups xmm0, xmmword [esp + 0x88]
movups xmm4, xmmword [esp + 0x28]
add esp, 8
mov al, 1
mov dword [esp + 0xec], eax
jmp 0x10031b2c
mov edx, esi
jmp 0x10031b30
movups xmm4, xmmword [esp + 0x1a4]
movaps xmm0, xmm4
cmpeqps xmm0, xmmword [0x10074180]
movaps xmm5, xmm4
cmpeqps xmm5, xmmword [0x1006d150]
movups xmmword [esp + 0x80], xmm5
movsd xmm1, qword [ecx + 0xdb0]
movsd xmm2, qword [ecx + 0x3e5c]
subps xmm1, xmm2
movups xmm2, xmmword [esp + 0x13c]
andps xmm2, xmm0
andnps xmm0, xmmword [0x100742d0]
orps xmm0, xmm2
movups xmm3, xmmword [esp + 0x17c]
andps xmm3, xmm5
movaps xmm2, xmm5
andnps xmm2, xmmword [0x10074210]
orps xmm2, xmm3
movups xmm3, xmmword [esp + 0x200]
movups xmm5, xmmword [esp + 0xf8]
mulps xmm5, xmm3
movups xmm3, xmmword [esp + 0x220]
subps xmm5, xmm3
mulps xmm5, xmm4
addps xmm5, xmm3
addps xmm5, xmm1
minps xmm2, xmm5
cmpltps xmm5, xmm0
andps xmm0, xmm5
andnps xmm5, xmm2
movsd xmm1, qword [ebx + 0x18]
orps xmm5, xmm0
movsd xmm0, qword [ebx + 0x10]
addps xmm1, xmm0
subps xmm0, xmm5
mulps xmm0, xmm4
addps xmm0, xmm5
movups xmmword [esp + 0x20], xmm0
subps xmm5, xmm1
mulps xmm5, xmm4
addps xmm5, xmm1
subps xmm5, xmm0
movups xmmword [esp + 0xf8], xmm5
movlps qword [esp + 0x98], xmm5
lea ecx, [esp + 0x15c]
mov edx, ebx
lea eax, [esp + 0x98]
push eax
call fcn.100356c0
movups xmm4, xmmword [esp + 0x24]
add esp, 4
movsd xmm1, qword [esp + 0x15c]
movaps xmm0, xmm1
movups xmm2, xmmword [esp + 0xf8]
subps xmm0, xmm2
movups xmm2, xmmword [esp + 0x80]
andps xmm0, xmm2
subps xmm4, xmm0
movaps xmm0, xmm1
mov edx, dword [esp + 0x30]
movzx ecx, byte [esp + 0xd4]
movzx eax, byte [esp + 0xa8]
test edx, edx
je 0x100316c2
test cl, cl
jne 0x100316c2
test al, al
je 0x100317bb
jmp 0x100316c2
mov ecx, dword [esi + 0x3dc8]
mov eax, dword [esi + 0x3dd0]
test ecx, ecx
jle 0x10031fbe
mov edx, dword [edx + 0x2e8]
lea ebx, [eax + ecx*4]
mov ecx, eax
mov edi, dword [esp]
cmp dword [ecx], edi
je 0x10031b8a
add ecx, 4
cmp ecx, ebx
jb 0x10031b7f
sub ecx, eax
sar ecx, 2
mov edi, eax
cmp dword [edi], edx
je 0x10031fc2
add edi, 4
cmp edi, ebx
jb 0x10031b91
jmp 0x10031fc2
movups xmmword [esp + 0x80], xmm0
cmp byte [esp + 0x5b], 0
je 0x10032043
movaps xmm1, xmmword [0x10074360]
movups xmm0, xmmword [esp + 0x16c]
unpcklps xmm1, xmm0
movups xmmword [esp + 0xf8], xmm1
movaps xmm1, xmmword [0x10074370]
movss xmm1, xmm0
movups xmmword [esp + 0x1a4], xmm1
xor edi, edi
mov dword [esp + 0x118], 0xffffffff
mov ebp, 0x10073edc
jmp 0x10031d9a
cmp edi, 2
mov ecx, 0
adc ecx, 3
mov dword [edx + 0x4140], ecx
test al, al
je 0x10031d8d
movsd xmm3, qword [ebx + 0x10]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
xor eax, eax
movzx ecx, byte [esp + 0x30]
mov al, cl
movss xmm0, dword [edx + eax*4 + 0xdb0]
subss xmm0, dword [edx + eax*4 + 0x3e5c]
addss xmm0, dword [0x10074350]
movss dword [esp + eax*4 + 0xa8], xmm0
xor eax, eax
cmp edi, 1
sete al
movd xmm2, eax
xor eax, eax
test edi, edi
sete al
movd xmm0, edi
pshufd xmm0, xmm0, 0x50
pcmpeqd xmm0, xmmword [0x10074390]
pshufd xmm1, xmm0, 0x50
movss xmm0, xmm2
pslld xmm0, 0x1f
psrad xmm0, 0x1f
movdqu xmm2, xmmword [esp + 0x13c]
pand xmm2, xmm0
pandn xmm0, xmmword [0x100742d0]
por xmm0, xmm2
movd xmm2, eax
movss xmm1, xmm2
pslld xmm1, 0x1f
psrad xmm1, 0x1f
movdqu xmm2, xmmword [esp + 0x17c]
pand xmm2, xmm1
pandn xmm1, xmmword [0x10074210]
por xmm1, xmm2
movsd xmm2, qword [esp + 0xa8]
minps xmm1, xmm2
cmpltps xmm2, xmm0
andps xmm0, xmm2
andnps xmm2, xmm1
orps xmm2, xmm0
movsd xmm1, qword [ebp - 8]
movsd xmm0, qword [ebp]
minps xmm1, xmm0
movups xmmword [esp + 0x30], xmm1
movsd xmm0, qword [ebx + 0x18]
addps xmm0, xmm3
subps xmm3, xmm2
mulps xmm3, xmm1
addps xmm3, xmm2
movups xmmword [esp + 0x20], xmm3
subps xmm2, xmm0
mulps xmm2, xmm1
addps xmm2, xmm0
subps xmm2, xmm3
movups xmmword [esp + 0x118], xmm2
movlps qword [esp + 0x98], xmm2
lea ecx, [esp + 0x15c]
mov edx, ebx
lea eax, [esp + 0x98]
push eax
call fcn.100356c0
movups xmm4, xmmword [esp + 0x24]
mov edx, dword [esp + 0x94]
add esp, 4
movups xmm1, xmmword [esp + 0x30]
cmpeqps xmm1, xmmword [0x1006d150]
movsd xmm0, qword [esp + 0x15c]
movups xmmword [esp + 0x80], xmm0
movups xmm2, xmmword [esp + 0x118]
subps xmm0, xmm2
andps xmm0, xmm1
subps xmm4, xmm0
mov dword [esp + 0x118], edi
inc edi
add ebp, 0x1c
cmp edi, 4
je 0x10032055
cmp edi, 2
setae al
cmp edi, 3
mov byte [esp + 0x30], al
ja case.default.0x10031dc7
movsd xmm0, qword [ebx + 0x10]
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
movss xmm1, dword [ebx + 0x1c]
addss xmm1, xmm3
movss xmm2, dword [ebx + 0x18]
addss xmm2, xmm0
jmp dword [edi*4 + 0x10074538]
subss xmm1, dword [esp + 0x16c]
movaps xmm2, xmm0
jmp 0x10031df6
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
jmp 0x10031e7a
subss xmm1, dword [esp + 0x16c]
movss xmm0, xmm2
addss xmm2, dword [0x10074350]
movups xmm3, xmmword [esp + 0xf8]
addps xmm0, xmm3
movlps qword [esp + 0x10], xmm0
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x1c], xmm1
jmp 0x10031e7a
addss xmm3, dword [0x10074350]
subss xmm2, dword [esp + 0x16c]
movups xmm1, xmmword [esp + 0x1a4]
addps xmm0, xmm1
movlps qword [esp + 0x10], xmm0
jmp 0x10031e6e
movaps xmm3, xmm1
addss xmm3, dword [0x10074350]
movups xmm5, xmmword [esp + 0x16c]
subss xmm2, xmm5
addss xmm1, dword [0x10074380]
addss xmm0, xmm5
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x1c], xmm3
lea eax, [edi + 4]
mov ecx, eax
shr ecx, 8
mov edx, dword [ebx + 0xc8]
mov esi, dword [ebx + 0xd0]
mov edx, dword [esi + edx*4 - 4]
not edx
mov ebx, eax
xor ebx, edx
shr edx, 8
movzx esi, bl
xor edx, dword [esi*4 + 0x1007362c]
mov ebx, edx
xor edx, ecx
mov esi, eax
shr esi, 0x10
shr ebx, 8
movzx ecx, dl
xor ebx, dword [ecx*4 + 0x1007362c]
mov ecx, ebx
xor ebx, esi
mov edx, eax
shr edx, 0x18
shr ecx, 8
movzx esi, bl
xor ecx, dword [esi*4 + 0x1007362c]
movzx ebx, cl
xor ebx, edx
mov esi, ecx
shr esi, 8
xor esi, dword [ebx*4 + 0x1007362c]
not esi
mov ecx, dword [0x100ef758]
cmp dword [ecx + 0x3e30], esi
movups xmmword [esp + 0x20], xmm4
jne 0x10031f0b
push 0
push eax
push 4
push esi
call fcn.10024e20
add esp, 0x10
mov ecx, dword [0x100ef758]
cmp dword [ecx + 0x3e48], esi
jne 0x10031f19
mov dword [ecx + 0x3e4c], esi
cmp dword [ecx + 0x3e70], esi
mov ebx, dword [esp]
jne 0x10031f2b
mov byte [ecx + 0x3e74], 1
push 0x40800
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0xdc]
push eax
push esi
lea eax, [esp + 0x20]
push eax
call fcn.10050f40
add esp, 0x14
cmp byte [esp + 0xd4], 0
je 0x10031f8e
mov edx, dword [esp + 0x90]
movss xmm0, dword [edx + 0x3e40]
ucomiss xmm0, dword [0x10074384]
movzx eax, byte [esp + 0xcc]
movups xmm4, xmmword [esp + 0x20]
ja 0x10031bfc
test al, al
je 0x10031d8d
jmp 0x10031bfc
cmp byte [esp + 0xcc], 0
mov edx, dword [esp + 0x90]
movups xmm4, xmmword [esp + 0x20]
je 0x10031d8d
cmp edi, 2
mov eax, 0
adc eax, 3
mov dword [edx + 0x4140], eax
jmp 0x10031c15
xor ecx, ecx
mov edi, eax
movups xmmword [esp + 0x17c], xmm6
sub edi, eax
sar edi, 2
mov edx, ecx
sub edx, edi
jge 0x10031ff5
mov edx, ecx
not edx
add edx, edi
shl edx, 2
lea ebx, [eax + ecx*4]
lea eax, [eax + ecx*4]
add eax, 4
push edx
push eax
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
dec edi
jmp 0x1003200c
shl edx, 2
lea ecx, [eax + edi*4]
add ecx, 4
lea eax, [eax + edi*4]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ebx, dword [esp]
mov eax, dword [esi + 0x3dd0]
mov dword [eax + edi*4], ebx
movss xmm2, dword [ebx + 0x48]
mov dword [esp + 0x94], 0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x44]
movups xmm6, xmmword [esp + 0x17c]
movss xmm7, dword [esp + 0x30]
jmp 0x1002edc1
mov dword [esp + 0x118], 0xffffffff
mov edx, dword [esp + 0x90]
mov eax, dword [0x100ef758]
mov ecx, dword [eax + 0x3e10]
dec dword [ecx + 0xc8]
mov dword [ebx + 0x12c], 0
mov ecx, dword [edx + 0x4114]
test ecx, ecx
je 0x100320c7
cmp dword [ecx + 0x2e8], ebx
mov ebp, dword [esp + 0xc]
mov edi, dword [esp + 8]
jne 0x10032224
mov ecx, dword [edx + 0x3ff8]
cmp ecx, 3
je 0x100320d4
xorps xmm0, xmm0
cmp ecx, 2
jne 0x100320fa
cmp byte [edx + 0xdc9], 0
je 0x100320fa
movss xmm1, dword [eax + 0x2e1c]
lea ecx, [eax + 0x2dfc]
subss xmm1, dword [eax + 0x2e0c]
add eax, 0x2dec
jmp 0x100320ef
mov ebp, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x10032224
movss xmm1, dword [eax + 0x34fc]
lea ecx, [eax + 0x34dc]
subss xmm1, dword [eax + 0x34ec]
add eax, 0x34cc
movss xmm0, dword [ecx]
subss xmm0, dword [eax]
unpcklps xmm0, xmm1
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x10032116
jp 0x10032116
movaps xmm2, xmm0
shufps xmm2, xmm0, 0x55
ucomiss xmm2, xmm1
jne 0x10032116
jnp 0x10032224
movss xmm1, dword [edx + 0x18]
movss xmm2, dword [edx + 0x50]
mulss xmm1, dword [0x100743a0]
minss xmm2, dword [edx + 0x54]
mulss xmm2, xmm1
shufps xmm2, xmm2, 0
mulps xmm0, xmm2
movsd xmm1, qword [edx + 0x4134]
addps xmm1, xmm0
movlps qword [edx + 0x4134], xmm1
movsd xmm0, qword [ebx + 0x10]
movsd xmm2, qword [ebx + 0x18]
movups xmm3, xmmword [esp + 0x13c]
subps xmm3, xmm0
subps xmm3, xmm2
movaps xmm0, xmm3
cmpleps xmm0, xmm1
andps xmm1, xmm0
andnps xmm0, xmm3
orps xmm0, xmm1
movups xmmword [esp + 0x30], xmm0
movlps qword [edx + 0x4134], xmm0
mov byte [edx + 0x4128], 0
mov byte [edx + 0x4003], 1
push 0x3f800000
push 0x20
mov esi, edx
movups xmmword [esp + 0x28], xmm4
call fcn.100227d0
movups xmm4, xmmword [esp + 0x28]
add esp, 8
mov dword [esp + 0x1b4], eax
movups xmm0, xmmword [esp + 0x30]
cvttps2dq xmm0, xmm0
pshufd xmm1, xmm0, 0x50
xorps xmm2, xmm2
pcmpeqd xmm2, xmm1
movmskpd eax, xmm2
xor eax, 3
je 0x10032224
cvtdq2ps xmm1, xmm0
movups xmmword [esp + 0x30], xmm1
movsd xmm0, qword [ebx + 0x20]
addps xmm0, xmm1
movlps qword [esp + 0x98], xmm0
lea ecx, [esp + 0x10]
mov edx, ebx
lea eax, [esp + 0x98]
push eax
call fcn.100356c0
movups xmm4, xmmword [esp + 0x24]
add esp, 4
movsd xmm0, qword [esp + 0x10]
movups xmmword [esp + 0x80], xmm0
movsd xmm0, qword [esi + 0x4134]
movups xmm1, xmmword [esp + 0x30]
subps xmm0, xmm1
movlps qword [esi + 0x4134], xmm0
movups xmm0, xmmword [esp + 0x80]
ucomiss xmm0, dword [0x100740f0]
jne 0x10032237
jnp 0x1003225f
movlps qword [ebx + 0x20], xmm0
test byte [ebx + 9], 1
jne 0x1003225f
mov eax, dword [0x100ef758]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x51f4]
jb 0x1003225f
movss xmm0, dword [eax + 0x1c]
movss dword [eax + 0x51f4], xmm0
ucomiss xmm4, dword [0x100740f0]
jne 0x1003226a
jnp 0x10032299
cvttps2dq xmm0, xmm4
cvtdq2ps xmm0, xmm0
movlps qword [ebx + 0x10], xmm0
test byte [ebx + 9], 1
jne 0x10032299
mov eax, dword [0x100ef758]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x51f4]
jb 0x10032299
movss xmm0, dword [eax + 0x1c]
movss dword [eax + 0x51f4], xmm0
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x1c], ecx
test byte [esp + 0xec], 1
mov edx, dword [esp + 0x44]
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0xbc]
movzx eax, al
cmovne eax, ecx
lea ecx, [ebx + 0x99]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x118]
mov byte [ebx + 0x99], cl
cmp byte [ebx + 0x91], 0
jne 0x1002f074
mov dword [esp + 0xbc], eax
mov eax, edx
jmp 0x1002ee62