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

Disassembly:
mov word [rsp + 0x10], dx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc8
movzx r13d, byte [rcx + 0x40]
xor r12d, r12d
mov r14, qword [rcx]
cmp r13d, 2
mov rbx, rcx
mov dword [rsp + 0x4c], r12d
mov word [rsp + 0x46], r12w
lea eax, [r12 + 5]
mov word [rsp + 0x44], r12w
mov r8, qword [r14]
lea esi, [rax - 4]
lea r15d, [r12 + 0xa]
mov qword [rsp + 0x70], r12
cmove r15d, eax
mov qword [rsp + 0x98], r14
mov rax, qword [rcx + 0x10]
cmp r13d, esi
mov qword [rsp + 0xb0], r8
cmovbe r15d, esi
mov dword [rsp + 0x68], r13d
test rax, rax
je 0x14006bede
test dx, dx
je 0x14006bede
mov edi, dword [rax]
mov dword [rsp + 0x40], edi
jmp 0x14006bee6
mov edi, r12d
mov dword [rsp + 0x40], r12d
lea eax, [r13 + 4]
imul eax, r15d
lea ecx, [rdi + rax*8]
add ecx, ecx
movsxd rdx, ecx
mov rcx, r8
call fcn.14000780c
mov qword [rsp + 0xa8], rax
mov rdx, rax
test rax, rax
jne 0x14006bf16
lea eax, [rdx + 7]
jmp 0x14006c5e0
xorps xmm0, xmm0
mov eax, r15d
shl rax, 5
mov r8, r13
shl r8, 3
mov r11, rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0xa0], r8
lea rbp, [rax + rdx]
add rdx, 0x18
movups xmmword [rbp], xmm0
lea rcx, [rax + rbp]
mov qword [rsp + 0x88], rbp
movups xmmword [rbp + 0x10], xmm0
lea eax, [r15 + r15]
mov qword [rdx], rcx
sub eax, esi
add rcx, r8
lea rdx, [rdx + 0x20]
test eax, eax
jg 0x14006bf57
test edi, edi
je 0x14006bf82
movsxd r8, edi
xor edx, edx
add r8, r8
mov qword [rsp + 0x70], rcx
call fcn.1400db770
mov r11, qword [rsp + 0x58]
mov eax, dword [r14 + 0xc0]
mov ecx, 0x30
cmp eax, ecx
cmovb ecx, eax
mov word [rbp + 0x10], cx
mov ecx, esi
test edi, edi
je 0x14006bfad
or edx, 0xffffffff
movzx eax, dil
test r13b, r13b
cmovne eax, edx
mov byte [rbp + 0x16], al
xor r14d, r14d
mov edx, r12d
mov dword [rsp + 0x50], edx
test r13b, r13b
je 0x14006c354
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x48], r14d
mov r8d, r14d
test ecx, ecx
jle 0x14006c305
mov eax, ecx
lea r13, [rbp + 0x10]
mov ebp, dword [rsp + 0x50]
xor r10d, r10d
mov qword [rsp + 0x80], rax
mov r14, qword [rbx + 0x58]
test r14, r14
je 0x14006c2dc
mov al, byte [r13 + 6]
mov r10, qword [r13 - 0x10]
mov byte [rsp + 0x110], al
xor eax, eax
mov qword [rsp + 0x78], rax
mov rax, r10
not rax
test qword [r14], rax
jne 0x14006c2c4
mov r11, qword [r14 + 8]
test r10, r11
jne 0x14006c2bf
test dword [r14 + 0x28], 0x4000
je 0x14006c03f
cmp word [r13], 3
jl 0x14006c2bf
movzx eax, word [r13]
movzx ecx, word [r14 + 0x12]
movzx edx, ax
add dx, word [r14 + 0x14]
mov word [rsp + 0x128], ax
call fcn.14000b200
movzx edx, word [r13 + 4]
movzx ecx, ax
call fcn.14000b200
or r11, r10
movzx r12d, ax
movzx eax, word [rsp + 0x128]
add ax, word [r14 + 0x16]
mov r10b, byte [rsp + 0x110]
mov qword [rsp + 0x90], r11
xor r11d, r11d
mov word [rsp + 0x128], ax
test r10b, r10b
jns 0x14006c165
movzx r9d, word [rbx + 0x3c]
lea rax, [rsp + 0x78]
mov rdx, qword [rbx + 0x10]
lea r8, [r13 - 0x10]
mov qword [rsp + 0x30], rax
mov rcx, rbx
mov qword [rsp + 0x28], r14
mov word [rsp + 0x20], bp
call fcn.14006b59c
xor r11d, r11d
mov byte [rsp + 0x110], al
mov r10b, al
test al, al
jns 0x14006c16e
movzx edx, r12w
add r12w, 0xfffe
mov r8d, dword [rsp + 0x48]
mov ecx, r11d
mov r11, qword [rsp + 0x58]
mov rdi, r11
test r8d, r8d
jle 0x14006c1ca
mov r9, qword [rsp + 0x90]
cmp qword [rdi], r9
jne 0x14006c118
mov al, r10b
xor al, byte [rdi + 0x16]
jge 0x14006c123
add ecx, esi
add rdi, 0x20
cmp ecx, r8d
jl 0x14006c10b
cmp ecx, r8d
jge 0x14006c1ca
cmp word [rdi + 0x12], dx
jl 0x14006c157
jne 0x14006c208
movzx eax, word [rsp + 0x128]
cmp word [rdi + 0x10], ax
jl 0x14006c157
jne 0x14006c208
cmp word [rdi + 0x14], r12w
jg 0x14006c208
mov edi, dword [rsp + 0x40]
mov r12, qword [rsp + 0x60]
jmp 0x14006c2c4
mov rax, qword [r13 - 8]
mov qword [rsp + 0x78], rax
movzx r9d, r10b
cmp r9d, edi
jge 0x14006c0e1
mov rax, qword [rsp + 0x70]
mov edi, r9d
movzx eax, word [rax + r9*2]
test ax, ax
jne 0x14006c1b6
mov r8d, dword [rsp + 0x40]
mov rcx, rbx
movzx edx, word [rsp + 0x118]
call fcn.14006bde8
mov rcx, qword [rsp + 0x70]
xor r11d, r11d
mov r10b, byte [rsp + 0x110]
mov word [rcx + rdi*2], ax
movzx edx, ax
movzx ecx, r12w
call fcn.14000b200
lea edx, [rax + 5]
jmp 0x14006c0ea
cmp r8d, r15d
jl 0x14006c1e4
cmp dx, word [rsp + 0x46]
jg 0x14006c157
jne 0x14006c1e4
cmp r12w, word [rsp + 0x44]
jge 0x14006c157
cmp r8d, r15d
mov eax, r8d
cmovge eax, dword [rsp + 0x4c]
movsxd rdi, eax
lea eax, [r8 + 1]
shl rdi, 5
add rdi, r11
cmp r8d, r15d
cmovge eax, r8d
mov dword [rsp + 0x48], eax
mov rax, qword [r14 + 8]
or rax, qword [r13 - 0x10]
mov rcx, qword [rdi + 0x18]
mov qword [rdi], rax
mov rax, qword [rsp + 0x78]
mov qword [rdi + 8], rax
movzx eax, word [rsp + 0x128]
mov word [rdi + 0x14], r12w
mov r12, qword [rsp + 0x60]
mov word [rdi + 0x10], ax
mov r8, r12
mov word [rdi + 0x12], dx
mov byte [rdi + 0x16], r10b
mov rdx, qword [r13 + 8]
call fcn.1400db0d0
mov rax, qword [rdi + 0x18]
xor r10d, r10d
mov r8d, dword [rsp + 0x48]
mov r11, qword [rsp + 0x58]
mov qword [r12 + rax], r14
cmp r8d, r15d
jl 0x14006c2b9
movzx r9d, word [r11 + 0x12]
mov ecx, esi
movzx edx, word [r11 + 0x10]
mov word [rsp + 0x46], r9w
mov word [rsp + 0x44], dx
mov dword [rsp + 0x4c], r10d
cmp r15d, esi
jbe 0x14006c2b9
lea rax, [r11 + 0x34]
cmp word [rax - 2], r9w
jg 0x14006c297
jne 0x14006c2a3
cmp word [rax], dx
jle 0x14006c2a3
movzx r9d, word [rax - 2]
movzx edx, word [rax]
mov dword [rsp + 0x4c], ecx
add ecx, esi
add rax, 0x20
cmp ecx, r15d
jl 0x14006c289
mov word [rsp + 0x44], dx
mov word [rsp + 0x46], r9w
mov edi, dword [rsp + 0x40]
jmp 0x14006c2c7
mov r11, qword [rsp + 0x58]
xor r10d, r10d
mov r14, qword [r14 + 0x40]
test r14, r14
jne 0x14006bff7
mov rax, qword [rsp + 0x80]
add r13, 0x20
sub rax, rsi
mov qword [rsp + 0x80], rax
jne 0x14006bfea
mov r13d, dword [rsp + 0x68]
xor r14d, r14d
mov rbp, qword [rsp + 0x88]
mov edx, dword [rsp + 0x50]
mov rax, r11
mov qword [rsp + 0x58], rbp
add edx, esi
mov qword [rsp + 0x88], rax
add r12, 8
mov dword [rsp + 0x50], edx
mov qword [rsp + 0x60], r12
mov r11, rbp
mov rbp, rax
mov ecx, r8d
cmp edx, r13d
jl 0x14006bfc5
test r8d, r8d
jne 0x14006c354
mov rcx, qword [rsp + 0x98]
lea rdx, str.no_query_solution
call fcn.14000a098
jmp 0x14006c5c9
movsxd rax, ecx
mov rdi, rbp
mov edx, esi
cmp rax, rsi
jle 0x14006c387
lea rcx, [rbp + 0x32]
lea r8, [rax - 1]
movzx eax, word [rcx]
cmp word [rdi + 0x12], ax
jle 0x14006c37c
movsxd rdi, edx
shl rdi, 5
add rdi, rbp
add edx, esi
add rcx, 0x20
sub r8, rsi
jne 0x14006c369
lea r12, [rdi + 0x18]
test r13b, r13b
je 0x14006c3ce
mov r8, r14
mov r9d, r13d
lea rdx, [rbx + 0x394]
mov rax, qword [r12]
mov rcx, qword [r8 + rax]
lea r8, [r8 + 8]
mov qword [rdx + 0x1c], rcx
movzx eax, byte [rcx + 0x10]
imul rcx, rax, 0x70
mov byte [rdx], al
lea rdx, [rdx + 0x60]
mov rax, qword [rbx + 8]
mov ecx, dword [rcx + rax + 0x4c]
mov dword [rdx - 0x90], ecx
sub r9, rsi
jne 0x14006c39d
movzx eax, word [rbx + 0x3c]
mov ecx, 0x180
and ax, cx
mov ecx, 0x100
cmp ax, cx
jne 0x14006c445
cmp byte [rbx + 0x43], r14b
jne 0x14006c445
movsxd rbp, r13d
cmp word [rsp + 0x118], r14w
je 0x14006c448
mov rax, qword [r12]
lea rdx, [rsp + 0x110]
mov qword [rsp + 0x30], rdx
movzx ecx, r13w
mov rdx, qword [rbx + 0x18]
sub cx, si
mov r9d, 0x80
mov r8, rdi
mov rax, qword [rax + rbp*8 - 8]
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], cx
mov rcx, rbx
call fcn.14006b59c
movsx ecx, al
mov rax, qword [rbx + 0x18]
cmp ecx, dword [rax]
jne 0x14006c448
mov byte [rbx + 0x43], 2
jmp 0x14006c448
movsxd rbp, r13d
mov ecx, dword [rbx + 0x44]
mov r10, qword [rbx + 0x10]
and ecx, 0xfffffffb
mov dword [rbx + 0x44], ecx
test r10, r10
je 0x14006c5be
test byte [rbx + 0x3c], 0x80
movsx r8d, byte [rdi + 0x16]
je 0x14006c482
cmp r8d, dword [r10]
jne 0x14006c472
mov byte [rbx + 0x43], 2
mov rdx, r10
lea rax, [rbx + 0x41]
lea rbp, [rbx + 0x68]
jmp 0x14006c549
lea r14, [rbx + 0x41]
xor r9d, r9d
mov byte [r14], r8b
lea r15, [rbx + 0x68]
mov rax, qword [rdi + 8]
mov rdx, r10
mov qword [r15], rax
test r8b, r8b
jg 0x14006c52a
mov byte [r14], r9b
test r13b, r13b
je 0x14006c522
mov rax, qword [r12]
mov ecx, 0x104
mov r11, qword [rax + rbp*8 - 8]
mov eax, dword [r11 + 0x28]
and eax, ecx
cmp eax, ecx
setne cl
bt dword [r11 + 0x28], 0xc
setae al
test al, cl
je 0x14006c522
movzx eax, r13w
mov qword [rsp + 0x110], r9
lea rcx, [rsp + 0x110]
sub ax, si
mov qword [rsp + 0x30], rcx
mov r9d, 0x800
mov qword [rsp + 0x28], r11
mov rcx, rbx
mov r8, rdi
mov word [rsp + 0x20], ax
call fcn.14006b59c
mov rdx, qword [rbx + 0x10]
movsx ecx, al
cmp ecx, dword [rdx]
jne 0x14006c522
mov rax, qword [rsp + 0x110]
or dword [rbx + 0x44], 4
mov qword [r15], rax
mov rax, r14
mov rbp, r15
jmp 0x14006c546
mov rax, r14
mov rbp, r15
test r13b, r13b
je 0x14006c546
cmp r8b, sil
jne 0x14006c546
test byte [rbx + 0x3c], 3
je 0x14006c546
or ecx, 4
mov dword [rbx + 0x44], ecx
xor r14d, r14d
mov ecx, 0x200
test word [rbx + 0x3c], cx
je 0x14006c5be
movsx eax, byte [rax]
cmp eax, dword [rdx]
jne 0x14006c5be
test r13b, r13b
je 0x14006c5be
mov rax, qword [r12]
lea rcx, [rsp + 0x110]
mov qword [rsp + 0x30], rcx
sub r13w, si
mov rcx, qword [rsp + 0xa0]
xor r9d, r9d
mov qword [rsp + 0x110], r14
mov r8, rdi
mov rax, qword [rcx + rax - 8]
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], r13w
call fcn.14006b59c
movsx edx, al
mov rax, qword [rbx + 0x10]
cmp edx, dword [rax]
jne 0x14006c5be
mov rax, qword [rsp + 0x110]
or dword [rbx + 0x44], 8
mov qword [rbp], rax
movzx eax, word [rdi + 0x10]
mov esi, r14d
mov word [rbx + 0x48], ax
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xb0]
call fcn.140007538
mov eax, esi
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret