Function at 0x1000927b
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
mov eax, dword [0x1006158c]
mov cl, byte [esp + 0x1c]
push ebx
push ebp
movzx edx, byte [eax + 0x927]
mov ebp, dword [esp + 0x28]
movzx eax, cl
sub edx, eax
inc cl
mov eax, dword [0x100615a4]
inc eax
mov dword [esp + 0x1c], edx
mov dword [0x100615a4], eax
mov dword [esp + 0xc], eax
movzx eax, word [0x10061590]
imul eax, eax, 6
movzx ebx, word [ebp + 0x1f16]
push esi
push edi
mov byte [esp + 0x2c], cl
mov ecx, dword [0x10061570]
mov dword [esp + 0x18], ecx
movzx esi, word [eax + ebp]
mov eax, dword [0x100615b4]
mov dword [esp + 0x1c], eax
mov eax, dword [0x10061594]
inc eax
mov dword [0x10061594], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
movzx edi, ax
lea eax, [edi - 1]
mov dword [esp + 0x10], eax
mov eax, 0x96a
cdq
idiv dword [esp + 0x10]
xor edx, edx
xor eax, dword [esp + 0x34]
sub eax, dword [0x10061584]
inc ecx
mov word [0x10061584], ax
mov eax, dword [0x10061580]
sub eax, ecx
mov dword [0x10061570], ecx
sub eax, esi
add dword [esp + 0x34], 0xffff
xor word [ebp + 0x72], ax
dec esi
mov eax, dword [0x1006158c]
mov dword [esp + 0x30], esi
mov esi, dword [0x10061580]
inc esi
mov dword [0x10061580], esi
movzx ecx, byte [edi + eax]
mov eax, esi
div ecx
mov edi, dword [esp + 0x1c]
sub eax, esi
mov dword [0x10061580], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x34]
cdq
idiv dword [edi + 0x188]
mov dword [edi + 0x188], eax
mov eax, dword [0x1006158c]
movzx eax, byte [eax + 0xc28]
or ax, word [ebp + 0x100c]
mov word [ebp + 0x11a], ax
mov eax, 0xf1
mov esi, dword [0x100615ac]
cmp bx, ax
jb 0x10009510
movzx eax, word [0x10061590]
dec esi
mov dword [0x100615ac], esi
movzx eax, word [ebp + eax*4]
cmp eax, esi
jne 0x10009510
mov eax, dword [esp + 0x20]
xor edx, edx
movzx edi, byte [esp + 0x2c]
mov esi, 0xc28
mov ecx, dword [0x1006156c]
movzx eax, word [eax + 0x1850]
imul eax, edi
div esi
or eax, 0x1d31
sub ax, word [ebp + ecx*4]
mov word [ebp + ecx*4], ax
mov eax, dword [esp + 0x34]
movzx ecx, ax
mov eax, dword [0x10061564]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + ecx*4]
xor eax, 0xde4
push eax
movzx eax, byte [0x10061576]
push eax
mov eax, dword [0x100615b0]
xor eax, dword [esp + 0x18]
push eax
mov eax, dword [0x4a16]
xor eax, dword [0x10061594]
push eax
push esi
call fcn.1000c6fd
mov cl, byte [0x10061570]
add esp, 0x14
add cl, byte [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
movzx eax, al
movzx ecx, cl
imul ecx, eax
mov eax, dword [0x1006156c]
mov byte [eax + edx + 0x1b], cl
mov eax, dword [0x10061588]
inc dword [0x1006156c]
and dword [eax + edi*4], edi
lea eax, [edi + edx]
movzx ebx, word [ebp + 0x5e]
mov dword [esp + 0x1c], eax
movzx eax, byte [eax]
cmp ebx, eax
je 0x100095c9
mov ecx, dword [esp + 0x30]
add edi, edi
lea eax, [ebx + ecx]
mov dword [esp + 0x2c], eax
mov ax, word [0x100615a8]
inc ax
mov word [0x100615a8], ax
movzx esi, ax
mov eax, dword [0x10061564]
mov eax, dword [eax + ecx*8 + 0x28]
mov ecx, dword [esp + 0x20]
xor eax, ecx
sub eax, ebx
add eax, dword [ecx*4 + 0x13e1]
movzx ecx, word [ebp + esi*2 + 0x34]
cdq
idiv ecx
mov eax, dword [esp + 0x18]
mov word [ebp + esi*2 + 0x34], dx
xor edx, edx
mov esi, dword [esp + 0x2c]
xor dword [eax + edi*8], 0x37c
mov eax, esi
movzx ecx, word [ebp + 0x20e0]
div ecx
mov ecx, dword [0x100615a0]
or dword [0x10061594], eax
mov eax, dword [0x10061584]
imul eax, dword [esp + 0x34]
or word [ebp + ecx*2 + 0x4e], ax
mov eax, dword [esp + 0x1c]
inc dword [0x100615a0]
inc ebx
mov ecx, dword [esp + 0x30]
inc esi
mov dword [esp + 0x2c], esi
movzx eax, byte [eax]
cmp ebx, eax
jne 0x1000947f
jmp 0x100095c9
mov bl, byte [esp + 0x2c]
mov eax, esi
cdq
movzx ecx, bl
idiv ecx
push 0x2f
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x30]
and dword [0x1006156c], eax
mov eax, dword [esp + 0x34]
movzx ecx, ax
mov ax, word [ebp + ecx*2]
xor ax, si
mov esi, 0x817
xor ax, word [0x100615a0]
mov word [ebp + ecx*2], ax
dec dword [0x100615a0]
mov ecx, dword [0x10061578]
mov eax, dword [0x100615b0]
or dword [ecx + edx*8 + 8], eax
mov eax, dword [0x1006156c]
dec eax
mov edx, dword [esp + 0x18]
mov dword [0x1006156c], eax
mov cl, byte [ebp + 0x2138]
add cl, byte [edi + 0xbc]
or cl, 0xe
xor cl, al
movzx eax, byte [0x10061576]
movzx ecx, cl
imul ecx, eax
mov byte [0x10061576], cl
mov ecx, dword [0x10061594]
mov cx, word [ebp + ecx*2]
or word [0x10061584], cx
inc bl
movzx eax, bl
movzx ecx, word [0x10061590]
mov eax, dword [edx + eax*4]
cdq
idiv esi
mov eax, dword [esp + 0x24]
sub edx, dword [eax + ecx*4]
mov dword [eax + ecx*4], edx
inc word [0x10061590]
mov eax, 0xed
cdq
idiv dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x18
ret