Function at 0x401f40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
shufps xmm2, xmm2, 0
addss xmm2, xmm0
divps xmm1, xmm2
addps xmm2, xmm0
shufps xmm2, xmm2, 0x55
shufps xmm2, xmm2, 0x55
movaps xmm1, xmm0
addss xmm2, xmm0
movq mm3, mm1
shufps xmm2, xmm2, 0
subps xmm2, xmm1
rsqrtss xmm2, xmm2
subps xmm0, xmm1
movq mm3, mm1
subps xmm2, xmm1
movaps xmm3, xmm2
subps xmm2, xmm1
shufps xmm2, xmm2, 0x55
mulps xmm3, xmm1
divps xmm1, xmm2
haddps xmm0, xmm0
movq mm3, mm1
haddps xmm0, xmm0
mulps xmm1, xmm2
mulps xmm1, xmm0
movq mm4, mm1
sqrtss xmm2, xmm2
rsqrtps xmm0, xmm0
addps xmm2, xmm0
mulps xmm2, xmm0
subps xmm0, xmm1
mov dword [esp], 0x208
call fcn.0040c250
mov dword [ebp - 0x24], eax
call fcn.0040b094
movq mm4, mm1
subps xmm0, xmm1
movhlps xmm2, xmm0
movaps xmm1, xmm0
movaps xmm1, xmm0
movq mm4, mm1
divps xmm1, xmm2
rsqrtss xmm2, xmm2
movss xmm0, xmm2
subps xmm2, xmm1
mulps xmm2, xmm0
rsqrtss xmm2, xmm2
movhlps xmm2, xmm0
mulps xmm2, xmm0
shufps xmm2, xmm2, 0x55
movq mm3, mm1
movq mm4, mm1
divps xmm1, xmm2
mulps xmm2, xmm0
divps xmm1, xmm2
divps xmm1, xmm2
movq mm4, mm1
subps xmm2, xmm1
test eax, eax
je 0x402937
cmp word [eax], 0x22
je 0x40285f
movzx edx, word [eax]
mov edi, dword [ebp - 0x24]
cmp dx, 0x20
mov dword [edi], eax
jbe 0x40203c
nop
add eax, 2
movzx edx, word [eax]
cmp dx, 0x20
ja 0x402030
rsqrtps xmm0, xmm0
mulps xmm2, xmm0
subps xmm2, xmm1
shufps xmm2, xmm2, 0
movaps xmm3, xmm2
mulps xmm3, xmm1
movq mm3, mm1
mulps xmm2, xmm0
movq mm2, mm0
mulps xmm1, xmm0
addss xmm2, xmm0
sqrtss xmm2, xmm2
mulps xmm2, xmm0
addps xmm2, xmm0
mulps xmm1, xmm0
subps xmm2, xmm1
movq mm2, mm0
haddps xmm0, xmm0
mulps xmm2, xmm0
mulps xmm2, xmm0
addps xmm2, xmm0
test dx, dx
jne 0x4024d4
test dx, dx
mov ebx, dword [ebp - 0x24]
je 0x402150
sub edx, 1
cmp dx, 0x1f
ja 0x4024cc
movq mm4, mm1
mulps xmm3, xmm1
shufps xmm2, xmm2, 0
subps xmm2, xmm1
movss xmm0, xmm2
subps xmm2, xmm1
movhlps xmm2, xmm0
mulps xmm3, xmm1
movss xmm0, xmm2
shufps xmm2, xmm2, 0
add eax, 2
movzx edx, word [eax]
lea ecx, [edx - 1]
cmp cx, 0x1f
jbe 0x4020a1
test dx, dx
je 0x402830
cmp dx, 0x20
mov dword [ebx + 4], eax
jbe 0x4020f0
add eax, 2
movzx edx, word [eax]
cmp dx, 0x20
ja 0x4020e4
rsqrtss xmm2, xmm2
movq mm3, mm1
mulps xmm1, xmm0
rsqrtss xmm2, xmm2
mulps xmm0, xmm0
movq mm2, mm0
subps xmm2, xmm1
shufps xmm2, xmm2, 0x55
shufps xmm2, xmm2, 0x55
shufps xmm2, xmm2, 0
subps xmm0, xmm1
haddps xmm0, xmm0
subps xmm0, xmm1
addps xmm2, xmm0
movaps xmm1, xmm0
movss xmm0, xmm2
movaps xmm1, xmm0
addss xmm2, xmm0
movhlps xmm2, xmm0
mulps xmm1, xmm2
test dx, dx
je 0x402144
mov word [eax], 0
add eax, 2
movzx edx, word [eax]
add ebx, 4
test dx, dx
jne 0x402094
mov ebx, dword [ebp - 0x24]
add ebx, 4
shufps xmm2, xmm2, 0
mulps xmm1, xmm2
movhlps xmm2, xmm0
mulps xmm1, xmm2
movq mm3, mm1
mulps xmm3, xmm1
mulps xmm3, xmm1
movq mm3, mm1
mulps xmm3, xmm1
shufps xmm2, xmm2, 0x55
shufps xmm2, xmm2, 0x55
subps xmm0, xmm1
movss xmm0, xmm2
addss xmm2, xmm0
mulps xmm1, xmm0
addps xmm2, xmm0
movaps xmm3, xmm2
sqrtss xmm2, xmm2
subps xmm0, xmm1
addps xmm2, xmm0
mulps xmm3, xmm1
mulps xmm0, xmm0
rsqrtps xmm0, xmm0
movq mm4, mm1
mulps xmm1, xmm2
shufps xmm2, xmm2, 0x55
mulps xmm0, xmm0
rsqrtps xmm0, xmm0
movhlps xmm2, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0
divps xmm1, xmm2
mulps xmm3, xmm1
mulps xmm1, xmm0
movaps xmm3, xmm2
movq mm3, mm1
sqrtss xmm2, xmm2
subps xmm2, xmm1
rsqrtps xmm0, xmm0
shufps xmm2, xmm2, 0
movaps xmm3, xmm2
movq mm3, mm1
movhlps xmm2, xmm0
rsqrtss xmm2, xmm2
movq mm2, mm0
divps xmm1, xmm2
haddps xmm0, xmm0
addss xmm2, xmm0
shufps xmm2, xmm2, 0x55
addps xmm2, xmm0
addss xmm2, xmm0
movhlps xmm2, xmm0
movq mm2, mm0
movss xmm0, xmm2
mulps xmm1, xmm2
divps xmm1, xmm2
shufps xmm2, xmm2, 0x55
subps xmm0, xmm1
haddps xmm0, xmm0
movaps xmm3, xmm2
addss xmm2, xmm0
divps xmm1, xmm2
mulps xmm2, xmm0
movaps xmm1, xmm0
addss xmm2, xmm0
mulps xmm0, xmm0
subps xmm2, xmm1
sqrtss xmm2, xmm2
subps xmm2, xmm1
shufps xmm2, xmm2, 0
subps xmm2, xmm1
movq mm3, mm1
movq mm4, mm1
sqrtss xmm2, xmm2
mulps xmm1, xmm2
shufps xmm2, xmm2, 0
movq mm3, mm1
movaps xmm1, xmm0
movq mm4, mm1
shufps xmm2, xmm2, 0
movss xmm0, xmm2
subps xmm2, xmm1
rsqrtss xmm2, xmm2
movq mm2, mm0
movaps xmm1, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
movq mm4, mm1
movaps xmm3, xmm2
movaps xmm1, xmm0
divps xmm1, xmm2
addss xmm2, xmm0
movss xmm0, xmm2
shufps xmm2, xmm2, 0x55
mulps xmm3, xmm1
mov eax, dword [ebx]
cmp word [eax], 0
je 0x4022ac
lea esi, [esi]
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x4022a0
shufps xmm2, xmm2, 0x55
movaps xmm3, xmm2
shufps xmm2, xmm2, 0x55
movhlps xmm2, xmm0
rsqrtps xmm0, xmm0
subps xmm2, xmm1
rsqrtps xmm0, xmm0
movq mm4, mm1
movq mm2, mm0
subps xmm0, xmm1
addps xmm2, xmm0
mulps xmm1, xmm2
movq mm4, mm1
addss xmm2, xmm0
subps xmm2, xmm1
addss xmm2, xmm0
addss xmm2, xmm0
subps xmm0, xmm1
rsqrtps xmm0, xmm0
movq mm2, mm0
mov eax, dword [0x40d058]
mov dword [ebp - 0x20], eax
movhlps xmm2, xmm0
shufps xmm2, xmm2, 0x55
movq mm3, mm1
rsqrtss xmm2, xmm2
sqrtss xmm2, xmm2
addss xmm2, xmm0
subps xmm2, xmm1
divps xmm1, xmm2
shufps xmm2, xmm2, 0
addss xmm2, xmm0
subps xmm0, xmm1
shl eax, 3
mov dword [esp], eax
call fcn.0040c250
mov ebx, eax
movq mm4, mm1
addss xmm2, xmm0
mulps xmm0, xmm0
mulps xmm2, xmm0
shufps xmm2, xmm2, 0x55
sqrtss xmm2, xmm2
haddps xmm0, xmm0
mulps xmm1, xmm0
mulps xmm2, xmm0
movhlps xmm2, xmm0
addps xmm2, xmm0
sqrtss xmm2, xmm2
movq mm3, mm1
movq mm3, mm1
shufps xmm2, xmm2, 0
divps xmm1, xmm2
movaps xmm3, xmm2
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
mov edx, dword [ebp - 0x20]
test edx, edx
jle 0x4024e6
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], eax
jmp 0x40245c
mov ebx, dword [ebp - 0x3c]
add dword [ebp - 0x3c], 1
shl ebx, 3
subps xmm2, xmm1
movhlps xmm2, xmm0
subps xmm2, xmm1
mulps xmm3, xmm1
subps xmm2, xmm1
subps xmm0, xmm1
movaps xmm3, xmm2
mulps xmm1, xmm2
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
movq mm4, mm1
rsqrtss xmm2, xmm2
movaps xmm3, xmm2
sqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
shufps xmm2, xmm2, 0
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
movq mm3, mm1
mulps xmm3, xmm1
mulps xmm2, xmm0
movaps xmm1, xmm0
rsqrtss xmm2, xmm2
rsqrtss xmm2, xmm2
mulps xmm2, xmm0
movq mm2, mm0
mulps xmm3, xmm1
movaps xmm1, xmm0
subps xmm2, xmm1
haddps xmm0, xmm0
movq mm3, mm1
subps xmm2, xmm1
haddps xmm0, xmm0
subps xmm0, xmm1
addss xmm2, xmm0
sqrtss xmm2, xmm2
movaps xmm3, xmm2
movhlps xmm2, xmm0
mulps xmm0, xmm0
shufps xmm2, xmm2, 0x55
movq mm2, mm0
movaps xmm3, xmm2
mulps xmm2, xmm0
subps xmm0, xmm1
mulps xmm0, xmm0
movq mm2, mm0
addss xmm2, xmm0
shufps xmm2, xmm2, 0x55
addps xmm2, xmm0
add ecx, 1
cmp dword [ebp - 0x20], ecx
je 0x4024e4
lea edi, [ecx + 8]
divps xmm1, xmm2
shufps xmm2, xmm2, 0
addps xmm2, xmm0
movq mm2, mm0
movhlps xmm2, xmm0
shufps xmm2, xmm2, 0x55
mulps xmm2, xmm0
mulps xmm0, xmm0
mulps xmm0, xmm0
addps xmm2, xmm0
divps xmm1, xmm2
sqrtss xmm2, xmm2
movq mm3, mm1
shufps xmm2, xmm2, 0
movhlps xmm2, xmm0
movss xmm0, xmm2
movss xmm0, xmm2
movhlps xmm2, xmm0
sqrtss xmm2, xmm2
addss xmm2, xmm0
divps xmm1, xmm2
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
rsqrtss xmm2, xmm2
cmp dword [ebp - 0x3c], 2
jne 0x402383
mov dword [ebp - 0x3c], 5
mov ebx, 0x20
jmp 0x40238d
movzx edx, word [eax]
jmp 0x4020db
mov word [eax], 0
add eax, 2
movzx edx, word [eax]
jmp 0x402088
mov ebx, edi
rsqrtss xmm2, xmm2
divps xmm1, xmm2
movq mm3, mm1
subps xmm0, xmm1
mulps xmm1, xmm2
movhlps xmm2, xmm0
subps xmm2, xmm1
divps xmm1, xmm2
movhlps xmm2, xmm0
haddps xmm0, xmm0
mulps xmm2, xmm0
mov esi, dword [ebp - 0x20]
shl esi, 2
mov dword [esp], esi
call fcn.0040c250
test esi, esi
jle 0x40252e
xor edx, edx
lea esi, [esi]
movzx ecx, byte [ebx + edx*2]
mov byte [eax + edx], cl
add edx, 1
cmp edx, esi
jne 0x402520
shufps xmm2, xmm2, 0x55
movss xmm0, xmm2
subps xmm2, xmm1
shufps xmm2, xmm2, 0
movhlps xmm2, xmm0
movhlps xmm2, xmm0
mulps xmm1, xmm2
shufps xmm2, xmm2, 0x55
mulps xmm1, xmm2
mulps xmm3, xmm1
addps xmm2, xmm0
haddps xmm0, xmm0
shufps xmm2, xmm2, 0x55
shufps xmm2, xmm2, 0x55
movq mm2, mm0
mulps xmm0, xmm0
haddps xmm0, xmm0
mov dword [esp], eax
call fcn.004034b0
movaps xmm1, xmm0
rsqrtss xmm2, xmm2
movq mm3, mm1
shufps xmm2, xmm2, 0
movss xmm0, xmm2
movhlps xmm2, xmm0
mulps xmm0, xmm0
movq mm3, mm1
subps xmm2, xmm1
addps xmm2, xmm0
movss xmm0, xmm2
rsqrtss xmm2, xmm2
movaps xmm1, xmm0
rsqrtps xmm0, xmm0
mulps xmm0, xmm0
movaps xmm1, xmm0
test eax, eax
je 0x402824
addps xmm2, xmm0
mulps xmm2, xmm0
subps xmm2, xmm1
movq mm3, mm1
subps xmm2, xmm1
shufps xmm2, xmm2, 0
movhlps xmm2, xmm0
subps xmm2, xmm1
mulps xmm1, xmm0
mulps xmm1, xmm2
movaps xmm3, xmm2
movhlps xmm2, xmm0
movhlps xmm2, xmm0
mulps xmm3, xmm1
mulps xmm3, xmm1
subps xmm2, xmm1
movq mm4, mm1
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00402f60
mov edi, eax
movss xmm0, xmm2
movss xmm0, xmm2
addss xmm2, xmm0
addps xmm2, xmm0
movq mm3, mm1
movq mm3, mm1
movaps xmm1, xmm0
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
subps xmm0, xmm1
sqrtss xmm2, xmm2
mulps xmm0, xmm0
haddps xmm0, xmm0
rsqrtss xmm2, xmm2
subps xmm0, xmm1
subps xmm2, xmm1
addss xmm2, xmm0
mulps xmm1, xmm0
movaps xmm1, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
rsqrtss xmm2, xmm2
subps xmm2, xmm1
mulps xmm1, xmm2
rsqrtss xmm2, xmm2
subps xmm2, xmm1
haddps xmm0, xmm0
mulps xmm2, xmm0
haddps xmm0, xmm0
rsqrtps xmm0, xmm0
sqrtss xmm2, xmm2
movaps xmm3, xmm2
movq mm3, mm1
movq mm4, mm1
sqrtss xmm2, xmm2
subps xmm2, xmm1
movq mm3, mm1
subps xmm2, xmm1
movzx esi, byte [section..data]
shufps xmm2, xmm2, 0x55
haddps xmm0, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0
subps xmm2, xmm1
movss xmm0, xmm2
haddps xmm0, xmm0
movaps xmm3, xmm2
addps xmm2, xmm0
mulps xmm1, xmm0
shufps xmm2, xmm2, 0x55
movq mm4, mm1
rsqrtps xmm0, xmm0
subps xmm2, xmm1
sqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
rsqrtss xmm2, xmm2
movhlps xmm2, xmm0
mulps xmm1, xmm0
movsx ebx, byte [0x40d001]
movaps xmm1, xmm0
shufps xmm2, xmm2, 0
rsqrtps xmm0, xmm0
subps xmm0, xmm1
divps xmm1, xmm2
movq mm4, mm1
rsqrtps xmm0, xmm0
shufps xmm2, xmm2, 0
addss xmm2, xmm0
rsqrtps xmm0, xmm0
haddps xmm0, xmm0
subps xmm2, xmm1
rsqrtps xmm0, xmm0
movq mm3, mm1
movq mm2, mm0
subps xmm2, xmm1
movaps xmm3, xmm2
movq mm2, mm0
movss xmm0, xmm2
mulps xmm1, xmm0
lea eax, [ebx + 1]
mov dword [esp], eax
call fcn.0040c250
rsqrtps xmm0, xmm0
movaps xmm3, xmm2
mulps xmm2, xmm0
rsqrtps xmm0, xmm0
mulps xmm2, xmm0
movaps xmm3, xmm2
rsqrtss xmm2, xmm2
movss xmm0, xmm2
divps xmm1, xmm2
movq mm2, mm0
shufps xmm2, xmm2, 0
rsqrtps xmm0, xmm0
movq mm2, mm0
shufps xmm2, xmm2, 0x55
rsqrtss xmm2, xmm2
test ebx, ebx
je 0x40276a
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 0x402756
mov eax, esi
movhlps xmm2, xmm0
movq mm3, mm1
mulps xmm1, xmm0
movaps xmm1, xmm0
movhlps xmm2, xmm0
rsqrtss xmm2, xmm2
addss xmm2, xmm0
mulps xmm0, xmm0
movq mm2, mm0
addps xmm2, xmm0
haddps xmm0, xmm0
rsqrtss xmm2, xmm2
sqrtss xmm2, xmm2
mulps xmm1, xmm0
movq mm3, mm1
shufps xmm2, xmm2, 0x55
movq mm3, mm1
movss xmm0, xmm2
mov byte [eax + ebx], 0
subps xmm2, xmm1
movq mm3, mm1
movq mm2, mm0
subps xmm0, xmm1
movaps xmm3, xmm2
subps xmm2, xmm1
mulps xmm0, xmm0
rsqrtps xmm0, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm2
subps xmm0, xmm1
subps xmm0, xmm1
mulps xmm2, xmm0
test edi, edi
je 0x4027e3
mov dword [esp + 4], 0x4232e4
mov dword [esp], eax
call edi
addss xmm2, xmm0
rsqrtps xmm0, xmm0
subps xmm2, xmm1
sqrtss xmm2, xmm2
addss xmm2, xmm0
movq mm4, mm1
movq mm4, mm1
rsqrtps xmm0, xmm0
rsqrtss xmm2, xmm2
mulps xmm1, xmm0
mulps xmm3, xmm1
movaps xmm3, xmm2
mulps xmm1, xmm0
sqrtss xmm2, xmm2
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x402824
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call fcn.0040c220
add esp, 0x4c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 4
haddps xmm0, xmm0
subps xmm2, xmm1
shufps xmm2, xmm2, 0
mulps xmm1, xmm0
movq mm3, mm1
movq mm3, mm1
mulps xmm2, xmm0
mulps xmm1, xmm0
shufps xmm2, xmm2, 0x55
movaps xmm1, xmm0
addps xmm2, xmm0
mov ebx, dword [ebp - 0x24]
add ebx, 4
jmp 0x402156
addss xmm2, xmm0
mulps xmm0, xmm0
divps xmm1, xmm2
movq mm2, mm0
sqrtss xmm2, xmm2
sqrtss xmm2, xmm2
movhlps xmm2, xmm0
movq mm2, mm0
movq mm2, mm0
shufps xmm2, xmm2, 0x55
addss xmm2, xmm0
addss xmm2, xmm0
mulps xmm2, xmm0
mulps xmm0, xmm0
subps xmm2, xmm1
rsqrtps xmm0, xmm0
movaps xmm1, xmm0
subps xmm2, xmm1
mulps xmm2, xmm0
movq mm4, mm1
sqrtss xmm2, xmm2
mulps xmm1, xmm0
lea edx, [eax + 2]
movzx eax, word [eax + 2]
mov ecx, dword [ebp - 0x24]
cmp ax, 0x22
mov dword [ecx], edx
jne 0x402916
jmp 0x402991
sqrtss xmm2, xmm2
subps xmm0, xmm1
rsqrtps xmm0, xmm0
haddps xmm0, xmm0
movq mm2, mm0
movss xmm0, xmm2
movss xmm0, xmm2
movq mm3, mm1
haddps xmm0, xmm0
shufps xmm2, xmm2, 0x55
mulps xmm2, xmm0
addps xmm2, xmm0
mulps xmm1, xmm0
movhlps xmm2, xmm0
shufps xmm2, xmm2, 0
movq mm4, mm1
sqrtss xmm2, xmm2
subps xmm0, xmm1
divps xmm1, xmm2
mulps xmm1, xmm2
addps xmm2, xmm0
mulps xmm1, xmm0
add edx, 2
movzx eax, word [edx]
cmp ax, 0x22
je 0x402991
test ax, ax
jne 0x4028c0
mov esi, dword [ebp - 0x24]
mov ebx, 4
mov dword [esp], esi
call fcn.0040c220
mov dword [ebp - 0x24], 0
jmp 0x402156
shufps xmm2, xmm2, 0
mulps xmm3, xmm1
movq mm3, mm1
sqrtss xmm2, xmm2
mulps xmm1, xmm2
sqrtss xmm2, xmm2
mulps xmm2, xmm0
movss xmm0, xmm2
haddps xmm0, xmm0
movq mm3, mm1
mulps xmm1, xmm2
movaps xmm1, xmm0
rsqrtss xmm2, xmm2
subps xmm2, xmm1
movq mm3, mm1
mov ecx, dword [ebp - 0x24]
mov ebx, 4
test ecx, ecx
je 0x402156
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call fcn.0040c220
mov dword [ebp - 0x24], 0
jmp 0x402156
test ax, ax
je 0x40291b
mov word [edx], 0
lea eax, [edx + 2]
mulps xmm1, xmm2
addss xmm2, xmm0
movaps xmm3, xmm2
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
subps xmm2, xmm1
shufps xmm2, xmm2, 0
movq mm2, mm0
movaps xmm1, xmm0
haddps xmm0, xmm0
mulps xmm1, xmm2
movaps xmm1, xmm0
addps xmm2, xmm0
subps xmm0, xmm1
mulps xmm1, xmm2
movaps xmm1, xmm0
subps xmm0, xmm1
movzx edx, word [edx + 2]
jmp 0x402088