Function at 0x7064a1
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x15c
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x17c]
mov esi, dword [esp + 0x174]
mov eax, dword [eax]
test edx, edx
je 0x7065b9
cmp eax, dword [esp + 0x17c]
je 0x7064ea
test esi, esi
je 0x7065a8
mov eax, dword [esp + 0x178]
test eax, eax
js 0x7065a8
mov eax, dword [esp + 0x170]
mov edi, dword [esp + 0x17c]
mov dword [eax], edi
mov eax, edi
mov dword [esp], eax
call fcn.006fe7a1
and eax, 2
mov ebx, eax
jne 0x7065a8
test esi, esi
je 0x7065d1
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
call fcn.006fe4a1
cmp eax, 0x90
jg 0x7065a8
cmp dword [esp + 0x178], eax
jg 0x70657c
mov eax, dword [esp + 0x178]
cmp eax, 0x90
ja 0x7065a8
lea ebp, [esp + 0xc0]
cmp eax, 4
jae 0x7067e0
test eax, eax
je 0x70656c
movzx edx, byte [esi]
mov byte [ebp], dl
test byte [esp + 0x178], 2
jne 0x706805
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x2c], ecx
jmp 0x706661
mov eax, dword [esp + 0x180]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.006edcc1
test eax, eax
jne 0x706604
add esp, 0x15c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
test eax, eax
je 0x7065a8
mov dword [esp + 0x17c], eax
jmp 0x7064fc
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.006ee481
test eax, eax
setne al
add esp, 0x15c
pop ebx
movzx eax, al
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x178]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.006ee061
test eax, eax
je 0x7065a8
lea eax, [esp + 0x2c]
lea ebp, [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 4], ebp
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.006ee111
test eax, eax
je 0x7065a8
mov eax, dword [esp + 0x2c]
lea esi, [esi]
cmp eax, 0x90
je 0x706685
mov edx, 0x90
mov dword [esp + 4], 0
sub edx, eax
add eax, ebp
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0086e9e1
xor eax, eax
lea esi, [esp + 0x30]
lea esi, [esi]
mov edx, dword [ebp + eax]
xor edx, 0x36363636
mov dword [esi + eax], edx
add eax, 4
cmp eax, 0x90
jne 0x706691
mov eax, dword [esp + 0x180]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.006edcc1
test eax, eax
je 0x706801
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
call fcn.006fe4a1
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.006ee061
test eax, eax
je 0x706801
lea esi, [esi]
nop
mov eax, dword [ebp + ebx]
xor eax, 0x5c5c5c5c
mov dword [esi + ebx], eax
add ebx, 4
cmp ebx, 0x90
jne 0x706711
mov eax, dword [esp + 0x180]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.006edcc1
test eax, eax
je 0x706801
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
call fcn.006fe4a1
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.006ee061
test eax, eax
je 0x706801
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x170]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.006ee481
test eax, eax
setne al
movzx eax, al
mov dword [esp], ebp
mov dword [esp + 4], 0x90
mov dword [esp + 0x1c], eax
call fcn.00771371
mov dword [esp], esi
mov dword [esp + 4], 0x90
call fcn.00771371
mov eax, dword [esp + 0x1c]
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esi + eax - 4]
mov edi, ebp
mov dword [esp + eax + 0xbc], edx
mov ecx, dword [esp + 0x178]
sub ecx, 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x70656c
xor eax, eax
jmp 0x7067ad
mov ecx, dword [esp + 0x178]
movzx edx, word [esi + ecx - 2]
mov word [ebp + ecx - 2], dx
jmp 0x70656c