Function at 0x401a50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x24], edx
lea esi, [ebp - 0x14]
mov edi, ecx
mov ebx, 4
mov ecx, edi
mov edx, 4
mov al, byte [ecx]
lea ecx, [ecx + 4]
mov byte [esi], al
inc esi
dec edx
jne 0x401a77
inc edi
dec ebx
jne 0x401a70
mov edi, dword [0x41a138]
lea ecx, [ebp - 0x10]
mov ebx, dword [0x41a130]
mov esi, 4
movzx eax, bl
shl eax, 4
lea edx, [edi + 2]
add edx, eax
movzx eax, byte [edx - 2]
xor byte [ecx - 4], al
movzx eax, byte [edx - 1]
xor byte [ecx], al
movzx eax, byte [edx]
xor byte [ecx + 4], al
movzx eax, byte [edx + 1]
add edx, 4
xor byte [ecx + 8], al
inc ecx
dec esi
jne 0x401aa5
dec bl
cmp bl, 1
jb 0x401b9b
movzx eax, bl
mov dword [ebp - 0x18], eax
shl eax, 4
add eax, 2
add eax, edi
mov dword [ebp - 0x1c], eax
mov edx, 1
lea edi, [ebp - 0x10]
mov ch, 1
mov dword [ebp - 0x20], edx
nop
test ch, ch
je 0x401b1d
lea eax, [edi + 3]
mov esi, edx
lea esp, [esp]
mov bl, byte [eax]
mov dl, 3
mov cl, byte [eax - 1]
lea eax, [eax - 1]
mov byte [eax + 1], cl
add dl, 0xff
jne 0x401b04
mov byte [edi], bl
lea eax, [edi + 3]
dec esi
jne 0x401b00
mov edx, dword [ebp - 0x20]
inc ch
inc edx
add edi, 4
mov dword [ebp - 0x20], edx
cmp ch, 4
jb 0x401af0
lea edx, [ebp - 0x14]
mov edi, 4
mov esi, 4
movzx ecx, byte [edx]
mov eax, ecx
and ecx, 0xf
and eax, 0xfffffff0
mov al, byte [eax + ecx + 0x4165f0]
mov byte [edx], al
inc edx
dec esi
jne 0x401b38
dec edi
jne 0x401b33
mov ebx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x10]
mov edx, ebx
lea esi, [edi + 4]
mov edi, edi
movzx eax, byte [edx - 2]
lea ecx, [ecx + 1]
xor byte [ecx - 5], al
movzx eax, byte [edx - 1]
xor byte [ecx - 1], al
movzx eax, byte [edx]
xor byte [ecx + 3], al
movzx eax, byte [edx + 1]
add edx, 4
xor byte [ecx + 7], al
dec esi
jne 0x401b60
lea ecx, [ebp - 0x14]
call fcn.00401370
sub ebx, 0x10
dec dword [ebp - 0x18]
mov dword [ebp - 0x1c], ebx
jne 0x401ae2
mov ecx, 1
lea edi, [ebp - 0x10]
mov dh, 1
mov dword [ebp - 0x18], ecx
test dh, dh
je 0x401bcf
lea eax, [edi + 3]
mov esi, ecx
mov bl, byte [eax]
mov dl, 3
mov ecx, eax
mov al, byte [ecx - 1]
lea ecx, [ecx - 1]
mov byte [ecx + 1], al
dec dl
jne 0x401bb7
mov byte [edi], bl
lea eax, [edi + 3]
dec esi
jne 0x401bb1
mov ecx, dword [ebp - 0x18]
inc dh
inc ecx
add edi, 4
mov dword [ebp - 0x18], ecx
cmp dh, 4
jb 0x401ba8
lea edx, [ebp - 0x14]
mov edi, 4
mov esi, 4
lea ebx, [ebx]
movzx ecx, byte [edx]
mov eax, ecx
and ecx, 0xf
and eax, 0xfffffff0
mov al, byte [eax + ecx + 0x4165f0]
mov byte [edx], al
inc edx
dec esi
jne 0x401bf0
dec edi
jne 0x401be5
mov edx, dword [0x41a138]
lea ecx, [ebp - 0x10]
add edx, 2
lea esi, [edi + 4]
lea ebx, [ebx]
movzx eax, byte [edx - 2]
lea ecx, [ecx + 1]
xor byte [ecx - 5], al
lea edx, [edx + 4]
movzx eax, byte [edx - 5]
xor byte [ecx - 1], al
movzx eax, byte [edx - 4]
xor byte [ecx + 3], al
movzx eax, byte [edx - 3]
xor byte [ecx + 7], al
dec esi
jne 0x401c20
mov ebx, dword [ebp - 0x24]
lea ecx, [ebp - 0x14]
lea edi, [esi + 4]
mov edi, edi
mov edx, ebx
mov esi, 4
mov al, byte [ecx]
lea edx, [edx + 4]
inc ecx
mov byte [edx - 4], al
dec esi
jne 0x401c57
inc ebx
dec edi
jne 0x401c50
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00404cd7
mov esp, ebp
pop ebp
ret