Function at 0x734570
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x20], ebx
mov eax, dword [ebx + 0x2c]
mov esi, eax
mov ecx, dword [ebx + 0x28]
imul esi, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], ecx
mov eax, esi
cdq
mov edi, edx
mov dword [ebp - 0x28], eax
mov ecx, eax
or ecx, edi
je 0x7345cf
push edi
push eax
push 0
push 0x7fff0000
call fcn.00796610
test edx, edx
jb 0x734771
ja 0x7345be
cmp eax, 1
jb 0x734771
cmp dword [ebp - 0x28], esi
jne 0x734771
test edi, edi
jne 0x734771
push esi
call fcn.007a1137
add esp, 4
mov dword [ebp - 0x30], eax
test eax, eax
je 0x734771
mov edx, dword [ebp - 0x24]
dec edx
cmp edx, 1
jle 0x734768
mov esi, dword [ebp - 0x18]
dec edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
lea ecx, [eax + esi]
mov eax, ecx
mov dword [ebp - 4], ecx
lea ecx, [esi*8]
mov dword [ebp - 0xc], eax
lea edi, [esi - 1]
mov dword [ebp - 0x10], ecx
lea esi, [ecx + 8]
mov dword [ebp - 0x14], esi
mov edx, esi
mov dword [ebp - 8], esi
nop dword [eax]
mov esi, 1
cmp edi, esi
jle 0x734702
lea eax, [ecx - 8]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x2c], eax
mov eax, edx
nop dword [eax + eax]
mov edx, dword [ebx + 0x588c]
xorps xmm0, xmm0
add edx, eax
mov ecx, edx
sub ecx, dword [ebp - 0x10]
movups xmmword [ebp - 0x40], xmm0
mov ebx, dword [edx]
shr ebx, 5
mov eax, dword [ecx - 8]
and ebx, 3
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [ecx]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [ecx + 8]
shr eax, 5
and eax, 3
mov ecx, dword [ebp - 0x10]
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [edx - 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [edx + 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [ebp - 0x2c]
mov eax, dword [edx + eax]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [ecx + edx]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
mov eax, dword [ecx + edx + 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x40]
xor eax, eax
nop dword [eax]
cmp dword [ebp + eax*4 - 0x40], 5
jge 0x7346df
inc eax
cmp eax, 4
jl 0x7346d0
jmp 0x7346e1
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov byte [eax + esi], bl
inc esi
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
add eax, 8
mov dword [ebp - 0x1c], eax
cmp esi, edi
jl 0x734640
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add eax, dword [ebp - 0x18]
add edx, ecx
sub dword [ebp - 0x24], 1
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], eax
jne 0x734620
mov eax, dword [ebp - 4]
nop word [eax + eax]
mov edx, 1
cmp edi, edx
jle 0x734756
mov esi, dword [ebp - 0x14]
nop dword [eax]
movzx eax, byte [eax + edx]
lea esi, [esi + 8]
mov ecx, dword [ebx + 0x588c]
inc edx
shl eax, 5
xor eax, dword [ecx + esi - 8]
and eax, 0x60
xor dword [ecx + esi - 8], eax
mov eax, dword [ebp - 4]
cmp edx, edi
jl 0x734730
mov ecx, dword [ebp - 0x10]
add eax, dword [ebp - 0x18]
add dword [ebp - 0x14], ecx
sub dword [ebp - 0x28], 1
mov dword [ebp - 4], eax
jne 0x734720
mov eax, dword [ebp - 0x30]
push eax
call fcn.007a0961
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret