Function at 0x429288
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov eax, dword [0x51a448]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x15c], edi
mov esi, ebx
inc edx
movzx ecx, byte [edx - 1]
movzx eax, byte [edx]
lea edx, [edx + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx - 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx - 2]
shl ecx, 8
add ecx, eax
mov dword [ebp + esi*4 - 0x144], ecx
inc esi
cmp esi, 0x10
jb 0x4292ab
cmp esi, 0x50
jae 0x429302
push 0x50
pop edx
lea ecx, [ebp + esi*4 - 0x17c]
sub edx, esi
mov eax, dword [ecx + 0x2c]
xor eax, dword [ecx + 0x18]
xor eax, dword [ecx - 8]
xor eax, dword [ecx]
lea ecx, [ecx + 4]
rol eax, 1
mov dword [ecx + 0x34], eax
sub edx, 1
jne 0x4292ea
mov ecx, dword [edi + 0x5c]
mov eax, dword [edi + 0x54]
mov edx, dword [edi + 0x50]
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x148], ecx
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x150], ecx
mov ecx, dword [edi + 0x64]
mov edi, edx
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x154], ecx
mov ecx, eax
mov edx, edi
not ecx
rol edx, 5
and ecx, dword [ebp - 0x148]
mov eax, esi
and eax, dword [ebp - 0x14c]
xor ecx, eax
mov eax, dword [ebp - 0x148]
add edx, ecx
mov ecx, esi
add edx, dword [ebp + ebx*4 - 0x144]
add edx, dword [ebp - 0x154]
add edx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x14c]
ror esi, 2
inc ebx
mov dword [ebp - 0x150], eax
mov eax, edi
mov dword [ebp - 0x148], ecx
mov edi, edx
mov dword [ebp - 0x14c], eax
cmp ebx, 0x14
jb 0x42932e
mov dword [ebp - 0x158], edi
mov edi, dword [ebp - 0x15c]
cmp ebx, 0x28
jae 0x429406
mov eax, dword [edi + 0x68]
mov edi, edx
mov dword [ebp - 0x154], eax
jmp 0x4293ad
mov ecx, dword [ebp - 0x148]
rol edx, 5
mov eax, ecx
xor eax, esi
xor eax, dword [ebp - 0x14c]
add edx, eax
mov eax, dword [ebp - 0x148]
add edx, dword [ebp + ebx*4 - 0x144]
add edx, dword [ebp - 0x154]
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x148], esi
mov esi, dword [ebp - 0x14c]
ror esi, 2
inc ebx
mov dword [ebp - 0x150], eax
mov eax, edi
mov dword [ebp - 0x14c], eax
mov edi, edx
cmp ebx, 0x28
jb 0x4293a7
mov dword [ebp - 0x158], edi
mov edi, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x158]
cmp ebx, 0x3c
jae 0x429479
mov ecx, dword [edi + 0x6c]
mov edi, edx
mov dword [ebp - 0x154], ecx
mov ecx, esi
rol edi, 5
xor ecx, eax
mov eax, esi
and eax, dword [ebp - 0x14c]
and ecx, dword [ebp - 0x148]
xor ecx, eax
mov eax, dword [ebp - 0x148]
add edi, ecx
mov dword [ebp - 0x148], esi
add edi, dword [ebp + ebx*4 - 0x144]
add edi, dword [ebp - 0x154]
add edi, dword [ebp - 0x150]
mov esi, dword [ebp - 0x14c]
ror esi, 2
inc ebx
mov dword [ebp - 0x150], eax
mov eax, edx
mov dword [ebp - 0x14c], eax
mov edx, edi
cmp ebx, 0x3c
jb 0x42941c
mov edi, dword [ebp - 0x15c]
mov ecx, edx
cmp ebx, 0x50
jae 0x4294e0
mov eax, dword [edi + 0x70]
mov edi, dword [ebp - 0x14c]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x148]
xor eax, esi
rol ecx, 5
xor eax, edi
add ecx, eax
mov eax, dword [ebp - 0x148]
add ecx, dword [ebp + ebx*4 - 0x144]
add ecx, dword [ebp - 0x154]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], eax
mov eax, esi
mov esi, edi
mov dword [ebp - 0x148], eax
ror esi, 2
mov edi, edx
inc ebx
mov edx, ecx
cmp ebx, 0x50
jb 0x429495
mov dword [ebp - 0x14c], edi
mov edi, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x14c]
add dword [edi + 0x54], eax
mov eax, dword [ebp - 0x148]
add dword [edi + 0x5c], eax
add dword [edi + 0x50], ecx
add dword [edi + 0x58], esi
mov eax, dword [ebp - 0x150]
add dword [edi + 0x60], eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049d307
leave
ret