Function at 0x100243f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
mov edx, dword [ebp + 8]
test edx, edx
jne 0x10024514
vmovss xmm0, dword [edi + 0x1f4]
vxorps xmm1, xmm1, xmm1
vcomiss xmm0, xmm1
jbe 0x100244d4
vmovss xmm0, dword [edi + 0x1ec]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100244d4
vmovss xmm0, dword [edi + 0x38]
vmovss xmm3, dword [edi + 0x40]
vmovss xmm1, dword [edi + 0x3c]
vmovss dword [ebp - 0x14], xmm0
vmulss xmm0, xmm0, xmm0
vfmadd132ss xmm1, xmm0, xmm1
vmovaps xmm0, xmm3
vfmadd213ss xmm0, xmm3, xmm1
vmovss dword [ebp + 8], xmm3
call fcn.1001f890
vmovaps xmm2, xmm0
vcomiss xmm2, dword [0x100f412c]
jbe 0x100244d0
test byte [edi + 0x1c], 6
vmovss xmm1, dword [0x100f439c]
je 0x1002448a
vmovss xmm1, dword [0x100f4340]
jmp 0x100244a5
mov eax, dword [0x101306dc]
add eax, 0xffffffca
xor eax, 0xf0b73a53
cmp byte [eax + ebx], 0
je 0x100244a5
vmovss xmm1, dword [0x100f4370]
vmulss xmm0, xmm1, dword [edi + 0x1ec]
vdivss xmm1, xmm0, xmm2
vmulss xmm0, xmm1, dword [edi + 0x3c]
vmovss dword [edi + 0x3c], xmm0
vmulss xmm0, xmm1, dword [ebp + 8]
vmovss dword [edi + 0x40], xmm0
vmulss xmm0, xmm1, dword [ebp - 0x14]
vxorps xmm1, xmm1, xmm1
jmp 0x100244e2
vxorps xmm1, xmm1, xmm1
vmovss dword [edi + 0x40], xmm1
vmovss dword [edi + 0x3c], xmm1
vxorps xmm0, xmm0, xmm0
vmovss dword [edi + 0x38], xmm0
test byte [edi + 0x1c], 1
je 0x100244f2
vmovss dword [edi + 0x40], xmm1
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3b4], eax
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x3b8], eax
mov eax, dword [edi + 0x40]
mov dword [edi + 0x3bc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x101306c4]
add eax, 0xffffffd0
xor eax, 0xf0b73a4d
test byte [eax + ebx], 8
jne 0x10024b35
mov ecx, dword [0x1013081c]
add ecx, 0xffffff7a
xor ecx, 0xf0b73aa3
mov al, byte [ecx + ebx]
cmp al, byte [ecx + ebx + 1]
jne 0x10024b35
test byte [edi + 0x1c], 1
lea eax, [edx + 0x1c]
je 0x1002455f
test byte [eax], 1
je 0x1002455f
xor cl, cl
mov byte [ebp + 0xb], cl
jmp 0x10024563
mov byte [ebp + 0xb], 1
cmp dword [edi + 0xc], 1
lea ecx, [edi + 0xc]
jle 0x10024825
lea esi, [edi + 0x38]
vxorps xmm1, xmm1, xmm1
vmovss dword [esi + 8], xmm1
vmovss dword [esi + 4], xmm1
vmovss dword [esi], xmm1
vmovss xmm0, dword [edi + 0x20]
vsubss xmm6, xmm0, dword [edx + 0x20]
vmovss xmm0, dword [edi + 0x24]
vsubss xmm7, xmm0, dword [edx + 0x24]
vmovss xmm0, dword [edi + 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
vsubss xmm5, xmm0, dword [edx + 0x28]
mov edx, ecx
test al, 1
jne 0x100245f6
mov eax, dword [edi + 0x1c]
lea esi, [edi + 0x38]
test al, 1
jne 0x100245f4
mov ecx, dword [ebp - 0x14]
lea esi, [edi + 0x38]
and eax, 2
and ecx, 2
cmp ecx, eax
je 0x100245f6
test eax, eax
je 0x100245e0
vmovss xmm0, dword [0x100f42bc]
vsubss xmm5, xmm5, xmm0
lea edx, [edi + 0xc]
lea esi, [edi + 0x38]
jmp 0x100245f6
vmovss xmm0, dword [0x100f4420]
vsubss xmm5, xmm5, xmm0
lea edx, [edi + 0xc]
lea esi, [edi + 0x38]
jmp 0x100245f6
mov edx, ecx
vmulss xmm0, xmm7, xmm7
vmovaps xmm4, xmm6
vfmadd213ss xmm4, xmm6, xmm0
vcomiss xmm4, xmm1
vxorps xmm2, xmm2, xmm2
vmovss dword [ebp - 8], xmm2
vxorps xmm3, xmm3, xmm3
jbe 0x1002466a
vmovss xmm0, dword [0x100f43e4]
vcomiss xmm0, xmm4
vmovss dword [ebp - 8], xmm2
jbe 0x1002466a
mov eax, dword [0x101304dc]
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, dword [edx]
vmulss xmm0, xmm1, dword [eax + 0x20]
vmovss xmm1, dword [0x100f41dc]
vdivss xmm0, xmm1, xmm0
vmulss xmm1, xmm6, xmm0
vmulss xmm2, xmm5, xmm0
vmulss xmm3, xmm7, xmm0
vmovss dword [esi], xmm1
vmovss dword [esi + 4], xmm3
vmovss dword [esi + 8], xmm2
vmovss dword [ebp - 8], xmm2
vxorps xmm1, xmm1, xmm1
vmovss xmm4, dword [esi]
vmovss dword [ebp - 0x14], xmm4
fld dword [ebp - 0x14]
fstp dword [ebp - 0x14]
vmovss xmm0, dword [ebp - 0x14]
vucomiss xmm0, xmm0
vmovss dword [ebp - 0x10], xmm3
setp al
cmp al, 1
je 0x100246c9
fld dword [ebp - 0x10]
fstp dword [ebp - 0x14]
vmovss xmm0, dword [ebp - 0x14]
vucomiss xmm0, xmm0
setp al
cmp al, 1
je 0x100246c9
fld dword [ebp - 8]
fstp dword [ebp - 8]
vmovss xmm0, dword [ebp - 8]
vucomiss xmm0, xmm0
vmovss dword [ebp - 0xc], xmm4
setp al
vmovss dword [ebp - 0x10], xmm3
vmovss dword [ebp - 0x14], xmm2
cmp al, 1
jne 0x100246e6
vmovss dword [esi + 8], xmm1
vmovss dword [esi + 4], xmm1
vmovss dword [esi], xmm1
vmovss dword [ebp - 0xc], xmm1
vmovss dword [ebp - 0x10], xmm1
vmovss dword [ebp - 0x14], xmm1
fld dword [ebp - 0xc]
push ecx
fstp dword [esp]
call fcn.100c45e9
add esp, 4
cmp ax, 1
je 0x10024725
fld dword [ebp - 0x10]
push ecx
fstp dword [esp]
call fcn.100c45e9
add esp, 4
cmp ax, 1
je 0x10024725
fld dword [ebp - 0x14]
push ecx
fstp dword [esp]
call fcn.100c45e9
add esp, 4
cmp ax, 1
jne 0x10024737
vxorps xmm0, xmm0, xmm0
vmovss dword [esi + 8], xmm0
vmovss dword [esi + 4], xmm0
vmovss dword [esi], xmm0
mov eax, dword [edi + 0x1c]
mov cl, byte [ebp + 0xb]
and eax, 1
test cl, cl
je 0x100247f3
test eax, eax
je 0x100247dd
mov ecx, dword [0x10130560]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jne 0x100247dd
mov eax, dword [0x1013073c]
vmovss xmm1, dword [edi + 0x38]
vmovss xmm2, dword [edi + 0x3c]
add eax, 0xffffffb2
xor eax, 0xf0b73a6b
vmulss xmm1, xmm1, xmm1
vfmadd213ss xmm2, xmm2, xmm1
vmovss xmm0, dword [eax + ebx]
vmulss xmm0, xmm0, dword [0x100f41e0]
vmovss dword [ebp - 0x14], xmm0
vmovss xmm0, dword [edi + 0x40]
vfmadd213ss xmm0, xmm0, xmm2
call fcn.1001f890
vmovaps xmm1, xmm0
vmovss xmm0, dword [ebp - 0x14]
vcomiss xmm0, dword [0x100f40d0]
jbe 0x100247dd
vcomiss xmm1, xmm0
jbe 0x100247dd
vdivss xmm1, xmm0, xmm1
vmulss xmm0, xmm1, dword [edi + 0x38]
vmovss dword [edi + 0x38], xmm0
vmulss xmm0, xmm1, dword [edi + 0x3c]
vmovss dword [edi + 0x3c], xmm0
vmulss xmm0, xmm1, dword [edi + 0x40]
vmovss dword [edi + 0x40], xmm0
mov ecx, dword [0x1013055c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
fstp dword [edi + 0x40]
jmp 0x10024825
test eax, eax
jne 0x10024828
mov ecx, dword [0x10130558]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov eax, dword [0x101304dc]
fstp dword [ebp - 0x14]
vmovss xmm1, dword [ebp - 0x14]
vmovss xmm0, dword [eax + 0x20]
vfnmadd213ss xmm1, xmm0, dword [edi + 0x40]
vmovss dword [edi + 0x40], xmm1
mov cl, byte [ebp + 0xb]
cmp byte [edi + 0x3f0], 0
vmovss xmm1, dword [edi + 0x38]
vmovss dword [edi + 0x3b4], xmm1
vmovss xmm0, dword [edi + 0x3c]
vmovss dword [edi + 0x3b8], xmm0
mov eax, dword [edi + 0x40]
mov dword [edi + 0x3bc], eax
jne 0x10024a35
vmulss xmm1, xmm1, xmm1
vfmadd213ss xmm0, xmm0, xmm1
call fcn.1001f890
vxorps xmm2, xmm2, xmm2
vcomiss xmm0, xmm2
jbe 0x10024a51
test byte [edi + 0x1c], 1
je 0x10024a51
test cl, cl
jne 0x10024a51
vmovq xmm0, qword [edi + 0x3b4]
vmovq qword [ebp - 0x20], xmm0
vmovss xmm0, dword [ebp - 0x1c]
vmovss xmm1, dword [ebp - 0x20]
vmulss xmm0, xmm0, xmm0
vfmadd132ss xmm1, xmm0, xmm1
mov dword [ebp - 0x18], eax
vmovss xmm0, dword [ebp - 0x18]
vfmadd213ss xmm0, xmm0, xmm1
call fcn.1001f890
mov ecx, dword [0x10130480]
mov eax, dword [0x10130778]
vmovss xmm1, dword [0x100f41dc]
vaddss xmm0, xmm0, dword [0x100f40e0]
mov edx, dword [ecx]
add eax, 0xffffffa3
push ecx
xor eax, 0xf0b73a7a
vdivss xmm0, xmm1, xmm0
mov esi, dword [edx + 0x10]
mov edx, esp
vmulss xmm1, xmm0, dword [ebp - 0x20]
vmulss xmm4, xmm0, dword [ebp - 0x1c]
mov eax, dword [eax + ebx]
vmovss dword [ebp + 8], xmm1
vmovss dword [ebp - 8], xmm4
mov dword [edx], eax
call esi
vmovss xmm0, dword [0x100f439c]
mov ecx, eax
vmovss dword [ebp - 0x14], xmm0
test ecx, ecx
je 0x10024934
mov eax, dword [ecx]
mov eax, dword [eax + 0x6b4]
call eax
fstp dword [ebp - 0x14]
vmovss xmm0, dword [ebp - 0x14]
vmaxss xmm0, xmm0, dword [0x100f40ec]
vmovss dword [ebp - 0x14], xmm0
vmovss xmm0, dword [ebp - 8]
vmulss xmm1, xmm0, xmm0
vmovss xmm0, dword [ebp + 8]
vfmadd132ss xmm0, xmm1, xmm0
call fcn.1001f890
mov eax, dword [0x10130708]
vmovss xmm3, dword [ebp - 0x14]
vmulss xmm2, xmm3, dword [0x100f4194]
vmulss xmm6, xmm3, dword [0x100f4174]
vmovss xmm7, dword [0x100f41dc]
vmovss xmm5, dword [edi + 0x304]
add eax, 0xffffffbf
vmovaps xmm4, xmm0
xor eax, 0xf0b73a5e
vsubss xmm0, xmm6, xmm2
vfmadd231ss xmm2, xmm0, dword [eax + ebx]
vsubss xmm0, xmm7, dword [edi + 0x1b4]
vmaxss xmm1, xmm0, dword [0x100f4198]
vmovss xmm0, dword [edi + 0x1ec]
vdivss xmm0, xmm0, xmm1
vmulss xmm1, xmm2, xmm0
vxorps xmm2, xmm2, xmm2
vcomiss xmm5, xmm2
jbe 0x100249e9
vcomiss xmm7, xmm5
jbe 0x100249e9
vmovss xmm0, dword [0x100f4180]
vfnmadd213ss xmm0, xmm5, xmm0
vmulss xmm0, xmm0, xmm3
vmulss xmm1, xmm0, dword [ebp + 8]
vmulss xmm0, xmm0, dword [ebp - 8]
vmovss dword [edi + 0x3b4], xmm1
vmovss dword [edi + 0x3b8], xmm0
jmp 0x10024a49
vmovss xmm0, dword [0x100f41d0]
vcomiss xmm0, xmm1
ja 0x10024a19
vcomiss xmm1, xmm4
ja 0x10024a19
test byte [edi + 0x1c], 2
je 0x10024a07
vmovaps xmm3, xmm6
vcomiss xmm4, xmm3
jbe 0x10024a51
vmulss xmm1, xmm3, dword [ebp + 8]
vmulss xmm0, xmm3, dword [ebp - 8]
jmp 0x100249d7
vmulss xmm0, xmm1, dword [ebp + 8]
vmovss dword [edi + 0x3b4], xmm0
vmulss xmm0, xmm1, dword [ebp - 8]
vmovss dword [edi + 0x3b8], xmm0
jmp 0x10024a49
vxorps xmm2, xmm2, xmm2
vmovss dword [edi + 0x3b8], xmm2
vmovss dword [edi + 0x3b4], xmm2
vmovss dword [edi + 0x3bc], xmm2
vmovss xmm3, dword [edi + 0x3b4]
vmovss dword [ebp + 8], xmm3
fld dword [ebp + 8]
fstp dword [ebp + 8]
vmovss xmm0, dword [ebp + 8]
vucomiss xmm0, xmm0
setp al
cmp al, 1
je 0x10024ac9
vmovss xmm1, dword [edi + 0x3b8]
vmovss dword [ebp + 8], xmm1
fld dword [ebp + 8]
fstp dword [ebp + 8]
vmovss xmm0, dword [ebp + 8]
vucomiss xmm0, xmm0
setp al
cmp al, 1
je 0x10024ac9
vmovss xmm0, dword [edi + 0x3bc]
vmovss dword [ebp - 0xc], xmm0
fld dword [ebp - 0xc]
fstp dword [ebp - 0xc]
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [ebp - 0xc]
vucomiss xmm0, xmm0
vmovss dword [ebp + 8], xmm3
setp al
vmovss dword [ebp - 0x14], xmm1
cmp al, 1
jne 0x10024af0
vmovss dword [edi + 0x3bc], xmm2
vmovss dword [edi + 0x3b8], xmm2
vmovss dword [edi + 0x3b4], xmm2
vmovss dword [ebp + 8], xmm2
vmovss dword [ebp - 0x14], xmm2
vmovss dword [ebp - 0x10], xmm2
fld dword [ebp + 8]
push ecx
fstp dword [esp]
call fcn.100c45e9
add esp, 4
cmp ax, 1
je 0x10024b2f
fld dword [ebp - 0x14]
push ecx
fstp dword [esp]
call fcn.100c45e9
add esp, 4
cmp ax, 1
je 0x10024b2f
fld dword [ebp - 0x10]
push ecx
fstp dword [esp]
call fcn.100c45e9
add esp, 4
cmp ax, 1
jne 0x10024b60
vxorps xmm0, xmm0, xmm0
jmp 0x10024b48
vxorps xmm0, xmm0, xmm0
vmovss dword [edi + 0x40], xmm0
vmovss dword [edi + 0x3c], xmm0
vmovss dword [edi + 0x38], xmm0
vmovss dword [edi + 0x3b4], xmm0
vmovss dword [edi + 0x3b8], xmm0
vmovss dword [edi + 0x3bc], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret