Function at 0x1000aac7
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push ebx
push ebp
mov ebp, dword [esp + 0x18]
mov ebx, ecx
add ecx, 0xffffff44
xor ebx, 0x3fbe
push edi
lea edi, [eax - 0x391]
mov dword [esp + 0xc], ecx
lea ecx, [eax - 0x1cf]
mov dword [esp + 0x28], edi
lea eax, [edi + 0x34]
mov dword [esp + 0x24], ecx
xor ebp, 0x3f4f
cmp ebx, eax
jg 0x1000ad82
lea eax, [ebp + 0x3cce]
cmp ecx, eax
je 0x1000ad82
lea eax, [ebp + 0x3bc8]
push esi
cmp dword [esp + 0x24], eax
je 0x1000ac84
mov esi, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esi + 0x88]
mov ecx, dword [0x10055f54]
mov edx, dword [eax + ebp]
add ebp, 4
mov eax, dword [ecx + 0x7c]
xor eax, 0xd79d24
add dword [ecx + 0xdc], eax
mov eax, 0xebe3f8
mov ecx, dword [0x10055f54]
sub eax, dword [ecx + 0x7c]
sub eax, dword [esi + 0xa8]
add dword [0x10074ae4], eax
mov eax, 0x313ef
sub eax, dword [ecx + 0x34]
add dword [0x10074b20], eax
mov eax, dword [esi + 0x48]
sub eax, 0x1a83f2
xor dword [0x10074abc], eax
mov eax, 0x163ac8
sub eax, dword [0x10074b1c]
sub eax, dword [0x10074af0]
add dword [esi + 0x7c], eax
mov eax, dword [esi + 0x9c]
imul eax, dword [esi + 0xd8]
mov dword [esi + 0xd8], eax
mov eax, dword [0x10055f54]
mov ebx, dword [eax + 0x3c]
mov eax, dword [esi + 0x60]
xor eax, dword [0x10074a40]
sub eax, 0x16b65b
imul ebx, edx
or dword [0x10074abc], eax
mov eax, dword [0x10074acc]
mov ecx, dword [esi + 0x58]
mov edx, ebx
shr edx, 0x10
mov byte [eax + ecx], dl
mov edx, ebx
inc dword [esi + 0x58]
mov eax, dword [0x10074a90]
add eax, 0xffe57c0e
shr edx, 8
add eax, dword [esi + 0x48]
mov dword [0x10074a90], eax
mov eax, dword [0x10074acc]
mov ecx, dword [esi + 0x58]
mov byte [eax + ecx], dl
inc dword [esi + 0x58]
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x8c]
mov byte [ecx + eax], bl
inc dword [esi + 0x58]
mov eax, dword [esi + 0x7c]
xor eax, 0xd79d24
or dword [esi + 0xa8], eax
mov eax, 0x1fb115
mov ecx, dword [0x10055f54]
sub eax, dword [ecx + 0x84]
add dword [ecx + 0xf4], eax
mov eax, dword [esi]
sub eax, 0x2edea
or dword [esi + 0x84], eax
cmp ebp, 0x1dd0
jl 0x1000ab33
cmp dword [esi + 0x34], 0xa34b
jbe 0x1000ac70
mov eax, dword [0x10055f54]
mov eax, dword [eax + 0xdc]
xor eax, 0x287df0dc
mov dword [esi + 0x3c], eax
mov eax, dword [0x10055f54]
mov dword [eax + 0x88], 0x1006be98
jmp 0x1000ad81
mov eax, dword [esp + 0x1c]
mov ecx, ebx
and ecx, 0x3aad
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x44]
imul eax, ecx
cmp ebx, eax
jbe 0x1000ad81
mov eax, dword [0x10055f54]
or ebp, 0x3ea3
push dword [esp + 0x1c]
sub ebp, dword [0x10074b10]
mov esi, dword [0x10074a60]
mov edi, dword [eax + 0x9c]
mov eax, dword [esp + 0x20]
sub edi, dword [0x10074b0c]
sub esi, dword [0x10074a48]
or edi, 0x3e39
push ebp
mov edx, dword [eax + 0xa4]
and edx, dword [esp + 0x30]
xor edx, dword [eax + 0xd8]
mov eax, dword [eax + 0xb0]
add eax, dword [esp + 0x34]
imul ecx, eax, 0x3c82
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x84]
xor eax, ebx
push eax
push ecx
push edx
push esi
push edi
call fcn.1000d7b7
mov edx, dword [0x10055f54]
mov esi, eax
mov eax, dword [esp + 0x38]
xor esi, dword [esp + 0x48]
push esi
mov ecx, dword [edx + 0xe8]
imul edi, dword [eax + 0xf0], 0x3aad
mov eax, dword [esp + 0x30]
sub eax, dword [0x10074b20]
imul eax, dword [edx + 0xa4]
xor ecx, dword [esp + 0x48]
or edi, 0x4008
push eax
push edx
push ecx
push edi
call fcn.1000c3d8
mov edx, dword [esp + 0x50]
mov ebp, eax
mov eax, dword [esp + 0x4c]
add edx, 4
add esp, 0x30
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 0x44]
imul ecx, dword [esp + 0x24]
cmp edx, ecx
ja 0x1000aca6
mov edi, dword [esp + 0x2c]
pop esi
lea eax, [edi + 0x2a7]
pop edi
pop ebp
pop ebx
pop ecx
ret