Function at 0x180044034
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov r14, qword [rcx + 0x28]
movsxd rbx, dword [rcx + 0x20]
mov rsi, rcx
lea rax, [r14 + 8]
test r14, r14
lea edi, [rbx + rbx]
cmovne r14, rax
test rbx, rbx
je 0x18004408d
shl rbx, 3
xor r15d, r15d
mov rcx, qword [r14 + r15]
call fcn.1800428ac
add rdi, rax
or eax, 1
add r15, 8
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
add rdi, rax
cmp rbx, r15
jne 0x180044064
mov ebx, dword [rsi + 0x10]
test bl, bl
je 0x1800441e7
test bl, 1
je 0x1800440c2
mov rax, qword [rsi + 0x30]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 1]
test bl, 2
je 0x1800440ec
mov rax, qword [rsi + 0x38]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 1]
test bl, 4
je 0x180044116
mov rax, qword [rsi + 0x40]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 1]
test bl, 8
je 0x180044140
mov rax, qword [rsi + 0x48]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 1]
test bl, 0x10
je 0x18004416a
mov rax, qword [rsi + 0x50]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 1]
test bl, 0x20
je 0x180044194
mov rax, qword [rsi + 0x58]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
test bl, 0x40
je 0x1800441be
mov rax, qword [rsi + 0x60]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
test bl, bl
jns 0x1800441e7
mov rax, qword [rsi + 0x68]
and rax, 0xfffffffffffffffc
mov rax, qword [rax + 0x10]
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
test ebx, 0xff00
je 0x1800442e4
bt ebx, 8
jae 0x18004421b
mov rcx, qword [rsi + 0x70]
call fcn.1800311b8
add rdi, rax
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 9
jae 0x180044241
mov rax, qword [rsi + 0x78]
or rax, 1
lzcnt rax, rax
xor rax, 0x3f
lea rax, [rax + rax*8 + 0x89]
shr rax, 6
add rdi, rax
lea rax, [rdi + 9]
bt ebx, 0xa
cmovae rax, rdi
bt ebx, 0xb
jae 0x180044270
mov ecx, dword [rsi + 0x88]
or ecx, 1
lzcnt ecx, ecx
xor ecx, 0x1f
lea ecx, [rcx + rcx*8 + 0x89]
shr ecx, 6
add rax, rcx
bt ebx, 0xc
jae 0x180044293
mov ecx, dword [rsi + 0x8c]
or ecx, 1
lzcnt ecx, ecx
xor ecx, 0x1f
lea ecx, [rcx + rcx*8 + 0x89]
shr ecx, 6
add rax, rcx
lea rdi, [rax + 2]
bt ebx, 0xd
cmovae rdi, rax
bt ebx, 0xe
jae 0x1800442c2
mov eax, dword [rsi + 0x94]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x89]
shr eax, 6
add rdi, rax
test bx, bx
jns 0x1800442e4
mov eax, dword [rsi + 0x98]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x89]
shr eax, 6
add rdi, rax
test ebx, 0xff0000
je 0x180044409
bt ebx, 0x10
jae 0x180044313
mov eax, dword [rsi + 0x9c]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x89]
shr eax, 6
add rdi, rax
bt ebx, 0x11
jae 0x180044336
mov eax, dword [rsi + 0xa0]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x89]
shr eax, 6
add rdi, rax
bt ebx, 0x12
jae 0x180044359
mov eax, dword [rsi + 0xa4]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x89]
shr eax, 6
add rdi, rax
bt ebx, 0x13
jae 0x18004437b
mov eax, dword [rsi + 0xa8]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x14
jae 0x18004439d
mov eax, dword [rsi + 0xac]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x15
jae 0x1800443c5
mov rax, qword [rsi + 0xb0]
or rax, 1
lzcnt rax, rax
xor rax, 0x3f
lea rax, [rax + rax*8 + 0x49]
shr rax, 6
lea rdi, [rdi + rax + 2]
bt ebx, 0x16
jae 0x1800443e7
mov eax, dword [rsi + 0xb8]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x17
jae 0x180044409
mov eax, dword [rsi + 0xbc]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
test ebx, 0x7f000000
je 0x18004450f
bt ebx, 0x18
jae 0x180044437
mov eax, dword [rsi + 0xc0]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x19
jae 0x18004445f
movsxd rax, dword [rsi + 0xc4]
or rax, 1
lzcnt rax, rax
xor rax, 0x3f
lea rax, [rax + rax*8 + 0x49]
shr rax, 6
lea rdi, [rdi + rax + 2]
bt ebx, 0x1a
jae 0x180044481
mov eax, dword [rsi + 0xc8]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x1b
jae 0x1800444a3
mov eax, dword [rsi + 0xcc]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x1c
jae 0x1800444c5
mov eax, dword [rsi + 0xd0]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x1d
jae 0x1800444e7
mov eax, dword [rsi + 0xd4]
or eax, 1
lzcnt eax, eax
xor eax, 0x1f
lea eax, [rax + rax*8 + 0x49]
shr eax, 6
lea rdi, [rax + rdi + 2]
bt ebx, 0x1e
jae 0x18004450f
movsxd rax, dword [rsi + 0xd8]
or rax, 1
lzcnt rax, rax
xor rax, 0x3f
lea rax, [rax + rax*8 + 0x49]
shr rax, 6
lea rdi, [rdi + rax + 2]
mov rax, qword [rsi + 8]
test al, 1
je 0x18004451f
and rax, 0xfffffffffffffffc
add rdi, qword [rax + 0x18]
mov rcx, rsi
mov edx, edi
call fcn.180030316
mov rax, rdi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret