Function at 0x406f50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x5cb160]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
push 0x2f
mov esi, ecx
lea ecx, [ebp - 0x93]
push 0
push ecx
mov edi, edx
mov dword [ebp - 0xf8], eax
mov byte [ebp - 0x94], 0
call fcn.0053b440
push 0x2f
lea edx, [ebp - 0xc3]
push 0
push edx
mov byte [ebp - 0xc4], 0
call fcn.0053b440
xor eax, eax
lea esi, [esi + esi*2]
shl esi, 4
add esi, edi
mov ecx, 0xc
lea edi, [ebp - 0xf4]
mov dword [ebp - 0x23], eax
mov dword [ebp - 0x1f], eax
mov dword [ebp - 0x1b], eax
mov dword [ebp - 0x17], eax
mov dword [ebp - 0x13], eax
mov dword [ebp - 0xf], eax
mov dword [ebp - 0xb], eax
mov word [ebp - 7], ax
mov byte [ebp - 5], al
mov byte [ebp - 0x44], al
mov dword [ebp - 0x43], eax
mov dword [ebp - 0x3f], eax
mov dword [ebp - 0x3b], eax
mov dword [ebp - 0x37], eax
mov dword [ebp - 0x33], eax
mov dword [ebp - 0x2f], eax
mov dword [ebp - 0x2b], eax
mov word [ebp - 0x27], ax
mov byte [ebp - 0x25], al
mov byte [ebp - 0x64], al
mov dword [ebp - 0x63], eax
mov dword [ebp - 0x5f], eax
mov dword [ebp - 0x5b], eax
mov dword [ebp - 0x57], eax
mov dword [ebp - 0x53], eax
mov dword [ebp - 0x4f], eax
mov dword [ebp - 0x4b], eax
mov word [ebp - 0x47], ax
mov byte [ebp - 0x45], al
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xf8]
add esp, 0x18
lea eax, [ebp - 0x94]
mov byte [ebp - 0x24], 0
call fcn.00407230
xor eax, eax
jmp 0x407030
movzx ecx, byte [ebp + eax - 0xf4]
xor cl, byte [ebp + eax - 0x94]
movzx edx, byte [ebp + eax - 0xf3]
xor dl, byte [ebp + eax - 0x93]
mov byte [ebp + eax - 0xc4], cl
movzx ecx, byte [ebp + eax - 0x92]
xor cl, byte [ebp + eax - 0xf2]
mov byte [ebp + eax - 0xc3], dl
movzx edx, byte [ebp + eax - 0x91]
xor dl, byte [ebp + eax - 0xf1]
mov byte [ebp + eax - 0xc2], cl
movzx ecx, byte [ebp + eax - 0x90]
xor cl, byte [ebp + eax - 0xf0]
mov byte [ebp + eax - 0xc1], dl
movzx edx, byte [ebp + eax - 0x8f]
xor dl, byte [ebp + eax - 0xef]
mov byte [ebp + eax - 0xc0], cl
mov byte [ebp + eax - 0xbf], dl
add eax, 6
cmp eax, 0x30
jb 0x407030
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0xc4]
push ecx
call fcn.004072e0
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x64]
call fcn.004073b0
lea ecx, [ebp - 0x24]
mov edx, ebx
sub edx, ecx
sub ecx, ebx
mov dword [ebp - 0x104], ecx
lea ecx, [ebp - 0x44]
sub ecx, ebx
mov dword [ebp - 0x10c], ecx
lea ecx, [ebp - 0x23]
sub ecx, ebx
mov dword [ebp - 0x108], ecx
lea ecx, [ebp - 0x43]
sub ecx, ebx
mov edi, 0xfffffffe
lea eax, [ebx + 2]
mov dword [ebp - 0x100], edx
mov dword [ebp - 0xfc], ecx
sub edi, ebx
jmp 0x407126
mov edx, dword [ebp - 0x100]
lea ecx, [edi + eax]
lea esi, [ebp + ecx - 0x24]
movzx edx, byte [esi + edx]
xor dl, byte [esi]
add eax, 4
mov byte [ebp + ecx - 0x44], dl
movzx edx, byte [ebp + ecx - 0x23]
xor dl, byte [eax - 5]
mov byte [ebp + ecx - 0x43], dl
mov ecx, dword [ebp - 0x104]
movzx edx, byte [ecx + eax - 4]
xor dl, byte [eax - 4]
mov ecx, dword [ebp - 0x10c]
mov byte [ecx + eax - 4], dl
mov edx, dword [ebp - 0x108]
mov cl, byte [edx + eax - 4]
xor cl, byte [eax - 3]
mov edx, dword [ebp - 0xfc]
mov byte [edx + eax - 4], cl
lea ecx, [edi + eax]
cmp ecx, 0x20
jb 0x407120
mov eax, dword [ebp - 0xf8]
mov ecx, 8
mov esi, eax
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 8
lea esi, [ebp - 0x44]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0053866d
mov esp, ebp
pop ebp
ret 4