Function at 0x10060ac0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x20
test ecx, ecx
push ebx
push ebp
push esi
push edi
je 0x10060e10
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x10060e10
mov al, byte [ecx]
cmp al, 3
mov byte [esp + 0x34], al
je 0x10060af2
cmp byte [ebx], 0
je 0x10060e10
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x10060e06
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x10060e06
cdq
and edx, 0x7f
add eax, edx
mov esi, eax
mov eax, dword [esp + 0x34]
and eax, 0xff
sar esi, 7
dec eax
mov dword [esp + 0x3c], esi
je 0x10060dca
dec eax
je 0x10060d16
dec eax
jne 0x10060e10
mov eax, dword [ecx + 1]
mov edx, dword [ecx + 5]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 9]
mov ecx, dword [ecx + 0xd]
mov dword [esp + 0x14], edx
test esi, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jle 0x10060df9
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x34], esi
xor esi, esi
jmp 0x10060b73
mov ebx, dword [esp + 0x38]
xor esi, esi
jmp 0x10060b73
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], ecx
lea eax, [ebx + 0x54]
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.10076400
mov al, byte [esp + 0x21]
mov dl, byte [esp + 0x20]
mov cl, al
add esp, 0x10
shr cl, 7
shl dl, 1
or cl, dl
mov byte [esp + 0x10], cl
mov cl, byte [esp + 0x12]
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x13]
mov byte [esp + 0x11], dl
mov dl, al
shr dl, 7
shl cl, 1
or dl, cl
mov cl, byte [esp + 0x14]
mov byte [esp + 0x12], dl
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x15]
mov byte [esp + 0x13], dl
mov dl, al
shr dl, 7
shl cl, 1
or dl, cl
mov cl, byte [esp + 0x16]
mov byte [esp + 0x14], dl
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x17]
mov byte [esp + 0x15], dl
mov dl, al
shr dl, 7
shl cl, 1
or dl, cl
mov cl, byte [esp + 0x18]
mov byte [esp + 0x16], dl
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x19]
mov byte [esp + 0x17], dl
mov dl, al
shr dl, 7
shl cl, 1
or dl, cl
mov cl, byte [esp + 0x1a]
mov byte [esp + 0x18], dl
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x1b]
mov byte [esp + 0x19], dl
mov dl, al
shr dl, 7
shl cl, 1
or dl, cl
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x1a], dl
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x1d]
mov byte [esp + 0x1b], dl
mov dl, al
shr dl, 7
shl cl, 1
or dl, cl
mov cl, byte [esp + 0x1e]
mov byte [esp + 0x1c], dl
mov dl, cl
shr dl, 7
shl al, 1
or dl, al
mov al, byte [esp + 0x1f]
shr al, 7
shl cl, 1
or al, cl
mov byte [esp + 0x1d], dl
mov byte [esp + 0x1e], al
mov eax, esi
cdq
and edx, 7
mov ebx, esi
add eax, edx
and ebx, 7
sar eax, 3
mov cl, 7
mov dl, byte [eax + edi]
sub cl, bl
shr dl, cl
mov cl, byte [esp + 0x1f]
shl cl, 1
and dl, 1
or dl, cl
mov cl, bl
mov byte [esp + 0x1f], dl
mov dl, byte [esp + 0x20]
mov bl, byte [eax + ebp]
and dl, 0x80
shr dl, cl
xor bl, dl
inc esi
cmp esi, 0x80
mov byte [eax + ebp], bl
jl 0x10060b6f
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x10060b67
mov esi, dword [esp + 0x3c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
shl eax, 7
add esp, 0x20
ret
mov eax, dword [ecx + 5]
mov edx, dword [ecx + 9]
mov ebp, dword [ecx + 1]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xd]
mov dword [esp + 0x18], edx
test esi, esi
mov dword [esp + 0x1c], eax
jle 0x10060df9
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x44]
mov ecx, dword [ebx + 0x4c]
lea eax, [ebx + 0x54]
push ecx
lea edx, [esp + 0x24]
push eax
push edx
push edi
call fcn.10076880
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
xor eax, ebp
mov ebp, dword [esp + 0x28]
xor ecx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x30], eax
xor edx, ebp
mov ebp, dword [esp + 0x2c]
xor dword [esp + 0x3c], ebp
mov ebp, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x34], ecx
mov dword [esi + 4], ecx
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov dword [esi + 8], edx
mov edx, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x48]
add esp, 0x10
add edi, 0x10
add esi, 0x10
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x38], eax
jne 0x10060d3e
mov esi, dword [esp + 0x3c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
shl eax, 7
add esp, 0x20
ret
test esi, esi
jle 0x10060df9
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x38], esi
mov ecx, dword [ebx + 0x4c]
lea eax, [ebx + 0x54]
push ecx
push eax
push ebp
push edi
call fcn.10076880
mov eax, dword [esp + 0x48]
add esp, 0x10
add edi, 0x10
add ebp, 0x10
dec eax
mov dword [esp + 0x38], eax
jne 0x10060dd6
mov eax, esi
pop edi
pop esi
pop ebp
shl eax, 7
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x20
ret