Function at 0x401943
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push esi
push edi
sub esp, 0x10
xorps xmm0, xmm0
movups xmmword [esp], xmm0
call fcn.00401143
movaps xmm0, xmmword [0x40f500]
movups xmmword [esp], xmm0
call fcn.00401143
movsd xmm0, qword [0x40f3a8]
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004011e1
movaps xmm0, xmmword [0x40f480]
movups xmmword [esp], xmm0
call fcn.00401143
movaps xmm0, xmmword [0x40f490]
movups xmmword [esp], xmm0
call fcn.004011e1
movaps xmm0, xmmword [0x40f4a0]
movups xmmword [esp], xmm0
call fcn.00401143
movaps xmm0, xmmword [0x40f4b0]
movups xmmword [esp], xmm0
call fcn.004011e1
movaps xmm0, xmmword [0x40f4c0]
movups xmmword [esp], xmm0
call fcn.00401143
movaps xmm0, xmmword [0x40f4d0]
movups xmmword [esp], xmm0
call fcn.00401143
movaps xmm0, xmmword [0x40f4e0]
movups xmmword [esp], xmm0
call fcn.00401143
xor edi, edi
mov esi, 0x7ff00000
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
mov eax, 0xfff00000
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], eax
movsd xmm0, qword [ebp - 0x20]
mov dword [ebp - 0x14], eax
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], edi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.004011e1
mov esi, 0xfff00000
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x40f3a8]
movsd qword [esp], xmm0
call fcn.004011e1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004011e1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x40f3a0]
movsd qword [esp], xmm0
call fcn.004011e1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x40f310]
movsd qword [esp], xmm0
call fcn.004011e1
or esi, 0xffffffff
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
xorps xmm0, xmmword [0x40f500]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
xorps xmm0, xmmword [0x40f500]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
push 0x2a
pop esi
mov eax, 0x7ff00000
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
movsd xmm0, qword [ebp - 0x20]
mov dword [ebp - 0x14], eax
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], 0x11
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
mov eax, 0xfff00000
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
movsd xmm0, qword [ebp - 0x20]
mov dword [ebp - 0x14], eax
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], 0x11
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], 0x11
mov dword [ebp - 0x14], 0x7ff00000
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm0, qword [ebp - 0x20]
mov dword [ebp - 0x18], 0x11
mov dword [ebp - 0x14], 0xfff00000
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.00401143
add esp, 0x10
mov dword [ebp - 4], edi
mov esi, edi
mov eax, edi
mov dword [ebp - 8], edi
cmp esi, 2
jae 0x401d97
add eax, edi
xor edx, edx
xor ecx, ecx
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
mov edi, edx
mov dword [ebp - 0x14], edx
cmovae ecx, edx
mov dword [ebp - 0x38], edx
mov eax, ecx
not edi
not ecx
mov dword [ebp - 0xc], edi
or eax, 0x7ff00000
mov dword [ebp - 0x58], edi
and ecx, 0xfffff
mov dword [ebp - 0x1c], eax
or ecx, 0x7ff00000
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x24], eax
xor edi, edi
mov eax, esi
mov dword [ebp - 0x28], edx
movsd xmm0, qword [ebp - 0x28]
xor esi, esi
bts esi, eax
cmp eax, 0x20
cmovae edi, esi
xor esi, edi
cmp eax, 0x40
mov dword [ebp - 0x30], esi
cmovae edi, esi
sub esp, 0x10
mov eax, edi
or eax, 0x7ff00000
mov dword [ebp - 0x2c], eax
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x30]
movsd qword [esp], xmm0
call fcn.00401143
movsd xmm0, qword [ebp - 0x38]
mov eax, edi
or eax, 0xfff00000
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esi
movsd xmm0, qword [ebp - 0x40]
movsd qword [esp], xmm0
call fcn.00401143
mov eax, dword [ebp - 0xc]
not edi
mov dword [ebp - 0x48], eax
not esi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
mov eax, edi
movsd xmm0, qword [ebp - 0x48]
and eax, 0xfffff
or eax, 0x7ff00000
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], esi
movsd xmm0, qword [ebp - 0x50]
movsd qword [esp], xmm0
call fcn.00401143
movsd xmm0, qword [ebp - 0x58]
or edi, 0xfff00000
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], edi
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp], xmm0
call fcn.00401143
mov esi, dword [ebp - 4]
add esp, 0x10
mov edx, dword [ebp - 0x14]
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], esi
cmp esi, 2
jb 0x401ca9
mov eax, dword [ebp - 8]
xor edi, edi
inc eax
mov dword [ebp - 8], eax
cmp eax, 0x34
jb 0x401c58
inc esi
mov dword [ebp - 4], esi
cmp esi, 0x34
jb 0x401c53
sub esp, 0x10
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff80000
mov esi, 0x7ff00000
movsd xmm0, qword [ebp - 0x60]
mov dword [ebp - 0x58], 0x11
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff40000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff20000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff10000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff08000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff04000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff02000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff01000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff00800
movsd xmm0, qword [ebp - 0x60]
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff00400
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff00200
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0x7ff00100
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
or dword [ebp - 0x60], 0xffffffff
mov dword [ebp - 0x5c], 0x7ffff0ff
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], 0xfff00000
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
mov dword [ebp - 0x60], 0xffffff0f
mov dword [ebp - 0x5c], 0x7fffffff
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], 0x11
mov dword [ebp - 0x54], 0xfff00000
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.00401143
or dword [ebp - 0x60], 0xffffffff
xorps xmm0, xmm0
or dword [ebp - 0x5c], 0xffffffff
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp], xmm0
call fcn.004011e1
movsd xmm0, qword [0x40f3a8]
or dword [ebp - 0x60], 0xffffffff
or dword [ebp - 0x5c], 0xffffffff
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp], xmm0
call fcn.004011e1
movsd xmm0, qword [0x40f2c8]
or dword [ebp - 0x60], 0xffffffff
or dword [ebp - 0x5c], 0xffffffff
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp], xmm0
call fcn.004011e1
movsd xmm0, qword [0x40f428]
or dword [ebp - 0x60], 0xffffffff
or dword [ebp - 0x5c], 0xffffffff
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp], xmm0
call fcn.004011e1
mov dword [ebp - 0x5c], esi
or esi, 0xffffffff
mov dword [ebp - 0x60], edi
movsd xmm0, qword [ebp - 0x60]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.004011e1
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0xfff00000
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
movsd xmm0, qword [ebp - 0x58]
movsd qword [esp], xmm0
call fcn.004011e1
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret