Function at 0x100af090
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
push ebx
push ebp
push 0xc8
call fcn.1013fbbd
mov ebx, dword [esp + 0x28]
add esp, 4
mov ebp, eax
mov dword [esp + 8], ebp
test ebx, ebx
jne 0x100af0c8
test ebp, ebp
je 0x100af0bd
push ebp
call fcn.1013db65
add esp, 4
pop ebp
mov eax, 0xfffff446
pop ebx
add esp, 0x18
ret
test ebp, ebp
jne 0x100af0d7
pop ebp
mov eax, 0xfffff447
pop ebx
add esp, 0x18
ret
push esi
push edi
push 0x15
push ebp
call fcn.100c0260
mov edi, eax
lea eax, [edi + 0x64]
push 0x15
push eax
call fcn.100c0260
add esp, 0x10
mov dword [esp + 0x14], eax
call fcn.100b7a40
mov esi, eax
test esi, esi
jne 0x100af116
push ebp
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xfffff447
pop ebx
add esp, 0x18
ret
xor ebp, ebp
call fcn.10142907
shl eax, 0x10
mov dword [esp + 0x2c], eax
call fcn.10142907
xor eax, dword [esp + 0x2c]
inc ebp
cmp ebp, 4
mov dword [esp + ebp*4 + 0x14], eax
jl 0x100af118
mov ecx, dword [0x101bc9ec]
mov edx, dword [ebx + 0x10]
mov ebp, dword [esp + 0x14]
push ecx
push edx
push ebp
call fcn.100c0870
add esp, 0xc
nop
mov eax, dword [edi + 0xc]
push eax
lea ecx, [esp + 0x1c]
push 0xa0
push ecx
call fcn.100ad690
mov dword [edi + 4], 5
mov edx, dword [0x101bc9ec]
push edx
push edi
call fcn.100c02d0
add esp, 0x14
test eax, eax
jl 0x100af150
push ebp
push edi
call fcn.100c02d0
add esp, 8
test eax, eax
jg 0x100af150
cmp dword [edi + 4], 0
jbe 0x100af1a7
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
cmp dword [ecx + eax*4 - 4], 0
jne 0x100af1a7
dec eax
mov dword [edi + 4], eax
test eax, eax
ja 0x100af195
push 0x20c
push 0
push esi
call fcn.1013f910
lea eax, [esi + 0x18]
push 0x15
push eax
mov dword [esi], 0
call fcn.100c0260
mov dword [esi + 4], eax
add eax, 0x64
push 0x15
push eax
call fcn.100c0260
mov dword [esi + 8], eax
add eax, 0x64
push 0x15
push eax
call fcn.100c0260
mov dword [esi + 0xc], eax
add eax, 0x64
push 0x15
push eax
call fcn.100c0260
mov dword [esi + 0x10], eax
add eax, 0x64
push 0x15
push eax
call fcn.100c0260
mov dword [esi + 0x14], eax
mov ecx, dword [ebx + 0x14]
push edi
push ecx
push esi
push ebx
call fcn.100b87f0
mov ebp, eax
add esp, 0x44
test ebp, ebp
je 0x100af232
mov edx, dword [esp + 0x10]
push edx
call fcn.1013db65
push esi
call fcn.1013db65
add esp, 8
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [ebx + 0x18]
push edi
push eax
call fcn.100c01e0
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esi]
mov dword [ecx], edx
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.100c01e0
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 8]
push eax
push edx
call fcn.100c01e0
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 0xc]
push eax
push edx
call fcn.100c01e0
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 0x10]
push eax
push edx
call fcn.100c01e0
mov eax, dword [esi + 0x14]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 0x14]
push eax
push edx
call fcn.100c01e0
mov eax, dword [esp + 0x40]
push eax
call fcn.1013db65
push esi
call fcn.1013db65
add esp, 0x38
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret