Function at 0x10016b09
Capabilities:
Encode data using xor

Disassembly:
push 0x164
mov eax, 0x1019e3ac
call fcn.1017516e
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edi, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x170], eax
call fcn.100e92d6
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
pop ecx
lea esi, [eax - 0x93a80]
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], 0xf
mov byte [ebp - 0x16c], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x148], 0x10
mov eax, dword [ebp - 0x148]
xor eax, 0x73
mov byte [ebp - 0x144], al
mov eax, dword [ebp - 0x148]
inc al
xor eax, 0x74
mov byte [ebp - 0x143], al
mov eax, dword [ebp - 0x148]
add al, 2
xor eax, 0x3d
mov byte [ebp - 0x142], al
mov eax, dword [ebp - 0x148]
add al, 3
xor eax, 0x25
mov byte [ebp - 0x141], al
mov eax, dword [ebp - 0x148]
add al, 4
xor eax, 0x64
mov byte [ebp - 0x140], al
mov eax, dword [ebp - 0x148]
add al, 5
xor eax, 0x7e
mov byte [ebp - 0x13f], al
mov eax, dword [ebp - 0x148]
add al, 6
xor eax, 0x65
mov byte [ebp - 0x13e], al
mov eax, dword [ebp - 0x148]
add al, 7
xor eax, 0x78
mov byte [ebp - 0x13d], al
mov eax, dword [ebp - 0x148]
add al, 8
xor eax, 0x70
mov byte [ebp - 0x13c], al
mov eax, dword [ebp - 0x148]
add al, 9
xor eax, 0x3d
mov byte [ebp - 0x13b], al
mov eax, dword [ebp - 0x148]
add al, 0xa
xor eax, 0x25
mov byte [ebp - 0x13a], al
mov eax, dword [ebp - 0x148]
add al, 0xb
xor eax, 0x64
mov byte [ebp - 0x139], al
mov eax, dword [ebp - 0x148]
add al, 0xc
xor eax, 0x7e
mov byte [ebp - 0x138], al
mov eax, dword [ebp - 0x148]
add al, 0xd
xor eax, 0x61
mov byte [ebp - 0x137], al
mov eax, dword [ebp - 0x148]
add al, 0xe
xor eax, 0x63
mov byte [ebp - 0x136], al
mov eax, dword [ebp - 0x148]
add al, 0xf
xor eax, 0x6c
mov byte [ebp - 0x135], al
mov eax, dword [ebp - 0x148]
add al, 0x10
xor eax, 0x3d
mov edx, ebx
mov byte [ebp - 0x134], al
mov eax, dword [ebp - 0x148]
add al, 0x11
xor eax, 0x2f
mov byte [ebp - 0x133], al
mov eax, dword [ebp - 0x148]
add al, 0x12
mov byte [ebp - 0x131], bl
xor eax, 0x2a
mov byte [ebp - 0x132], al
mov al, byte [ebp - 0x144]
mov al, byte [ebp + edx - 0x144]
mov ecx, dword [ebp - 0x148]
add cl, dl
movsx eax, al
xor ecx, eax
mov byte [ebp + edx - 0x144], cl
inc edx
cmp edx, 0x13
jb 0x10016cb1
lea eax, [esi + 0x127500]
mov byte [ebp - 0x131], bl
push eax
push esi
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.1001761b
cmp dword [ebp - 0x158], 0x10
lea eax, [ebp - 0x30]
mov ecx, dword [ebp - 0x170]
lea edx, [ebp - 0x16c]
cmovae edx, dword [ebp - 0x16c]
push eax
push dword [ebp - 0x15c]
call fcn.10016a59
add esp, 0x18
lea eax, [ebp - 0x30]
push ebx
push 0x20
push eax
push 0x100
lea eax, [ebp - 0x130]
push eax
call fcn.100282a7
mov byte [ebp - 0x154], 0x89
mov byte [ebp - 0x153], 0x73
mov byte [ebp - 0x152], 0x78
mov byte [ebp - 0x151], 0x6c
mov byte [ebp - 0x150], 0x6e
mov byte [ebp - 0x14f], 0x48
mov byte [ebp - 0x14e], 0x30
mov byte [ebp - 0x14d], 0x7e
mov byte [ebp - 0x14c], bl
mov al, byte [ebp - 0x154]
mov al, byte [ebp + ebx - 0x154]
movsx eax, al
sub eax, 0xb
mov byte [ebp + ebx - 0x154], al
inc ebx
cmp ebx, 8
jb 0x10016d7b
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.100167ca
add esp, 0xc
lea eax, [ebp - 0x16c]
cmp dword [ebp - 0x158], 0x10
cmovae eax, dword [ebp - 0x16c]
push eax
push dword [ebp + 0x10]
push edi
call fcn.10007880
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x16c]
call fcn.10017221
call fcn.10175118
ret 0xc