Function at 0x1800f5880
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x70
mov r13, qword [rcx]
xor ebp, ebp
mov qword [rsp + 0x68], r12
mov rsi, r9
mov dword [rsp + 0xb0], ebp
mov r15, r8
mov dword [rsp + 0x48], ebp
mov r12d, ebp
mov qword [rsp + 0x40], rbp
mov edi, ebp
test rdx, rdx
je 0x1800f60e8
movsxd rbp, dword [rdx]
mov rbx, rbp
shl rbx, 5
test r13, r13
je 0x1800f58e7
mov rdx, rbx
mov rcx, r13
call fcn.1800f8480
jmp 0x1800f58ef
mov rcx, rbx
call fcn.18011da50
mov qword [rsp + 0x50], rax
mov r15, rax
test rax, rax
je 0x1800f5909
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.180162c50
mov rax, qword [rsp + 0xc0]
mov r14, r15
mov word [rax], bp
mov qword [rsi], r15
xor esi, esi
mov dword [rsp + 0x34], esi
test ebp, ebp
jle 0x1800f5fcd
xor eax, eax
lea rbx, [0x180000000]
mov qword [rsp + 0x58], rax
nop word [rax + rax]
cmp byte [r13 + 0x55], 0
jne 0x1800f5fcd
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax + 8]
lea r9, [rax + rcx*8]
mov rax, qword [rax + rcx*8]
test rax, rax
je 0x1800f5995
nop dword [rax + rax]
mov ecx, dword [rax + 4]
bt ecx, 0xc
jae 0x1800f5995
bt ecx, 0x12
jae 0x1800f598c
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
jmp 0x1800f5990
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1800f5970
mov r8, qword [r9 + 8]
test r8, r8
jne 0x1800f5a00
movzx ecx, byte [rax]
cmp cl, 0x7a
jne 0x1800f59bc
nop word [rax + rax]
mov rax, qword [rax + 0x18]
movzx ecx, byte [rax]
cmp cl, 0x7a
je 0x1800f59b0
cmp cl, 0x98
jne 0x1800f59f1
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x1800f59fc
movsx ecx, word [rax + 0x30]
test ecx, ecx
jns 0x1800f59e3
movsx ecx, word [rdx + 0x3c]
test ecx, ecx
jns 0x1800f59e3
lea r8, str.rowid
jmp 0x1800f5a00
mov rax, qword [rdx + 8]
shl rcx, 5
mov r8, qword [rcx + rax]
jmp 0x1800f5a00
cmp cl, 0x1b
jne 0x1800f59fc
mov r8, qword [rax + 8]
jmp 0x1800f5a00
mov r8, qword [r9 + 0x10]
lea rdx, [0x1801c73e0]
mov rcx, r13
call fcn.18011da20
xor ecx, ecx
mov r15, rax
mov dword [rsp + 0x30], ecx
mov esi, ecx
test rax, rax
je 0x1800f5b08
test rdi, rdi
je 0x1800f5a77
mov eax, ecx
mov r8, r15
movzx ecx, byte [r15]
test cl, cl
je 0x1800f5a62
nop word [rax + rax]
movzx ecx, cl
lea r8, [r8 + 1]
movzx edx, byte [rcx + rbx + 0x1a59b0]
lea ecx, [rax*8]
xor edx, ecx
movzx ecx, byte [r8]
xor eax, edx
test cl, cl
jne 0x1800f5a40
xor edx, edx
div dword [rsp + 0x48]
mov ecx, edx
add rcx, rcx
mov r11, qword [rdi + rcx*8 + 8]
mov ebx, dword [rdi + rcx*8]
jmp 0x1800f5a81
mov ebx, dword [rsp + 0xb0]
mov r11, r12
test ebx, ebx
je 0x1800f5aff
movzx eax, byte [r15]
lea r9, [0x180000000]
movzx edi, byte [rax + r9 + 0x1a59b0]
nop dword [rax]
mov r8, qword [r11 + 0x18]
dec ebx
movzx edx, byte [r8]
movzx eax, byte [rdx + r9 + 0x1a59b0]
cmp eax, edi
jne 0x1800f5af3
mov r10, r15
sub r10, r8
nop dword [rax]
test dl, dl
je 0x1800f5b6c
movzx eax, byte [r10 + r8 + 1]
lea r9, [0x180000000]
movzx edx, byte [r8 + 1]
inc r8
movzx ecx, byte [rax + r9 + 0x1a59b0]
movzx eax, byte [rdx + r9 + 0x1a59b0]
cmp eax, ecx
je 0x1800f5ac0
mov r11, qword [r11]
test ebx, ebx
jne 0x1800f5aa0
mov rdi, qword [rsp + 0x40]
lea rbx, [0x180000000]
xor ecx, ecx
mov rax, qword [rsp + 0x50]
mov qword [rax], r15
test r15, r15
je 0x1800f5f9c
test rdi, rdi
je 0x1800f5c30
mov eax, ecx
mov r8, r15
movzx ecx, byte [r15]
test cl, cl
je 0x1800f5b52
nop
movzx ecx, cl
lea r8, [r8 + 1]
movzx edx, byte [rcx + rbx + 0x1a59b0]
lea ecx, [rax*8]
xor edx, ecx
movzx ecx, byte [r8]
xor eax, edx
test cl, cl
jne 0x1800f5b30
xor edx, edx
div dword [rsp + 0x48]
mov eax, edx
add rax, rax
mov esi, edx
mov r11, qword [rdi + rax*8 + 8]
mov ebx, dword [rdi + rax*8]
jmp 0x1800f5c3c
cmp qword [r11 + 0x10], 0
je 0x1800f5afa
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp byte [r15 + rdx], 0
jne 0x1800f5b80
and edx, 0x3fffffff
jbe 0x1800f5bd7
mov eax, edx
lea r8d, [rdx - 1]
dec rax
test rax, rax
jle 0x1800f5bcb
lea r10, [0x180000000]
nop word [rax + rax]
movzx ecx, byte [rax + r15]
test byte [rcx + r10 + 0x1a5ab0], 4
je 0x1800f5bcb
dec r8d
dec rax
test rax, rax
jg 0x1800f5bb0
movsxd rax, r8d
cmp byte [rax + r15], 0x3a
cmove edx, r8d
inc esi
mov r8d, edx
lea rdx, str._.z:_u
mov dword [rsp + 0x30], esi
mov r9, r15
mov dword [rsp + 0x20], esi
mov rcx, r13
call fcn.18011da20
mov r15, rax
cmp esi, 3
jbe 0x1800f5c11
lea rdx, [rsp + 0x30]
mov ecx, 4
call fcn.180063f40
mov esi, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
lea rbx, [0x180000000]
mov ecx, 0
test r15, r15
jne 0x1800f5a23
jmp 0x1800f5aff
mov ebx, dword [rsp + 0xb0]
mov esi, ecx
mov r11, r12
test ebx, ebx
je 0x1800f5cab
movzx eax, byte [r15]
lea r9, [0x180000000]
movzx edi, byte [rax + r9 + 0x1a59b0]
mov r8, qword [r11 + 0x18]
dec ebx
movzx edx, byte [r8]
movzx eax, byte [rdx + r9 + 0x1a59b0]
cmp eax, edi
jne 0x1800f5ca4
mov r10, r15
sub r10, r8
test dl, dl
je 0x1800f5cf9
movzx eax, byte [r10 + r8 + 1]
lea r9, [0x180000000]
movzx edx, byte [r8 + 1]
inc r8
movzx ecx, byte [rax + r9 + 0x1a59b0]
movzx eax, byte [rdx + r9 + 0x1a59b0]
cmp eax, ecx
je 0x1800f5c71
mov r11, qword [r11]
test ebx, ebx
jne 0x1800f5c54
mov ecx, 0x20
call fcn.18011da50
mov rdi, rax
test rax, rax
jne 0x1800f5d3c
cmp byte [r13 + 0x55], 0
jne 0x1800f5f9c
cmp byte [r13 + 0x56], 0
jne 0x1800f5f9c
cmp dword [r13 + 0xb4], 0
mov byte [r13 + 0x55], 1
jle 0x1800f5ced
mov dword [r13 + 0x148], 1
inc dword [r13 + 0x150]
jmp 0x1800f5f9c
test r11, r11
je 0x1800f5cab
mov edx, dword [rsp + 0xb0]
mov rax, qword [r11 + 0x10]
mov r8, qword [rsp + 0x50]
mov dword [rsp + 0xb0], edx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x40], rdx
mov qword [r11 + 0x10], r8
mov qword [r11 + 0x18], r15
cmp rax, r8
jne 0x1800f5f9c
jmp 0x1800f5cbd
mov edx, dword [rsp + 0xb0]
inc edx
mov qword [rax + 0x18], r15
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x10], rax
mov dword [rsp + 0xb0], edx
cmp edx, 0xa
jb 0x1800f5f2a
mov rcx, qword [rsp + 0x48]
lea eax, [rcx + rcx]
cmp edx, eax
jbe 0x1800f5f2a
lea ebx, [rdx + rdx]
mov eax, ebx
shl rax, 4
cmp rax, 0x400
mov eax, 0x40
cmova ebx, eax
cmp ebx, ecx
je 0x1800f5f2a
mov rax, qword [0x1801ee5f0]
test rax, rax
je 0x1800f5d9f
call rax
mov ecx, ebx
shl rcx, 4
call fcn.18011da50
mov rcx, qword [0x1801ee5f8]
mov rbx, rax
test rcx, rcx
je 0x1800f5dbb
call rcx
test rbx, rbx
je 0x1800f5f2a
mov rsi, qword [rsp + 0x40]
test rsi, rsi
je 0x1800f5e29
cmp dword [0x1801e5920], 0
je 0x1800f5e20
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f5de9
call qword [0x1801e59a8]
mov rcx, rsi
call qword [0x1801e5960]
dec qword [0x1801ee598]
mov rcx, rsi
movsxd rdx, eax
sub qword [0x1801ee550], rdx
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f5e29
call qword [0x1801e59b8]
jmp 0x1800f5e29
mov rcx, rsi
call qword [0x1801e5950]
mov rcx, rbx
mov qword [rsp + 0x40], rbx
call qword [0x1801e5960]
movsxd rsi, eax
xor edx, edx
shr rsi, 4
mov rcx, rbx
mov r8d, esi
shl r8, 4
mov qword [rsp + 0x48], rsi
call fcn.180162c50
mov r8, r12
xor r11d, r11d
mov r12d, r11d
test r8, r8
je 0x1800f5f17
lea r10, [0x180000000]
nop dword [rax]
mov r9, qword [r8 + 0x18]
mov eax, r11d
movzx ecx, byte [r9]
test cl, cl
je 0x1800f5ea3
nop
movzx ecx, cl
lea r9, [r9 + 1]
movzx edx, byte [rcx + r10 + 0x1a59b0]
lea ecx, [rax*8]
xor edx, ecx
movzx ecx, byte [r9]
xor eax, edx
test cl, cl
jne 0x1800f5e80
mov r9, qword [r8]
xor edx, edx
div esi
mov ecx, edx
shl rcx, 4
add rcx, rbx
je 0x1800f5ef7
mov eax, dword [rcx]
test eax, eax
je 0x1800f5ec1
mov rdx, qword [rcx + 8]
jmp 0x1800f5ec4
mov rdx, r11
inc eax
mov qword [rcx + 8], r8
mov dword [rcx], eax
test rdx, rdx
je 0x1800f5ef7
mov qword [r8], rdx
mov rax, qword [rdx + 8]
mov qword [r8 + 8], rax
mov rax, qword [rdx + 8]
test rax, rax
je 0x1800f5eee
mov qword [rax], r8
mov qword [rdx + 8], r8
jmp 0x1800f5f0b
mov r12, r8
mov qword [rdx + 8], r8
jmp 0x1800f5f0b
mov qword [r8], r12
test r12, r12
je 0x1800f5f04
mov qword [r12 + 8], r8
mov qword [r8 + 8], r11
mov r12, r8
mov r8, r9
test r9, r9
jne 0x1800f5e70
mov rcx, r15
call fcn.18014bc30
xor edx, edx
div esi
mov esi, edx
mov rdx, rbx
jmp 0x1800f5f37
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x1800f5f84
xor r11d, r11d
mov eax, esi
shl rax, 4
add rdx, rax
je 0x1800f5f84
mov eax, dword [rdx]
test eax, eax
je 0x1800f5f4e
mov rcx, qword [rdx + 8]
jmp 0x1800f5f51
mov rcx, r11
inc eax
mov qword [rdx + 8], rdi
mov dword [rdx], eax
test rcx, rcx
je 0x1800f5f84
mov qword [rdi], rcx
mov rax, qword [rcx + 8]
mov qword [rdi + 8], rax
mov rax, qword [rcx + 8]
test rax, rax
je 0x1800f5f7b
mov qword [rax], rdi
mov qword [rcx + 8], rdi
jmp 0x1800f5f9c
mov r12, rdi
mov qword [rcx + 8], rdi
jmp 0x1800f5f9c
mov qword [rdi], r12
test r12, r12
je 0x1800f5f91
mov qword [r12 + 8], rdi
mov qword [rdi + 8], 0
mov r12, rdi
mov esi, dword [rsp + 0x34]
lea rbx, [0x180000000]
mov rax, qword [rsp + 0x58]
inc esi
add qword [rsp + 0x50], 0x20
inc rax
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x34], esi
mov qword [rsp + 0x58], rax
cmp esi, ebp
jl 0x1800f5940
test rdi, rdi
je 0x1800f602d
cmp dword [0x1801e5920], 0
je 0x1800f6024
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f5fed
call qword [0x1801e59a8]
mov rcx, rdi
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rdi
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f602d
call qword [0x1801e59b8]
jmp 0x1800f602d
mov rcx, rdi
call qword [0x1801e5950]
test r12, r12
je 0x1800f6099
cmp dword [0x1801e5920], 0
mov rbx, qword [r12]
je 0x1800f6088
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f6051
call qword [0x1801e59a8]
mov rcx, r12
call qword [0x1801e5960]
dec qword [0x1801ee598]
mov rcx, r12
movsxd rdx, eax
sub qword [0x1801ee550], rdx
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f6091
call qword [0x1801e59b8]
jmp 0x1800f6091
mov rcx, r12
call qword [0x1801e5950]
mov r12, rbx
test rbx, rbx
jne 0x1800f6032
mov r15, qword [rsp + 0xc0]
xor ebp, ebp
cmp byte [r13 + 0x55], 0
mov r12, qword [rsp + 0x68]
je 0x1800f6258
movsxd rsi, esi
test rsi, rsi
jle 0x1800f618b
mov rdi, r14
mov rbx, qword [rdi]
test rbx, rbx
je 0x1800f617d
cmp qword [r13 + 0x290], 0
je 0x1800f60f6
mov rdx, rbx
mov rcx, r13
call fcn.1800d60e0
jmp 0x1800f617d
mov word [r8], bp
mov r14, rbp
mov qword [r9], rbp
mov esi, ebp
jmp 0x1800f60a3
cmp rbx, qword [r13 + 0x178]
jb 0x1800f6122
cmp rbx, qword [r13 + 0x180]
jae 0x1800f6122
mov rax, qword [r13 + 0x170]
mov qword [rbx], rax
dec dword [r13 + 0x158]
mov qword [r13 + 0x170], rbx
jmp 0x1800f617d
cmp dword [0x1801e5920], 0
je 0x1800f6174
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f613d
call qword [0x1801e59a8]
mov rcx, rbx
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rbx
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f617d
call qword [0x1801e59b8]
jmp 0x1800f617d
mov rcx, rbx
call qword [0x1801e5950]
add rdi, 0x20
sub rsi, 1
jne 0x1800f60c2
test r14, r14
je 0x1800f6235
cmp qword [r13 + 0x290], 0
je 0x1800f61ae
mov rdx, r14
mov rcx, r13
call fcn.1800d60e0
jmp 0x1800f6235
cmp r14, qword [r13 + 0x178]
jb 0x1800f61da
cmp r14, qword [r13 + 0x180]
jae 0x1800f61da
mov rax, qword [r13 + 0x170]
mov qword [r14], rax
dec dword [r13 + 0x158]
mov qword [r13 + 0x170], r14
jmp 0x1800f6235
cmp dword [0x1801e5920], 0
je 0x1800f622c
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f61f5
call qword [0x1801e59a8]
mov rcx, r14
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, r14
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800f6235
call qword [0x1801e59b8]
jmp 0x1800f6235
mov rcx, r14
call qword [0x1801e5950]
mov rax, qword [rsp + 0xc8]
mov qword [rax], rbp
mov eax, 7
mov word [r15], bp
add rsp, 0x70
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor eax, eax
add rsp, 0x70
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret