Function at 0x10019c08
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x2020
call fcn.1015dc90
mov eax, dword [0x101ed004]
xor eax, esp
mov dword [esp + 0x201c], eax
mov edx, dword [esp + 0x2028]
push ebx
mov ebx, dword [esp + 0x2028]
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x10], ebx
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x2038]
push edi
push dword [esi + 0x14]
mov dword [esp + 0x24], eax
lea ebp, [esi + 0x3c]
push dword [esi + 4]
lea eax, [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x14]
xor edi, edi
push eax
push edx
mov dword [esp + 0x34], ecx
mov ecx, ebp
push ebx
mov dword [esp + 0x30], edx
call fcn.1001f470
test eax, eax
jne 0x10019ca6
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x710]
mov dword [esi + 0x744], edx
test edi, edi
je 0x10019c76
cmp edx, 0xa0000059
je 0x10019c76
mov ecx, dword [edi]
lea eax, [esi + 0x74c]
push eax
push 0
push ebx
push edx
push edi
call dword [ecx + 0x14]
cmp dword [esi + 0x73c], 0
je 0x10019c89
mov dword [esi + 0x740], 1
xor eax, eax
mov ecx, dword [esp + 0x202c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10142783
add esp, 0x2020
ret 0xc
mov edx, dword [esp + 0x24]
test edx, edx
jl 0x10019d9d
mov ecx, dword [esp + 0x20]
jg 0x10019cd4
test ecx, ecx
je 0x10019d9d
test edx, edx
jg 0x10019cd4
jl 0x10019cce
cmp ecx, 0x2000
jae 0x10019cd4
mov ebx, ecx
mov ebp, edx
jmp 0x10019cdb
mov ebx, 0x2000
xor ebp, ebp
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x28]
push ebx
push edx
mov eax, dword [ecx]
call dword [eax + 0x18]
test eax, eax
je 0x10019e98
push ebx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esi + 0x3c]
call fcn.1001fdb0
mov ecx, ebx
lea edx, [esp + 0x28]
test ecx, ecx
je 0x10019d2a
nop word [eax + eax]
movzx eax, byte [edx]
lea edx, [edx + 1]
xor eax, edi
shr edi, 8
movzx eax, al
xor edi, dword [esi + eax*4 + 0x824]
sub ecx, 1
jne 0x10019d10
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x28]
push ebx
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
je 0x10019e02
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub ecx, ebx
mov dword [esp + 0x20], ecx
sbb edx, ebp
cmp dword [esi + 0x73c], 0
mov dword [esp + 0x24], edx
jne 0x10019d76
mov ecx, dword [esp + 0x18]
push ecx
push ebp
push ebx
push ebp
push ebx
mov ecx, esi
call fcn.1005c4d0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x74c]
or eax, dword [esi + 0x748]
jne 0x10019d96
test edx, edx
jg 0x10019cd4
jl 0x10019d96
test ecx, ecx
jne 0x10019cc0
mov ebx, dword [esp + 0x14]
lea ebp, [esi + 0x3c]
cmp dword [esi + 0x744], 0
jne 0x10019c89
mov ecx, ebp
call fcn.1001ffa0
test eax, eax
jne 0x10019ee1
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x710]
mov dword [esi + 0x744], edx
test edi, edi
je 0x10019de5
cmp edx, 0xa0000059
je 0x10019de5
mov ecx, dword [edi]
lea eax, [esi + 0x74c]
push eax
push 0
push ebx
push edx
push edi
call dword [ecx + 0x14]
xor eax, eax
cmp dword [esi + 0x73c], eax
je 0x10019c8b
mov dword [esi + 0x740], 1
jmp 0x10019c8b
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x14]
cmp eax, 0x70
jne 0x10019e59
mov dword [esi + 0x744], 0xa0000054
test edx, edx
je 0x10019e3a
mov ecx, dword [edx]
lea eax, [esi + 0x74c]
push eax
push 0
push ebx
push 0xa0000054
push edx
call dword [ecx + 0x14]
cmp dword [esi + 0x73c], 0
lea ebp, [esi + 0x3c]
je 0x10019d9d
mov dword [esi + 0x740], 1
jmp 0x10019d9d
mov dword [esi + 0x744], 0xa0000030
test edx, edx
je 0x10019e7c
mov ecx, dword [edx]
lea eax, [esi + 0x74c]
push eax
push 0
push ebx
push 0xa0000030
push edx
call dword [ecx + 0x14]
cmp dword [esi + 0x73c], 0
je 0x10019d9a
mov dword [esi + 0x740], 1
jmp 0x10019d9a
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x14]
mov dword [esi + 0x744], 0xa0000015
test edx, edx
je 0x10019ec2
mov ecx, dword [edx]
lea eax, [esi + 0x74c]
push eax
push 0
push ebx
push 0xa0000015
push edx
call dword [ecx + 0x14]
cmp dword [esi + 0x73c], 0
lea ebp, [esi + 0x3c]
je 0x10019d9d
mov dword [esi + 0x740], 1
jmp 0x10019d9d
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x10019f18
cmp eax, edi
je 0x10019f18
mov edx, dword [esi + 4]
mov dword [esi + 0x744], 0xa0000018
test edx, edx
je 0x10019c76
mov ecx, dword [edx]
lea eax, [esi + 0x74c]
push eax
push 0
push ebx
push 0xa0000018
push edx
jmp 0x10019c73
mov eax, 1
jmp 0x10019c8b