Function at 0x401f40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
movq mm2, mm0
sqrtss xmm2, xmm2
movq mm4, mm1
mulps xmm1, xmm2
movq mm2, mm0
movss xmm0, xmm2
divps xmm1, xmm2
subps xmm2, xmm1
subps xmm2, xmm1
rsqrtps xmm0, xmm0
shufps xmm2, xmm2, 0x55
movaps xmm3, xmm2
mulps xmm1, xmm0
movaps xmm1, xmm0
subps xmm0, xmm1
movss xmm0, xmm2
sqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
mulps xmm1, xmm2
movq mm2, mm0
rsqrtps xmm0, xmm0
sqrtss xmm2, xmm2
subps xmm2, xmm1
mulps xmm0, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
haddps xmm0, xmm0
mulps xmm0, xmm0
subps xmm2, xmm1
subps xmm2, xmm1
mulps xmm2, xmm0
mov dword [esp], 0x208
call fcn.0040c200
mov dword [ebp - 0x24], eax
call fcn.0040b044
movq mm2, mm0
movq mm4, mm1
shufps xmm2, xmm2, 0
mulps xmm2, xmm0
mulps xmm1, xmm2
subps xmm2, xmm1
shufps xmm2, xmm2, 0
addss xmm2, xmm0
rsqrtps xmm0, xmm0
subps xmm0, xmm1
shufps xmm2, xmm2, 0
addps xmm2, xmm0
mulps xmm2, xmm0
rsqrtss xmm2, xmm2
mulps xmm1, xmm0
haddps xmm0, xmm0
test eax, eax
je 0x4028fd
cmp word [eax], 0x22
je 0x402841
movzx edx, word [eax]
mov edi, dword [ebp - 0x24]
cmp dx, 0x20
mov dword [edi], eax
jbe 0x402024
add eax, 2
movzx edx, word [eax]
cmp dx, 0x20
ja 0x402018
mulps xmm1, xmm2
rsqrtss xmm2, xmm2
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
movq mm3, mm1
movq mm2, mm0
subps xmm2, xmm1
subps xmm2, xmm1
subps xmm2, xmm1
movss xmm0, xmm2
rsqrtps xmm0, xmm0
shufps xmm2, xmm2, 0
mulps xmm2, xmm0
subps xmm2, xmm1
addss xmm2, xmm0
mulps xmm1, xmm2
haddps xmm0, xmm0
test dx, dx
jne 0x4024b0
test dx, dx
mov ebx, dword [ebp - 0x24]
je 0x40214d
sub edx, 1
cmp dx, 0x1f
ja 0x4024a8
nop
mulps xmm1, xmm2
movss xmm0, xmm2
subps xmm2, xmm1
addss xmm2, xmm0
mulps xmm3, xmm1
mulps xmm0, xmm0
movq mm3, mm1
rsqrtps xmm0, xmm0
mulps xmm1, xmm2
movq mm2, mm0
subps xmm2, xmm1
subps xmm2, xmm1
addps xmm2, xmm0
movq mm2, mm0
sqrtss xmm2, xmm2
movhlps xmm2, xmm0
movq mm4, mm1
movq mm4, mm1
sqrtss xmm2, xmm2
mulps xmm3, xmm1
add eax, 2
movzx edx, word [eax]
lea ecx, [edx - 1]
cmp cx, 0x1f
jbe 0x402080
test dx, dx
je 0x4027f9
cmp dx, 0x20
mov dword [ebx + 4], eax
jbe 0x4020ed
add eax, 2
movzx edx, word [eax]
cmp dx, 0x20
ja 0x4020e1
movaps xmm3, xmm2
movq mm4, mm1
movq mm2, mm0
subps xmm0, xmm1
movaps xmm1, xmm0
mulps xmm3, xmm1
movaps xmm3, xmm2
movq mm3, mm1
movss xmm0, xmm2
subps xmm2, xmm1
movq mm4, mm1
divps xmm1, xmm2
subps xmm0, xmm1
movaps xmm1, xmm0
subps xmm0, xmm1
movq mm4, mm1
subps xmm2, xmm1
mulps xmm1, xmm2
mulps xmm1, xmm0
mulps xmm3, xmm1
movq mm3, mm1
shufps xmm2, xmm2, 0
test dx, dx
je 0x402141
mov word [eax], 0
add eax, 2
movzx edx, word [eax]
add ebx, 4
test dx, dx
jne 0x402071
mov ebx, dword [ebp - 0x24]
add ebx, 4
subps xmm2, xmm1
mulps xmm0, xmm0
movaps xmm3, xmm2
shufps xmm2, xmm2, 0
rsqrtps xmm0, xmm0
rsqrtss xmm2, xmm2
movaps xmm1, xmm0
movss xmm0, xmm2
rsqrtps xmm0, xmm0
movq mm4, mm1
mulps xmm3, xmm1
movaps xmm1, xmm0
rsqrtss xmm2, xmm2
mulps xmm0, xmm0
haddps xmm0, xmm0
mulps xmm1, xmm0
movq mm2, mm0
addps xmm2, xmm0
subps xmm0, xmm1
rsqrtss xmm2, xmm2
movq mm2, mm0
subps xmm0, xmm1
addss xmm2, xmm0
mulps xmm3, xmm1
movaps xmm1, xmm0
subps xmm0, xmm1
movss xmm0, xmm2
movhlps xmm2, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
addps xmm2, xmm0
haddps xmm0, xmm0
rsqrtss xmm2, xmm2
mulps xmm2, xmm0
haddps xmm0, xmm0
subps xmm0, xmm1
movss xmm0, xmm2
movss xmm0, xmm2
mulps xmm1, xmm0
rsqrtss xmm2, xmm2
rsqrtss xmm2, xmm2
subps xmm2, xmm1
divps xmm1, xmm2
mulps xmm0, xmm0
addss xmm2, xmm0
mulps xmm2, xmm0
movss xmm0, xmm2
movhlps xmm2, xmm0
subps xmm0, xmm1
movhlps xmm2, xmm0
addss xmm2, xmm0
movhlps xmm2, xmm0
divps xmm1, xmm2
subps xmm0, xmm1
rsqrtss xmm2, xmm2
movq mm3, mm1
mulps xmm1, xmm0
movq mm3, mm1
movq mm2, mm0
haddps xmm0, xmm0
movhlps xmm2, xmm0
movss xmm0, xmm2
mulps xmm2, xmm0
movq mm3, mm1
movss xmm0, xmm2
movss xmm0, xmm2
movq mm2, mm0
divps xmm1, xmm2
subps xmm2, xmm1
addss xmm2, xmm0
subps xmm0, xmm1
movaps xmm1, xmm0
subps xmm0, xmm1
movaps xmm1, xmm0
movq mm2, mm0
addps xmm2, xmm0
shufps xmm2, xmm2, 0
mulps xmm3, xmm1
rsqrtss xmm2, xmm2
mulps xmm0, xmm0
movaps xmm1, xmm0
movq mm3, mm1
mulps xmm1, xmm0
mulps xmm0, xmm0
rsqrtss xmm2, xmm2
mulps xmm1, xmm0
movhlps xmm2, xmm0
movq mm4, mm1
movhlps xmm2, xmm0
movq mm3, mm1
subps xmm2, xmm1
haddps xmm0, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0x55
rsqrtps xmm0, xmm0
movhlps xmm2, xmm0
movss xmm0, xmm2
movq mm4, mm1
addps xmm2, xmm0
haddps xmm0, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0
subps xmm0, xmm1
mov eax, dword [ebx]
cmp word [eax], 0
je 0x4022bc
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x4022b0
mulps xmm2, xmm0
divps xmm1, xmm2
movss xmm0, xmm2
addps xmm2, xmm0
movaps xmm1, xmm0
shufps xmm2, xmm2, 0x55
mulps xmm3, xmm1
movaps xmm1, xmm0
subps xmm0, xmm1
mulps xmm1, xmm0
movss xmm0, xmm2
subps xmm2, xmm1
rsqrtss xmm2, xmm2
haddps xmm0, xmm0
sqrtss xmm2, xmm2
movq mm3, mm1
movq mm3, mm1
mulps xmm1, xmm0
movss xmm0, xmm2
addps xmm2, xmm0
mulps xmm1, xmm2
movq mm2, mm0
mov eax, dword [0x40d058]
mov dword [ebp - 0x20], eax
subps xmm0, xmm1
shufps xmm2, xmm2, 0x55
mulps xmm2, xmm0
subps xmm0, xmm1
addps xmm2, xmm0
movq mm2, mm0
haddps xmm0, xmm0
subps xmm2, xmm1
subps xmm2, xmm1
divps xmm1, xmm2
haddps xmm0, xmm0
shl eax, 3
mov dword [esp], eax
call fcn.0040c200
mov ebx, eax
addss xmm2, xmm0
subps xmm2, xmm1
mulps xmm0, xmm0
addps xmm2, xmm0
movaps xmm1, xmm0
addps xmm2, xmm0
mulps xmm1, xmm2
movhlps xmm2, xmm0
haddps xmm0, xmm0
movhlps xmm2, xmm0
shufps xmm2, xmm2, 0x55
mov edx, dword [ebp - 0x20]
test edx, edx
jle 0x4024c2
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], eax
jmp 0x40243a
mov ebx, dword [ebp - 0x3c]
add dword [ebp - 0x3c], 1
shl ebx, 3
movq mm4, mm1
mulps xmm0, xmm0
mulps xmm1, xmm2
rsqrtps xmm0, xmm0
mulps xmm2, xmm0
mulps xmm1, xmm0
mulps xmm1, xmm0
rsqrtps xmm0, xmm0
sqrtss xmm2, xmm2
rsqrtps xmm0, xmm0
mov edx, ecx
mov eax, ecx
mov esi, dword [ebx + 0x40d040]
sar edx, 0x1f
idiv edi
mov edi, dword [ebp - 0x1c]
mov eax, edx
xor esi, eax
mov dword [edi + ecx*8], esi
mov eax, dword [ebx + 0x40d044]
sar edx, 0x1f
xor eax, edx
mov dword [edi + ecx*8 + 4], eax
subps xmm2, xmm1
addps xmm2, xmm0
rsqrtps xmm0, xmm0
rsqrtps xmm0, xmm0
movaps xmm3, xmm2
mulps xmm0, xmm0
divps xmm1, xmm2
mulps xmm1, xmm2
mulps xmm3, xmm1
mulps xmm0, xmm0
mulps xmm1, xmm0
addss xmm2, xmm0
subps xmm2, xmm1
mulps xmm0, xmm0
subps xmm2, xmm1
movq mm3, mm1
subps xmm2, xmm1
movhlps xmm2, xmm0
mulps xmm1, xmm2
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
mulps xmm2, xmm0
movss xmm0, xmm2
movq mm2, mm0
movq mm3, mm1
divps xmm1, xmm2
mulps xmm1, xmm2
movq mm4, mm1
sqrtss xmm2, xmm2
addps xmm2, xmm0
add ecx, 1
cmp dword [ebp - 0x20], ecx
je 0x4024c0
lea edi, [ecx + 8]
movaps xmm1, xmm0
mulps xmm1, xmm2
movss xmm0, xmm2
divps xmm1, xmm2
rsqrtss xmm2, xmm2
movhlps xmm2, xmm0
addps xmm2, xmm0
movq mm2, mm0
movq mm2, mm0
haddps xmm0, xmm0
rsqrtss xmm2, xmm2
mulps xmm1, xmm0
addps xmm2, xmm0
rsqrtss xmm2, xmm2
addps xmm2, xmm0
movq mm3, mm1
movaps xmm3, xmm2
movaps xmm3, xmm2
movhlps xmm2, xmm0
movq mm3, mm1
movss xmm0, xmm2
movss xmm0, xmm2
movaps xmm1, xmm0
shufps xmm2, xmm2, 0
cmp dword [ebp - 0x3c], 2
jne 0x402380
mov dword [ebp - 0x3c], 5
mov ebx, 0x20
jmp 0x40238a
movzx edx, word [eax]
jmp 0x4020d8
mov word [eax], 0
add eax, 2
movzx edx, word [eax]
jmp 0x402065
mov ebx, edi
addss xmm2, xmm0
movhlps xmm2, xmm0
rsqrtss xmm2, xmm2
movq mm3, mm1
movaps xmm3, xmm2
movaps xmm3, xmm2
mulps xmm1, xmm0
rsqrtss xmm2, xmm2
rsqrtps xmm0, xmm0
haddps xmm0, xmm0
sqrtss xmm2, xmm2
movss xmm0, xmm2
rsqrtss xmm2, xmm2
mulps xmm1, xmm0
movaps xmm3, xmm2
movq mm4, mm1
addss xmm2, xmm0
addss xmm2, xmm0
shufps xmm2, xmm2, 0x55
addss xmm2, xmm0
movq mm2, mm0
mov esi, dword [ebp - 0x20]
shl esi, 2
mov dword [esp], esi
call fcn.0040c200
test esi, esi
jle 0x40252e
xor edx, edx
movzx ecx, byte [ebx + edx*2]
mov byte [eax + edx], cl
add edx, 1
cmp edx, esi
jne 0x402520
haddps xmm0, xmm0
shufps xmm2, xmm2, 0
addss xmm2, xmm0
divps xmm1, xmm2
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
addps xmm2, xmm0
shufps xmm2, xmm2, 0x55
movq mm3, mm1
rsqrtps xmm0, xmm0
movaps xmm3, xmm2
mulps xmm2, xmm0
mov dword [esp], eax
call fcn.004034c0
subps xmm0, xmm1
shufps xmm2, xmm2, 0x55
sqrtss xmm2, xmm2
movq mm2, mm0
movss xmm0, xmm2
subps xmm0, xmm1
movq mm4, mm1
movq mm3, mm1
movq mm2, mm0
movaps xmm3, xmm2
mulps xmm1, xmm2
shufps xmm2, xmm2, 0x55
test eax, eax
je 0x4027ed
movss xmm0, xmm2
subps xmm2, xmm1
shufps xmm2, xmm2, 0x55
movaps xmm1, xmm0
sqrtss xmm2, xmm2
subps xmm2, xmm1
mulps xmm0, xmm0
shufps xmm2, xmm2, 0
subps xmm0, xmm1
mulps xmm3, xmm1
subps xmm2, xmm1
rsqrtss xmm2, xmm2
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00402fb0
mov edi, eax
subps xmm2, xmm1
rsqrtss xmm2, xmm2
movq mm4, mm1
rsqrtss xmm2, xmm2
addss xmm2, xmm0
movaps xmm3, xmm2
mulps xmm2, xmm0
mulps xmm1, xmm0
mulps xmm1, xmm2
addss xmm2, xmm0
shufps xmm2, xmm2, 0x55
movss xmm0, xmm2
subps xmm2, xmm1
addps xmm2, xmm0
mulps xmm1, xmm2
movaps xmm3, xmm2
rsqrtps xmm0, xmm0
movhlps xmm2, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm2
rsqrtss xmm2, xmm2
mulps xmm2, xmm0
movaps xmm1, xmm0
mulps xmm3, xmm1
movq mm3, mm1
subps xmm2, xmm1
movss xmm0, xmm2
movzx esi, byte [section..data]
shufps xmm2, xmm2, 0
divps xmm1, xmm2
movss xmm0, xmm2
addps xmm2, xmm0
movhlps xmm2, xmm0
subps xmm2, xmm1
movq mm3, mm1
divps xmm1, xmm2
mulps xmm3, xmm1
mulps xmm3, xmm1
subps xmm2, xmm1
mulps xmm1, xmm2
subps xmm0, xmm1
movq mm3, mm1
movsx ebx, byte [0x40d001]
mulps xmm2, xmm0
mulps xmm1, xmm0
mulps xmm3, xmm1
subps xmm2, xmm1
addss xmm2, xmm0
haddps xmm0, xmm0
addss xmm2, xmm0
addps xmm2, xmm0
rsqrtss xmm2, xmm2
divps xmm1, xmm2
mulps xmm3, xmm1
movq mm2, mm0
mulps xmm2, xmm0
movhlps xmm2, xmm0
movhlps xmm2, xmm0
rsqrtss xmm2, xmm2
subps xmm2, xmm1
haddps xmm0, xmm0
mulps xmm0, xmm0
movq mm3, mm1
movhlps xmm2, xmm0
sqrtss xmm2, xmm2
movq mm2, mm0
haddps xmm0, xmm0
lea eax, [ebx + 1]
mov dword [esp], eax
call fcn.0040c200
subps xmm2, xmm1
subps xmm2, xmm1
sqrtss xmm2, xmm2
movaps xmm1, xmm0
haddps xmm0, xmm0
subps xmm2, xmm1
shufps xmm2, xmm2, 0x55
movhlps xmm2, xmm0
mulps xmm1, xmm0
mulps xmm0, xmm0
movaps xmm3, xmm2
movaps xmm1, xmm0
mulps xmm2, xmm0
mulps xmm1, xmm0
movss xmm0, xmm2
movq mm2, mm0
test ebx, ebx
je 0x40270c
mov ecx, eax
xor edx, edx
mov eax, esi
mov esi, ecx
mov ecx, eax
xor cl, byte [edx + 0x40d002]
mov byte [esi + edx], cl
add edx, 1
cmp ebx, edx
ja 0x4026f8
mov eax, esi
divps xmm1, xmm2
rsqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
haddps xmm0, xmm0
sqrtss xmm2, xmm2
movss xmm0, xmm2
shufps xmm2, xmm2, 0
mulps xmm3, xmm1
movq mm3, mm1
haddps xmm0, xmm0
movss xmm0, xmm2
movq mm4, mm1
mov byte [eax + ebx], 0
mulps xmm0, xmm0
subps xmm2, xmm1
mulps xmm0, xmm0
shufps xmm2, xmm2, 0x55
mulps xmm1, xmm2
rsqrtss xmm2, xmm2
mulps xmm0, xmm0
movq mm4, mm1
addss xmm2, xmm0
movaps xmm3, xmm2
haddps xmm0, xmm0
addss xmm2, xmm0
subps xmm0, xmm1
movss xmm0, xmm2
divps xmm1, xmm2
shufps xmm2, xmm2, 0
mulps xmm1, xmm2
shufps xmm2, xmm2, 0
rsqrtps xmm0, xmm0
shufps xmm2, xmm2, 0x55
subps xmm2, xmm1
test edi, edi
je 0x402795
mov dword [esp + 4], 0x4232e4
mov dword [esp], eax
call edi
divps xmm1, xmm2
movq mm3, mm1
shufps xmm2, xmm2, 0
movq mm2, mm0
movq mm2, mm0
mulps xmm1, xmm0
movaps xmm1, xmm0
mulps xmm0, xmm0
movq mm4, mm1
rsqrtps xmm0, xmm0
mulps xmm0, xmm0
divps xmm1, xmm2
movq mm3, mm1
addps xmm2, xmm0
addps xmm2, xmm0
shufps xmm2, xmm2, 0x55
shufps xmm2, xmm2, 0x55
rsqrtps xmm0, xmm0
addps xmm2, xmm0
subps xmm2, xmm1
mulps xmm0, xmm0
rsqrtss xmm2, xmm2
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4027ed
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call fcn.0040c1d0
add esp, 0x4c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 4
mulps xmm1, xmm0
divps xmm1, xmm2
movq mm4, mm1
subps xmm2, xmm1
movaps xmm1, xmm0
mulps xmm3, xmm1
mulps xmm0, xmm0
rsqrtss xmm2, xmm2
sqrtss xmm2, xmm2
mulps xmm2, xmm0
subps xmm2, xmm1
rsqrtss xmm2, xmm2
mulps xmm3, xmm1
mulps xmm0, xmm0
movq mm2, mm0
mulps xmm1, xmm0
addss xmm2, xmm0
movaps xmm1, xmm0
movq mm4, mm1
mov ebx, dword [ebp - 0x24]
add ebx, 4
jmp 0x402153
haddps xmm0, xmm0
mulps xmm1, xmm2
rsqrtss xmm2, xmm2
mulps xmm2, xmm0
movss xmm0, xmm2
movaps xmm3, xmm2
mulps xmm2, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0x55
mulps xmm0, xmm0
sqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
haddps xmm0, xmm0
mulps xmm2, xmm0
shufps xmm2, xmm2, 0x55
mulps xmm3, xmm1
subps xmm2, xmm1
movaps xmm1, xmm0
movq mm3, mm1
addss xmm2, xmm0
shufps xmm2, xmm2, 0
rsqrtps xmm0, xmm0
lea edx, [eax + 2]
movzx eax, word [eax + 2]
mov ecx, dword [ebp - 0x24]
cmp ax, 0x22
mov dword [ecx], edx
jne 0x4028dc
jmp 0x402969
addps xmm2, xmm0
mulps xmm1, xmm0
movq mm3, mm1
movaps xmm1, xmm0
mulps xmm2, xmm0
divps xmm1, xmm2
movaps xmm3, xmm2
movq mm2, mm0
divps xmm1, xmm2
sqrtss xmm2, xmm2
subps xmm2, xmm1
mulps xmm1, xmm2
mulps xmm2, xmm0
add edx, 2
movzx eax, word [edx]
cmp ax, 0x22
je 0x402969
test ax, ax
jne 0x4028a4
mov esi, dword [ebp - 0x24]
mov ebx, 4
mov dword [esp], esi
call fcn.0040c1d0
mov dword [ebp - 0x24], 0
jmp 0x402153
subps xmm2, xmm1
movq mm2, mm0
movhlps xmm2, xmm0
mulps xmm1, xmm0
movq mm3, mm1
movaps xmm3, xmm2
divps xmm1, xmm2
mulps xmm3, xmm1
rsqrtps xmm0, xmm0
movhlps xmm2, xmm0
divps xmm1, xmm2
subps xmm2, xmm1
movq mm3, mm1
shufps xmm2, xmm2, 0x55
movaps xmm3, xmm2
rsqrtss xmm2, xmm2
movaps xmm1, xmm0
subps xmm2, xmm1
movss xmm0, xmm2
movaps xmm1, xmm0
subps xmm0, xmm1
subps xmm2, xmm1
mov ecx, dword [ebp - 0x24]
mov ebx, 4
test ecx, ecx
je 0x402153
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call fcn.0040c1d0
mov dword [ebp - 0x24], 0
jmp 0x402153
test ax, ax
je 0x4028e1
mov word [edx], 0
lea eax, [edx + 2]
movq mm3, mm1
haddps xmm0, xmm0
movq mm3, mm1
haddps xmm0, xmm0
subps xmm0, xmm1
shufps xmm2, xmm2, 0
shufps xmm2, xmm2, 0x55
movaps xmm3, xmm2
subps xmm0, xmm1
shufps xmm2, xmm2, 0
rsqrtps xmm0, xmm0
mulps xmm0, xmm0
divps xmm1, xmm2
movzx edx, word [edx + 2]
jmp 0x402065