Function at 0x180039040
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x20
mov dword [rsp + 0x30], 0x1c
mov rbx, rcx
mov dword [rsp + 0x38], 0xe3
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov r8d, dword [rsp + 0x38]
inc dword [rbx + 0x100]
movsx eax, dl
and r8d, eax
cmp dword [rbx + 0x100], 1
jne 0x18003908e
or dword [rbx + 0xf0], r8d
add rsp, 0x20
pop rbx
ret
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x38], 1
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x40], rdi
cmp dword [rbx + 0x100], eax
jne 0x1800390cd
xor edi, edi
mov dword [rsp + 0x30], 8
mov dword [rsp + 0x38], edi
jmp 0x180039107
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x38], 2
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
cmp dword [rbx + 0x100], eax
jne 0x18003912e
mov dword [rsp + 0x30], 9
mov dword [rsp + 0x38], 7
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x38], ecx
mov ecx, dword [rsp + 0x38]
shl r8d, cl
or dword [rbx + 0xf0], r8d
add rsp, 0x20
pop rbx
ret
mov dword [rsp + 0x30], 4
xor edi, edi
mov dword [rsp + 0x38], 1
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
cmp dword [rbx + 0x100], eax
jbe 0x180039171
mov dword [rbx + 0xf0], edi
mov dword [rbx + 0x100], edi
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbx
ret
mov dword [rsp + 0x30], 0xb
mov dword [rsp + 0x38], 0xd
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov ecx, dword [rsp + 0x38]
movsxd rax, dword [rbx + 0x108]
shl r8d, cl
mov ecx, dword [rbx + 0xf0]
or ecx, r8d
mov dword [rbx + rax*4 + 0xf4], ecx
inc dword [rbx + 0x108]
mov dword [rbx + 0xf0], edi
mov dword [rbx + 0x100], edi
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x38], 2
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
cmp dword [rbx + 0x108], eax
jb 0x1800392f7
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x38], 3
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
cmp dword [rbx + 0x108], eax
jbe 0x180039224
mov dword [rbx + 0x108], edi
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbx
ret
mov dword [rsp + 0x30], 1
lea rdx, [rbx + 0xf4]
mov dword [rsp + 0x38], 2
mov r8d, edi
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x30], 2
lea rdx, [rdx + 4]
mov dword [rsp + 0x38], 0xb
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
imul eax, r8d
lea rcx, [rbx + rax*4]
mov eax, dword [rdx - 4]
xor dword [rcx + 0x50], eax
mov dword [rsp + 0x30], 0xe
mov dword [rsp + 0x38], 2
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
add eax, r8d
inc r8d
lea rcx, [rbx + rax*4]
mov eax, dword [rdx - 4]
xor dword [rcx], eax
mov dword [rdx - 4], edi
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x38], 2
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x38]
cmp r8d, eax
jb 0x180039250
mov rcx, rbx
call fcn.180038cc0
mov dword [rbx + 0x108], edi
mov dword [rbx + 0x100], edi
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbx
ret