Function at 0x401c9d
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.00401191
movaps xmm0, xmmword [0x411ff0]
movups xmmword [esp], xmm0
call fcn.00401191
movsd xmm0, qword [0x411ea0]
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004012cb
movaps xmm0, xmmword [0x411f70]
movups xmmword [esp], xmm0
call fcn.00401191
movaps xmm0, xmmword [0x411f80]
movups xmmword [esp], xmm0
call fcn.004012cb
movaps xmm0, xmmword [0x411f90]
movups xmmword [esp], xmm0
call fcn.00401191
movaps xmm0, xmmword [0x411fa0]
movups xmmword [esp], xmm0
call fcn.004012cb
movaps xmm0, xmmword [0x411fb0]
movups xmmword [esp], xmm0
call fcn.00401191
movaps xmm0, xmmword [0x411fc0]
movups xmmword [esp], xmm0
call fcn.00401191
movaps xmm0, xmmword [0x411fd0]
movups xmmword [esp], xmm0
call fcn.00401191
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.00401191
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.00401191
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.004012cb
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 [0x411ea0]
movsd qword [esp], xmm0
call fcn.004012cb
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.004012cb
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x411e98]
movsd qword [esp], xmm0
call fcn.004012cb
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x411e08]
movsd qword [esp], xmm0
call fcn.004012cb
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.00401191
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 [0x411ff0]
movsd qword [esp], xmm0
call fcn.00401191
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
xorps xmm0, xmmword [0x411ff0]
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
add esp, 0x10
mov dword [ebp - 4], edi
mov esi, edi
mov eax, edi
mov dword [ebp - 8], edi
cmp esi, 2
jae 0x4020f1
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.00401191
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.00401191
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.00401191
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.00401191
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 0x402003
mov eax, dword [ebp - 8]
xor edi, edi
inc eax
mov dword [ebp - 8], eax
cmp eax, 0x34
jb 0x401fb2
inc esi
mov dword [ebp - 4], esi
cmp esi, 0x34
jb 0x401fad
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.00401191
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.004012cb
movsd xmm0, qword [0x411ea0]
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.004012cb
movsd xmm0, qword [0x411dc0]
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.004012cb
movsd xmm0, qword [0x411f20]
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.004012cb
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.004012cb
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.004012cb
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret