Function at 0x100aae7c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov eax, dword [ebx + 0x48]
lea esi, [ebx + 0x28]
mov edx, dword [ebx + 4]
add eax, 0x28
mov ecx, dword [ebx]
add eax, ebx
mov dword [ebp - 8], esi
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
test edx, edx
jne 0x100aaec7
cmp ecx, 0x20
jae 0x100aaec7
mov edi, dword [ebp + 8]
mov ebx, dword [ebx + 0x18]
add ebx, 0x165667c5
mov edi, dword [edi + 0x1c]
adc edi, 0x27d4eb2f
jmp 0x100aaf5e
push dword [ebx + 0x24]
push dword [ebx + 0x20]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push 0x12
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.1009b8b0
push 0xc
push dword [ebx + 0x1c]
mov edi, eax
mov esi, edx
push dword [ebx + 0x18]
call fcn.1009b8b0
push 7
push dword [ebx + 0x14]
add edi, eax
push dword [ebx + 0x10]
adc esi, edx
call fcn.1009b8b0
push 1
push dword [ebx + 0xc]
add edi, eax
push dword [ebx + 8]
adc esi, edx
call fcn.1009b8b0
add esp, 0x30
add edi, eax
adc esi, edx
push esi
push edi
call fcn.10089ee8
add esp, 0x10
push edx
push eax
call fcn.10089ee8
add esp, 0x10
push edx
push eax
call fcn.10089ee8
add esp, 0x10
push edx
push eax
call fcn.10089ee8
mov esi, dword [ebp - 8]
mov ebx, eax
mov eax, dword [ebp - 4]
mov edi, edx
mov ecx, dword [ebp - 0xc]
add esp, 0x10
mov edx, dword [ebp - 0x10]
add ebx, ecx
lea ecx, [esi + 8]
adc edi, edx
jmp 0x100aafb8
push 0x1b
push esi
call fcn.10096328
push edx
push eax
push 0
push 0
call fcn.1009b1f4
add esp, 0x14
xor edx, edi
xor eax, ebx
push edx
push eax
call fcn.1009b8b0
add esp, 0xc
push 0x9e3779b1
push 0x85ebca87
push edx
push eax
call fcn.100971b0
mov ecx, dword [ebp - 8]
mov ebx, eax
mov eax, dword [ebp - 4]
add ebx, 0xc2b2ae63
mov edi, edx
adc edi, 0x85ebca77
add esi, 8
add ecx, 8
mov dword [ebp - 8], ecx
cmp ecx, eax
jbe 0x100aaf67
lea ecx, [esi + 4]
mov dword [ebp - 0x10], ecx
cmp ecx, eax
ja 0x100ab01b
push 0x17
push esi
call fcn.1008f798
pop ecx
mov ecx, eax
mov eax, 0x9e3779b1
mul ecx
mov esi, eax
mov eax, 0x85ebca87
mul ecx
add esi, edx
xor eax, ebx
xor esi, edi
push esi
push eax
call fcn.1009b8b0
add esp, 0xc
push 0xc2b2ae3d
push 0x27d4eb4f
push edx
push eax
call fcn.100971b0
mov esi, dword [ebp - 0x10]
mov ebx, eax
mov eax, dword [ebp - 4]
add ebx, 0x9e3779f9
mov edi, edx
adc edi, 0x165667b1
cmp esi, eax
jae 0x100ab05f
movzx eax, byte [esi]
push 0xb
push 0x27d4eb2f
cdq
push 0x165667c5
push edx
push eax
call fcn.100971b0
xor edx, edi
xor eax, ebx
push edx
push eax
call fcn.1009b8b0
add esp, 0xc
push 0x9e3779b1
push 0x85ebca87
push edx
push eax
call fcn.100971b0
inc esi
mov ebx, eax
mov edi, edx
cmp esi, dword [ebp - 4]
jb 0x100ab01f
push 0xc2b2ae3d
xor eax, eax
mov ecx, edi
push 0x27d4eb4f
shr ecx, 1
xor eax, edi
xor ecx, ebx
push eax
push ecx
call fcn.100971b0
mov esi, eax
mov ecx, edx
shrd esi, ecx, 0x1d
push 0x165667b1
shr ecx, 0x1d
xor esi, eax
push 0x9e3779f9
xor ecx, edx
push ecx
push esi
call fcn.100971b0
mov ecx, edx
xor esi, esi
pop edi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
leave
ret