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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x140144080]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov rdi, qword [rcx]
xor ebx, ebx
mov rsi, r8
mov qword [rbp - 0x28], r8
mov r13, rdx
mov qword [rbp - 0x18], rdx
mov r15, rcx
mov qword [rbp], rbx
lea r12d, [rbx + 1]
mov qword [rsp + 0x50], rdi
call fcn.1400844b4
mov qword [rbp - 0x30], rax
mov r14, rax
test r13, r13
je 0x140089c00
cmp dword [r15 + 0x30], ebx
jne 0x140089c00
cmp byte [rsi], 6
ja 0x140089ba6
mov r8, qword [r13 + 0x48]
test r8, r8
je 0x140089b97
lea rdx, [fcn.14005d928]
mov rcx, r15
call fcn.140080c6c
mov qword [r13 + 0x48], rbx
mov eax, dword [r13 + 4]
and eax, 0xfffffffe
bts eax, 0x16
mov dword [r13 + 4], eax
xor r8d, r8d
mov rdx, r13
mov rcx, r15
call fcn.140088af0
cmp dword [r15 + 0x30], ebx
jne 0x140089bf8
mov r11d, dword [r13 + 4]
bt r11d, 0x17
jae 0x140089c36
mov rdx, qword [r13 + 0x28]
lea rbx, [rdx + 8]
mov rcx, rbx
call fcn.140089a60
test eax, eax
je 0x140089c2d
mov r8, qword [rbx + 0x18]
test r8, r8
jne 0x140089be9
mov rax, qword [rbx + 0x20]
mov r8, qword [rax]
lea rdx, str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov rcx, r15
call fcn.14002e178
mov rcx, r15
call fcn.14004a67c
mov eax, r12d
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.1400e4680
mov rbx, qword [rsp + 0x218]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
btr r11d, 0x17
mov dword [r13 + 4], r11d
cmp byte [rsi], 9
jne 0x140089c46
mov rdx, r13
mov rcx, r15
call fcn.140083b54
mov rdx, r13
mov rcx, r15
call fcn.1400a0d78
xor r9d, r9d
test eax, eax
jne 0x140089bf8
mov eax, dword [r13 + 4]
xorps xmm0, xmm0
mov rbx, qword [r13 + 0x28]
mov esi, r9d
shr eax, 3
and eax, r12d
mov qword [rbp - 0x60], rbx
mov dword [rbp - 0x70], eax
mov rax, qword [r13 + 0x48]
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x18], rax
movups xmmword [rbp + 0x28], xmm0
movups xmmword [rbp + 0x38], xmm0
cmp qword [r13 + 0x50], r9
jne 0x140089f12
mov eax, r9d
mov qword [rsp + 0x70], rax
mov r11d, 0x100
mov ecx, 0x40
cmp esi, dword [rbx]
jge 0x140089f57
imul rdi, rax, 0x68
test byte [rdi + rbx + 0x44], 0x48
mov rax, qword [rdi + rbx + 0x30]
mov rdx, qword [rdi + rbx + 0x28]
mov qword [rbp - 0x68], rax
mov qword [rsp + 0x60], rdx
je 0x140089dcf
movzx r8d, byte [rdi + rbx + 0x44]
mov edx, dword [rdi + rbx + 0x4c]
and r8d, ecx
mov rcx, qword [r13 + 0x30]
call fcn.1400628f8
mov r10, qword [rsp + 0x50]
xor r9d, r9d
test eax, eax
je 0x140089e67
test dword [r10 + 0x60], 0x2000
jne 0x140089e67
mov al, byte [rdi + rbx + 0x44]
lea ecx, [r9 + 8]
test cl, al
je 0x140089d30
test al, 0x10
je 0x140089d1a
and al, 0xf7
mov byte [rdi + rbx + 0x44], al
jmp 0x140089d30
mov edx, dword [rdi + rbx + 0x4c]
and al, 0xd7
mov byte [rdi + rbx + 0x44], al
xor r8d, r8d
mov rcx, qword [r13 + 0x30]
call fcn.140081b7c
test byte [rdi + rbx + 0x44], 0x40
je 0x140089e67
mov rcx, qword [rsp + 0x70]
lea r10d, [rsi + 1]
mov eax, dword [rbx]
inc rcx
cmp r10d, eax
jge 0x140089d9c
imul r9, rcx, 0x68
mov r14d, 8
add r9, 0x44
add r9, rbx
mov al, byte [r9]
test al, 0x10
je 0x140089d87
test r14b, al
je 0x140089d72
and al, 0xef
mov byte [r9], al
jmp 0x140089d87
mov edx, dword [r9 + 8]
and al, 0xcf
mov byte [r9], al
mov r8d, r12d
mov rcx, qword [r13 + 0x30]
call fcn.140081b7c
mov eax, dword [rbx]
add r10d, r12d
add r9, 0x68
cmp r10d, eax
jl 0x140089d5f
mov r14, qword [rbp - 0x30]
xor r9d, r9d
sub eax, r12d
movsxd rdx, eax
js 0x140089dc0
imul rcx, rdx, 0x68
add rcx, 0x44
add rcx, rbx
and byte [rcx], 0xbf
test byte [rcx], 0x10
jne 0x140089dc0
sub rcx, 0x68
sub rdx, r12
jns 0x140089daf
mov rax, qword [rbp - 0x68]
mov r11d, 0x100
mov rdx, qword [rsp + 0x60]
mov r10, qword [rsp + 0x50]
test rax, rax
je 0x140089ef3
mov rax, qword [rax + 0x20]
movsx r8d, word [rdx + 0x36]
mov ecx, dword [rax]
cmp r8d, ecx
jne 0x140089f3c
test dword [rdi + rbx + 0x48], r11d
je 0x140089e07
mov rax, qword [rdi + rbx + 0x68]
cmp byte [rax + 0x12], r9b
je 0x140089ef3
mov rdi, qword [rbp - 0x68]
mov eax, 8
test byte [rdi + 4], al
jne 0x140089ef3
mov r8, qword [rdi + 0x48]
test r8, r8
je 0x140089e97
cmp qword [r13 + 0x48], r9
jne 0x140089e2d
cmp dword [rbx], r12d
jle 0x140089e7b
cmp qword [rdi + 0x60], r9
jne 0x140089e7b
test dword [rdi + 4], 0x8000000
jne 0x140089e7b
test dword [r13 + 4], 0x8000000
jne 0x140089e7b
test dword [r10 + 0x60], 0x40000
jne 0x140089e7b
lea rdx, [fcn.14005d928]
mov rcx, r15
call fcn.140080c6c
xor edx, edx
mov qword [rdi + 0x48], rdx
jmp 0x140089e97
mov rax, qword [rbp - 0x68]
mov r11d, 0x100
mov rdx, qword [rsp + 0x60]
jmp 0x140089dd4
test esi, esi
jne 0x140089e97
test dword [r13 + 4], 0x40000
je 0x140089e97
cmp dword [rbx], r12d
je 0x140089ef3
test byte [rbx + 0xac], 0x22
jne 0x140089ef3
mov r9d, dword [rbp - 0x70]
mov r8d, esi
mov rdx, r13
mov rcx, r15
call fcn.14008679c
xor r9d, r9d
test eax, eax
je 0x140089ec5
cmp dword [r15 + 0x30], r9d
jne 0x140089bf8
or rax, 0xffffffffffffffff
mov esi, eax
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0x50]
mov rbx, qword [r13 + 0x28]
mov qword [rbp - 0x60], rbx
cmp byte [rdi + 0x67], r9b
jne 0x140089bf8
mov rax, qword [rbp - 0x28]
mov ecx, 8
cmp byte [rax], cl
jbe 0x140089ef8
mov rax, qword [r13 + 0x48]
mov qword [rbp + 0x18], rax
jmp 0x140089ef8
mov rdi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
add esi, r12d
add rax, r12
mov qword [rsp + 0x70], rax
cmp qword [r13 + 0x50], r9
je 0x140089c99
mov r8, qword [rbp - 0x28]
mov rdx, r13
mov rcx, r15
call fcn.140084c58
mov r10d, eax
xor eax, eax
cmp qword [r13 + 0x58], rax
jne 0x140089f34
mov rcx, r15
call fcn.14004a67c
mov eax, r10d
jmp 0x140089c03
mov r9, qword [rdx]
lea rdx, str.expected__d_columns_for__s_but_got__d
mov dword [rsp + 0x20], ecx
mov rcx, r15
call fcn.14002e178
jmp 0x140089bf8
mov rax, qword [r13 + 0x30]
test rax, rax
je 0x140089f7c
cmp byte [rax], 0x2c
jne 0x140089f7c
test dword [rdi + 0x60], 0x8000
jne 0x140089f7c
mov rdx, r13
mov rcx, r15
call fcn.140087304
xor r9d, r9d
test dword [rdi + 0x60], 0x201
jne 0x140089fad
mov rdx, r13
mov qword [rbp - 0x60], rbx
mov rcx, r15
call fcn.140089820
xor r9d, r9d
test eax, eax
je 0x140089fad
cmp byte [rdi + 0x67], r9b
jne 0x140089bf8
mov rbx, qword [r13 + 0x28]
mov qword [rbp - 0x60], rbx
mov ecx, r9d
mov dword [rsp + 0x44], ecx
cmp dword [rbx], r9d
jle 0x14008a514
mov rax, r9
mov qword [rbp - 0x48], rax
imul rax, rax, 0x68
lea rsi, [rbx + 8]
add rsi, rax
mov r11, qword [rsi + 0x28]
mov qword [rbp - 0x68], r11
test r11, r11
je 0x14008a4fa
cmp dword [rsi + 0x30], r9d
jne 0x14008a4fa
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x48], r9d
mov rcx, r13
call fcn.14005bf68
mov eax, dword [rsp + 0x48]
add dword [r15 + 0x13c], eax
test dword [rdi + 0x60], 0x1000
jne 0x14008a043
test dword [rsi + 0x40], 0x100
je 0x14008a029
mov rax, qword [rsi + 0x60]
xor edx, edx
cmp byte [rax + 0x12], dl
je 0x14008a043
cmp dword [rax], 2
jge 0x14008a043
mov eax, dword [rsp + 0x44]
mov r9, rbx
mov r8, qword [r13 + 0x30]
mov rdx, r11
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.14008740c
xor r11d, r11d
test dword [rdi + 0x60], 0x4000000
jne 0x14008a169
test dword [rsi + 0x40], 0x108
jne 0x14008a169
mov rdi, qword [rsi + 0x28]
mov r10, qword [rsi + 0x20]
mov rax, rdi
test rdi, rdi
je 0x14008a09e
test byte [rax + 4], 9
jne 0x14008a169
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x14008a08c
cmp byte [rax], 0x87
jne 0x14008a169
cmp qword [rax + 0x70], r11
jne 0x14008a169
mov rax, rcx
test rcx, rcx
jne 0x14008a070
mov rax, qword [rdi + 0x48]
mov r8, qword [rsi + 0x50]
test rax, rax
je 0x14008a0ec
movsxd rdx, dword [rax]
test rdx, rdx
jle 0x14008a0ec
mov ebx, 0x3f
lea rcx, [rax + 0x20]
lea r14d, [rbx + 1]
movzx eax, word [rcx]
test ax, ax
je 0x14008a0db
sub ax, r12w
movzx eax, ax
cmp ax, r14w
cmovae rax, rbx
bts r8, rax
add rcx, 0x20
sub rdx, r12
jne 0x14008a0c0
mov r14, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x60]
movsx rax, word [r10 + 0x36]
xor ecx, ecx
mov r9d, r11d
test rax, rax
jle 0x14008a169
mov r10d, ecx
lea edx, [rcx + 0x3f]
mov r14, rax
mov ecx, r9d
mov rax, r12
shl rax, cl
movabs rcx, 0x8000000000000000
cmp r9d, edx
cmovb rcx, rax
test r8, rcx
jne 0x14008a14f
mov rcx, rdi
mov rax, qword [rcx + 0x20]
mov rdx, qword [rax + r10 + 8]
cmp byte [rdx], 0x79
je 0x14008a143
and dword [rdx + 4], 0xfff7dfff
mov byte [rdx], 0x79
bts dword [rcx + 4], 0x18
mov rcx, qword [rcx + 0x50]
test rcx, rcx
jne 0x14008a126
lea edx, [rcx + 0x3f]
add r9d, r12d
add r11, r12
add r10, 0x20
cmp r11, r14
jl 0x14008a104
mov r13, qword [rbp - 0x18]
xor r11d, r11d
mov r14, qword [rbp - 0x30]
mov rax, qword [r15 + 0x178]
mov ecx, dword [rsp + 0x44]
mov edi, ecx
mov qword [rbp - 0x80], rax
mov rax, qword [rsi + 0x10]
mov qword [r15 + 0x178], rax
mov eax, dword [rsi + 0x40]
and eax, 0x100
mov dword [rsp + 0x60], eax
je 0x14008a1a8
mov rax, qword [rsi + 0x60]
cmp byte [rax + 0x12], r11b
je 0x14008a20f
cmp dword [rax], 2
jl 0x14008a1a8
cmp byte [rax + 0x12], 2
jne 0x14008a20f
test byte [rbx + 0x44], 0x40
jne 0x14008a204
mov rax, qword [r15]
test dword [rax + 0x60], 0x2000000
jne 0x14008a204
mov r9d, dword [rbx]
lea r8d, [rcx + 1]
mov rcx, rbx
mov rdx, rsi
call fcn.140089714
xor r11d, r11d
test rax, rax
jne 0x14008a202
cmp qword [rbp - 0x48], r11
jne 0x14008a265
cmp dword [rbx], r12d
je 0x14008a297
test byte [rbx + 0xac], 2
jne 0x14008a297
test dword [r13 + 4], 0x10000000
je 0x14008a297
mov ecx, edi
cmp dword [rsp + 0x60], r11d
je 0x14008a340
mov rdi, qword [rsi + 0x60]
mov r9d, dword [rdi + 4]
test r9d, r9d
jle 0x14008a340
mov r8d, dword [rdi + 8]
mov edx, 0xa
mov rcx, r14
mov dword [rsp + 0x20], r11d
call fcn.14004a230
mov r8d, dword [rsi + 0x44]
mov r9d, dword [rdi + 0xc]
cmp r8d, r9d
je 0x14008a254
xor eax, eax
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x73]
call fcn.14004a230
mov rdx, qword [rbp - 0x68]
movzx eax, word [rdi + 0x10]
mov word [rdx + 2], ax
jmp 0x14008a4bc
test dword [r13 + 4], 0x10000000
jne 0x14008a202
lea rax, [rsi + 0x3c]
test byte [rax], 0x22
jne 0x14008a202
test edi, edi
je 0x14008a297
sub rax, 0x68
sub edi, r12d
cmp qword [rax - 0x14], r11
jne 0x14008a28e
test byte [rax], 0x22
je 0x14008a278
mov ecx, dword [rsp + 0x44]
jmp 0x14008a204
mov edi, dword [r14 + 0x90]
xor r9d, r9d
add dword [r15 + 0x38], r12d
mov rcx, r14
mov r8d, dword [r15 + 0x38]
mov dword [rsi + 0x34], r8d
lea ebx, [rdi + 1]
lea edx, [r9 + 0xb]
mov dword [rsp + 0x20], ebx
call fcn.14004a230
mov eax, dword [rsi + 0x34]
lea r8, str.CO_ROUTINE___S
mov dword [rbp + 0x4c], eax
mov r9, rsi
xor eax, eax
mov dword [rsi + 0x30], ebx
mov edx, r12d
mov qword [rbp + 0x50], rax
mov rcx, r15
mov qword [rbp + 0x60], rax
mov dword [rbp + 0x58], eax
mov byte [rbp + 0x48], 0xd
call fcn.14004a5e8
mov rbx, qword [rbp - 0x68]
lea r8, [rbp + 0x48]
mov rdx, rbx
mov rcx, r15
call fcn.140089b04
movzx eax, word [rbx + 2]
mov rcx, qword [rsi + 0x20]
mov word [rcx + 0x3a], ax
mov rcx, r14
mov eax, dword [rbp + 0x54]
mov edx, dword [rsi + 0x34]
or dword [rsi + 0x40], 0x20
mov dword [rsi + 0x38], eax
call fcn.14004a75c
mov edx, edi
mov rcx, r14
call fcn.14004aa5c
xor ebx, ebx
mov byte [r15 + 0x1f], bl
mov dword [r15 + 0x28], ebx
mov rbx, qword [rbp - 0x60]
jmp 0x14008a4bc
mov r9d, ecx
xor r8d, r8d
mov rcx, rbx
mov rdx, rsi
call fcn.140089714
mov rdi, rax
xor eax, eax
test rdi, rdi
je 0x14008a3a7
mov r9d, dword [rdi + 0x30]
test r9d, r9d
je 0x14008a379
mov r8d, dword [rdi + 0x34]
lea edx, [rax + 0xa]
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.14004a230
xor eax, eax
mov r9d, dword [rdi + 0x44]
mov edx, 0x73
mov r8d, dword [rsi + 0x44]
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.14004a230
mov rax, qword [rdi + 0x28]
mov rdx, qword [rbp - 0x68]
movzx ecx, word [rax + 2]
mov word [rdx + 2], cx
jmp 0x14008a4bc
add dword [r15 + 0x38], r12d
xor r9d, r9d
mov eax, dword [r15 + 0x38]
xor r8d, r8d
mov rcx, r14
mov dword [rsp + 0x48], edi
mov dword [rsi + 0x34], eax
lea edx, [r9 + 9]
mov dword [rsp + 0x20], edi
call fcn.14004a230
or dword [rsi + 0x40], 0x10
mov dword [rsp + 0x70], eax
inc eax
mov dword [rsp + 0x60], eax
mov dword [rsi + 0x30], eax
mov eax, 8
test byte [rsi + 0x40], al
jne 0x14008a400
xor r9d, r9d
mov dword [rsp + 0x20], edi
xor r8d, r8d
lea edx, [rax + 7]
mov rcx, r14
call fcn.14004a230
mov dword [rsp + 0x48], eax
mov ecx, dword [rsi + 0x44]
lea r8, str.MATERIALIZE___S
mov dword [rbp + 0x4c], ecx
mov r9, rsi
mov rcx, r15
mov byte [rbp + 0x48], 0xc
mov edx, r12d
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x60], rdi
mov dword [rbp + 0x58], edi
call fcn.14004a5e8
mov rdi, qword [rbp - 0x68]
lea r8, [rbp + 0x48]
mov rdx, rdi
mov rcx, r15
call fcn.140089b04
movzx eax, word [rdi + 2]
xor r10d, r10d
mov rcx, qword [rsi + 0x20]
mov word [rcx + 0x3a], ax
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x14008a45e
mov edx, eax
mov rcx, r14
call fcn.14004aa5c
mov r9d, dword [rsp + 0x60]
mov edx, 0x43
mov r8d, dword [rsi + 0x34]
mov rcx, r14
mov dword [rsp + 0x20], r10d
call fcn.14004a230
mov edx, dword [rsp + 0x70]
mov rcx, r14
call fcn.14004aa5c
xor eax, eax
mov byte [r15 + 0x1f], al
mov dword [r15 + 0x28], eax
mov eax, dword [rsi + 0x40]
and eax, 0x108
cmp eax, 0x100
jne 0x14008a4bc
mov eax, dword [rsi + 0x30]
mov rcx, qword [rsi + 0x60]
mov dword [rcx + 4], eax
mov eax, dword [rsi + 0x34]
mov dword [rcx + 8], eax
mov eax, dword [rsi + 0x44]
mov dword [rcx + 0xc], eax
movzx eax, word [rdi + 2]
mov word [rcx + 0x10], ax
mov rdi, qword [rsp + 0x50]
xor eax, eax
cmp byte [rdi + 0x67], al
jne 0x140089bf8
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov rcx, r13
call fcn.14005bf68
mov edx, dword [rsp + 0x48]
sub dword [r15 + 0x13c], edx
mov rax, qword [rbp - 0x80]
xor r9d, r9d
mov ecx, dword [rsp + 0x44]
mov qword [r15 + 0x178], rax
mov rax, qword [rbp - 0x48]
add ecx, r12d
add rax, r12
mov dword [rsp + 0x44], ecx
mov qword [rbp - 0x48], rax
cmp ecx, dword [rbx]
jl 0x140089fc4
mov rax, qword [r13 + 0x30]
mov rsi, qword [r13 + 0x20]
mov qword [rsp + 0x60], rax
mov rax, qword [r13 + 0x38]
mov qword [rbp - 0x20], rax
mov rax, qword [r13 + 0x40]
mov qword [rbp - 0x48], rax
mov al, byte [r13 + 4]
and al, r12b
mov qword [rbp - 8], rsi
mov byte [rbp + 8], al
mov eax, dword [r13 + 4]
and al, 9
cmp al, r12b
jne 0x14008a58e
mov rcx, qword [rbp + 0x18]
or r8d, 0xffffffff
mov rdx, rsi
call fcn.140062418
xor ebx, ebx
test eax, eax
jne 0x14008a590
cmp qword [r13 + 0x70], rbx
jne 0x14008a590
and dword [r13 + 4], 0xfffffffe
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.14005cf7c
mov qword [rbp - 0x20], rax
mov qword [r13 + 0x38], rax
lea eax, [rbx + 8]
or dword [r13 + 4], eax
mov byte [rbp + 8], 2
jmp 0x14008a590
xor ebx, ebx
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x14008a5f8
mov r9d, dword [rsi]
xor r8d, r8d
mov rdx, rax
mov rcx, r15
call fcn.1400832f4
mov r8d, dword [r15 + 0x34]
mov rdi, rax
mov dword [rbp + 0x24], r8d
mov dword [rsp + 0x20], ebx
lea ecx, [r8 + 1]
mov dword [r15 + 0x34], ecx
mov rcx, qword [rbp + 0x18]
mov r9d, dword [rsi]
mov edx, dword [rcx]
mov rcx, r14
inc edx
add r9d, edx
mov edx, 0x76
call fcn.14004a230
mov r9d, 0xfffffff8
mov r8, rdi
mov edx, eax
mov rcx, r14
mov ebx, eax
call fcn.14004ad84
mov dword [rbp + 0x30], ebx
xor ebx, ebx
jmp 0x14008a5fc
or dword [rbp + 0x30], 0xffffffff
mov rax, qword [rbp - 0x28]
cmp byte [rax], 0xc
jne 0x14008a6af
mov r9d, dword [rsi]
mov edx, 0x76
mov r8d, dword [rax + 4]
mov rcx, r14
mov dword [rsp + 0x20], ebx
call fcn.14004a230
test dword [r13 + 4], 0x800
je 0x14008a6af
mov ecx, dword [rsi]
lea eax, [rcx - 1]
movsxd rdi, eax
test eax, eax
jle 0x14008a68e
mov r14, qword [rsp + 0x50]
mov rbx, rdi
shl rbx, 5
test byte [rbx + rsi + 0x1c], 0x40
jne 0x14008a684
mov rdx, qword [rbx + rsi + 8]
test rdx, rdx
je 0x14008a660
mov rcx, r14
call fcn.14005c9a8
mov rdx, qword [rbx + rsi + 0x10]
test rdx, rdx
je 0x14008a672
mov rcx, r14
call fcn.14002b19c
mov ecx, dword [rsi]
sub rdi, r12
dec ecx
sub rbx, 0x20
mov dword [rsi], ecx
test rdi, rdi
jg 0x14008a647
mov r13, qword [rbp - 0x18]
xor ebx, ebx
mov r14, qword [rbp - 0x30]
mov edx, ebx
test ecx, ecx
jle 0x14008a6af
lea rcx, [rsi + 8]
test byte [rcx + 0x14], 0x40
jne 0x14008a6a4
mov rax, qword [rcx]
mov byte [rax], 0x79
add edx, r12d
add rcx, 0x20
cmp edx, dword [rsi]
jl 0x14008a698
mov eax, dword [r15 + 0x44]
mov ecx, 0x4000
dec eax
mov dword [r15 + 0x44], eax
mov dword [rbp - 0x68], eax
test dword [r13 + 4], ecx
jne 0x14008a6ce
mov word [r13 + 2], 0x140
cmp qword [r13 + 0x60], rbx
je 0x14008a6e2
mov r8d, eax
mov rdx, r13
mov rcx, r15
call fcn.1400844e4
cmp dword [r13 + 8], ebx
jne 0x14008a718
cmp dword [rbp + 0x30], ebx
jl 0x14008a718
mov rax, qword [r14]
cmp byte [rax + 0x67], bl
je 0x14008a6fe
lea rax, [0x14014c2c0]
jmp 0x14008a711
movsxd rax, dword [rbp + 0x30]
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x88]
lea rax, [rax + rcx*8]
mov byte [rax], 0x77
or byte [rbp + 0x3c], r12b
test byte [r13 + 4], r12b
je 0x14008a794
mov eax, dword [r15 + 0x34]
xor r9d, r9d
mov dword [rbp + 0xc], eax
xor r8d, r8d
inc eax
mov rcx, r15
mov dword [r15 + 0x34], eax
mov rdx, qword [r13 + 0x20]
call fcn.1400832f4
mov r8d, dword [rbp + 0xc]
xor r9d, r9d
mov rcx, r14
mov dword [rsp + 0x20], ebx
mov rdi, rax
lea edx, [r9 + 0x76]
call fcn.14004a230
mov r9d, 0xfffffff8
mov r8, rdi
mov edx, eax
mov rcx, r14
mov ebx, eax
call fcn.14004ad84
mov dword [rbp + 0x10], ebx
xor ebx, ebx
movsxd rax, dword [r14 + 0x90]
test eax, eax
jle 0x14008a78e
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x88]
mov word [rax + rcx*8 - 0x16], 8
mov byte [rbp + 9], 3
jmp 0x14008a797
mov byte [rbp + 9], bl
mov rdi, qword [rbp - 0x20]
cmp dword [rbp - 0x70], ebx
jne 0x14008a9b0
test rdi, rdi
jne 0x14008a9b0
mov al, byte [rbp + 8]
mov ecx, 0x4000
mov rdi, qword [r13 + 0x70]
neg al
mov eax, 0x100
sbb bx, bx
and bx, ax
movzx eax, word [r13 + 4]
and ax, cx
or bx, ax
test rdi, rdi
je 0x14008a7e1
mov rdx, r13
mov rcx, r15
call fcn.1400a1874
movsx eax, word [r13 + 2]
mov rcx, r15
mov r9, qword [rbp + 0x18]
mov r8, qword [rsp + 0x60]
mov rdx, qword [rbp - 0x60]
mov dword [rsp + 0x38], eax
mov rax, qword [r13 + 0x20]
mov word [rsp + 0x30], bx
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.14009e89c
xor ebx, ebx
mov qword [rbp - 0x58], rax
mov rdx, rax
test rax, rax
je 0x140089bf8
movzx eax, word [rax + 0x48]
cmp ax, word [r13 + 2]
jge 0x14008a834
mov word [r13 + 2], ax
cmp byte [rbp + 8], bl
je 0x14008a849
movzx ecx, byte [rdx + 0x43]
movzx eax, byte [rbp + 9]
test cl, cl
cmovne eax, ecx
mov byte [rbp + 9], al
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x14008a89a
movsx eax, byte [rdx + 0x41]
test al, al
jns 0x14008a862
mov r8d, ebx
mov dword [rbp + 0x20], ebx
jmp 0x14008a868
mov r8d, eax
mov dword [rbp + 0x20], eax
test byte [rdx + 0x44], 4
je 0x14008a880
movzx eax, byte [rdx + 0x40]
imul rax, rax, 0x70
cmp qword [rax + rdx + 0x328], rbx
je 0x14008a885
mov eax, dword [rdx + 0x30]
jmp 0x14008a88c
mov eax, dword [rax + rdx + 0x300]
mov dword [rbp + 0x38], eax
cmp r8d, dword [rcx]
cmove rcx, rbx
mov qword [rbp + 0x18], rcx
mov eax, dword [rbp + 0x30]
test eax, eax
js 0x14008a8b4
test rcx, rcx
jne 0x14008a8b4
mov edx, eax
mov rcx, r14
call fcn.14004aca0
mov rdx, qword [rbp - 0x58]
mov rcx, r15
test rdi, rdi
je 0x14008a972
mov ebx, dword [r15 + 0x44]
mov r8, rdx
add dword [r15 + 0x38], r12d
dec ebx
mov edi, dword [r15 + 0x38]
mov rdx, r13
mov r9d, edi
mov dword [rsp + 0x20], ebx
lea esi, [rbx - 1]
lea r14d, [rsi - 1]
mov dword [r15 + 0x44], r14d
call fcn.1400a33f8
mov r12, qword [rbp - 0x30]
xor eax, eax
mov r9d, r14d
mov dword [rsp + 0x20], eax
xor r8d, r8d
mov rcx, r12
lea edx, [rax + 9]
call fcn.14004a230
mov edx, ebx
mov rcx, r12
call fcn.14004a848
mov rbx, qword [rbp - 0x28]
lea r9, [rbp + 0x18]
xor eax, eax
mov dword [rsp + 0x38], r14d
mov dword [rbp + 0x38], eax
or r8d, 0xffffffff
lea rax, [rbp + 8]
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rbx
mov rdx, r13
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.14008288c
mov edx, esi
mov rcx, r12
call fcn.14004a848
xor eax, eax
xor r9d, r9d
mov r8d, edi
mov dword [rsp + 0x20], eax
mov rcx, r12
lea edx, [rax + 0x43]
call fcn.14004a230
mov edx, r14d
mov rcx, r12
mov r14, r12
jmp 0x14008b7bb
mov eax, dword [rdx + 0x34]
lea r9, [rbp + 0x18]
mov rbx, qword [rbp - 0x28]
or r8d, 0xffffffff
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 0x30]
mov rdx, r13
mov dword [rsp + 0x30], eax
lea rax, [rbp + 8]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.14008288c
mov rcx, qword [rbp - 0x58]
call fcn.14009f6a8
jmp 0x14008b7c4
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x78], ebx
mov dword [rbp - 0x40], ebx
test rdi, rdi
je 0x14008aa57
mov rcx, qword [r13 + 0x20]
mov eax, dword [rcx]
test eax, eax
jle 0x14008a9e0
add rcx, 0x22
sub eax, r12d
mov word [rcx], bx
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x14008a9d2
mov eax, dword [rdi]
test eax, eax
jle 0x14008a9f8
lea rcx, [rdi + 0x22]
sub eax, r12d
mov word [rcx], bx
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x14008a9ea
mov eax, 0x42
cmp word [r13 + 2], ax
jle 0x14008aa09
mov word [r13 + 2], ax
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x14008aa5c
mov ecx, dword [rdi]
cmp ecx, dword [rax]
jne 0x14008aa5c
mov r8d, ebx
test ecx, ecx
jle 0x14008aa3d
mov rdx, rbx
mov rax, qword [rbp + 0x18]
lea rdx, [rdx + 0x20]
add r8d, r12d
mov cl, byte [rdx + rax - 8]
and cl, r12b
mov byte [rdi + rdx - 8], cl
cmp r8d, dword [rdi]
jl 0x14008aa22
mov rdx, qword [rbp + 0x18]
or r8d, 0xffffffff
mov rcx, rdi
call fcn.140062418
test eax, eax
jne 0x14008aa5c
mov dword [rbp - 0x40], r12d
jmp 0x14008aa5c
mov word [r13 + 2], bx
dec dword [r15 + 0x44]
mov edx, 0x38
mov eax, dword [r15 + 0x44]
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
mov dword [rbp - 0x74], eax
call fcn.14002b434
xor ecx, ecx
mov rsi, rax
test rax, rax
je 0x14008aa97
mov r8, rax
lea rdx, [0x1400897dc]
mov rcx, r15
call fcn.140080c6c
xor ecx, ecx
cmp byte [rbx + 0x67], cl
jne 0x140089bf8
mov eax, dword [r13 + 0x10]
xorps xmm0, xmm0
mov rbx, qword [rbp - 0x60]
xorps xmm1, xmm1
mov dword [rsi + 0x34], eax
mov qword [rbp + 0x78], r15
mov qword [rbp + 0x80], rbx
mov qword [rbp + 0x88], rsi
movdqu xmmword [rbp + 0x90], xmm0
movdqu xmmword [rbp + 0xa0], xmm1
test rdi, rdi
je 0x14008aadc
mov eax, dword [rdi]
jmp 0x14008aade
mov eax, ecx
mov rdx, qword [rbp - 8]
lea rcx, [rbp + 0x78]
mov word [rsi + 2], ax
mov qword [rsi + 0x10], rdi
call fcn.140063188
mov rdx, qword [rbp + 0x18]
lea rcx, [rbp + 0x78]
call fcn.140063188
mov rcx, qword [rbp - 0x48]
xor r8d, r8d
test rcx, rcx
je 0x14008ab5e
test rdi, rdi
je 0x14008ab4f
mov rdx, qword [r13 + 0x40]
lea rax, [0x1400895ec]
mov qword [rbp + 0x68], r8
xorps xmm0, xmm0
mov qword [rbp + 0x48], r15
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x70], r13
movdqu xmmword [rbp + 0x58], xmm0
test rdx, rdx
je 0x14008ab46
lea rcx, [rbp + 0x48]
call fcn.140058640
mov rcx, qword [rbp - 0x48]
mov rax, qword [r13 + 0x30]
mov qword [rsp + 0x60], rax
mov rdx, rcx
lea rcx, [rbp + 0x78]
call fcn.140063120
xor r8d, r8d
mov eax, dword [rsi + 0x20]
mov dword [rsi + 0x24], eax
cmp qword [r13 + 0x38], r8
jne 0x14008ac3e
cmp qword [r13 + 0x40], r8
jne 0x14008ac3e
cmp dword [rsi + 0x30], r12d
jne 0x14008ac3e
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax]
mov r11, qword [rcx + 0x20]
test r11, r11
je 0x14008ac3e
cmp dword [r11], r12d
jne 0x14008ac3e
test dword [rcx + 4], 0x1000000
jne 0x14008ac3e
mov rax, qword [rsp + 0x50]
test dword [rax + 0x60], 0x10000
jne 0x14008ac3e
mov rax, qword [rcx + 8]
lea rdx, [0x140128f4c]
mov rcx, rax
mov qword [rbp - 0x80], rax
call fcn.14002e3dc
test eax, eax
jne 0x14008abf3
mov rcx, qword [r11 + 8]
call fcn.14005df84
neg eax
mov byte [rsp + 0x40], r12b
sbb al, al
and al, 2
mov byte [rsp + 0x44], al
jmp 0x14008ac13
mov rcx, qword [rbp - 0x80]
lea rdx, [0x140128f50]
call fcn.14002e3dc
xor ecx, ecx
test eax, eax
jne 0x14008ac38
mov byte [rsp + 0x44], r12b
mov byte [rsp + 0x40], 2
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov rdx, r11
call fcn.14005cf7c
mov qword [rbp], rax
mov rcx, rax
test rax, rax
je 0x14008ac43
mov al, byte [rsp + 0x44]
mov byte [rcx + 0x18], al
jmp 0x14008ac43
mov byte [rsp + 0x40], cl
jmp 0x14008ac43
mov byte [rsp + 0x40], r8b
lea rdx, [rbp + 0x78]
mov rcx, rsi
call fcn.140088bec
mov r10, qword [rsp + 0x50]
xor r11d, r11d
cmp byte [r10 + 0x67], r11b
jne 0x14008b821
test rdi, rdi
je 0x14008b4de
mov qword [rbp - 0x10], r11
mov word [rsp + 0x44], r11w
cmp dword [rsi + 0x30], r12d
jne 0x14008acf7
mov rax, qword [rsi + 0x28]
cmp dword [rax + 0x10], r11d
jl 0x14008acf7
mov rax, qword [rax]
test rax, rax
je 0x14008acf7
test dword [rax + 4], 0x1000
jne 0x14008acf7
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x14008acf7
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x14008acc0
xor r9d, r9d
xor r8d, r8d
mov rcx, r10
call fcn.14005cb78
mov r10, qword [rsp + 0x50]
mov qword [rbp - 0x58], rax
jmp 0x14008acc4
mov qword [rbp - 0x58], r11
xor r8d, r8d
mov rdx, rdi
mov rcx, r10
call fcn.14005cf7c
mov r8, qword [rbp - 0x58]
mov rdx, rax
mov rcx, r15
call fcn.14005d61c
mov rcx, rax
mov qword [rbp - 0x10], rax
neg rcx
sbb ax, ax
and ax, 0x500
mov word [rsp + 0x44], ax
mov ecx, dword [r15 + 0x34]
xor r8d, r8d
mov dword [rsi + 4], ecx
mov rdx, rdi
add dword [r15 + 0x34], r12d
mov rcx, r15
mov r9d, dword [rsi + 0x20]
call fcn.1400832f4
movzx r9d, word [rsi + 2]
mov rcx, r14
mov r8d, dword [rsi + 4]
mov qword [rbp - 0x80], rax
xor eax, eax
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x77]
call fcn.14004a230
mov r8, qword [rbp - 0x80]
mov r9d, 0xfffffff8
mov edx, eax
mov dword [rbp - 0x60], eax
mov rcx, r14
call fcn.14004ad84
mov eax, dword [r15 + 0x38]
xor r8d, r8d
inc eax
mov dword [rsp + 0x48], eax
lea edx, [rax + 1]
mov eax, dword [r15 + 0x44]
lea ecx, [rdx + 2]
mov dword [rsp + 0x68], edx
mov dword [r15 + 0x38], ecx
dec eax
mov dword [rbp - 0x38], eax
mov r9d, edx
dec eax
mov dword [rbp - 0x50], ecx
mov dword [r15 + 0x44], eax
add ecx, dword [rdi]
mov dword [r15 + 0x38], ecx
mov dword [rbp - 0x70], eax
lea eax, [rcx + 1]
add ecx, dword [rdi]
mov dword [rbp - 0x3c], eax
xor eax, eax
mov dword [r15 + 0x38], ecx
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x47]
call fcn.14004a230
mov ecx, dword [rdi]
xor r8d, r8d
mov edx, dword [rbp - 0x50]
dec ecx
inc edx
add ecx, edx
mov r9d, edx
mov dword [rsp + 0x20], ecx
lea edx, [r8 + 0x4b]
mov rcx, r14
call fcn.14004a230
mov r9d, dword [rbp - 0x70]
xor eax, eax
mov r8d, dword [rbp - 0x50]
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xa]
call fcn.14004a230
mov eax, dword [rbp - 0x40]
neg eax
mov eax, 0x80
sbb cx, cx
and cx, 0x200
cmp byte [rbp + 8], 2
lea edx, [rax - 0x40]
cmove dx, ax
or cx, dx
or cx, word [rsp + 0x44]
xor eax, eax
mov dword [rsp + 0x38], eax
mov word [rsp + 0x30], cx
mov qword [rsp + 0x28], r13
mov rax, qword [rbp - 0x10]
mov r9, rdi
mov r8, qword [rsp + 0x60]
mov rdx, rbx
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.14009e89c
xor r11d, r11d
mov qword [rbp - 0x58], rax
mov rbx, rax
test rax, rax
jne 0x14008ae58
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x14008b81c
mov rcx, qword [rsp + 0x50]
mov rdx, rax
call fcn.14005d8c0
jmp 0x14008b81c
cmp qword [r15 + 0x60], r11
je 0x14008aeb0
mov r8d, dword [rsi + 0x24]
mov dword [rsi + 0x20], r8d
cmp word [rsi + 2], r11w
jbe 0x14008aea1
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax]
sub ecx, r12d
test r8d, r8d
jle 0x14008ae99
mov rdx, qword [rsi + 0x18]
mov r9d, r8d
add rdx, 0x16
movsx eax, word [rdx]
lea rdx, [rdx + 0x18]
cmp eax, ecx
cmovle eax, ecx
mov ecx, eax
sub r9, r12
jne 0x14008ae86
add cx, r12w
mov word [rsi + 2], cx
lea rdx, [rbp + 0x78]
mov rcx, rsi
call fcn.140088bec
xor r11d, r11d
mov eax, dword [r15 + 0x38]
mov ecx, r11d
add eax, r12d
mov dword [rsi + 0xc], eax
mov eax, dword [rsi + 0x30]
add eax, dword [rsi + 0x20]
add dword [r15 + 0x38], eax
movzx eax, byte [rbx + 0x43]
cmp byte [rbx + 0x41], r11b
mov dword [rsp + 0x60], eax
movsx eax, byte [rbx + 0x41]
cmovge ecx, eax
cmp ecx, dword [rdi]
jne 0x14008aee7
mov dword [rbp - 0x78], r11d
jmp 0x14008b0e5
cmp byte [rbp + 8], r11b
je 0x14008aefa
lea r9, str.DISTINCT
test byte [r13 + 4], r12b
je 0x14008af01
lea r9, str.GROUP_BY
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
mov rcx, r15
call fcn.14004a5e8
mov eax, dword [rdi]
xor r10d, r10d
mov ebx, eax
mov dword [rbp - 0x78], r12d
mov r8d, eax
mov dword [rsp + 0x70], eax
cmp dword [rsi + 0x20], r10d
jle 0x14008af58
mov rdx, qword [rsi + 0x18]
mov r9d, dword [rsi + 0x20]
add rdx, 0x16
movsx ecx, word [rdx]
lea eax, [rbx + 1]
cmp ecx, r8d
lea rdx, [rdx + 0x18]
cmovl eax, ebx
mov ebx, eax
lea eax, [r8 + 1]
cmovl eax, r8d
mov r8d, eax
sub r9, r12
jne 0x14008af36
mov edx, ebx
mov rcx, r15
call fcn.1400631dc
xor r9d, r9d
mov dword [rsp + 0x78], eax
mov r8d, eax
mov byte [rsp + 0x20], r10b
mov rcx, r15
mov rdx, rdi
call fcn.140061650
xor edx, edx
mov byte [rsi], r12b
mov ecx, edx
mov dword [rsp + 0x58], edx
cmp dword [rsi + 0x20], edx
jle 0x14008afdc
mov r14d, dword [rsp + 0x70]
mov edi, edx
mov r13d, dword [rsp + 0x78]
mov rdx, qword [rsi + 0x18]
movsx eax, word [rdi + rdx + 0x16]
cmp eax, r14d
jl 0x14008afbe
mov rdx, qword [rdi + rdx + 8]
lea r8d, [r14 + r13]
mov rcx, r15
call fcn.140061510
mov ecx, dword [rsp + 0x58]
add r14d, r12d
add ecx, r12d
add rdi, 0x18
mov dword [rsp + 0x58], ecx
cmp ecx, dword [rsi + 0x20]
jl 0x14008af98
mov r13, qword [rbp - 0x18]
xor edx, edx
mov r14, qword [rbp - 0x30]
mov rdi, qword [rbp - 0x20]
mov byte [rsi], dl
mov al, byte [r15 + 0x1f]
test al, al
jne 0x14008aff0
add dword [r15 + 0x38], r12d
mov eax, dword [r15 + 0x38]
jmp 0x14008b002
sub al, r12b
movzx eax, al
mov byte [r15 + 0x1f], al
mov eax, dword [r15 + rax*4 + 0xe8]
mov r8d, dword [rsp + 0x78]
mov r9d, ebx
mov edx, 0x61
mov dword [rsp + 0x58], eax
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.14004a230
mov r9d, dword [rsp + 0x58]
xor eax, eax
mov r8d, dword [rsi + 4]
mov edx, 0x8b
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.14004a230
mov ecx, dword [rsp + 0x58]
test ecx, ecx
je 0x14008b05f
mov eax, 8
cmp byte [r15 + 0x1f], al
jae 0x14008b05f
movzx eax, byte [r15 + 0x1f]
mov dword [r15 + rax*4 + 0xe8], ecx
add byte [r15 + 0x1f], r12b
mov edx, dword [rsp + 0x78]
mov r8d, ebx
mov rcx, r15
call fcn.140063230
mov rcx, qword [rbp - 0x58]
call fcn.14009f6a8
mov ecx, dword [r15 + 0x34]
mov dword [rsi + 8], ecx
add dword [r15 + 0x34], r12d
mov al, byte [r15 + 0x1f]
mov dword [rsp + 0x58], ecx
test al, al
jne 0x14008b098
add dword [r15 + 0x38], r12d
mov eax, dword [r15 + 0x38]
jmp 0x14008b0aa
sub al, r12b
movzx eax, al
mov byte [r15 + 0x1f], al
mov eax, dword [r15 + rax*4 + 0xe8]
mov r8d, ecx
mov dword [rsp + 0x78], eax
mov rcx, r14
mov dword [rsp + 0x20], ebx
mov r9d, eax
mov edx, 0x79
call fcn.14004a230
mov r9d, dword [rbp - 0x74]
xor eax, eax
mov r8d, dword [rsi + 4]
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x22]
call fcn.14004a230
xor r11d, r11d
mov byte [rsi + 1], r12b
cmp qword [r15 + 0x60], r11
je 0x14008b142
lea rax, [0x140088c88]
xorps xmm0, xmm0
mov ecx, r11d
movups xmmword [rbp + 0x48], xmm0
mov qword [rbp + 0x50], rax
movups xmmword [rbp + 0x58], xmm0
mov dword [rsp + 0x70], ecx
movups xmmword [rbp + 0x68], xmm0
cmp dword [rsi + 0x30], r11d
jle 0x14008b142
mov rbx, r11
mov rax, qword [rsi + 0x28]
mov rdx, qword [rbx + rax]
test rdx, rdx
je 0x14008b132
lea rcx, [rbp + 0x48]
call fcn.140058640
mov ecx, dword [rsp + 0x70]
xor r11d, r11d
add ecx, r12d
add rbx, 0x20
mov dword [rsp + 0x70], ecx
cmp ecx, dword [rsi + 0x30]
jl 0x14008b115
cmp dword [rbp - 0x40], r11d
je 0x14008b179
mov rax, qword [rsp + 0x50]
test byte [rax + 0x60], 4
jne 0x14008b179
cmp dword [rbp - 0x78], r11d
jne 0x14008b167
mov rax, qword [rbp - 0x58]
mov ecx, 8
test byte [rax + 0x44], cl
je 0x14008b179
mov edx, dword [rbp + 0x30]
mov rcx, r14
mov qword [rbp + 0x18], r11
call fcn.14004aca0
xor r11d, r11d
mov eax, dword [r14 + 0x90]
mov dword [rsp + 0x70], eax
mov eax, dword [rbp - 0x78]
test eax, eax
je 0x14008b1af
mov eax, dword [rsp + 0x58]
mov edx, 0x85
mov r9d, dword [rsp + 0x78]
mov rcx, r14
mov r8d, dword [rsi + 4]
mov dword [rsp + 0x20], eax
call fcn.14004a230
mov eax, dword [rbp - 0x78]
xor r11d, r11d
mov ebx, r11d
cmp dword [rdi], r11d
jle 0x14008b203
lea r13, [rdi + 8]
mov r8d, dword [rbp - 0x3c]
add r8d, ebx
test eax, eax
je 0x14008b1e2
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, dword [rsp + 0x58]
mov edx, 0x5e
mov rcx, r14
call fcn.14004a230
jmp 0x14008b1f1
mov byte [rsi], r12b
mov rcx, r15
mov rdx, qword [r13]
call fcn.140061510
mov eax, dword [rbp - 0x78]
add ebx, r12d
add r13, 0x20
cmp ebx, dword [rdi]
jl 0x14008b1bb
mov r13, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x80]
test rbx, rbx
je 0x14008b20f
add dword [rbx], r12d
mov r8d, dword [rbp - 0x50]
mov edx, 0x5a
mov eax, dword [rdi]
inc r8d
mov r9d, dword [rbp - 0x3c]
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.14004a230
mov r9d, 0xfffffff8
mov r8, rbx
mov edx, eax
mov rcx, r14
call fcn.14004ad84
mov ebx, dword [r14 + 0x90]
xor r9d, r9d
mov rcx, r14
lea r8d, [rbx + 1]
lea edx, [r9 + 0xe]
mov dword [rsp + 0x20], r8d
call fcn.14004a230
mov r9d, dword [rbp - 0x50]
mov edx, 0x4f
mov eax, dword [rdi]
inc r9d
mov r8d, dword [rbp - 0x3c]
mov rcx, qword [r15 + 0x10]
mov dword [rsp + 0x20], eax
call fcn.14004a230
mov edi, dword [rsp + 0x68]
xor eax, eax
mov r9d, dword [rbp - 0x38]
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xa]
lea r8d, [rdi + 1]
call fcn.14004a230
mov r9d, dword [rbp - 0x74]
xor eax, eax
mov r8d, edi
mov dword [rsp + 0x20], eax
mov rcx, r14
lea edx, [rax + 0x3b]
call fcn.14004a230
mov r9d, dword [rbp - 0x70]
lea r8d, [rdi + 2]
xor eax, eax
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xa]
call fcn.14004a230
mov edx, ebx
mov rcx, r14
call fcn.14004aa5c
mov r9d, dword [rsp + 0x60]
mov r8, rsi
mov edx, dword [rsp + 0x48]
mov rcx, r15
call fcn.14008917c
mov r9d, dword [rsp + 0x48]
xor eax, eax
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, r14
lea ebx, [rax + 0x47]
mov edx, ebx
call fcn.14004a230
xor eax, eax
cmp dword [rbp - 0x78], eax
je 0x14008b326
mov r9d, dword [rsp + 0x70]
lea edx, [rbx - 0x22]
mov r8d, dword [rsi + 4]
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.14004a230
jmp 0x14008b33a
mov rcx, qword [rbp - 0x58]
call fcn.14009f6a8
mov edx, dword [rbp - 0x60]
mov rcx, r14
call fcn.14004aca0
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x14008b350
mov rcx, qword [rsp + 0x50]
mov rdx, rax
call fcn.14005d8c0
mov r9d, dword [rbp - 0x38]
lea r8d, [rdi + 1]
xor eax, eax
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xa]
call fcn.14004a230
mov r9d, dword [rbp - 0x74]
xor eax, eax
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, r14
lea edx, [rax + 9]
call fcn.14004a230
mov r9d, dword [rsp + 0x68]
xor eax, eax
mov edi, dword [r14 + 0x90]
mov r8d, r12d
mov edx, ebx
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.14004a230
mov r12d, dword [rsp + 0x68]
xor eax, eax
inc r12d
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, r12d
mov rcx, r14
lea edx, [rax + 0x43]
call fcn.14004a230
mov edx, dword [rbp - 0x38]
mov rcx, r14
call fcn.14004a848
mov ebx, dword [r14 + 0x90]
xor eax, eax
mov r8d, dword [rsp + 0x48]
mov rcx, r14
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x3b]
lea r9d, [rbx + 2]
call fcn.14004a230
xor eax, eax
xor r9d, r9d
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, r14
lea edx, [rax + 0x43]
call fcn.14004a230
mov rdx, rsi
mov rcx, r15
call fcn.140088ebc
mov rdx, qword [rbp - 0x48]
inc ebx
mov r8d, ebx
mov r9d, 0x10
mov rcx, r15
call fcn.140061c9c
mov dword [rsp + 0x38], edi
lea rax, [rbp + 8]
mov dword [rsp + 0x30], ebx
lea r9, [rbp + 0x18]
mov rbx, qword [rbp - 0x28]
or r8d, 0xffffffff
mov qword [rsp + 0x28], rbx
mov rdx, r13
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.14008288c
xor edi, edi
xor r9d, r9d
mov r8d, r12d
mov dword [rsp + 0x20], edi
mov rcx, r14
lea edx, [rdi + 0x43]
call fcn.14004a230
mov edx, dword [rbp - 0x70]
mov rcx, r14
call fcn.14004a848
mov rdx, rsi
mov rcx, r15
call fcn.140088ce4
mov r9d, dword [rsp + 0x48]
lea edx, [rdi + 0x47]
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov rcx, r14
call fcn.14004a230
xor r9d, r9d
mov dword [rsp + 0x20], edi
lea r8d, [r12 + 1]
mov rcx, r14
lea edx, [rdi + 0x43]
call fcn.14004a230
cmp word [rsp + 0x44], di
je 0x14008b7b5
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x14008b7b5
mov r8, qword [rsi + 0x28]
mov edx, eax
mov rcx, r15
mov r9d, dword [r8 + 0x14]
mov r8d, dword [r8 + 0x10]
call fcn.1400827c8
jmp 0x14008b7b5
cmp qword [r13 + 0x30], r11
jne 0x14008b83e
mov r8, qword [r13 + 0x20]
cmp dword [r8], r12d
jne 0x14008b83e
mov rdx, qword [r13 + 0x28]
cmp dword [rdx], r12d
jne 0x14008b83e
cmp qword [rdx + 0x30], r11
jne 0x14008b83e
cmp dword [rsi + 0x30], r12d
jne 0x14008b83e
cmp qword [r13 + 0x40], r11
jne 0x14008b83e
mov rdx, qword [rdx + 0x28]
mov qword [rbp - 0x58], rdx
cmp byte [rdx + 0x3f], r11b
jne 0x14008b83e
mov r8, qword [r8 + 8]
cmp byte [r8], 0xa8
jne 0x14008b83e
cmp qword [r8 + 0x38], rsi
jne 0x14008b83e
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov eax, 0x100
test dword [rcx + 4], eax
je 0x14008b83e
test dword [r8 + 4], 0x1000004
jne 0x14008b83e
test rdx, rdx
je 0x14008b83e
mov r9, qword [rdx + 0x60]
mov r8d, 0xffff8000
mov dword [rsp + 0x68], r8d
mov rdi, rdx
test r9, r9
je 0x14008b5b7
mov rax, qword [r15]
mov r8d, r11d
mov dword [rsp + 0x68], r11d
mov rcx, qword [rax + 0x20]
add rcx, 0x18
cmp qword [rcx], r9
je 0x14008b5b7
add r8d, r12d
lea rcx, [rcx + 0x20]
cmp qword [rcx], r9
jne 0x14008b5a6
mov dword [rsp + 0x68], r8d
mov eax, dword [r15 + 0x34]
mov edx, r8d
mov dword [rsp + 0x70], eax
mov rcx, r15
inc eax
mov qword [rbp - 0x80], r11
mov dword [r15 + 0x34], eax
mov rbx, r11
mov eax, dword [rdi + 0x28]
mov dword [rsp + 0x60], eax
call fcn.14006f614
mov rax, qword [rdi]
xor r9d, r9d
mov r8d, dword [rdi + 0x28]
mov rcx, r15
mov edx, dword [rsp + 0x68]
mov qword [rsp + 0x20], rax
call fcn.140068b00
test byte [rdi + 0x30], 0x80
je 0x14008b61e
lea rcx, [rdi + 0x10]
xor edx, edx
mov rbx, qword [rcx]
jmp 0x14008b617
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x14008b628
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x14008b60a
jmp 0x14008b628
mov rcx, qword [rbp - 0x58]
add rcx, 0x10
xor edx, edx
mov rax, qword [r13 + 0x28]
test byte [rax + 0x48], r12b
jne 0x14008b664
mov rax, qword [rcx]
jmp 0x14008b65f
test byte [rax + 0x64], 4
jne 0x14008b65b
movzx ecx, word [rax + 0x5c]
cmp cx, word [rdi + 0x3c]
jge 0x14008b65b
cmp qword [rax + 0x48], rdx
jne 0x14008b65b
test rbx, rbx
je 0x14008b658
cmp cx, word [rbx + 0x5c]
jge 0x14008b65b
mov rbx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14008b637
test rbx, rbx
je 0x14008b67f
mov eax, dword [rbx + 0x58]
mov rdx, rbx
mov rcx, r15
mov dword [rsp + 0x60], eax
call fcn.14006fd54
mov qword [rbp - 0x80], rax
mov eax, dword [rsp + 0x68]
mov edx, 0x70
mov r9d, dword [rsp + 0x60]
mov rcx, r14
mov r8d, dword [rsp + 0x70]
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
call fcn.14004a2ac
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x14008b6c0
mov r9d, 0xfffffff8
mov r8, rax
or edx, 0xffffffff
mov rcx, r14
call fcn.14004ad84
mov eax, dword [r15 + 0x38]
mov rcx, r14
mov r8d, dword [rsp + 0x70]
add eax, r12d
mov dword [rsi + 0xc], eax
mov eax, dword [rsi + 0x30]
add eax, dword [rsi + 0x20]
add dword [r15 + 0x38], eax
xor eax, eax
mov r9d, dword [rsi + 0xc]
add r9d, dword [rsi + 0x20]
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x62]
call fcn.14004a230
mov r8d, dword [rsp + 0x70]
xor eax, eax
xor r9d, r9d
mov dword [rsp + 0x20], eax
mov rcx, r14
lea edx, [rax + 0x7a]
call fcn.14004a230
cmp byte [r15 + 0x133], 2
jne 0x14008b76e
xor r8d, r8d
lea rcx, [0x140120e5d]
test rbx, rbx
je 0x14008b73c
mov eax, 0x80
test byte [rdi + 0x30], al
je 0x14008b737
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x14008b73c
mov rax, qword [rbx]
jmp 0x14008b742
mov r12d, r8d
mov rax, rcx
mov r9, qword [rdi]
lea rdx, str._USING_COVERING_INDEX
test r12d, r12d
mov qword [rsp + 0x28], rax
lea r8, str.SCAN__s_s_s
cmovne rcx, rdx
xor edx, edx
mov qword [rsp + 0x20], rcx
mov rcx, r15
call fcn.14004a5e8
xor edi, edi
mov r8d, dword [rbp - 0x74]
mov r9d, 0x10
mov rdx, qword [rbp - 0x48]
mov rcx, r15
mov qword [rbp + 0x18], rdi
call fcn.140061c9c
mov eax, dword [rbp - 0x74]
xor r9d, r9d
mov rbx, qword [rbp - 0x28]
or r8d, 0xffffffff
mov dword [rsp + 0x38], eax
mov rdx, r13
mov dword [rsp + 0x30], eax
mov rcx, r15
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
call fcn.14008288c
mov edx, dword [rbp - 0x74]
mov rcx, r14
call fcn.14004a848
mov rsi, qword [rbp - 8]
cmp byte [rbp + 9], 3
jne 0x14008b7e2
lea r9, str.DISTINCT
xor edx, edx
lea r8, str.USE_TEMP_B_TREE_FOR__s
mov rcx, r15
call fcn.14004a5e8
xor eax, eax
cmp qword [rbp + 0x18], rax
je 0x14008b801
mov r9d, dword [rsi]
lea r8, [rbp + 0x18]
mov rdx, r13
mov qword [rsp + 0x20], rbx
mov rcx, r15
call fcn.1400833e0
mov edx, dword [rbp - 0x68]
mov rcx, r14
call fcn.14004a848
xor r11d, r11d
cmp dword [r15 + 0x30], r11d
mov eax, r11d
setg al
mov r12d, eax
mov r10, qword [rsp + 0x50]
mov rax, qword [rbp]
test rax, rax
je 0x140089bf8
mov rdx, rax
mov rcx, r10
call fcn.14005d8c0
jmp 0x140089bf8
mov edi, r11d
mov ecx, dword [rsi + 0x30]
mov qword [rbp - 0x80], r11
mov word [rsp + 0x44], r11w
cmp dword [rsi + 0x24], r11d
je 0x14008b8ac
mov r8d, r11d
test ecx, ecx
jle 0x14008b881
mov rdx, qword [rsi + 0x28]
mov rax, qword [rdx]
test dword [rax + 4], 0x1000000
jne 0x14008b875
mov rax, qword [rdx + 8]
test byte [rax + 4], 0x20
jne 0x14008b881
add r8d, r12d
add rdx, 0x20
cmp r8d, ecx
jl 0x14008b85f
cmp r8d, ecx
jne 0x14008b8a8
add dword [r15 + 0x38], r12d
xor r8d, r8d
mov edi, dword [r15 + 0x38]
mov rcx, r14
mov r9d, edi
mov dword [rsp + 0x20], r11d
lea edx, [r8 + 0x47]
call fcn.14004a230
mov ecx, dword [rsi + 0x30]
mov edx, ecx
jmp 0x14008b8d7
mov edx, ecx
cmp ecx, r12d
jne 0x14008b8d7
mov rax, qword [rsi + 0x28]
cmp dword [rax + 0x10], r11d
jl 0x14008b8d7
mov rax, qword [rax]
mov rax, qword [rax + 0x20]
mov qword [rbp - 0x80], rax
neg rax
sbb ax, ax
and ax, 0x500
mov word [rsp + 0x44], ax
mov eax, dword [r15 + 0x38]
mov ecx, dword [rsi + 0x20]
add eax, r12d
add ecx, edx
mov dword [rsi + 0xc], eax
add dword [r15 + 0x38], ecx
mov rdx, rsi
mov rcx, r15
call fcn.140088ce4
movzx eax, byte [rsp + 0x40]
xor edx, edx
or ax, word [rsp + 0x44]
mov rcx, r15
mov r9, qword [rbp]
mov r8, qword [rsp + 0x60]
mov dword [rsp + 0x38], edx
mov rdx, rbx
mov word [rsp + 0x30], ax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.14009e89c
mov rbx, rax
test rax, rax
je 0x14008b81c
movzx eax, byte [rax + 0x43]
mov r8, rsi
mov r9d, eax
mov dword [rbp - 0x60], eax
mov edx, edi
mov rcx, r15
call fcn.14008917c
mov edx, dword [rbp - 0x60]
xor eax, eax
test edx, edx
je 0x14008b973
mov r8, qword [rsi + 0x28]
test r8, r8
je 0x14008b973
mov r9d, dword [r8 + 0x14]
mov rcx, r15
mov r8d, dword [r8 + 0x10]
call fcn.1400827c8
xor eax, eax
test edi, edi
je 0x14008b98e
mov r9d, edi
mov dword [rsp + 0x20], eax
mov r8d, r12d
mov edx, 0x47
mov rcx, r14
call fcn.14004a230
xor edi, edi
cmp byte [rsp + 0x40], dil
je 0x14008b9e0
test byte [rbx + 0x44], 4
je 0x14008b9e0
cmp byte [rbx + 0x41], dil
je 0x14008b9e0
movzx ecx, byte [rbx + 0x40]
sub rcx, r12
js 0x14008b9c9
imul r9, rcx, 0x70
add r9, rbx
mov rax, qword [r9 + 0x3c0]
test byte [rax + 0x38], 4
jne 0x14008b9f8
sub r9, 0x70
sub rcx, r12
jns 0x14008b9b3
mov r9d, dword [rbx + 0x34]
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov rcx, r14
lea edx, [r8 + 9]
call fcn.14004a230
mov rcx, rbx
call fcn.14009f6a8
mov rdx, rsi
mov rcx, r15
call fcn.140088ebc
jmp 0x14008b770
mov r9d, dword [r9 + 0x370]
jmp 0x14008b9cd