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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xdc
movzx ebx, byte [esp + 0x100]
mov dword [esp + 0x34], edx
mov edx, ecx
cmp bl, 0x1f
ja 0x40b475
mov ebp, dword [esp + 0xfc]
cmp ebp, 2
jb 0x40b475
mov eax, dword [esp + 0xf8]
movzx ecx, word [eax]
rol cx, 8
test cx, cx
jle 0x40b485
add eax, 0xa
xor esi, esi
sub ebp, 0xa
cmovae esi, eax
jb 0x40b475
movzx edi, cx
mov dword [esp + 0x64], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x68], ebp
add edi, edi
cmp edi, ebp
ja 0x40b475
lea eax, [edi + 0x1fffe]
mov word [esp + 0x20], cx
and eax, 0x1fffe
lea ecx, [eax + 2]
cmp ecx, edi
ja 0x40b475
movzx ebx, word [esi + eax]
rol bx, 8
inc bx
jne 0x40bb66
mov word [edx], 2
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x30], edx
js 0x40b5b4
mov eax, dword [esp + 0x104]
movaps xmm1, xmmword [0x7255b0]
movups xmm0, xmmword [eax + 0x44]
cmpneqps xmm1, xmm0
movmskps eax, xmm1
test eax, eax
je 0x40b5ef
xor ecx, ecx
ucomiss xmm0, dword [0x7255a0]
jb 0x40b5d3
movss xmm1, dword [0x7255a4]
ucomiss xmm1, xmm0
jbe 0x40b5d3
ucomiss xmm0, dword [0x7255a8]
cvttss2si ecx, xmm0
mov eax, 0x7fffffff
cmovbe eax, ecx
xor ecx, ecx
ucomiss xmm0, xmm0
cmovp eax, ecx
movsx edx, ax
cmp edx, eax
jne 0x40b5d3
movaps xmm2, xmm0
xor ecx, ecx
shufps xmm2, xmm0, 0x55
ucomiss xmm2, dword [0x7255a0]
jb 0x40b5d3
ucomiss xmm1, xmm2
jbe 0x40b5d3
ucomiss xmm2, dword [0x7255a8]
cvttss2si ecx, xmm2
mov edx, 0x7fffffff
cmovbe edx, ecx
xor ecx, ecx
ucomiss xmm2, xmm2
cmovp edx, ecx
movsx esi, dx
cmp esi, edx
jne 0x40b5d3
movaps xmm2, xmm0
xor ecx, ecx
unpckhpd xmm2, xmm0
ucomiss xmm2, dword [0x7255a0]
jb 0x40b5d3
ucomiss xmm1, xmm2
jbe 0x40b5d3
ucomiss xmm2, dword [0x7255a8]
cvttss2si ecx, xmm2
mov esi, 0x7fffffff
cmovbe esi, ecx
xor ecx, ecx
ucomiss xmm2, xmm2
cmovp esi, ecx
movsx edi, si
cmp edi, esi
jne 0x40b5d3
shufps xmm0, xmm0, 0xff
xor ecx, ecx
ucomiss xmm0, dword [0x7255a0]
jb 0x40b5d3
ucomiss xmm1, xmm0
jbe 0x40b5d3
ucomiss xmm0, dword [0x7255a8]
cvttss2si ecx, xmm0
mov edi, 0x7fffffff
cmovbe edi, ecx
xor ecx, ecx
ucomiss xmm0, xmm0
cmovp edi, ecx
movsx ebx, di
cmp ebx, edi
jne 0x40b5d3
mov cx, 1
jmp 0x40b5d3
add eax, 0xa
xor ecx, ecx
sub ebp, 0xa
cmovae ecx, eax
mov dword [esp + 0x20], ecx
jae 0x40b5fd
mov eax, dword [esp + 0x30]
mov word [eax], 2
jmp 0x40b47a
mov ebx, dword [esp + 0x30]
mov word [ebx], cx
mov word [ebx + 2], ax
mov word [ebx + 4], dx
mov word [ebx + 6], si
mov word [ebx + 8], di
jmp 0x40b47a
mov eax, dword [esp + 0x30]
mov word [eax], 0
jmp 0x40b47a
cmp ebp, 2
jb 0x40b48f
mov eax, dword [esp + 0x104]
movaps xmm4, xmmword [0x7255d0]
movss xmm5, dword [0x7255e0]
movss xmm6, dword [0x7255c0]
inc bl
xor esi, esi
xorps xmm7, xmm7
add eax, 0x44
mov dword [esp + 0x44], eax
mov eax, 2
lea edx, [esi + 4]
cmp edx, eax
jb 0x40b48f
cmp edx, ebp
ja 0x40b48f
mov edi, dword [esp + 0x20]
xorps xmm0, xmm0
movzx ecx, word [edi + esi]
movzx eax, word [edi + eax]
rol cx, 8
mov dword [esp + 0x2c], eax
test cl, 2
jne 0x40b68f
mov esi, edx
test cl, cl
js 0x40b724
test cl, 0x40
jne 0x40b7e7
test cl, 8
jne 0x40b854
mov edx, esi
movaps xmm1, xmm5
movaps xmm2, xmm4
jmp 0x40b890
test cl, 1
jne 0x40b6d7
cmp edx, 0xffffffff
je 0x40b48f
lea eax, [esi + 5]
cmp eax, ebp
ja 0x40b48f
cmp eax, 0xffffffff
je 0x40b48f
add esi, 6
cmp esi, ebp
ja 0x40b48f
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edx]
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
jmp 0x40b719
cmp edx, 0xfffffffd
ja 0x40b48f
lea eax, [esi + 6]
cmp eax, ebp
ja 0x40b48f
add esi, 8
cmp esi, eax
jb 0x40b48f
cmp esi, ebp
ja 0x40b48f
mov eax, dword [esp + 0x20]
movd xmm0, dword [eax + edx]
movdqa xmm1, xmm0
psllw xmm1, 8
punpcklbw xmm0, xmm1
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
test cl, cl
jns 0x40b670
cmp esi, 0xfffffffd
ja 0x40b48f
lea eax, [esi + 2]
cmp eax, ebp
ja 0x40b48f
mov edx, dword [esp + 0x20]
movzx edx, word [edx + esi]
rol dx, 8
cmp eax, 0xfffffffd
movsx edx, dx
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
mulss xmm1, xmm6
ja 0x40b48f
lea edx, [esi + 4]
cmp edx, ebp
ja 0x40b48f
mov eax, dword [esp + 0x20]
movzx eax, word [eax + esi + 2]
rol ax, 8
cmp edx, 0xfffffffd
cwde
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
mulss xmm2, xmm6
ja 0x40b48f
lea eax, [esi + 6]
cmp eax, ebp
ja 0x40b48f
cmp eax, 0xfffffffd
ja 0x40b48f
add esi, 8
cmp esi, ebp
ja 0x40b48f
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
movzx edx, word [ecx + edx]
movzx eax, word [ecx + eax]
mov ecx, dword [esp + 0x18]
rol dx, 8
rol ax, 8
movsx edx, dx
cwde
cvtsi2ss xmm3, edx
mov edx, esi
mulss xmm3, xmm6
unpcklps xmm1, xmm3
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
mulss xmm3, xmm6
unpcklps xmm2, xmm3
jmp 0x40b890
cmp esi, 0xfffffffd
ja 0x40b48f
lea eax, [esi + 2]
cmp eax, ebp
ja 0x40b48f
cmp eax, 0xfffffffd
ja 0x40b48f
lea edx, [esi + 4]
cmp edx, ebp
ja 0x40b48f
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
pxor xmm1, xmm1
movzx eax, word [ecx + esi]
movzx esi, word [ecx + esi + 2]
mov ecx, dword [esp + 0x18]
rol ax, 8
rol si, 8
cwde
movsx esi, si
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
xorps xmm3, xmm3
cvtsi2ss xmm3, esi
mulss xmm2, xmm6
mulss xmm3, xmm6
movss xmm1, xmm2
movq xmm2, xmm3
jmp 0x40b88c
cmp esi, 0xfffffffd
ja 0x40b48f
lea edx, [esi + 2]
cmp edx, ebp
ja 0x40b48f
mov eax, dword [esp + 0x20]
pxor xmm1, xmm1
movzx eax, word [eax + esi]
rol ax, 8
cwde
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
mulss xmm2, xmm6
movss xmm1, xmm2
movq xmm2, xmm2
shufps xmm2, xmm7, 0xe2
mov esi, edx
mov edx, dword [esp + 0x2c]
test cl, 0x20
cmove esi, ebp
cmp dx, 0xffff
je 0x40bb4d
mov eax, dword [esp + 0x34]
rol dx, 8
mov dword [esp + 0x2c], esi
lea esi, [edx + 1]
mov dword [esp + 0x24], esi
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov ecx, eax
mov dword [esp + 0x1c], eax
shr eax, 1
mov dword [esp + 0x18], edi
shr ecx, 2
test edi, edi
mov edi, edx
mov edx, ecx
cmove edx, eax
cmp si, dx
mov esi, dword [esp + 0x2c]
jae 0x40bb4d
mov edx, edi
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x18], 0
mov edi, dword [edi + 4]
je 0x40b943
cmp dx, cx
jae 0x40bb4d
movzx eax, dx
lea edx, [eax*4 + 4]
cmp edx, dword [esp + 0x1c]
ja 0x40bb4d
cmp word [esp + 0x24], cx
jae 0x40bb4d
movzx edx, word [esp + 0x24]
lea ecx, [edx*4 + 4]
cmp ecx, dword [esp + 0x1c]
ja 0x40bb4d
shl edx, 2
shl eax, 2
mov ecx, dword [edi + eax]
mov edx, dword [edi + edx]
bswap ecx
bswap edx
jmp 0x40b999
cmp dx, ax
jae 0x40bb4d
movzx edx, dx
lea ecx, [edx + edx + 2]
cmp ecx, dword [esp + 0x1c]
ja 0x40bb4d
cmp word [esp + 0x24], ax
jae 0x40bb4d
movzx eax, word [esp + 0x24]
lea ecx, [eax + eax + 2]
cmp ecx, dword [esp + 0x1c]
ja 0x40bb4d
add eax, eax
add edx, edx
movzx ecx, word [edi + edx]
movzx eax, word [edi + eax]
rol cx, 8
rol ax, 8
movzx ecx, cx
movzx edx, ax
add ecx, ecx
add edx, edx
mov eax, edx
sub eax, ecx
jbe 0x40bb4d
cmp edx, dword [esp + 0xf4]
ja 0x40bb4d
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xf0]
movaps xmm5, xmm0
unpcklps xmm2, xmm2
unpcklps xmm1, xmm1
shufps xmm5, xmm0, 0
shufps xmm0, xmm0, 0x55
add ecx, eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
movsd xmm4, qword [eax + 0x2c]
movsd xmm3, qword [eax + 0x34]
mov edi, eax
mulps xmm5, xmm4
mulps xmm0, xmm3
movlhps xmm4, xmm4
movlhps xmm3, xmm3
mulps xmm3, xmm2
mulps xmm4, xmm1
addps xmm0, xmm5
xorps xmm2, xmm2
addps xmm3, xmm4
movaps xmm1, xmm3
cmpeqps xmm1, xmmword [0x725570]
movmskps eax, xmm1
movsd xmm1, qword [edi + 0x3c]
mov edx, eax
mov dh, al
shr dl, 1
shr dh, 2
and dl, al
shr al, 3
addps xmm0, xmm1
and dh, al
and dl, dh
ucomiss xmm0, xmm2
movaps xmm1, xmm0
setnp al
sete dh
shufps xmm1, xmm0, 0x55
and dh, al
mov eax, dword [ecx + 8]
ucomiss xmm1, xmm2
sete bh
mov dword [esp + 0x6c], eax
setnp al
and bh, al
and bh, dh
and bh, dl
mov edx, dword [esp + 0x44]
movsd xmm1, qword [edx]
movsd xmm2, qword [edx + 8]
mov edi, edx
lea edx, [esp + 0xc8]
movsd qword [edx + 8], xmm2
movsd qword [edx], xmm1
mov edx, dword [esp + 0x104]
movsd xmm1, qword [edx + 0x24]
movzx edx, bl
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
movsd qword [esp + 0xa8], xmm1
movups xmmword [esp + 0xb0], xmm3
movlps qword [esp + 0xc0], xmm0
movsd xmm0, qword [ecx]
lea ecx, [esp + 0x84]
mov byte [esp + 0xd8], bh
mov dword [esp + 0x84], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xf4]
movsd qword [esp + 0x64], xmm0
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 4], edx
lea edx, [esp + 0x64]
mov dword [esp], ecx
lea ecx, [esp + 0x78]
call fcn.0040b3f0
cmp word [esp + 0x78], 2
je 0x40b5c5
lea eax, [esp + 0xc8]
movaps xmm4, xmmword [0x7255d0]
movss xmm5, dword [0x7255e0]
movss xmm6, dword [0x7255c0]
xorps xmm7, xmm7
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
cmp esi, 0xfffffffd
ja 0x40b48f
lea eax, [esi + 2]
cmp eax, ebp
jbe 0x40b637
jmp 0x40b48f
cmp bx, 1
mov dword [esp + 0x2c], edi
jne 0x40bb79
mov dword [esp + 0x30], edx
jmp 0x40b48f
mov eax, dword [esp + 0x2c]
lea edi, [eax + 2]
cmp edi, ebp
ja 0x40b475
movzx eax, word [esi + eax]
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x84]
lea edx, [esp + 0x64]
mov dword [esp], ebx
rol ax, 8
movzx eax, ax
add edi, eax
mov dword [esp + 0x6c], edi
call fcn.006eb6f0
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x84], 0
je 0x40b475
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], edi
mov ecx, eax
sub ecx, edi
mov dword [esp + 0x58], ecx
jb 0x40b475
mov edi, eax
cmp eax, ebp
ja 0x40b475
mov eax, dword [esp + 0x88]
lea ecx, [edi + eax]
mov dword [esp + 0x5c], eax
cmp ecx, edi
jb 0x40b475
cmp ecx, ebp
ja 0x40b475
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
add eax, ecx
cmp eax, ecx
jb 0x40b475
cmp eax, ebp
ja 0x40b475
mov ebp, ebx
mov dword [esp + 0x48], edi
test bp, bp
je 0x40b48f
movzx edi, word [esi]
add dword [esp + 0x4c], esi
add dword [esp + 0x48], esi
add dword [esp + 0x50], esi
mov bx, 1
xor edx, edx
xor eax, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x60], 0
rol di, 8
jmp 0x40bd65
movsd xmm2, qword [eax + 0x44]
movaps xmm3, xmm1
movaps xmm4, xmm1
mov ecx, dword [esp + 0x104]
movss dword [esp + 0xc], xmm0
movss dword [esp + 4], xmm1
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
movaps xmm4, xmm0
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm1
orps xmm2, xmm4
movaps xmm4, xmm1
movlps qword [eax + 0x44], xmm2
movsd xmm2, qword [eax + 0x4c]
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
movaps xmm4, xmm0
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
shufps xmm3, xmm0, 0x55
movlps qword [eax + 0x4c], xmm2
movaps xmm2, xmm1
movss dword [esp + 0x10], xmm3
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
shufps xmm2, xmm1, 0x55
movss dword [esp + 8], xmm2
mov dword [esp], eax
call dword [ecx + 0x14]
mov eax, dword [esp + 0x104]
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x18], 0
mov ecx, eax
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp], eax
call dword [ecx + 0x1c]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, edi
mov ecx, dword [esp + 0x40]
test bp, bp
mov edi, ecx
je 0x40b48f
test di, di
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], edi
je 0x40bd82
mov ebp, dword [esp + 0x50]
lea ecx, [edi - 1]
mov dword [esp + 0x40], ecx
jmp 0x40be15
cmp bx, word [esp + 0x20]
mov ebp, dword [esp + 0x50]
jae 0x40bda6
mov esi, eax
movzx eax, bx
lea ecx, [eax + eax + 2]
cmp ecx, dword [esp + 0x2c]
jbe 0x40bdb0
mov dword [esp + 0x40], 0
jmp 0x40be09
mov dword [esp + 0x40], 0
jmp 0x40be0b
mov ecx, dword [esp + 0x34]
add eax, eax
mov dword [esp + 0x18], edx
mov edx, ebx
movzx edi, word [ecx + eax]
lea eax, [ebx - 1]
rol di, 8
cmp ax, word [esp + 0x20]
jae 0x40bddb
movzx eax, ax
lea ecx, [eax + eax + 2]
cmp ecx, dword [esp + 0x2c]
jbe 0x40bddf
xor eax, eax
jmp 0x40bded
mov ecx, dword [esp + 0x34]
add eax, eax
movzx eax, word [ecx + eax]
rol ax, 8
mov ebx, edx
mov edx, dword [esp + 0x18]
sub di, ax
mov ecx, 0
cmovb edi, ecx
sub di, 1
cmovb edi, ecx
mov dword [esp + 0x40], edi
mov eax, esi
inc bx
mov ecx, 0xffff
cmove ebx, ecx
test al, al
mov dword [esp + 0x18], ebx
je 0x40be55
mov esi, dword [esp + 0x24]
dec al
test dl, 2
mov dword [esp + 0x1c], eax
jne 0x40be38
test dl, 0x10
je 0x40be8d
xor eax, eax
jmp 0x40bec6
mov ecx, esi
xor eax, eax
inc ecx
je 0x40beab
cmp ecx, dword [esp + 0x5c]
ja 0x40beaf
mov ebx, edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
movzx eax, byte [eax + edx]
jmp 0x40beb5
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
xor edx, edx
inc eax
je 0x40be85
cmp eax, dword [esp + 0x58]
ja 0x40be85
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
movzx edx, byte [ecx + edx]
test dl, 8
jne 0x40c54a
mov dword [esp + 0x28], eax
xor eax, eax
jmp 0x40be23
mov dword [esp + 0x1c], 0
xor eax, eax
cmp esi, 0xfffffffd
ja 0x40bec6
lea ecx, [esi + 2]
cmp ecx, dword [esp + 0x5c]
ja 0x40bec6
mov eax, dword [esp + 0x48]
movzx eax, word [eax + esi]
rol ax, 8
jmp 0x40bec4
mov ecx, esi
jmp 0x40beb3
mov ecx, dword [esp + 0x24]
mov ebx, edx
movzx eax, ax
mov edx, eax
neg edx
test bl, 0x10
cmove eax, edx
mov edx, ebx
mov esi, ecx
add dword [esp + 0x60], eax
test dl, 4
mov edi, edx
mov dword [esp + 0x24], esi
jne 0x40bf05
xor eax, eax
test dl, 0x20
jne 0x40bf21
mov edx, dword [esp + 0x3c]
cmp edx, 0xfffffffd
ja 0x40c279
lea ecx, [edx + 2]
cmp ecx, dword [esp + 0x54]
ja 0x40c279
movzx eax, word [ebp + edx]
mov dword [esp + 0x38], ecx
rol ax, 8
jmp 0x40bf3a
mov edx, dword [esp + 0x38]
xor eax, eax
mov ecx, edx
inc ecx
je 0x40bf27
cmp ecx, dword [esp + 0x54]
ja 0x40bf27
movzx eax, byte [ebp + edx]
mov dword [esp + 0x38], ecx
jmp 0x40bf2b
mov edx, dword [esp + 0x3c]
jmp 0x40bf3c
mov ecx, dword [esp + 0x3c]
movzx eax, ax
mov ebx, edi
mov edx, eax
neg edx
test bl, 0x20
cmove eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x44]
pxor xmm0, xmm0
mov dword [esp + 0x3c], edx
pinsrw xmm0, word [esp + 0x60], 1
add ecx, eax
mov eax, dword [esp + 0x104]
pinsrw xmm0, ecx, 3
mov dword [esp + 0x44], ecx
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
cmp dword [eax], 0
je 0x40c009
cmp dword [eax + 0x18], 0
mov edx, edi
je 0x40c0d2
movsd xmm1, qword [eax + 0x1c]
test dl, 1
jne 0x40c0eb
mov dword [eax + 0x18], 1
movlps qword [eax + 0x1c], xmm0
subps xmm0, xmm1
mulps xmm0, xmmword [0x7255f0]
cmp byte [eax + 0x54], 0
addps xmm0, xmm1
jne 0x40c138
movss xmm4, dword [eax + 0x2c]
movss xmm5, dword [eax + 0x38]
movsd xmm2, qword [eax + 0x30]
movaps xmm6, xmm0
shufps xmm6, xmm0, 0
shufps xmm0, xmm0, 0x55
movaps xmm3, xmm4
movlhps xmm4, xmm2
unpcklps xmm3, xmm5
shufps xmm4, xmm2, 0xe2
mulps xmm3, xmm1
mulps xmm1, xmm2
movss xmm2, xmm5
mulps xmm4, xmm6
shufps xmm1, xmm1, 0xe1
mulps xmm2, xmm0
addps xmm3, xmm1
movsd xmm1, qword [eax + 0x3c]
addps xmm2, xmm4
shufps xmm2, xmm2, 0xe1
addps xmm2, xmm1
addps xmm3, xmm1
movaps xmm1, xmm3
movaps xmm0, xmm2
jmp 0x40c138
mov edx, edi
test dl, 1
jne 0x40c1db
cmp dword [eax + 0xc], 0
je 0x40c617
movsd xmm2, qword [eax + 0x10]
movaps xmm1, xmm0
mov dword [eax], 1
subps xmm1, xmm2
mulps xmm1, xmmword [0x7255f0]
addps xmm1, xmm2
movlps qword [eax + 4], xmm1
mov dword [eax + 0x18], 1
movlps qword [eax + 0x1c], xmm0
cmp byte [eax + 0x54], 0
jne 0x40c074
movsd xmm2, qword [eax + 0x2c]
movsd xmm3, qword [eax + 0x34]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0
shufps xmm1, xmm1, 0x55
mulps xmm2, xmm0
mulps xmm1, xmm3
addps xmm1, xmm2
movsd xmm2, qword [eax + 0x3c]
addps xmm1, xmm2
movsd xmm0, qword [eax + 0x44]
movaps xmm2, xmm1
movaps xmm3, xmm1
mov ecx, eax
movss dword [esp + 4], xmm1
minps xmm2, xmm0
cmpunordps xmm0, xmm0
andps xmm3, xmm0
andnps xmm0, xmm2
movaps xmm2, xmm1
orps xmm0, xmm3
movaps xmm3, xmm1
movlps qword [eax + 0x44], xmm0
movsd xmm0, qword [eax + 0x4c]
maxps xmm2, xmm0
cmpunordps xmm0, xmm0
andps xmm3, xmm0
andnps xmm0, xmm2
orps xmm0, xmm3
movlps qword [eax + 0x4c], xmm0
movaps xmm0, xmm1
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
shufps xmm0, xmm1, 0x55
movss dword [esp + 8], xmm0
jmp 0x40c26e
test dl, 1
jne 0x40c282
mov dword [eax + 0x18], 1
movlps qword [eax + 0x1c], xmm0
jmp 0x40c313
mov dword [eax + 0x18], 0
cmp byte [eax + 0x54], 0
jne 0x40c138
movups xmm4, xmmword [eax + 0x2c]
movss xmm3, dword [eax + 0x38]
movsd xmm2, qword [eax + 0x30]
movaps xmm5, xmm1
movlhps xmm3, xmm4
mulps xmm5, xmm2
mulps xmm2, xmm0
shufps xmm3, xmm4, 0xe2
shufps xmm5, xmm5, 0xe1
shufps xmm2, xmm2, 0xe1
mulps xmm1, xmm3
mulps xmm3, xmm0
addps xmm1, xmm5
movsd xmm5, qword [eax + 0x3c]
addps xmm3, xmm2
addps xmm3, xmm5
addps xmm1, xmm5
movaps xmm0, xmm3
movsd xmm2, qword [eax + 0x44]
movaps xmm3, xmm1
movaps xmm4, xmm1
mov ecx, eax
movss dword [esp + 0xc], xmm0
movss dword [esp + 4], xmm1
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
movaps xmm4, xmm0
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm1
orps xmm2, xmm4
movaps xmm4, xmm1
movlps qword [eax + 0x44], xmm2
movsd xmm2, qword [eax + 0x4c]
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
movaps xmm4, xmm0
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
shufps xmm3, xmm0, 0x55
movlps qword [eax + 0x4c], xmm2
movaps xmm2, xmm1
movss dword [esp + 0x10], xmm3
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
shufps xmm2, xmm1, 0x55
movss dword [esp + 8], xmm2
mov dword [esp], eax
call dword [ecx + 0x14]
jmp 0x40c311
mov dword [eax], 1
movlps qword [eax + 4], xmm0
cmp byte [eax + 0x54], 0
jne 0x40c215
movups xmm1, xmmword [eax + 0x2c]
movss xmm3, dword [eax + 0x38]
movsd xmm2, qword [eax + 0x30]
movlhps xmm3, xmm1
mulps xmm2, xmm0
shufps xmm3, xmm1, 0xe2
shufps xmm2, xmm2, 0xe1
mulps xmm3, xmm0
movsd xmm0, qword [eax + 0x3c]
addps xmm3, xmm2
addps xmm0, xmm3
movsd xmm1, qword [eax + 0x44]
movaps xmm2, xmm0
movaps xmm3, xmm0
mov ecx, eax
movss dword [esp + 4], xmm0
minps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm3, xmm1
andnps xmm1, xmm2
movaps xmm2, xmm0
orps xmm1, xmm3
movaps xmm3, xmm0
movlps qword [eax + 0x44], xmm1
movsd xmm1, qword [eax + 0x4c]
maxps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm3, xmm1
andnps xmm1, xmm2
orps xmm1, xmm3
movlps qword [eax + 0x4c], xmm1
movaps xmm1, xmm0
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
shufps xmm1, xmm0, 0x55
movss dword [esp + 8], xmm1
mov dword [esp], eax
call dword [ecx + 0xc]
jmp 0x40c311
mov dword [esp + 0x38], edx
jmp 0x40bf3c
cmp byte [eax + 0x54], 0
jne 0x40c2b2
movups xmm1, xmmword [eax + 0x2c]
movss xmm3, dword [eax + 0x38]
movsd xmm2, qword [eax + 0x30]
movlhps xmm3, xmm1
mulps xmm2, xmm0
shufps xmm3, xmm1, 0xe2
shufps xmm2, xmm2, 0xe1
mulps xmm3, xmm0
movsd xmm0, qword [eax + 0x3c]
addps xmm3, xmm2
addps xmm0, xmm3
movsd xmm1, qword [eax + 0x44]
movaps xmm2, xmm0
movaps xmm3, xmm0
mov ecx, eax
movss dword [esp + 4], xmm0
minps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm3, xmm1
andnps xmm1, xmm2
movaps xmm2, xmm0
orps xmm1, xmm3
movaps xmm3, xmm0
movlps qword [eax + 0x44], xmm1
movsd xmm1, qword [eax + 0x4c]
maxps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm3, xmm1
andnps xmm1, xmm2
orps xmm1, xmm3
movlps qword [eax + 0x4c], xmm1
movaps xmm1, xmm0
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
shufps xmm1, xmm0, 0x55
movss dword [esp + 8], xmm1
mov dword [esp], eax
call dword [ecx + 0x10]
mov edx, edi
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
dec ebp
cmp word [esp + 0x70], 0
jne 0x40bd56
mov esi, dword [esp + 0x104]
mov eax, dword [esi + 0xc]
cmp eax, 1
jne 0x40c466
cmp dword [esi + 0x18], 1
jne 0x40c466
mov dword [esi + 0x18], 0
mov eax, esi
movsd xmm0, qword [esi + 0x10]
movsd xmm1, qword [esi + 0x1c]
cmp byte [esi + 0x54], 0
subps xmm0, xmm1
mulps xmm0, xmmword [0x7255f0]
addps xmm0, xmm1
jne 0x40c3c5
movss xmm4, dword [eax + 0x2c]
movss xmm5, dword [eax + 0x38]
movsd xmm2, qword [eax + 0x30]
movaps xmm6, xmm0
shufps xmm6, xmm0, 0
shufps xmm0, xmm0, 0x55
movaps xmm3, xmm4
movlhps xmm4, xmm2
unpcklps xmm3, xmm5
shufps xmm4, xmm2, 0xe2
mulps xmm3, xmm1
mulps xmm1, xmm2
movss xmm2, xmm5
mulps xmm4, xmm6
shufps xmm1, xmm1, 0xe1
mulps xmm2, xmm0
addps xmm3, xmm1
movsd xmm1, qword [eax + 0x3c]
addps xmm2, xmm4
shufps xmm2, xmm2, 0xe1
addps xmm2, xmm1
addps xmm3, xmm1
movaps xmm1, xmm3
movaps xmm0, xmm2
movsd xmm2, qword [eax + 0x44]
movaps xmm3, xmm1
movaps xmm4, xmm1
mov esi, eax
movss dword [esp + 0xc], xmm0
movss dword [esp + 4], xmm1
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
movaps xmm4, xmm0
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm1
orps xmm2, xmm4
movaps xmm4, xmm1
movlps qword [eax + 0x44], xmm2
movsd xmm2, qword [eax + 0x4c]
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
movaps xmm4, xmm0
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm0
orps xmm2, xmm4
shufps xmm3, xmm0, 0x55
movlps qword [eax + 0x4c], xmm2
movaps xmm2, xmm1
movss dword [esp + 0x10], xmm3
mov eax, dword [eax + 0x24]
mov ecx, dword [esi + 0x28]
shufps xmm2, xmm1, 0x55
movss dword [esp + 8], xmm2
mov dword [esp], eax
call dword [ecx + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
movsd xmm0, qword [esi + 4]
cmp ecx, 1
jne 0x40c4d2
cmp eax, 1
jne 0x40c4d2
mov eax, dword [esp + 0x104]
movsd xmm1, qword [eax + 0x10]
cmp byte [eax + 0x54], 0
jne 0x40bc80
movups xmm4, xmmword [eax + 0x2c]
movss xmm3, dword [eax + 0x38]
movsd xmm2, qword [eax + 0x30]
movaps xmm5, xmm1
movlhps xmm3, xmm4
mulps xmm5, xmm2
mulps xmm2, xmm0
shufps xmm3, xmm4, 0xe2
shufps xmm5, xmm5, 0xe1
shufps xmm2, xmm2, 0xe1
mulps xmm1, xmm3
mulps xmm3, xmm0
addps xmm1, xmm5
movsd xmm5, qword [eax + 0x3c]
addps xmm3, xmm2
addps xmm3, xmm5
addps xmm1, xmm5
movaps xmm0, xmm3
jmp 0x40bc80
mov eax, dword [esp + 0x104]
movaps xmm2, xmm0
cmp ecx, 1
shufps xmm2, xmm0, 0xe1
jne 0x40c575
cmp dword [eax + 0x18], 1
jne 0x40c575
movsd xmm1, qword [eax + 0x1c]
cmp byte [eax + 0x54], 0
jne 0x40bc80
movss xmm6, dword [eax + 0x2c]
movss xmm5, dword [eax + 0x38]
movsd xmm4, qword [eax + 0x30]
movaps xmm3, xmm6
mulps xmm0, xmm4
unpcklps xmm3, xmm5
unpcklps xmm5, xmm6
mulps xmm3, xmm1
mulps xmm1, xmm4
mulps xmm2, xmm5
shufps xmm1, xmm1, 0xe1
addps xmm2, xmm0
addps xmm3, xmm1
movsd xmm1, qword [eax + 0x3c]
shufps xmm2, xmm2, 0xe1
addps xmm2, xmm1
addps xmm3, xmm1
movaps xmm1, xmm3
movaps xmm0, xmm2
jmp 0x40bc80
cmp eax, 0xffffffff
je 0x40be7d
mov ecx, dword [esp + 0x28]
add ecx, 2
cmp ecx, dword [esp + 0x58]
mov dword [esp + 0x28], ecx
ja 0x40be7d
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ecx + eax]
jmp 0x40be23
cmp ecx, 1
jne 0x40bd2a
cmp byte [eax + 0x54], 0
jne 0x40c5ae
movups xmm4, xmmword [eax + 0x38]
movss xmm3, dword [eax + 0x2c]
movsd xmm1, qword [eax + 0x30]
movlhps xmm3, xmm4
mulps xmm0, xmm1
shufps xmm3, xmm4, 0xe2
mulps xmm2, xmm3
addps xmm2, xmm0
movsd xmm0, qword [eax + 0x3c]
shufps xmm2, xmm2, 0xe1
addps xmm0, xmm2
movsd xmm1, qword [eax + 0x44]
movaps xmm2, xmm0
movaps xmm3, xmm0
mov ecx, dword [esp + 0x104]
movss dword [esp + 4], xmm0
minps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm3, xmm1
andnps xmm1, xmm2
movaps xmm2, xmm0
orps xmm1, xmm3
movaps xmm3, xmm0
movlps qword [eax + 0x44], xmm1
movsd xmm1, qword [eax + 0x4c]
maxps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm3, xmm1
andnps xmm1, xmm2
orps xmm1, xmm3
movlps qword [eax + 0x4c], xmm1
movaps xmm1, xmm0
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x28]
shufps xmm1, xmm0, 0x55
movss dword [esp + 8], xmm1
mov dword [esp], eax
call dword [ecx + 0x10]
jmp 0x40bd23
mov dword [eax + 0xc], 1
movlps qword [eax + 0x10], xmm0
jmp 0x40c313