Function at 0x140170d70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
xor ebx, ebx
lea r8, [rbp - 0x49]
xor r9d, r9d
mov qword [rbp - 0x19], rbx
mov r15, rcx
mov qword [rbp - 0x39], rbx
mov qword [rbp - 0x49], rbx
lea edx, [rbx + 0x1b]
call fcn.1401260b4
mov dword [rbp + 0x77], eax
mov r14d, eax
lea r12d, [rbx + 1]
mov edi, eax
test eax, eax
jne 0x14017106c
mov rdi, qword [rbp - 0x49]
mov edx, r12d
movsxd r8, dword [r15 + 0x208]
mov rcx, rdi
call fcn.140101bc0
movsxd r8, dword [r15 + 0x1ec]
lea edx, [rbx + 2]
mov rcx, rdi
call fcn.140101bc0
mov r13d, ebx
test rdi, rdi
jne 0x140170e07
lea rdx, str.API_called_with_NULL_prepared_statement
lea ecx, [rdi + 0x15]
call fcn.1400ed0b4
jmp 0x140170e28
cmp qword [rdi], rbx
jne 0x140170e22
lea rdx, str.API_called_with_finalized_prepared_statement
mov ecx, 0x15
call fcn.1400ed0b4
mov eax, r12d
jmp 0x140170e24
mov eax, ebx
test eax, eax
je 0x140170e39
mov ecx, 0x1648d
call fcn.140180b54
mov esi, eax
jmp 0x140170f7c
mov r15, qword [rdi]
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x140170efd
call qword [0x140260350]
jmp 0x140170efd
mov eax, r13d
add r13d, r12d
cmp eax, 0x32
jge 0x140170f6d
mov eax, dword [rdi + 0x30]
mov rcx, rdi
mov dword [rbp + 0x7f], eax
call fcn.14018916c
mov esi, eax
test eax, eax
jne 0x140170f12
mov rsi, qword [rdi]
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140170e8d
call qword [0x140260350]
cmp qword [rdi + 0xb8], rbx
jle 0x140170ea1
mov rdx, rdi
mov rcx, rsi
call fcn.140140580
mov rcx, rdi
call fcn.14019cc34
or dword [rdi + 0x30], 0xffffffff
mov byte [rdi + 0xc7], r12b
mov dword [rdi + 0x34], ebx
mov word [rdi + 0xc4], 0xff02
mov qword [rdi + 0x38], rbx
mov dword [rdi + 0x2c], r12d
mov dword [rdi + 0x40], ebx
mov qword [rdi + 0x50], rbx
cmp byte [rsi + 0x67], bl
jne 0x140170ed8
test eax, eax
je 0x140170ee2
mov edx, eax
mov rcx, rsi
call fcn.1401062d0
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140170ef1
call qword [0x140260360]
cmp dword [rbp + 0x7f], ebx
jl 0x140170efd
mov byte [rdi + 0xc5], 0xfe
mov rcx, rdi
call fcn.14018de0c
mov esi, eax
cmp eax, 0x11
je 0x140170e54
jmp 0x140170f6d
mov rcx, qword [r15 + 0x190]
mov dl, r12b
call fcn.140191b74
mov rdx, qword [rdi + 0xa8]
mov r13, rax
test rdx, rdx
je 0x140170f38
mov rcx, r15
call fcn.140165d84
cmp byte [r15 + 0x67], bl
jne 0x140170f5c
mov rdx, r13
mov rcx, r15
call fcn.140166088
mov edx, esi
mov qword [rdi + 0xa8], rax
mov rcx, r15
call fcn.1401062d0
jmp 0x140170f68
mov qword [rdi + 0xa8], rbx
mov eax, 7
mov dword [rdi + 0x34], eax
mov esi, eax
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x140170f7c
call qword [0x140260360]
cmp esi, 0x64
jne 0x140170fd7
xor edx, edx
mov rcx, rdi
call fcn.140102950
mov r13, qword [rbp + 0x67]
mov r15d, eax
mov esi, ebx
cmp dword [r13 + 0x1ec], ebx
jle 0x140170fce
mov rdi, qword [rbp - 0x19]
lea r9, [rbp + 0x77]
mov r8d, esi
mov edx, r15d
mov rcx, r13
call fcn.14011866c
xor rdi, rax
add esi, r12d
cmp esi, dword [r13 + 0x1ec]
jl 0x140170fa1
mov r14d, dword [rbp + 0x77]
mov qword [rbp - 0x19], rdi
mov rdi, qword [rbp - 0x49]
test r14d, r14d
je 0x140170dee
test rdi, rdi
jne 0x140170fe0
mov edi, ebx
jmp 0x14017105c
mov rsi, qword [rdi]
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140170ff2
call qword [0x140260350]
cmp qword [rdi + 0xb8], rbx
jle 0x140171006
mov rdx, rdi
mov rcx, rsi
call fcn.140140580
mov rcx, rdi
call fcn.14019cc34
or dword [rdi + 0x30], 0xffffffff
mov byte [rdi + 0xc7], r12b
mov dword [rdi + 0x34], ebx
mov word [rdi + 0xc4], 0xff02
mov qword [rdi + 0x38], rbx
mov dword [rdi + 0x2c], r12d
mov dword [rdi + 0x40], ebx
mov qword [rdi + 0x50], rbx
cmp byte [rsi + 0x67], bl
jne 0x140171041
test eax, eax
jne 0x140171041
mov edi, ebx
jmp 0x14017104d
mov edx, eax
mov rcx, rsi
call fcn.1401062d0
mov edi, eax
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14017105c
call qword [0x140260360]
test r14d, r14d
jne 0x1401714c0
mov r15, qword [rbp + 0x67]
mov r14d, edi
test edi, edi
jne 0x1401714c0
mov rax, qword [r15 + 0x48]
lea rcx, str.SELECT__s
mov rdx, qword [r15 + 0x1b8]
mov rdi, rbx
mov qword [rbp - 0x49], rbx
mov rax, qword [rax]
mov qword [rbp - 1], rax
call fcn.1400ff46c
mov rsi, rax
test rax, rax
jne 0x1401710d8
lea r14d, [rax + 7]
test rdi, rdi
je 0x1401714c0
mov rsi, qword [rdi]
test rsi, rsi
jne 0x14017146d
lea rdx, str.API_called_with_finalized_prepared_statement
lea ecx, [rsi + 0x15]
call fcn.1400ed0b4
mov ecx, 0x16173
call fcn.140180b54
jmp 0x1401714c0
mov rcx, qword [r15 + 0x18]
lea rax, [rbp - 0x49]
mov qword [rsp + 0x30], rbx
mov r9d, 0x80
mov qword [rsp + 0x28], rax
or r8d, 0xffffffff
mov rdx, rsi
mov qword [rsp + 0x20], rbx
call fcn.1401801fc
mov rcx, rsi
mov r14d, eax
call fcn.1400ff720
mov rdi, qword [rbp - 0x49]
test r14d, r14d
jne 0x1401710a5
mov r13d, ebx
test rdi, rdi
jne 0x14017112e
lea rdx, str.API_called_with_NULL_prepared_statement
lea ecx, [rdi + 0x15]
call fcn.1400ed0b4
jmp 0x14017114f
cmp qword [rdi], rbx
jne 0x140171149
lea rdx, str.API_called_with_finalized_prepared_statement
mov ecx, 0x15
call fcn.1400ed0b4
mov eax, r12d
jmp 0x14017114b
mov eax, ebx
test eax, eax
je 0x140171160
mov ecx, 0x1648d
call fcn.140180b54
mov esi, eax
jmp 0x1401712a7
mov r15, qword [rdi]
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x140171224
call qword [0x140260350]
jmp 0x140171224
mov eax, r13d
add r13d, r12d
cmp eax, 0x32
jge 0x140171294
mov eax, dword [rdi + 0x30]
mov rcx, rdi
mov dword [rbp + 0x77], eax
call fcn.14018916c
mov esi, eax
test eax, eax
jne 0x140171239
mov rsi, qword [rdi]
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x1401711b4
call qword [0x140260350]
cmp qword [rdi + 0xb8], rbx
jle 0x1401711c8
mov rdx, rdi
mov rcx, rsi
call fcn.140140580
mov rcx, rdi
call fcn.14019cc34
or dword [rdi + 0x30], 0xffffffff
mov byte [rdi + 0xc7], r12b
mov dword [rdi + 0x34], ebx
mov word [rdi + 0xc4], 0xff02
mov qword [rdi + 0x38], rbx
mov dword [rdi + 0x2c], r12d
mov dword [rdi + 0x40], ebx
mov qword [rdi + 0x50], rbx
cmp byte [rsi + 0x67], bl
jne 0x1401711ff
test eax, eax
je 0x140171209
mov edx, eax
mov rcx, rsi
call fcn.1401062d0
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140171218
call qword [0x140260360]
cmp dword [rbp + 0x77], ebx
jl 0x140171224
mov byte [rdi + 0xc5], 0xfe
mov rcx, rdi
call fcn.14018de0c
mov esi, eax
cmp eax, 0x11
je 0x14017117b
jmp 0x140171294
mov rcx, qword [r15 + 0x190]
mov dl, r12b
call fcn.140191b74
mov rdx, qword [rdi + 0xa8]
mov r13, rax
test rdx, rdx
je 0x14017125f
mov rcx, r15
call fcn.140165d84
cmp byte [r15 + 0x67], bl
jne 0x140171283
mov rdx, r13
mov rcx, r15
call fcn.140166088
mov edx, esi
mov qword [rdi + 0xa8], rax
mov rcx, r15
call fcn.1401062d0
jmp 0x14017128f
mov qword [rdi + 0xa8], rbx
mov eax, 7
mov dword [rdi + 0x34], eax
mov esi, eax
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x1401712a3
call qword [0x140260360]
mov r15, qword [rbp + 0x67]
cmp esi, 0x64
jne 0x1401710a5
xor edx, edx
mov rcx, rdi
call fcn.140102984
mov r13d, ebx
mov qword [rbp - 0x11], rax
mov dword [rbp + 0x7f], ebx
cmp qword [r15 + 0x58], rbx
je 0x1401712df
mov edx, dword [r15 + 0x30]
mov rcx, rdi
add edx, r12d
call fcn.140102950
mov r13d, eax
mov dword [rbp + 0x7f], eax
mov qword [rbp + 7], rbx
mov r15d, ebx
mov rsi, rbx
test r14d, r14d
jne 0x1401710a5
mov rax, qword [rbp + 0x67]
cmp r15d, dword [rax + 0x30]
jge 0x140171464
mov rax, qword [rax + 0x40]
cmp byte [rsi + rax], bl
jne 0x140171451
lea edx, [r15 + 1]
mov rcx, rdi
call fcn.140102a18
mov r8, rax
mov qword [rbp - 0x31], rbx
mov rax, qword [rbp + 0x67]
lea rcx, [rbp - 0x31]
mov qword [rsp + 0x20], rcx
or r9d, 0xffffffff
mov edx, r13d
mov rcx, qword [rax + 0x48]
call fcn.140171ee0
mov r14d, eax
test eax, eax
jne 0x140171438
mov rcx, qword [rbp - 0x31]
lea rax, [rbp - 0x41]
mov qword [rsp + 0x28], rax
lea r9, [rbp - 0x25]
lea rax, [rbp - 0x29]
mov dword [rbp + 0x77], ebx
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x77]
mov rax, qword [rbp - 1]
lea rdx, [rbp - 9]
mov dword [rbp - 0x25], ebx
mov dword [rbp - 0x29], ebx
mov dword [rbp - 0x41], ebx
call qword [rax + 0x28]
mov dword [rbp - 0x21], eax
mov r14d, eax
test eax, eax
jne 0x140171427
mov rax, qword [rbp - 0x11]
xor r9d, r9d
mov edi, dword [rbp - 0x41]
mov r8d, r13d
mov edx, dword [rbp + 0x77]
mov rcx, qword [rbp - 9]
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rax
call fcn.140118614
xor qword [rbp - 0x39], rax
mov r13d, r12d
mov rax, qword [rbp + 0x67]
cmp dword [rax + 0x1ec], r12d
jle 0x140171423
mov rsi, qword [rax + 0x1f0]
mov eax, dword [rbp + 0x77]
add rsi, 0x28
mov ebx, dword [rbp + 0x7f]
mov r14, qword [rbp - 0x11]
mov rcx, qword [rbp + 0x67]
cmp dword [rsi], eax
jg 0x14017140d
mov edx, dword [rsi]
mov r9d, r13d
mov rcx, qword [rbp - 9]
mov r8d, ebx
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r14
call fcn.140118614
xor qword [rbp - 0x39], rax
mov eax, dword [rbp + 0x77]
mov rcx, qword [rbp + 0x67]
add r13d, r12d
add rsi, 0x28
cmp r13d, dword [rcx + 0x1ec]
jl 0x1401713df
mov r14d, dword [rbp - 0x21]
xor ebx, ebx
mov r13d, dword [rbp + 0x7f]
test r14d, r14d
je 0x140171348
mov rdi, qword [rbp - 0x49]
mov rsi, qword [rbp + 7]
cmp qword [rbp - 0x31], rbx
je 0x140171449
mov rax, qword [rbp - 1]
mov rcx, qword [rbp - 0x31]
call qword [rax + 0x20]
cmp r14d, 0x65
cmove r14d, ebx
add rsi, r12
add r15d, r12d
mov qword [rbp + 7], rsi
test r14d, r14d
je 0x1401712f2
mov r15, qword [rbp + 0x67]
jmp 0x140171110
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14017147c
call qword [0x140260350]
cmp qword [rdi + 0xb8], rbx
jle 0x140171490
mov rdx, rdi
mov rcx, rsi
call fcn.140140580
mov rcx, rdi
call fcn.14019cc34
mov rcx, rdi
mov r15d, eax
call fcn.1401922a4
cmp byte [rsi + 0x67], bl
jne 0x1401714ad
test r15d, r15d
je 0x1401714b8
mov edx, r15d
mov rcx, rsi
call fcn.1401062d0
mov rcx, rsi
call fcn.14017f864
cmp r14d, 0x10b
jne 0x1401714ce
mov r14d, ebx
jmp 0x1401714e3
test r14d, r14d
jne 0x1401714dd
mov rax, qword [rbp - 0x39]
cmp qword [rbp - 0x19], rax
je 0x1401714e0
mov r12d, ebx
mov ebx, r12d
mov rax, qword [rbp + 0x6f]
mov dword [rax], ebx
mov eax, r14d
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret