Function at 0x589300
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rbp, qword [rcx]
mov rdi, qword [rcx + 8]
mov rax, qword [rbp]
mov r15, qword [rbp + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x50], rax
movzx eax, byte [rax + 0x10]
mov qword [rsp + 0x120], rcx
lea rdx, [rax + rax*2]
mov r12, rax
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x9c], 0
lea rax, [rax + rdx*4]
lea rsi, [r15 + rax*8 + 8]
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x58], rax
lea rax, [r12 + rdx*4]
mov edx, dword [rdi + 0x14]
lea r11, [r15 + rax*8]
mov rax, qword [r11 + 0x28]
mov qword [rsp + 0x78], rax
mov rax, qword [rdi + 0x20]
test edx, edx
jle 0x589cc4
sub edx, 1
mov r9d, dword [r11 + 0x4c]
xor edi, edi
add rdx, 1
lea rcx, [rdx*8]
sub rcx, rdx
lea r10, [rax + rcx*8]
nop dword [rax]
movzx ecx, word [rax + 0x12]
mov edx, ecx
and edx, 0xffffffbf
mov word [rax + 0x12], dx
cmp dword [rax + 0x1c], r9d
jne 0x589410
test qword [rax + 0x28], r8
jne 0x589410
movzx ebx, word [rax + 0x14]
and ebx, 0xf7ff
je 0x589410
and ecx, 0x80
jne 0x589410
test byte [r11 + 0x44], 0x58
je 0x589400
mov rcx, qword [rax]
mov ebx, dword [rcx + 4]
test bl, 3
je 0x589410
cmp r9d, dword [rcx + 0x34]
jne 0x589410
test byte [rsi + 0x3c], 0x18
je 0x589400
and ebx, 2
jne 0x589410
or edx, 0x40
add edi, 1
mov word [rax + 0x12], dx
nop word [rax + rax]
add rax, 0x38
cmp rax, r10
jne 0x5893b0
movsxd rdi, edi
lea rax, [rdi*8]
sub rax, rdi
lea rax, [rax*4 + 0x88]
mov qword [rsp + 0x70], rax
cmp qword [rsp + 0x58], 0
je 0x589597
mov rax, qword [rsp + 0x58]
mov r14d, dword [rax]
test r14d, r14d
jle 0x589afe
lea r13, [rax + 8]
lea rax, [r12 + r12*2]
xor ecx, ecx
mov qword [rsp + 0x80], rdi
shl rax, 2
lea rsi, [dbg.exprNodeIsConstant]
lea rbx, [dbg.sqlite3SelectWalkFail]
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x60], rax
mov rbp, rsi
mov rsi, rbx
mov ebx, ecx
mov rdi, qword [r13]
mov ecx, 1
mov qword [rsp + 0xa8], rbp
mov word [rsp + 0xc4], cx
mov qword [rsp + 0xb0], rsi
mov dword [rsp + 0xc8], 0
test rdi, rdi
je 0x589710
lea rcx, [rsp + 0xa0]
mov rdx, rdi
call dbg.sqlite3WalkExprNN
cmp word [rsp + 0xc4], 0
jne 0x589710
test byte [r13 + 0x10], 2
jne 0x58958f
movzx eax, byte [rdi]
cmp al, 0xa7
je 0x5896f0
cmp al, 0x71
jne 0x58958f
mov rax, qword [rdi + 0x10]
cmp byte [rax], 0xa7
jne 0x58958f
mov rcx, qword [rsp + 0x60]
add rcx, r12
mov ecx, dword [r15 + rcx*8 + 0x4c]
cmp dword [rax + 0x2c], ecx
jne 0x58958f
movzx ecx, word [rax + 0x30]
mov word [rdi + 0x30], cx
movsx rax, word [rax + 0x30]
test ax, ax
js 0x589710
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x78]
lea r9, str.BINARY
mov rax, qword [rax + 8]
lea rcx, [rax + rcx*8]
mov rax, qword [rcx]
movzx ecx, word [rcx + 0x12]
test ch, 2
jne 0x589564
jmp 0x589576
add rax, 1
cmp byte [rax], 0
jne 0x589560
and ecx, 4
jne 0x5896d0
lea r9, [rax + 1]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x58958f
mov rdx, r9
call sym.sqlite3_stricmp.part.0
test eax, eax
je 0x589710
mov rdi, qword [rsp + 0x80]
xor ebx, ebx
xor esi, esi
xor r14d, r14d
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rax]
add rdx, rbx
call dbg.sqlite3DbMallocZero
mov r12, rax
test rax, rax
je 0x589d3e
lea r10, [rax + rdi*8 + 0x80]
lea rax, [rdi + rdi*2]
mov dword [r12 + 0x70], esi
xor edx, edx
lea rbp, [r10 + rax*4]
mov rax, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x48]
mov qword [r12 + 8], r10
add rbx, rbp
mov qword [r12 + 0x18], rbp
mov rsi, rax
mov qword [r12 + 0x60], rax
mov rax, qword [rax + 0x20]
mov r11d, dword [rsi + 0x14]
mov qword [r12 + 0x20], rbx
mov qword [r12 + 0x68], rdi
mov dword [r12 + 0x74], 0
mov word [rsp + 0x60], dx
test r11d, r11d
jle 0x5897ce
xor edx, edx
xor r15d, r15d
mov edi, 1
jmp 0x58966a
cmp r9w, 0x40
je 0x589738
test bx, 0x180
je 0x589748
cmp r9w, 0x100
setne cl
add ecx, 0x47
mov byte [r8 + 4], cl
add r15d, 1
add edx, 1
add rax, 0x38
cmp r11d, edx
je 0x5897d8
movzx ecx, word [rax + 0x12]
test cl, 0x40
je 0x58965a
movsxd r8, r15d
mov r9d, dword [rax + 0x20]
movzx ebx, word [rax + 0x14]
lea r8, [r8 + r8*2]
lea r8, [r10 + r8*4]
mov dword [r8], r9d
mov r9d, ebx
and r9w, 0x3fff
mov dword [r8 + 8], edx
cmp r9w, 1
jne 0x589630
test cx, cx
js 0x5896c1
mov r9d, dword [r12 + 0x74]
mov esi, edi
mov ecx, r15d
shl esi, cl
mov ebx, r9d
or r9d, esi
cmp r15d, 0x20
cmovge r9d, ebx
mov dword [r12 + 0x74], r9d
mov byte [r8 + 4], 2
jmp 0x589656
add rax, 1
cmp byte [rax], 0
je 0x589572
add rax, 1
cmp byte [rax], 0
jne 0x5896d0
jmp 0x589572
mov rax, qword [rsp + 0x60]
add rax, r12
mov eax, dword [r15 + rax*8 + 0x4c]
cmp dword [rdi + 0x2c], eax
jne 0x58958f
nop word cs:[rax + rax]
add ebx, 1
add r13, 0x20
cmp r14d, ebx
jne 0x58948a
mov rbp, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
jmp 0x589b04
movzx ecx, byte [rax + 0x17]
mov byte [r8 + 4], cl
jmp 0x589656
and ebx, 0x3c
mov byte [r8 + 4], r9b
je 0x589656
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x18]
movzx ecx, byte [rbx]
cmp cl, 0xb0
jne 0x589768
movzx ecx, byte [rbx + 2]
cmp cl, 0xb1
je 0x589b2e
cmp cl, 0x8a
jne 0x589656
mov rcx, qword [rbx + 0x20]
mov rcx, qword [rcx + 0x20]
mov ecx, dword [rcx]
cmp ecx, 1
jle 0x589656
mov ecx, r15d
mov esi, edi
movzx r13d, word [rsp + 0x60]
shl esi, cl
mov ecx, esi
mov ebx, r13d
or ecx, r13d
cmp r15d, 0x10
cmovl ebx, ecx
mov word [rsp + 0x60], bx
cmp r9w, 0x10
je 0x589cba
cmp r9w, 4
jne 0x589656
mov byte [r8 + 4], 0x20
jmp 0x589656
xor r15d, r15d
nop dword [rax]
mov dword [r12], r15d
test r14d, r14d
je 0x5898a5
mov rsi, qword [rsp + 0x58]
lea eax, [r14 - 1]
xor r14d, r14d
lea rbx, [dbg.sqlite3SelectWalkFail]
shl rax, 5
lea r13, [rsp + 0xa0]
mov qword [rsp + 0x58], r12
lea rax, [rsi + rax + 0x28]
lea r15, [rsi + 8]
mov r12, r13
mov r13, rbp
lea rsi, [dbg.exprNodeIsConstant]
mov rbp, rsi
mov rsi, rbx
mov rbx, rax
nop dword [rax + rax]
mov rdi, qword [r15]
mov eax, 1
mov qword [rsp + 0xa8], rbp
mov word [rsp + 0xc4], ax
mov qword [rsp + 0xb0], rsi
mov dword [rsp + 0xc8], 0
test rdi, rdi
je 0x589893
mov rdx, rdi
mov rcx, r12
call dbg.sqlite3WalkExprNN
cmp word [rsp + 0xc4], 0
jne 0x589893
movsxd rax, r14d
add r14d, 1
lea rdx, [r13 + rax*8]
movsx eax, word [rdi + 0x30]
mov dword [rdx], eax
movzx eax, byte [r15 + 0x10]
and eax, 1
mov byte [rdx + 4], al
add r15, 0x20
cmp rbx, r15
jne 0x589830
mov r12, qword [rsp + 0x58]
mov r15d, dword [r12]
mov rdx, qword [rsp + 0x50]
xor edi, edi
xor ebp, ebp
mov dword [r12 + 0x10], r14d
movzx eax, word [rdx + 0x40]
and byte [rdx + 0x1c], 0xfe
mov word [rdx + 0x12], di
mov dword [rdx + 0x38], 0x400
mov word [rdx + 0x3c], bp
cmp r15d, eax
jg 0x5899a8
movzx esi, word [rsp + 0x60]
lea rax, [rsp + 0x9c]
xor r9d, r9d
lea rdi, [rsp + 0xa0]
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x128]
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x30], rdi
mov rcx, qword [rsp + 0x120]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r12
call sym.whereLoopAddVirtualOne
mov r11d, dword [rsp + 0x9c]
mov r13d, eax
test r11d, r11d
jne 0x589ac0
test r13d, r13d
je 0x589a10
mov edx, dword [r12 + 0x38]
test edx, edx
jne 0x589ab0
mov rax, qword [rsp + 0x48]
xor ebx, ebx
mov r14, qword [rax]
mov eax, dword [r12]
test eax, eax
jle 0x589983
nop word cs:[rax + rax]
mov rcx, qword [r12 + rbx*8 + 0x80]
call dbg.sqlite3ValueFree
mov qword [r12 + rbx*8 + 0x80], 0
add rbx, 1
cmp dword [r12], ebx
jg 0x589960
mov rdx, r12
mov rcx, r14
call sym.sqlite3DbFreeNN
mov eax, r13d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x48]
mov r8d, r15d
mov rcx, qword [rax]
call sym.whereLoopResize.part.0
test eax, eax
je 0x5898d3
mov rax, qword [rsp + 0x48]
mov esi, dword [r12]
xor ebx, ebx
mov r13, qword [rax]
test esi, esi
jle 0x5899fb
nop word [rax + rax]
mov rcx, qword [r12 + rbx*8 + 0x80]
call dbg.sqlite3ValueFree
mov qword [r12 + rbx*8 + 0x80], 0
add rbx, 1
cmp dword [r12], ebx
jg 0x5899d8
mov rcx, r13
mov rdx, r12
mov r13d, 7
call sym.sqlite3DbFreeNN
jmp 0x58998e
mov r14, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x50]
mov ebx, dword [rsp + 0xa0]
not r14
mov rax, r14
and rax, qword [rcx]
mov dword [rsp + 0x80], ebx
mov qword [rsp + 0x58], rax
jne 0x589b39
test ebx, ebx
je 0x589937
mov qword [rsp + 0x30], rdi
mov rdx, qword [rsp + 0x128]
mov rbx, r14
mov r9d, 1
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x120]
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r12
call sym.whereLoopAddVirtualOne
mov rcx, qword [rsp + 0x50]
and rbx, qword [rcx]
sete dl
mov qword [rsp + 0x60], rbx
movzx edx, dl
mov dword [rsp + 0x78], edx
test eax, eax
jne 0x589c61
mov dword [rsp + 0x80], edx
jmp 0x589b53
mov rcx, qword [r12 + 0x30]
call sym.sqlite3_free
jmp 0x589944
mov qword [rsp + 0x30], rdi
mov rdx, qword [rsp + 0x128]
xor r9d, r9d
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x28], esi
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], r12
call sym.whereLoopAddVirtualOne
mov r13d, eax
jmp 0x58992e
jne 0x589597
movzx esi, word [rbp + 0x3c]
movsxd rbx, r14d
shl rbx, 3
test sil, 0x80
je 0x589cae
test si, 0x200
setne sil
movzx esi, sil
add esi, 2
jmp 0x58959e
mov rcx, qword [rbx + 0x20]
mov ecx, dword [rcx]
jmp 0x589784
mov r10d, dword [rsp + 0x80]
test r10d, r10d
jne 0x589a47
mov qword [rsp + 0x60], 0
lea eax, [r15 - 1]
mov dword [rsp + 0x70], esi
mov rsi, qword [rsp + 0x128]
xor ebx, ebx
lea rbp, [rax + rax*2]
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x88], r13d
mov r13, qword [rsp + 0x68]
shl rbp, 2
mov dword [rsp + 0x78], eax
nop dword [rax]
mov r8, rbx
test r15d, r15d
jle 0x589cd8
mov rdx, qword [r12 + 8]
mov r9, qword [r13 + 0x20]
mov rbx, 0xffffffffffffffff
lea rax, [rdx + 8]
lea rcx, [rdx + rbp + 0x14]
nop dword [rax]
movsxd r10, dword [rax]
lea rdx, [r10*8]
sub rdx, r10
mov r11, qword [r9 + rdx*8 + 0x28]
and r11, r14
cmp r11, r8
jbe 0x589bd2
cmp r11, rbx
cmovb rbx, r11
add rax, 0xc
cmp rcx, rax
jne 0x589bb0
cmp rbx, 0xffffffffffffffff
je 0x589cd8
cmp rbx, qword [rsp + 0x58]
je 0x589b88
cmp qword [rsp + 0x60], rbx
je 0x589b88
mov eax, dword [rsp + 0x70]
mov qword [rsp + 0x30], rdi
mov r8, rbx
xor r9d, r9d
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x120]
or r8, rsi
mov rdx, rsi
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r12
call sym.whereLoopAddVirtualOne
mov rcx, qword [rsp + 0x50]
cmp qword [rcx], rsi
jne 0x589c55
mov r9d, dword [rsp + 0xa0]
mov ecx, 1
mov dword [rsp + 0x80], 1
test r9d, r9d
cmovne ecx, dword [rsp + 0x78]
mov dword [rsp + 0x78], ecx
test eax, eax
je 0x589b88
mov esi, dword [rsp + 0x70]
mov r13d, eax
mov eax, dword [rsp + 0x78]
or eax, r13d
jne 0x589937
mov r8, qword [rsp + 0x128]
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov dword [rsp + 0x28], esi
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x38], 0
mov rdx, r8
mov qword [rsp + 0x20], r12
call sym.whereLoopAddVirtualOne
mov r13d, eax
jmp 0x589937
shr si, 6
and esi, 1
jmp 0x58959e
mov byte [r8 + 4], 8
jmp 0x589656
mov qword [rsp + 0x70], 0x88
xor edi, edi
jmp 0x589434
mov r8d, dword [rsp + 0x80]
mov esi, dword [rsp + 0x70]
mov r13d, dword [rsp + 0x88]
test r8d, r8d
jne 0x589c64
mov r8, qword [rsp + 0x128]
mov qword [rsp + 0x30], rdi
xor r9d, r9d
mov dword [rsp + 0x28], esi
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x38], 0
mov rdx, r8
mov qword [rsp + 0x20], r12
call sym.whereLoopAddVirtualOne
mov ecx, dword [rsp + 0xa0]
mov r13d, eax
test ecx, ecx
je 0x589937
jmp 0x589c64
mov rcx, qword [rsp + 0x48]
lea rdx, [0x00735e70]
mov r13d, 7
call dbg.sqlite3ErrorMsg
jmp 0x58998e