Function at 0x405a30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov eax, dword [0x644a10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x15c], ecx
inc eax
push edi
movzx esi, byte [eax - 1]
movzx edi, byte [eax]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 1]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 2]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 4]
mov dword [ebp + edx*4 - 0x144], esi
movzx esi, byte [eax + 3]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 5]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 6]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 8]
mov dword [ebp + edx*4 - 0x140], esi
movzx esi, byte [eax + 7]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 9]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 0xa]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 0xc]
mov dword [ebp + edx*4 - 0x13c], esi
movzx esi, byte [eax + 0xb]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 0xd]
shl esi, 8
add esi, edi
movzx edi, byte [eax + 0xe]
shl esi, 8
add esi, edi
mov dword [ebp + edx*4 - 0x138], esi
add edx, 4
add eax, 0x10
cmp edx, 0x10
jb 0x405a52
cmp edx, 0x50
jae 0x405b27
mov esi, 0x50
lea eax, [ebp + edx*4 - 0x17c]
sub esi, edx
jmp 0x405b10
mov edx, dword [eax + 0x2c]
xor edx, dword [eax + 0x18]
add eax, 4
xor edx, dword [eax - 0xc]
xor edx, dword [eax - 4]
rol edx, 1
dec esi
mov dword [eax + 0x34], edx
jne 0x405b10
mov ebx, dword [ecx + 0x50]
mov edi, dword [ecx + 0x5c]
mov edx, dword [ecx + 0x54]
mov esi, dword [ecx + 0x58]
mov ecx, dword [ecx + 0x60]
mov eax, dword [ebp - 0x15c]
mov eax, dword [eax + 0x64]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x150], edi
xor ecx, ecx
mov dword [ebp - 0x158], eax
lea esp, [esp]
mov eax, ebx
rol eax, 5
mov ebx, edx
not ebx
and ebx, edi
mov edi, esi
and edi, edx
xor ebx, edi
mov edi, dword [ebp - 0x150]
add eax, ebx
add eax, dword [ebp + ecx*4 - 0x144]
mov dword [ebp - 0x150], esi
add eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], edi
mov edi, dword [ebp - 0x14c]
ror edx, 2
mov ebx, edi
mov dword [ebp - 0x14c], eax
rol eax, 5
not ebx
and ebx, esi
mov esi, edx
and esi, edi
xor ebx, esi
mov esi, dword [ebp - 0x150]
add eax, ebx
add eax, dword [ebp + ecx*4 - 0x140]
mov ebx, dword [ebp - 0x158]
add eax, ebx
add eax, dword [ebp - 0x148]
ror edi, 2
mov dword [ebp - 0x148], esi
mov esi, edx
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], edi
mov edi, edx
not edi
and edi, esi
mov dword [ebp - 0x14c], eax
rol eax, 5
mov dword [ebp - 0x150], esi
mov esi, dword [ebp - 0x154]
and esi, edx
xor edi, esi
mov esi, dword [ebp - 0x150]
add eax, edi
add eax, dword [ebp + ecx*4 - 0x13c]
mov edi, dword [ebp - 0x154]
add eax, ebx
add eax, dword [ebp - 0x148]
ror edx, 2
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x148], esi
mov esi, dword [ebp - 0x14c]
mov dword [ebp - 0x150], edi
mov edx, esi
not edx
and edx, edi
mov edi, dword [ebp - 0x154]
mov dword [ebp - 0x14c], eax
and edi, esi
xor edx, edi
rol eax, 5
add eax, edx
add eax, dword [ebp + ecx*4 - 0x138]
mov edx, dword [ebp - 0x150]
add eax, ebx
add eax, dword [ebp - 0x148]
ror esi, 2
mov dword [ebp - 0x148], edx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x154], esi
mov esi, dword [ebp - 0x14c]
mov edi, esi
mov dword [ebp - 0x14c], eax
not edi
rol eax, 5
mov dword [ebp - 0x150], edx
and edi, edx
mov edx, dword [ebp - 0x154]
and edx, esi
xor edi, edx
mov edx, dword [ebp - 0x150]
add eax, edi
add eax, dword [ebp + ecx*4 - 0x134]
mov edi, dword [ebp - 0x154]
add eax, ebx
add eax, dword [ebp - 0x148]
add ecx, 5
mov dword [ebp - 0x148], edx
mov edx, dword [ebp - 0x14c]
ror esi, 2
mov ebx, eax
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x14c], ebx
cmp ecx, 0x14
jb 0x405b60
mov ebx, dword [ebp - 0x15c]
cmp ecx, 0x28
jae 0x405d4e
mov ebx, dword [ebx + 0x68]
mov dword [ebp - 0x158], ebx
rol eax, 5
mov ebx, edi
xor ebx, esi
xor ebx, edx
add eax, ebx
add eax, dword [ebp + ecx*4 - 0x144]
inc ecx
add eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x148]
ror edx, 2
mov dword [ebp - 0x148], edi
mov edi, esi
mov esi, edx
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], eax
cmp ecx, 0x28
jb 0x405d05
mov ebx, dword [ebp - 0x15c]
mov dword [ebp - 0x150], edi
cmp ecx, 0x3c
jae 0x405db5
mov ebx, dword [ebx + 0x6c]
mov dword [ebp - 0x158], ebx
lea esp, [esp]
mov ebx, esi
xor ebx, edx
and ebx, edi
rol eax, 5
mov edi, esi
and edi, edx
xor ebx, edi
mov edi, dword [ebp - 0x150]
add eax, ebx
add eax, dword [ebp + ecx*4 - 0x144]
inc ecx
add eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x148]
ror edx, 2
mov dword [ebp - 0x148], edi
mov edi, esi
mov esi, edx
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x14c], eax
cmp ecx, 0x3c
jb 0x405d60
mov ebx, dword [ebp - 0x15c]
cmp ecx, 0x50
jae 0x405e06
mov ebx, dword [ebx + 0x70]
mov dword [ebp - 0x158], ebx
rol eax, 5
mov ebx, edi
xor ebx, esi
xor ebx, edx
add eax, ebx
add eax, dword [ebp + ecx*4 - 0x144]
inc ecx
add eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x148]
ror edx, 2
mov dword [ebp - 0x148], edi
mov edi, esi
mov esi, edx
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x14c], eax
cmp ecx, 0x50
jb 0x405dc3
mov ebx, dword [ebp - 0x15c]
mov ecx, dword [ebx + 0x50]
add ecx, eax
mov eax, dword [ebx + 0x54]
add eax, edx
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x58]
add eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x5c]
add eax, edi
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0x60]
add eax, dword [ebp - 0x148]
mov dword [ebx + 0x50], ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [ebx + 0x60], eax
xor ecx, ebp
pop ebx
call fcn.005b2129
mov esp, ebp
pop ebp
ret