Function at 0x1001c5c0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
push ebx
push 0
push dword [esp + 0x20]
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
call fcn.1000f7a0
mov ebx, eax
cmp ebx, 0xff
ja 0x1001c982
test ebx, ebx
je 0x1001c96c
push ebp
push esi
push edi
mov ebp, 0x4949
jmp 0x1001c600
push dword [0x19b9d554]
lea eax, [esp + 0x14]
mov word [esp + 0x14], 0xffff
push 2
push 1
push eax
dec ebx
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bp
jne 0x1001c634
movzx ecx, byte [esp + 0x11]
movzx eax, byte [esp + 0x10]
jmp 0x1001c63e
movzx ecx, byte [esp + 0x10]
movzx eax, byte [esp + 0x11]
push dword [0x19b9d554]
shl cx, 8
or cx, ax
mov word [esp + 0x18], 0xffff
movzx eax, cx
push 2
movzx esi, ax
lea eax, [esp + 0x1c]
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], bp
jne 0x1001c67e
movzx ecx, byte [esp + 0x15]
movzx eax, byte [esp + 0x14]
jmp 0x1001c688
movzx ecx, byte [esp + 0x14]
movzx eax, byte [esp + 0x15]
push dword [0x19b9d554]
shl cx, 8
or cx, ax
movzx eax, cx
movzx ebp, ax
call fcn.10034dc0
add esp, 4
mov edi, eax
mov dword [esp + 0x20], edi
cmp esi, 0x100
jne 0x1001c759
push dword [0x19b9d554]
lea eax, [esp + 0x1c]
mov word [esp + 0x1c], 0xffff
push 2
push 1
push eax
call fcn.10034540
mov esi, 0x4949
add esp, 0x10
cmp word [0x19b9d54c], si
jne 0x1001c6ed
movzx ecx, byte [esp + 0x19]
movzx eax, byte [esp + 0x18]
jmp 0x1001c6f7
movzx ecx, byte [esp + 0x18]
movzx eax, byte [esp + 0x19]
push dword [0x19b9d554]
shl cx, 8
or cx, ax
mov word [esp + 0x20], 0xffff
movzx eax, cx
push 2
mov word [0x19b9d08a], ax
lea eax, [esp + 0x24]
push 1
push eax
call fcn.10034540
add esp, 0x10
cmp word [0x19b9d54c], si
jne 0x1001c73a
movzx ecx, byte [esp + 0x1d]
movzx eax, byte [esp + 0x1c]
jmp 0x1001c744
movzx ecx, byte [esp + 0x1c]
movzx eax, byte [esp + 0x1d]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [0x19b9d088], ax
jmp 0x1001c948
cmp esi, 0x121
jne 0x1001c795
call fcn.1000f740
mov word [0x19b9d086], ax
call fcn.1000f740
mov ecx, 0x10bc
mov word [0x19b9d084], ax
cmp ax, cx
jne 0x1001c948
mov eax, 0x10bf
mov word [0x19b9d084], ax
jmp 0x1001c948
cmp esi, 0x130
jne 0x1001c85d
cmp dword [0x19b9d554], 0x3ec
jne 0x1001c7e0
mov esi, dword [0x19b5ab58]
test esi, esi
je 0x1001c7e0
mov edx, dword [0x19b5aad4]
mov eax, edx
mov ecx, dword [0x19b5aad0]
sub eax, ecx
cmp eax, 1
jl 0x1001c7e0
movzx eax, byte [ecx]
inc ecx
sar eax, 7
mov dword [0x19b5aad0], ecx
mov dword [0x19b9d160], eax
jmp 0x1001c814
push dword [0x19b9d554]
call fcn.10033e00
sar eax, 7
add esp, 4
cmp dword [0x19b9d554], 0x3ec
mov dword [0x19b9d160], eax
jne 0x1001c83c
mov esi, dword [0x19b5ab58]
mov edx, dword [0x19b5aad4]
mov ecx, dword [0x19b5aad0]
test esi, esi
je 0x1001c83c
sub edx, ecx
cmp edx, 1
jl 0x1001c83c
movzx eax, byte [ecx]
inc ecx
shr eax, 3
not eax
mov dword [0x19b5aad0], ecx
and eax, 1
mov word [0x19b9d078], ax
jmp 0x1001c948
push dword [0x19b9d554]
call fcn.10033e00
shr eax, 3
add esp, 4
not eax
and eax, 1
mov word [0x19b9d078], ax
jmp 0x1001c948
cmp esi, 0x131
jne 0x1001c8cf
mov ecx, dword [0x19b5aad0]
mov esi, 0x19b9d503
mov dword [0x19b9d090], 9
mov edi, 0x24
nop
cmp dword [0x19b9d554], 0x3ec
jne 0x1001c8ad
cmp dword [0x19b5ab58], 0
je 0x1001c8ad
mov eax, dword [0x19b5aad4]
sub eax, ecx
cmp eax, 1
jl 0x1001c8ad
movzx eax, byte [ecx]
inc ecx
mov dword [0x19b5aad0], ecx
jmp 0x1001c8c1
push dword [0x19b9d554]
call fcn.10033e00
mov ecx, dword [0x19b5aad0]
add esp, 4
and al, 3
mov byte [esi], al
dec esi
dec edi
jne 0x1001c880
mov edi, dword [esp + 0x20]
jmp 0x1001c948
cmp esi, 0x2ff0
jne 0x1001c904
xor esi, esi
lea esp, [esp]
call fcn.1000f740
movzx eax, ax
mov dword [esp + 0x20], eax
mov eax, esi
fild dword [esp + 0x20]
xor eax, 1
inc esi
fstp dword [eax*4 + 0x19b7af20]
cmp esi, 4
jb 0x1001c8e0
jmp 0x1001c948
cmp esi, 0xc000
jne 0x1001c948
movsx esi, word [0x19b9d54c]
mov eax, 0x4949
mov word [0x19b9d54c], ax
mov edi, edi
call fcn.1000f7a0
movzx ecx, word [0x19b9d088]
cmp eax, ecx
ja 0x1001c920
mov word [0x19b9d084], ax
call fcn.1000f7a0
mov word [0x19b9d086], ax
mov word [0x19b9d54c], si
push 0
lea eax, [edi + ebp]
push eax
push dword [0x19b9d554]
call fcn.10034c80
add esp, 0xc
mov ebp, 0x4949
test ebx, ebx
jne 0x1001c600
pop edi
pop esi
pop ebp
mov eax, dword [0x19b9d160]
mov cx, ax
shl word [0x19b9d086], cl
shr word [0x19b9d084], cl
pop ebx
add esp, 0x14
ret