Function at 0x464d85
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov ebx, ecx
mov qword [rsp + 0xd8], rdx
call sym.sqlite3_initialize
test eax, eax
mov esi, eax
jne 0x4650f8
test ebx, ebx
jle 0x464dc0
cmp qword [rsp + 0xd8], 0
jne 0x464dcf
mov dword [0x005093c0], 0
jmp 0x4650f8
cmp dword [0x005093c0], 0
jne 0x464e5f
xor ecx, ecx
call sym.sqlite3_vfs_find
movaps xmm0, xmmword [str.expand_32_byte_kthstndrd]
test rax, rax
movaps xmmword [0x005093c0], xmm0
jne 0x464e0b
lea rdx, [0x005093d0]
mov ecx, 0xb
mov eax, esi
mov rdi, rdx
rep stosd dword [rdi], eax
jmp 0x464e42
mov edx, dword [0x004d3c90]
test edx, edx
je 0x464e30
lea r8, [0x005093d4]
mov ecx, 0xa
mov eax, esi
mov dword [0x005093d0], edx
mov rdi, r8
rep stosd dword [rdi], eax
jmp 0x464e42
lea r8, [0x005093d0]
mov edx, 0x2c
mov rcx, rax
call qword [rax + 0x68]
mov eax, dword [0x005093f0]
mov byte [0x00509440], 0
mov dword [0x005093f0], 0
mov dword [0x005093fc], eax
movzx eax, byte [0x00509440]
cmp eax, ebx
mov rcx, rax
jl 0x464e95
lea rdi, [0x005093c0]
sub eax, ebx
movsxd rcx, ebx
cdqe
lea rsi, [rdi + rax + 0x40]
mov rdi, qword [rsp + 0xd8]
rep movsb byte [rdi], byte [rsi]
sub byte [0x00509440], bl
jmp 0x4650f8
test al, al
je 0x464ebb
mov rdi, qword [rsp + 0xd8]
lea rsi, [0x00509400]
rep movsb byte [rdi], byte [rsi]
movzx edx, byte [0x00509440]
add qword [rsp + 0xd8], rdx
sub ebx, edx
inc dword [0x005093f0]
lea rdi, [rsp + 0x40]
mov ecx, 0x10
mov dword [rsp + 0x3c], 0xa
lea rsi, [0x005093c0]
rep movsd dword [rdi], dword [rsi]
mov eax, dword [rsp + 0x7c]
mov r13d, dword [rsp + 0x40]
mov edi, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x54]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x6c]
mov r12d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x58]
mov dword [rsp + 0x2c], eax
mov ebp, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x74]
mov r15d, dword [rsp + 0x60]
mov eax, dword [rsp + 0x5c]
mov esi, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x78]
mov r14d, dword [rsp + 0x64]
mov r11d, dword [rsp + 0x50]
add r13d, r11d
add r12d, r9d
add ebp, ecx
xor r10d, r13d
xor r8d, r12d
xor edx, ebp
rol r10d, 0x10
rol r8d, 0x10
add r15d, r10d
add r14d, r8d
rol edx, 0x10
xor r11d, r15d
xor r9d, r14d
add edi, edx
rol r11d, 0xc
rol r9d, 0xc
xor ecx, edi
add r13d, r11d
add r12d, r9d
rol ecx, 0xc
xor r10d, r13d
xor r8d, r12d
add ebp, ecx
rol r8d, 8
rol r10d, 8
xor edx, ebp
add r15d, r10d
add r14d, r8d
mov dword [rsp + 0x34], r8d
mov r8d, dword [rsp + 0x30]
xor r11d, r15d
xor r9d, r14d
rol r11d, 7
rol r9d, 7
rol edx, 8
add esi, eax
add r13d, r9d
add edi, edx
mov dword [rsp + 0x38], edx
mov edx, dword [rsp + 0x2c]
xor r8d, esi
rol r8d, 0x10
xor ecx, edi
rol ecx, 7
add r12d, ecx
add edx, r8d
xor r10d, r12d
xor eax, edx
rol r10d, 0x10
rol eax, 0xc
add esi, eax
xor r8d, esi
rol r8d, 8
add edx, r8d
xor r8d, r13d
rol r8d, 0x10
xor eax, edx
add edx, r10d
add edi, r8d
rol eax, 7
xor r9d, edi
rol r9d, 0xc
add r13d, r9d
xor r8d, r13d
rol r8d, 8
add edi, r8d
mov dword [rsp + 0x30], r8d
mov r8d, dword [rsp + 0x34]
xor r9d, edi
rol r9d, 7
xor ecx, edx
add ebp, eax
rol ecx, 0xc
add esi, r11d
add r12d, ecx
xor r8d, ebp
xor r10d, r12d
rol r8d, 0x10
rol r10d, 8
add r15d, r8d
add edx, r10d
xor eax, r15d
xor ecx, edx
mov dword [rsp + 0x2c], edx
mov edx, dword [rsp + 0x38]
rol eax, 0xc
add ebp, eax
rol ecx, 7
xor r8d, ebp
rol r8d, 8
xor edx, esi
add r15d, r8d
rol edx, 0x10
xor eax, r15d
add r14d, edx
rol eax, 7
xor r11d, r14d
rol r11d, 0xc
add esi, r11d
xor edx, esi
rol edx, 8
add r14d, edx
xor r11d, r14d
rol r11d, 7
dec dword [rsp + 0x3c]
jne 0x464f2c
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x78], edx
lea rdx, [0x005093c0]
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x70], r10d
mov dword [rsp + 0x60], r15d
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x6c], eax
xor eax, eax
mov dword [rsp + 0x54], r9d
mov dword [rsp + 0x74], r8d
mov dword [rsp + 0x64], r14d
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x68], edi
mov dword [rsp + 0x4c], esi
mov ecx, dword [rdx]
add rdx, 4
add ecx, dword [rsp + rax + 0x40]
add rax, 4
mov dword [rdx + 0x3c], ecx
cmp rax, 0x40
jne 0x4650d5
mov byte [0x00509440], 0x40
jmp 0x464e5f
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret