Function at 0x10009a70
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
mov edx, 0x1550
push edi
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0xfc]
sub ecx, 0x132f
imul ebp, dword [eax + 0x64], 0xeab22500
mov eax, dword [esi + 0xf8]
mov dword [eax + 0xd8], ecx
imul ecx, dword [esi + 0x50], 0x1648
mov eax, dword [esi + 0x12c]
xor dword [esi + 0x50], ecx
mov eax, dword [eax + 8]
xor eax, 0xd69
cmp eax, edx
je 0x10009ae5
nop dword [eax + eax]
mov ecx, dword [esi + 0x12c]
inc edx
mov eax, dword [ecx + 0x50]
mov dword [esi + 0x170], eax
dec dword [ecx + 0x50]
mov eax, dword [esi + 0x12c]
mov eax, dword [eax + 8]
xor eax, 0xd69
cmp edx, eax
jne 0x10009ac0
push esi
push 0x1292
mov ecx, 0x19ad
call fcn.1000f640
mov ebx, dword [esi + 0x1f0]
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esi + 0x1fc], eax
cmp ebx, 0x1fa00
jge 0x10009b69
mov eax, dword [esi + 0x38]
mov edi, dword [eax + 0x64]
xor edi, 0xa09
cmp edi, 0x13a4
jge 0x10009b4a
mov edx, dword [esi + 0x1b8]
mov eax, 0x13a4
mov ecx, dword [esi + 0x30]
xor edx, 0x1a4d
sub eax, edi
nop word [eax + eax]
add ecx, edx
sub eax, 1
jne 0x10009b40
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1f4]
add dword [esi + 0x194], 0x139b
mov al, byte [esi + 0x1fc]
mov byte [ebx + ecx], al
inc dword [esi + 0x1f0]
add dword [esi + 0x13c], 0xfffffeb7
mov ecx, 0x16cb
push esi
push 0x190f
call fcn.1000f640
add esp, 8
mov dword [esi + 0x1f8], eax
cmp eax, 0xffff
je 0x10009e6b
mov ebx, dword [esp + 0x18]
nop dword [eax + eax]
cmp dword [esi + 0x1f8], ebp
jb 0x10009c88
mov eax, dword [esi + 0x2c]
mov edx, 0x11d7
or dword [esi + 0x50], eax
inc eax
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x1e4]
mov byte [eax], bl
mov eax, dword [esi + 0x64]
xor eax, 0x19ac
add eax, dword [esi + 0x1e4]
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x1fc]
mov dword [esi + 0x204], eax
mov eax, dword [esi]
cmp dword [eax + 0x64], 0x19ab
je 0x10009c0d
nop
mov ecx, dword [esi + 0x24]
inc edx
mov eax, dword [esi + 0x1c]
or eax, 0x132f
or dword [ecx + 0x10], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
sub eax, 0x7d4
cmp edx, eax
jne 0x10009bf0
push 0x119a
push 0x1550
push esi
push ecx
mov ecx, 0x132f
call fcn.10009330
mov ecx, dword [esi]
add esp, 0x10
mov ebx, dword [esi + 0x58]
mov edi, eax
mov edx, dword [ecx + 0x14c]
imul ecx, dword [ebx + 0x64], 0xc7052e14
add edx, 0x2c1
cmp ecx, edx
jae 0x10009c4b
add dword [esi + 0x50], 0x1a4d
mov eax, dword [esi + 0xfc]
add eax, 0x1839
or dword [esi + 0x194], eax
mov eax, dword [ebx + 0x64]
xor eax, 0x1c4
cmp eax, 0x11d7
ja 0x10009d25
mov ecx, dword [esi + 0xf8]
mov eax, dword [esi + 0x50]
add eax, 0x139b
add dword [ecx + 0xd8], eax
jmp 0x10009d25
mov eax, dword [esi + 0xf8]
mov ecx, dword [esi + 0x24]
mov eax, dword [eax + 0x198]
xor eax, 0x1112
add dword [ecx + 0x50], eax
mov eax, dword [esi + 0x64]
sub eax, 0x71b
cmp eax, 0x1294
jg 0x10009cb5
mov dword [esi + 0x50], 0x17df
mov eax, dword [esi + 0xf8]
push 0x139b
xor eax, 0x1292
push 0x1784
mov dword [esi + 0x1b8], eax
mov eax, dword [esi + 0x1e4]
push esi
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x1f8]
push ecx
mov ecx, 0x13a4
mov dword [esi + 0x204], eax
call fcn.10009330
mov edi, eax
add esp, 0x10
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x1c4]
mov eax, dword [esi + 0x12c]
xor ecx, 0x4c
imul eax, dword [eax + 0x14c], 0x5d3ddd0e
cmp ecx, eax
jbe 0x10009d25
lea eax, [esi + 0xd8]
or dword [esi + 0x13c], eax
movzx ebx, byte [edi]
cmp edi, dword [esi + 0x1e4]
jb 0x10009d85
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
add eax, 0x99
cmp eax, dword [esi + 0x1b8]
je 0x10009d4c
or dword [esi + 0x94], 0x1197
mov edx, dword [esi + 0x1f0]
mov eax, 0xffffff7c
sub eax, esi
add dword [esi + 0x30], eax
cmp edx, 0x1fa00
jge 0x10009d75
mov ecx, dword [esi + 0x1f4]
mov al, byte [edi]
mov byte [edx + ecx], al
inc dword [esi + 0x1f0]
dec edi
mov dword [esi + 0x10], 0x133f
cmp edi, dword [esi + 0x1e4]
jae 0x10009d30
mov eax, dword [esi + 0x58]
mov dword [esi + 0x194], 0x1a34814
imul edx, dword [eax + 0x64], 0x624388d3
cmp edx, 0x1197
jge 0x10009dc4
mov eax, dword [esi + 0xfc]
mov ecx, 0x1197
sub ecx, edx
nop
mov edx, eax
inc eax
sub ecx, 1
jne 0x10009db0
mov dword [esi + 0xfc], eax
mov dword [esi + 0x98], edx
cmp ebp, 0xfffe
ja 0x10009e2b
mov ecx, dword [esi + 0xf8]
mov eax, dword [ecx + 0x16c]
add dword [esi + 0x10], eax
dec dword [ecx + 0x16c]
mov ecx, dword [esi + 0x1dc]
mov eax, dword [esi + 0x1fc]
mov dword [ecx + ebp*4], eax
mov eax, dword [esi + 0xf8]
mov ecx, dword [eax + 0x64]
mov eax, dword [esi + 0x12c]
add ecx, 0x99
imul eax, dword [eax + 0x14], 0x7ca294ab
cmp ecx, eax
jae 0x10009e21
mov eax, dword [esi + 0x98]
xor eax, 0x132f
add dword [esi + 0xd0], eax
mov eax, dword [esi + 0x1e0]
mov byte [eax + ebp], bl
inc ebp
mov eax, dword [esi + 0x1f8]
mov ecx, 0x16cb
mov dword [esi + 0x1fc], eax
mov eax, dword [esi]
push esi
push 0x190f
mov eax, dword [eax + 0x170]
xor eax, 0x119a
mov dword [esi + 0x2c], eax
call fcn.1000f640
add esp, 8
mov dword [esi + 0x1f8], eax
cmp eax, 0xffff
jne 0x10009ba0
pop edi
pop esi
pop ebp
pop ebx
ret