Function at 0x10009823
Capabilities:
Encode data using xor

Disassembly:
push 0x48
mov eax, 0x1002fa32
call fcn.1002a0b4
mov dword [ebp - 0x44], 0x7fae
mov dword [ebp - 0x48], 0x597c
mov dword [ebp - 0x44], 0x2b12
mov dword [ebp - 0x40], 0x3b41
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
imul eax, ecx
mov ecx, dword [ebp - 0x40]
and eax, ecx
or eax, 0x56dc
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x44], 0xdcb
mov dword [ebp - 0x44], 0x66cb
mov eax, 0x1003f260
call fcn.10022ae9
mov dword [ebp - 0x34], 0xab1
mov dword [ebp - 0x54], 0x3f2e
mov dword [ebp - 0x40], 0x5d8c
mov dword [ebp - 0x34], 0x11e5
mov dword [ebp - 0x48], 0x3dae
mov dword [ebp - 0x44], 0x3a48
mov dword [ebp - 0x3c], 0x754c
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
imul eax, ecx
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x54]
mov esi, 0xcd3
xor eax, ecx
mov ecx, dword [ebp - 0x3c]
xor eax, ecx
mov ecx, dword [ebp - 0x34]
xor eax, ecx
or eax, 0x188c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], 0x7dd0
mov dword [ebp - 0x3c], 0x552b
mov dword [ebp - 0x34], 0x54d7
mov dword [ebp - 0x44], 0x2a49
mov dword [ebp - 0x48], 0x3b7e
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
imul eax, ecx
add eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
xor ecx, 0x6073
or eax, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, eax
mov ecx, dword [eax + 0x1003f264]
mov dword [ebx + 4], ecx
mov dword [ebp - 0x34], 0x324a
mov dword [ebp - 0x34], 0xe89
lea edi, [eax + str.4A9C1F_6B6E_4A45_A51F_F937AB5C4F07]
mov dword [ebp - 0x34], 0x6c4e
mov dword [ebp - 0x34], 0x641d
mov eax, dword [ebp - 0x34]
sub eax, 0x1013
mov dword [ebp - 0x34], eax
mov eax, esi
sub eax, dword [ebp - 0x18]
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1001f2d2
pop ecx
pop ecx
mov dword [ebp - 0x38], 0x7f83
mov dword [ebp - 0x54], 0xcb1
mov dword [ebp - 0x40], 0x1533
mov dword [ebp - 0x4c], 0x1e00
mov dword [ebp - 0x3c], 0x4551
mov dword [ebp - 0x34], 0x5024
mov dword [ebp - 0x48], 0x1b8a
mov dword [ebp - 0x38], 0x6b2b
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
sub edx, ecx
mov ecx, dword [ebp - 0x48]
sub edx, ecx
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x54]
and dword [ebp - 0x54], 0
and edx, ecx
mov ecx, dword [ebp - 0x4c]
and edx, ecx
mov ecx, dword [ebp - 0x38]
sub ecx, 0x4d1f
or edx, ecx
mov ecx, esi
sub ecx, dword [ebp - 0x18]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x38], edx
je 0x10009aa0
mov dword [ebp - 0x40], edi
sub dword [ebp - 0x40], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], 0x71a5
mov dword [ebp - 0x38], 0x6982
mov dword [ebp - 0x30], 0x6c36
mov dword [ebp - 0x50], 0x20ca
mov dword [ebp - 0x3c], 0x3e96
mov dword [ebp - 0x30], 0x1407
mov dword [ebp - 0x34], 0x22ea
mov dword [ebp - 0x4c], 0x358c
mov dword [ebp - 0x38], 0x38f0
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x4c]
imul eax, ecx
add eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x50]
imul ecx, edx
and eax, ecx
mov ecx, dword [ebp - 0x30]
and eax, ecx
or eax, 0xfc5
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x54]
xor edx, edx
div dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
mov edi, edx
call fcn.10022a16
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x40]
mov dx, word [edx + ecx]
xor dx, word [eax]
inc dword [ebp - 0x54]
mov word [ecx], dx
mov eax, esi
sub eax, dword [ebp - 0x18]
inc ecx
inc ecx
cmp dword [ebp - 0x54], eax
mov dword [ebp - 0x30], 0x38be
mov dword [ebp - 0x30], 0xd83
mov dword [ebp - 0x48], ecx
jb 0x100099f7
mov esi, dword [ebx + 4]
xor ecx, ecx
push 0x1c
pop edx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.1001f2d2
pop ecx
mov dword [ebp - 0x30], eax
test eax, eax
mov byte [ebp - 4], 1
je 0x10009aed
push 0x1000fbcd
push 0x1002b04b
push esi
lea edi, [eax + 4]
push 0x1c
push edi
mov dword [eax], esi
call fcn.10010cc0
mov eax, edi
jmp 0x10009aef
xor eax, eax
mov esi, dword [ebp - 0x44]
mov byte [ebp - 4], 0
mov dword [ebx], eax
mov dword [ebp - 0x30], 0x7aec
xor edi, edi
cmp dword [ebx + 4], edi
mov dword [ebp - 0x30], 0x5f93
mov dword [ebp - 0x30], 0x328d
mov dword [ebp - 0x30], 0x51d4
mov dword [ebp - 0x40], edi
jbe 0x10009c57
mov dword [ebp - 0x30], 0x7830
mov dword [ebp - 0x34], 0x6379
mov dword [ebp - 0x4c], 0x522f
mov dword [ebp - 0x3c], 0x17c7
mov dword [ebp - 0x38], 0x6782
mov dword [ebp - 0x50], 0x55b8
mov dword [ebp - 0x30], 0x7612
mov eax, dword [ebp - 0x30]
mov ecx, 0x272d
sub ecx, eax
add ecx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x34]
imul eax, edx
xor ecx, eax
mov eax, dword [ebp - 0x3c]
xor ecx, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x30], 0x326a
mov dword [ebp - 0x3c], 0x2342
mov dword [ebp - 0x34], 0x3c41
mov dword [ebp - 0x4c], 0x3ee1
mov dword [ebp - 0x50], 0x5d9b
mov dword [ebp - 0x30], 0x1f53
mov dword [ebp - 0x38], 0xb68
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x50]
imul eax, ecx
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x4e0
and eax, ecx
mov ecx, dword [ebp - 0x4c]
and eax, ecx
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x3c]
or eax, ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebx]
add eax, edi
push eax
mov eax, esi
call fcn.10022ae9
mov dword [ebp - 0x30], 0x53cc
mov dword [ebp - 0x48], 0x576b
mov dword [ebp - 0x3c], 0x23e4
mov dword [ebp - 0x34], 0x5466
mov dword [ebp - 0x4c], 0x6d49
mov dword [ebp - 0x50], 0x1ed9
mov dword [ebp - 0x30], 0x6331
mov dword [ebp - 0x38], 0x61fe
mov eax, dword [ebp - 0x30]
pop ecx
mov ecx, dword [ebp - 0x50]
imul eax, ecx
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x34]
imul ecx, edx
add eax, 0x52b4
xor eax, ecx
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x48]
and ecx, edx
xor eax, ecx
inc dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx]
mov eax, dword [eax + edi + 0x14]
lea esi, [esi + eax*2 + 4]
mov eax, dword [ebp - 0x40]
add edi, 0x1c
cmp eax, dword [ebx + 4]
jb 0x10009b22
push dword [ebp - 0x44]
call fcn.10005556
mov dword [ebp - 0x30], 0x3913
mov dword [ebp - 0x50], 0x47e5
mov dword [ebp - 0x30], 0x3682
mov dword [ebp - 0x38], 0x619d
mov eax, dword [ebp - 0x30]
pop ecx
mov ecx, dword [ebp - 0x50]
imul eax, ecx
mov ecx, dword [ebp - 0x38]
and eax, ecx
push 0
xor eax, 0x1ad5
push 1
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x30], eax
call fcn.100161cc
mov eax, ebx
call fcn.1002415b
ret