Function at 0x1400b2be0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov ebx, dword [rsp + 0xd0]
mov eax, dword [rcx]
mov r12d, dword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov r10d, ebx
sub r10d, 1
mov ebp, r12d
mov r14, rcx
mov dword [rsp + 0x34], eax
mov ecx, dword [rcx + 0x14]
mov rsi, rdx
mov dword [rsp + 0xb0], r8d
mov dword [rsp + 0xb8], r9d
mov dword [rsp + 0x4c], r10d
js 0x1400b322e
movsxd rax, ebx
movsxd rdx, r10d
lea r11, [rdi + rax - 2]
mov eax, r10d
add rdx, rdi
sub r11, rax
mov eax, 0xd
nop dword [rax]
movzx r9d, byte [rdx]
lea r8d, [rax*8]
sub rdx, 1
xor r8d, r9d
xor eax, r8d
cmp r11, rdx
jne 0x1400b2c58
lea edx, [rax*8]
movzx r11d, r12b
xor eax, edx
xor edx, edx
xor eax, r11d
mov dword [rsp + 0x48], r11d
mov r11, qword [r14 + 0x20]
div ecx
mov qword [rsp + 0x38], r11
mov eax, edx
mov dword [rsp + 0x30], edx
mov r15, qword [r11 + rax*8]
lea rdx, [rax*8]
mov qword [rsp + 0x40], rdx
test r15, r15
je 0x1400b2e49
lea r13d, [rbx + 1]
movsxd rax, ebx
mov dword [rsp + 0xd0], ebx
mov qword [rsp + 0x28], rax
mov ebx, r13d
mov r13d, ebp
mov ebp, ecx
jmp 0x1400b2ce4
mov r15, qword [r15]
test r15, r15
je 0x1400b2e40
cmp byte [r15 + 0x30], r13b
jne 0x1400b2cd8
cmp dword [r15 + 0x1c], ebx
jne 0x1400b2cd8
mov r8, qword [rsp + 0x28]
lea rcx, [r15 + 0x31]
mov rdx, rdi
call sym.memcmp
test eax, eax
jne 0x1400b2cd8
mov ebx, dword [r15 + 0x10]
mov edx, dword [r15 + 0x18]
mov eax, ebx
sub eax, edx
cmp eax, 0x15
jle 0x1400b3127
mov rax, qword [r15 + 0x28]
mov ebx, edx
neg ebx
cmp rax, rsi
je 0x1400b30df
mov rcx, r14
mov rdi, rsi
xor r8d, r8d
mov rdx, r15
sub rdi, rax
call sym.fts5HashAddPoslistSize
movsxd rcx, dword [r15 + 0x18]
add rcx, r15
cmp rdi, 0x7f
jbe 0x1400b3221
cmp rdi, 0x3fff
jbe 0x1400b31d5
mov rdx, rdi
call sym.putVarint64
mov edx, eax
add edx, dword [r15 + 0x18]
mov qword [r15 + 0x28], rsi
movd xmm1, edx
pshufd xmm0, xmm1, 0xe0
movq qword [r15 + 0x14], xmm0
mov eax, dword [r14]
cmp eax, 1
je 0x1400b31aa
mov esi, eax
add edx, 1
mov r9d, dword [rsp + 0xb0]
mov dword [r15 + 0x24], 0
neg esi
mov dword [r15 + 0x18], edx
sbb cx, cx
mov word [r15 + 0x22], cx
test r9d, r9d
js 0x1400b31b5
movsx ecx, cx
mov esi, 1
cmp dword [rsp + 0xb0], ecx
je 0x1400b2dea
test eax, eax
je 0x1400b324a
movzx eax, word [rsp + 0xb0]
mov word [r15 + 0x22], ax
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xb8]
sub eax, dword [r15 + 0x24]
movsxd rdx, edx
add eax, 2
lea r8, [r15 + rdx]
movsxd rcx, eax
cmp rcx, 0x7f
jbe 0x1400b323d
cmp rcx, 0x3fff
jbe 0x1400b32b1
mov rdx, rcx
mov rcx, r8
call sym.putVarint64
mov edx, eax
mov eax, dword [rsp + 0xb8]
add edx, dword [r15 + 0x18]
mov dword [r15 + 0x18], edx
mov dword [r15 + 0x24], eax
jmp 0x1400b31ba
mov ebx, dword [rsp + 0xd0]
mov ecx, ebp
mov eax, dword [r14 + 0x10]
mov edx, dword [0x14014efd4]
add eax, eax
cmp ecx, eax
jg 0x1400b2fd7
test edx, edx
jne 0x1400b32cf
mov dword [rsp + 0x28], ecx
call sym.sqlite3MutexInit
mov ecx, dword [rsp + 0x28]
test eax, eax
jne 0x1400b321a
mov dword [rsp + 0x28], ecx
call sym.sqlite3_initialize.part.0
mov ecx, dword [rsp + 0x28]
test eax, eax
jne 0x1400b321a
lea r13d, [rcx + rcx]
movsxd r8, r13d
shl r8, 3
mov rcx, r8
mov qword [rsp + 0x28], r8
call sym.sqlite3Malloc
mov r15, rax
test rax, rax
je 0x1400b321a
mov r8, qword [rsp + 0x28]
xor edx, edx
mov rcx, rax
call sym.memset
movsxd rax, dword [r14 + 0x14]
test eax, eax
jle 0x1400b2f5e
mov rcx, qword [rsp + 0x38]
mov r11, rcx
lea rcx, [rcx + rax*8]
nop word [rax + rax]
mov r10, qword [r11]
test r10, r10
je 0x1400b2f55
nop dword [rax + rax]
mov rax, qword [r10]
mov qword [r11], rax
movsxd rax, dword [r10 + 0x1c]
mov r8d, eax
sub r8d, 1
js 0x1400b3210
movsxd rdx, r8d
lea r9, [r10 + rax - 2]
mov r8d, r8d
mov eax, 0xd
add rdx, r10
sub r9, r8
nop dword [rax]
movzx ebp, byte [rdx + 0x30]
lea r8d, [rax*8]
sub rdx, 1
xor r8d, ebp
xor eax, r8d
cmp rdx, r9
jne 0x1400b2f20
xor edx, edx
div r13d
lea rax, [r15 + rdx*8]
mov rdx, qword [rax]
mov qword [r10], rdx
mov qword [rax], r10
mov r10, qword [r11]
test r10, r10
jne 0x1400b2ef0
add r11, 8
cmp rcx, r11
jne 0x1400b2ee0
mov rcx, qword [rsp + 0x38]
call sym.sqlite3_free
mov r11d, dword [rsp + 0x4c]
mov dword [r14 + 0x14], r13d
mov qword [r14 + 0x20], r15
test r11d, r11d
js 0x1400b332d
movsxd rax, ebx
movsxd rdx, r11d
mov r8d, 0xd
lea rcx, [rdi + rax - 2]
mov eax, r11d
add rdx, rdi
sub rcx, rax
nop dword [rax + rax]
movzx r9d, byte [rdx]
lea eax, [r8*8]
sub rdx, 1
xor eax, r9d
xor r8d, eax
cmp rdx, rcx
jne 0x1400b2fa0
lea eax, [r8*8]
mov ecx, dword [rsp + 0x48]
xor eax, r8d
xor edx, edx
xor ecx, eax
mov eax, ecx
div r13d
mov dword [rsp + 0x30], edx
mov r11d, dword [0x14014efd4]
test r11d, r11d
jne 0x1400b31f9
call sym.sqlite3MutexInit
test eax, eax
jne 0x1400b321a
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x1400b321a
movsxd r13, ebx
mov eax, pe_nt_image_headers64
lea rdx, [r13 + 0x72]
cmp rdx, rax
cmovl rdx, rax
mov rcx, rdx
mov qword [rsp + 0x28], rdx
call sym.sqlite3Malloc
mov r15, rax
test rax, rax
je 0x1400b321a
mov rdx, qword [rsp + 0x28]
pxor xmm0, xmm0
mov byte [rax + 0x30], r12b
mov r8, r13
movups xmmword [rax + 0x10], xmm0
lea rcx, [rax + 0x31]
mov dword [rax + 0x10], edx
mov rdx, rdi
movups xmmword [rax], xmm0
movups xmmword [rax + 0x20], xmm0
call sym.memcpy
lea eax, [rbx + 1]
add ebx, 0x31
mov dword [r15 + 0x1c], eax
mov eax, dword [rsp + 0x30]
mov byte [r15 + r13 + 0x31], 0
mov rdx, qword [r14 + 0x20]
mov dword [r15 + 0x18], ebx
movsxd rbx, ebx
lea rax, [rdx + rax*8]
lea rcx, [r15 + rbx]
mov rdx, qword [rax]
mov qword [r15], rdx
mov qword [rax], r15
add dword [r14 + 0x10], 1
cmp rsi, 0x7f
jbe 0x1400b32a4
cmp rsi, 0x3fff
jbe 0x1400b32eb
mov rdx, rsi
call sym.putVarint64
mov edx, eax
add edx, dword [r15 + 0x18]
mov qword [r15 + 0x28], rsi
movd xmm2, edx
pshufd xmm0, xmm2, 0xe0
movq qword [r15 + 0x14], xmm0
mov eax, dword [r14]
cmp eax, 1
je 0x1400b30dd
add edx, 1
neg eax
sbb ax, ax
mov dword [r15 + 0x18], edx
mov word [r15 + 0x22], ax
xor ebx, ebx
mov r8d, dword [rsp + 0xb0]
test r8d, r8d
js 0x1400b31b5
mov eax, dword [r14]
cmp eax, 1
je 0x1400b31f2
mov ecx, dword [rsp + 0x34]
xor esi, esi
test ecx, ecx
movsx ecx, word [r15 + 0x22]
sete sil
cmp ecx, dword [rsp + 0xb0]
jne 0x1400b2dc7
test esi, esi
je 0x1400b31ba
jmp 0x1400b2dea
mov r10d, dword [0x14014efd4]
test r10d, r10d
jne 0x1400b3204
call sym.sqlite3MutexInit
test eax, eax
jne 0x1400b321a
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x1400b321a
add ebx, ebx
mov rcx, r15
movsxd rdx, ebx
call sym.sqlite3Realloc
test rax, rax
je 0x1400b321a
mov rcx, qword [rsp + 0x40]
add rcx, qword [r14 + 0x20]
mov dword [rax + 0x10], ebx
mov rdx, qword [rcx]
cmp r15, rdx
je 0x1400b318b
nop dword [rax + rax]
mov rcx, rdx
mov rdx, qword [rdx]
cmp rdx, r15
jne 0x1400b3180
mov edx, dword [rax + 0x18]
mov r15, rax
mov qword [rcx], rax
mov rax, qword [r15 + 0x28]
mov ebx, edx
neg ebx
cmp rax, rsi
jne 0x1400b2d2b
jmp 0x1400b30df
mov eax, dword [rsp + 0xb0]
test eax, eax
jns 0x1400b31f2
mov byte [r15 + 0x20], 1
mov rax, qword [r14 + 8]
add edx, ebx
add dword [rax], edx
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, rdi
and edi, 0x7f
mov edx, 2
shr rax, 7
mov byte [rcx + 1], dil
or eax, 0xffffff80
mov byte [rcx], al
jmp 0x1400b2d67
mov byte [r15 + 0x21], 1
jmp 0x1400b31ba
lock or qword [rsp], 0
jmp 0x1400b3001
lock or qword [rsp], 0
jmp 0x1400b3151
mov eax, 0xd
jmp 0x1400b2f3b
mov eax, 7
jmp 0x1400b31c4
mov byte [rcx], dil
mov edx, 1
jmp 0x1400b2d67
mov edx, 0x68
mov eax, 0xd
jmp 0x1400b2c7a
mov byte [r8], al
mov edx, 1
jmp 0x1400b2e26
lea eax, [rdx + 1]
movsxd rdx, edx
mov dword [r15 + 0x18], eax
mov byte [r15 + rdx], 1
movsxd rdx, dword [rsp + 0xb0]
movsxd rcx, dword [r15 + 0x18]
add rcx, r15
cmp rdx, 0x7f
jbe 0x1400b32da
cmp rdx, 0x3fff
jbe 0x1400b3309
call sym.putVarint64
mov edx, eax
movzx eax, word [rsp + 0xb0]
add edx, dword [r15 + 0x18]
mov dword [r15 + 0x24], 0
mov dword [r15 + 0x18], edx
mov word [r15 + 0x22], ax
jmp 0x1400b311a
mov byte [rcx], sil
mov edx, 1
jmp 0x1400b30ad
shr rcx, 7
and eax, 0x7f
mov rdx, rcx
mov byte [r8 + 1], al
or edx, 0xffffff80
mov byte [r8], dl
mov edx, 2
jmp 0x1400b2e26
lock or qword [rsp], 0
jmp 0x1400b2e8f
movzx eax, byte [rsp + 0xb0]
mov edx, 1
mov byte [rcx], al
jmp 0x1400b3282
mov rax, rsi
mov edx, 2
shr rax, 7
or eax, 0xffffff80
mov byte [rcx], al
mov eax, esi
and eax, 0x7f
mov byte [rcx + 1], al
jmp 0x1400b30ad
mov rax, rdx
mov edx, 2
shr rax, 7
or eax, 0xffffff80
mov byte [rcx], al
movzx eax, byte [rsp + 0xb0]
and eax, 0x7f
mov byte [rcx + 1], al
jmp 0x1400b3282
mov eax, 0x68
mov r8d, 0xd
jmp 0x1400b2fc3