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

Disassembly:
mov qword [rsp + 0x18], r8
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 - 0x78]
sub rsp, 0x178
mov rbx, qword [rcx]
xor r14d, r14d
mov eax, r14d
mov qword [rsp + 0x48], rbx
mov r12d, 1
mov qword [rbp], rax
mov qword [rbp - 0x70], rax
mov rdi, r8
mov r13, rdx
mov dword [rsp + 0x50], r12d
mov r15, rcx
call fcn.1401660bc
mov qword [rbp - 0x60], rax
mov rsi, rax
test r13, r13
je 0x140173476
cmp byte [rbx + 0x61], r14b
jne 0x140173476
cmp dword [r15 + 0x30], r14d
jne 0x140173476
xor r9d, r9d
mov qword [rsp + 0x20], r14
xor r8d, r8d
lea edx, [r12 + 0x14]
mov rcx, r15
call fcn.14014aff0
test eax, eax
jne 0x140173476
lea eax, [r12 + 7]
cmp byte [rdi], al
ja 0x140171c53
mov rdx, qword [r13 + 0x48]
test rdx, rdx
je 0x140171c44
mov rcx, rbx
call fcn.14010e2d8
and dword [r13 + 4], 0xfffffffe
bts dword [r13 + 4], 0x16
mov qword [r13 + 0x48], r14
xor r8d, r8d
mov rdx, r13
mov rcx, r15
call fcn.140173a04
cmp dword [r15 + 0x30], r14d
jne 0x140171e8e
cmp byte [rbx + 0x61], r14b
jne 0x140171e8e
test dword [r13 + 4], 0x800000
je 0x140171ce3
mov rbx, qword [r13 + 0x28]
mov r14d, r12d
cmp dword [rbx], r12d
jle 0x140171cde
mov rax, qword [rbx + 0x28]
mov edi, 0x70
cmp rax, qword [rbx + rdi + 0x28]
jne 0x140171ccb
mov r11, qword [rbx + 0x20]
mov rdx, qword [rbx + rdi + 0x20]
test r11, r11
jne 0x140171cb0
neg rdx
sbb ecx, ecx
jmp 0x140171cc3
test rdx, rdx
je 0x140171ccb
mov rcx, r11
call fcn.140174cfc
mov ecx, eax
mov rax, qword [rbx + 0x28]
test ecx, ecx
je 0x140171e74
add r14d, r12d
add rdi, 0x70
cmp r14d, dword [rbx]
jl 0x140171c94
mov rdi, qword [rbp + 0xd0]
mov rbx, qword [rsp + 0x48]
cmp byte [rdi], 9
jne 0x140171cf3
mov rdx, r13
mov rcx, r15
call fcn.1401300ac
mov rdx, r13
mov rcx, r15
call fcn.1401896e0
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x140171e8e
mov eax, dword [r13 + 4]
lea rcx, [rbp - 0x40]
mov r14, qword [r13 + 0x28]
xor edx, edx
shr eax, 3
and eax, r12d
mov qword [rbp - 0x58], r14
mov dword [rsp + 0x5c], eax
lea r8d, [rdx + 0x30]
call sub.VCRUNTIME140.dll_memset
mov rax, qword [r13 + 0x48]
xor r9d, r9d
mov edi, r9d
mov qword [rbp - 0x40], rax
cmp qword [r13 + 0x50], r9
jne 0x140171ebe
mov eax, r9d
lea r10d, [r9 + 8]
mov qword [rsp + 0x60], rax
cmp edi, dword [r14]
jge 0x140171f03
imul rbx, rax, 0x70
mov rax, qword [rbx + r14 + 0x30]
mov rdx, qword [rbx + r14 + 0x28]
mov qword [rsp + 0x70], rax
mov qword [rbp + 0xd8], rdx
test byte [rbx + r14 + 0x44], r10b
je 0x140171dc3
mov edx, dword [rbx + r14 + 0x4c]
mov rcx, qword [r13 + 0x30]
call fcn.140157a78
xor r9d, r9d
test eax, eax
je 0x140171db6
mov rcx, qword [rsp + 0x48]
mov eax, 0x2000
test word [rcx + 0x5c], ax
jne 0x140171db6
and byte [rbx + r14 + 0x44], 0xd7
mov rcx, qword [r13 + 0x30]
mov edx, dword [rbx + r14 + 0x4c]
call fcn.14018c460
mov rdx, qword [rbp + 0xd8]
mov r10d, 8
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x140171e9f
mov rax, qword [rbx + 0x20]
movsx r8d, word [rdx + 0x46]
mov ecx, dword [rax]
cmp r8d, ecx
jne 0x140171eeb
test byte [rbx + 4], r10b
jne 0x140171e9f
cmp qword [rbx + 0x48], r9
je 0x140171e1a
test edi, edi
jne 0x140171e1a
test dword [r13 + 4], 0x40000
je 0x140171e1a
cmp dword [r14], r12d
je 0x140171e9f
test byte [r14 + 0xb4], 0xa
jne 0x140171e9f
mov r9d, dword [rsp + 0x5c]
mov r8d, edi
mov rdx, r13
mov rcx, r15
call fcn.1401103e0
xor r9d, r9d
test eax, eax
je 0x140171e45
cmp dword [r15 + 0x30], r9d
jne 0x140171e8e
or rax, 0xffffffffffffffff
mov edi, eax
mov qword [rsp + 0x60], rax
mov rbx, qword [rsp + 0x48]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x58], r14
cmp byte [rbx + 0x61], r9b
jne 0x140171e8e
mov rax, qword [rbp + 0xd0]
mov r10d, 8
cmp byte [rax], r10b
jbe 0x140171ea4
mov rax, qword [r13 + 0x48]
mov qword [rbp - 0x40], rax
jmp 0x140171ea4
test r11, r11
jne 0x140171e7c
mov r11, qword [rax]
mov r8, r11
lea rdx, str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov rcx, r15
call fcn.140154378
mov rcx, r15
call fcn.14017f7c4
mov eax, dword [rsp + 0x50]
jmp 0x140173479
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x60]
add edi, r12d
add rax, r12
mov qword [rsp + 0x60], rax
cmp qword [r13 + 0x50], r9
je 0x140171d53
mov r8, qword [rbp + 0xd0]
mov rdx, r13
mov rcx, r15
call fcn.1401386ac
mov r10d, eax
xor eax, eax
cmp qword [r13 + 0x58], rax
jne 0x140171ee3
mov rcx, r15
call fcn.14017f7c4
mov eax, r10d
jmp 0x140173479
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.140154378
jmp 0x140171e8e
mov eax, dword [r14]
cmp eax, r12d
jle 0x140171f23
cmp word [rbx + 0x5c], r9w
jl 0x140171f23
mov rdx, r13
mov rcx, r15
call fcn.14013f918
mov eax, dword [r14]
xor r9d, r9d
lea rdx, [0x14021e2d9]
mov ecx, r9d
mov dword [rbp + 0xd8], ecx
test eax, eax
jle 0x14017225c
mov rax, r9
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x78], rax
imul rdi, rax, 0x70
add rdi, r14
cmp qword [rdi + 0x60], r9
jne 0x140171f7e
mov r8, qword [rdi + 0x18]
test r8, r8
je 0x140171f7e
mov rax, qword [rdi + 0x10]
mov r9, rdx
mov edx, 0x14
mov qword [rsp + 0x20], rax
mov rcx, r15
call fcn.14014aff0
mov ecx, dword [rbp + 0xd8]
xor r9d, r9d
mov rbx, qword [rdi + 0x30]
mov qword [rsp + 0x60], rbx
test rbx, rbx
je 0x140172233
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], r9d
mov rcx, r13
call fcn.14013275c
mov eax, dword [rsp + 0x40]
add dword [r15 + 0x124], eax
mov eax, 0x1000
mov rcx, qword [rsp + 0x48]
test word [rcx + 0x5c], ax
jne 0x140171fde
movzx eax, byte [rdi + 0x44]
mov rdx, rbx
mov r9d, dword [rdi + 0x4c]
mov rcx, r15
mov r8, qword [r13 + 0x30]
shr eax, 5
and eax, r12d
mov dword [rsp + 0x20], eax
call fcn.14013fc9c
mov rax, qword [r15 + 0x160]
xor ecx, ecx
mov qword [rsp + 0x78], rax
mov rax, qword [rdi + 0x18]
mov qword [r15 + 0x160], rax
cmp qword [rbp - 0x78], rcx
jne 0x1401720c1
cmp dword [r14], r12d
je 0x140172014
test byte [r14 + 0xb4], 0xa
je 0x1401720c1
mov ebx, dword [rsi + 0x90]
xor r9d, r9d
add dword [r15 + 0x38], r12d
add ebx, r12d
mov r8d, dword [r15 + 0x38]
mov rcx, rsi
mov dword [rdi + 0x3c], r8d
lea edx, [r9 + 0xd]
mov dword [rsp + 0x20], ebx
call fcn.140178330
mov eax, dword [rdi + 0x3c]
lea r8, str.CO_ROUTINE__u
mov dword [rbp + 0xc], eax
mov edx, r12d
xor eax, eax
mov dword [rdi + 0x38], ebx
mov qword [rbp + 0x10], rax
mov rcx, r15
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x18], eax
mov rax, qword [rsp + 0x60]
mov byte [rbp + 8], 0xd
mov r9d, dword [rax + 0x10]
call fcn.14017f73c
mov rdx, qword [rsp + 0x60]
lea r8, [rbp + 8]
mov rcx, r15
call fcn.140171b90
mov rax, qword [rsp + 0x60]
mov rcx, qword [rdi + 0x28]
movzx eax, word [rax + 2]
mov word [rcx + 0x4a], ax
mov rcx, rsi
mov eax, dword [rbp + 0x14]
mov edx, dword [rdi + 0x3c]
or dword [rdi + 0x48], 0x10
mov dword [rdi + 0x40], eax
call fcn.140178da8
lea edx, [rbx - 1]
mov rcx, rsi
call fcn.14017fa44
mov ecx, dword [rsi + 0x90]
mov dword [rax + 8], ecx
jmp 0x1401721e5
mov r9d, dword [r15 + 0x38]
xor r8d, r8d
inc r9d
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x20], ecx
mov rcx, rsi
mov dword [r15 + 0x38], r9d
lea edx, [r8 + 0x45]
mov dword [rdi + 0x3c], r9d
call fcn.140178330
mov dword [rsp + 0x54], eax
lea ecx, [rax + 1]
mov eax, 8
mov dword [rdi + 0x38], ecx
test byte [rdi + 0x48], al
jne 0x140172116
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea edx, [rax + 0x11]
call fcn.140178330
mov dword [rsp + 0x40], eax
lea rdx, [rdi + 8]
mov rcx, r14
call fcn.140133eb0
xor ecx, ecx
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140172158
mov r9d, dword [rax + 0x44]
lea edx, [rcx + 0x62]
mov r8d, dword [rdi + 0x4c]
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.140178330
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 0x28]
movzx ecx, word [rax + 2]
mov word [rbx + 2], cx
jmp 0x140172196
mov eax, dword [rdi + 0x4c]
lea r8, str.MATERIALIZE__u
mov qword [rbp + 0x10], rcx
mov edx, r12d
mov qword [rbp + 0x20], rcx
mov dword [rbp + 0x18], ecx
mov rcx, r15
mov dword [rbp + 0xc], eax
mov byte [rbp + 8], 0xc
mov r9d, dword [rbx + 0x10]
call fcn.14017f73c
lea r8, [rbp + 8]
mov rdx, rbx
mov rcx, r15
call fcn.140171b90
movzx ecx, word [rbx + 2]
mov rax, qword [rdi + 0x28]
xor r9d, r9d
mov word [rax + 0x4a], cx
mov eax, dword [rsp + 0x40]
test eax, eax
je 0x1401721bc
mov edx, eax
mov rcx, rsi
call fcn.14017fa44
mov ecx, dword [rsi + 0x90]
mov dword [rax + 8], ecx
mov r8d, dword [rdi + 0x3c]
mov edx, 0x41
mov rcx, rsi
mov dword [rsp + 0x20], r9d
call fcn.140178330
mov edx, dword [rsp + 0x54]
mov rcx, rsi
mov r9d, eax
call fcn.14017fa44
mov dword [rax + 4], r9d
mov rbx, qword [rsp + 0x48]
xor r10d, r10d
mov byte [r15 + 0x1f], r10b
mov dword [r15 + 0x28], r10d
cmp byte [rbx + 0x61], r10b
jne 0x140173454
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], r10d
mov rcx, r13
call fcn.14013275c
mov edx, dword [rsp + 0x40]
sub dword [r15 + 0x124], edx
mov rax, qword [rsp + 0x78]
xor r9d, r9d
mov ecx, dword [rbp + 0xd8]
mov qword [r15 + 0x160], rax
jmp 0x140172238
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbp - 0x78]
lea rdx, [0x14021e2d9]
add rax, r12
add ecx, r12d
mov dword [rbp + 0xd8], ecx
mov qword [rbp - 0x78], rax
cmp ecx, dword [r14]
jl 0x140171f46
mov rax, qword [r13 + 0x30]
mov rdi, qword [r13 + 0x20]
mov qword [rsp + 0x78], rax
mov rax, qword [r13 + 0x38]
mov qword [rbp - 0x10], rax
mov rax, qword [r13 + 0x40]
mov qword [rbp - 0x78], rax
mov al, byte [r13 + 4]
and al, r12b
mov qword [rsp + 0x60], rdi
mov byte [rbp + 0xd8], al
mov byte [rsp + 0x54], al
mov byte [rbp - 0x50], al
mov eax, dword [r13 + 4]
and al, 9
cmp al, r12b
jne 0x1401722dd
mov rcx, qword [rbp - 0x40]
or r8d, 0xffffffff
mov rdx, rdi
call fcn.140157d94
xor ecx, ecx
test eax, eax
jne 0x1401722dd
cmp qword [r13 + 0x70], rcx
jne 0x1401722dd
and dword [r13 + 4], 0xfffffffe
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.140157e28
mov qword [rbp - 0x10], rax
mov qword [r13 + 0x38], rax
mov eax, 8
or dword [r13 + 4], eax
mov rdx, qword [rbp - 0x40]
xor ebx, ebx
test rdx, rdx
je 0x14017234c
mov r9d, dword [rdi]
xor r8d, r8d
mov rcx, r15
call fcn.140168810
mov r8d, dword [r15 + 0x34]
mov rdi, rax
mov rdx, qword [rsp + 0x60]
mov dword [rbp - 0x34], r8d
mov dword [rsp + 0x20], ebx
lea ecx, [r8 + 1]
mov dword [r15 + 0x34], ecx
mov r9d, dword [rdx]
mov rcx, qword [rbp - 0x40]
mov edx, dword [rcx]
mov rcx, rsi
inc edx
add r9d, edx
lea edx, [rbx + 0x64]
call fcn.140178330
mov r9d, 0xfffffff7
mov r8, rdi
mov edx, eax
mov rcx, rsi
mov ebx, eax
call fcn.1401786a8
mov rdi, qword [rsp + 0x60]
mov dword [rbp - 0x28], ebx
xor ebx, ebx
jmp 0x140172350
or dword [rbp - 0x28], 0xffffffff
mov rax, qword [rbp + 0xd0]
cmp byte [rax], 0xc
jne 0x140172374
mov r9d, dword [rdi]
mov edx, 0x64
mov r8d, dword [rax + 4]
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.140178330
dec dword [r15 + 0x44]
mov ecx, 0x4000
mov eax, dword [r15 + 0x44]
mov dword [rbp - 8], eax
test dword [r13 + 4], ecx
jne 0x140172394
mov ecx, 0x140
mov word [r13 + 2], cx
mov r8d, eax
mov rdx, r13
mov rcx, r15
call fcn.140108e78
cmp dword [r13 + 8], ebx
jne 0x1401723be
mov edx, dword [rbp - 0x28]
test edx, edx
js 0x1401723be
mov rcx, rsi
call fcn.14017fa44
mov byte [rax], 0x6f
or byte [rbp - 0x1c], r12b
test byte [r13 + 4], r12b
je 0x14017243a
mov ebx, dword [r15 + 0x34]
xor r9d, r9d
xor r8d, r8d
mov dword [rbp - 0x4c], ebx
mov rcx, r15
lea eax, [rbx + 1]
mov dword [r15 + 0x34], eax
mov rdx, qword [r13 + 0x20]
call fcn.140168810
mov rdi, rax
xor r9d, r9d
xor eax, eax
mov r8d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x64]
call fcn.140178330
mov r9d, 0xfffffff7
mov r8, rdi
mov edx, eax
mov rcx, rsi
mov ebx, eax
call fcn.1401786a8
movsxd rax, dword [rsi + 0x90]
mov dword [rbp - 0x48], ebx
xor ebx, ebx
test eax, eax
jle 0x140172436
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea edx, [rbx + 8]
mov word [rax + rcx*8 - 0x16], dx
mov al, 3
jmp 0x14017243c
mov al, bl
mov rdi, qword [rbp - 0x10]
mov byte [rbp - 0x4f], al
mov dword [rbp - 0x7c], eax
cmp dword [rsp + 0x5c], ebx
jne 0x140172665
test rdi, rdi
jne 0x140172665
movzx ebx, byte [rsp + 0x54]
mov eax, 0x100
mov rdi, qword [r13 + 0x70]
mov ecx, 0x4000
imul ebx, eax
movzx eax, word [r13 + 4]
and ax, cx
or bx, ax
test rdi, rdi
je 0x14017248a
mov rdx, r13
mov rcx, r15
call fcn.140188414
movsx eax, word [r13 + 2]
mov rdx, r14
mov r9, qword [rbp - 0x40]
mov rcx, r15
mov r8, qword [rsp + 0x78]
mov dword [rsp + 0x30], eax
mov rax, qword [r13 + 0x20]
mov word [rsp + 0x28], bx
mov qword [rsp + 0x20], rax
call fcn.140184c00
xor r10d, r10d
mov qword [rbp + 0xc8], rax
mov rdx, rax
test rax, rax
je 0x14017344f
movzx eax, word [rax + 0x48]
cmp ax, word [r13 + 2]
jge 0x1401724db
mov word [r13 + 2], ax
cmp byte [rbp + 0xd8], r10b
je 0x1401724f9
movzx ecx, byte [rdx + 0x43]
mov eax, dword [rbp - 0x7c]
test cl, cl
movzx eax, al
cmovne eax, ecx
mov dword [rbp - 0x7c], eax
mov byte [rbp - 0x4f], al
mov r8, qword [rbp - 0x40]
test r8, r8
je 0x140172537
movsx r9d, byte [rdx + 0x41]
mov dword [rbp - 0x38], r9d
test byte [rdx + 0x44], 4
jne 0x140172516
mov eax, dword [rdx + 0x30]
jmp 0x140172529
movzx eax, byte [rdx + 0x40]
lea rcx, [rax + rax*2]
shl rcx, 5
mov eax, dword [rcx + rdx + 0x348]
mov dword [rbp - 0x20], eax
cmp r9d, dword [r8]
cmove r8, r10
mov qword [rbp - 0x40], r8
mov eax, dword [rbp - 0x28]
test eax, eax
js 0x140172554
test r8, r8
jne 0x140172554
mov edx, eax
mov rcx, rsi
call fcn.140178730
mov rdx, qword [rbp + 0xc8]
mov rcx, r15
test rdi, rdi
je 0x14017261e
mov esi, dword [r15 + 0x44]
mov r8, rdx
add dword [r15 + 0x38], r12d
dec esi
mov edi, dword [r15 + 0x38]
mov ebx, esi
sub esi, r12d
mov dword [rsp + 0x20], ebx
mov r9d, edi
mov rdx, r13
lea r14d, [rsi - 1]
mov dword [r15 + 0x44], r14d
call fcn.1401886d4
mov rcx, qword [rbp - 0x60]
xor eax, eax
mov r9d, r14d
mov dword [rsp + 0x20], eax
xor r8d, r8d
lea edx, [rax + 0xb]
call fcn.140178330
mov rcx, qword [rbp - 0x60]
mov edx, ebx
call fcn.140182144
mov rbx, qword [rbp + 0xd0]
lea rax, [rbp - 0x50]
mov dword [rsp + 0x38], r14d
lea r9, [rbp - 0x40]
mov dword [rsp + 0x30], esi
xor r12d, r12d
mov qword [rsp + 0x28], rbx
or r8d, 0xffffffff
mov rdx, r13
mov qword [rsp + 0x20], rax
mov rcx, r15
mov dword [rbp - 0x20], r12d
call fcn.140147524
mov edx, esi
mov rsi, qword [rbp - 0x60]
mov rcx, rsi
call fcn.140182144
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov r8d, edi
lea edx, [r12 + 0x41]
mov rcx, rsi
call fcn.140178330
mov edx, r14d
mov rcx, rsi
call fcn.140182144
jmp 0x1401733cc
mov eax, dword [rdx + 0x34]
lea r9, [rbp - 0x40]
mov rbx, qword [rbp + 0xd0]
or r8d, 0xffffffff
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 0x30]
mov rdx, r13
mov dword [rsp + 0x30], eax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.140147524
mov rcx, qword [rbp + 0xc8]
call fcn.140187520
xor r12d, r12d
jmp 0x1401733cc
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x6c], ebx
mov dword [rbp - 0x68], ebx
test rdi, rdi
je 0x140172708
mov rcx, qword [r13 + 0x20]
mov eax, dword [rcx]
test eax, eax
jle 0x140172695
add rcx, 0x22
sub eax, r12d
mov word [rcx], bx
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x140172687
mov eax, dword [rdi]
test eax, eax
jle 0x1401726ad
lea rcx, [rdi + 0x22]
sub eax, r12d
mov word [rcx], bx
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x14017269f
mov eax, 0x42
cmp word [r13 + 2], ax
jle 0x1401726be
mov word [r13 + 2], ax
mov rdx, qword [rbp - 0x40]
test rdx, rdx
je 0x14017270d
mov eax, dword [rdi]
cmp eax, dword [rdx]
jne 0x14017270d
mov r8d, ebx
test eax, eax
jle 0x1401726f2
mov rcx, rbx
mov al, byte [rcx + rdx + 0x18]
lea rcx, [rcx + 0x20]
and al, r12b
add r8d, r12d
mov byte [rdi + rcx - 8], al
mov rdx, qword [rbp - 0x40]
cmp r8d, dword [rdi]
jl 0x1401726d7
or r8d, 0xffffffff
mov rcx, rdi
call fcn.140157d94
test eax, eax
jne 0x14017270d
mov dword [rbp - 0x68], r12d
jmp 0x14017270d
mov word [r13 + 2], bx
dec dword [r15 + 0x44]
mov edx, 0x48
mov eax, dword [r15 + 0x44]
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
mov dword [rsp + 0x68], eax
call fcn.140152514
mov r14, rax
test rax, rax
je 0x140173454
mov rcx, qword [r15 + 0xb8]
xor edx, edx
mov qword [rax + 0x40], rcx
mov qword [r15 + 0xb8], rax
mov ecx, dword [r13 + 0x10]
mov dword [rax + 0x3c], ecx
lea r8d, [rdx + 0x38]
lea rcx, [rbp + 0x38]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [r15 + 0x38]
mov rbx, qword [rbp - 0x58]
add eax, r12d
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], r14
mov dword [r14 + 0x10], eax
xor eax, eax
test rdi, rdi
je 0x140172783
mov eax, dword [rdi]
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp + 0x38]
mov dword [r14 + 0xc], eax
mov qword [r14 + 0x18], rdi
call fcn.140154838
mov rdx, qword [rbp - 0x40]
lea rcx, [rbp + 0x38]
call fcn.140154838
mov rax, qword [rbp - 0x78]
xor r10d, r10d
test rax, rax
je 0x140172807
test rdi, rdi
je 0x1401727f8
xor edx, edx
lea r8d, [r10 + 0x30]
lea rcx, [rbp + 8]
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [r13 + 0x40]
lea rax, [0x140132640]
mov qword [rbp + 8], r15
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x30], r13
test rdx, rdx
je 0x1401727eb
lea rcx, [rbp + 8]
call fcn.140192fac
mov rax, qword [r13 + 0x30]
mov qword [rsp + 0x78], rax
mov rax, qword [rbp - 0x78]
mov rdx, rax
lea rcx, [rbp + 0x38]
call fcn.14015488c
xor r10d, r10d
mov eax, dword [r14 + 0x28]
mov dword [r14 + 0x2c], eax
cmp qword [r13 + 0x38], r10
jne 0x140172847
cmp qword [r13 + 0x40], r10
jne 0x140172847
cmp dword [r14 + 0x38], r12d
jne 0x140172847
mov rdx, qword [r14 + 0x30]
lea r8, [rbp - 0x70]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rdx]
call fcn.1401380f4
mov byte [rsp + 0x44], al
xor r10d, r10d
mov rax, qword [rbp - 0x70]
mov qword [rbp], rax
jmp 0x14017284c
mov byte [rsp + 0x44], r10b
mov r8d, dword [r14 + 0x38]
test r8d, r8d
jle 0x1401728c3
mov ecx, dword [rbp + 0x60]
mov rsi, r10
mov ebx, r10d
mov rax, qword [r14 + 0x30]
bts ecx, 0x11
mov rax, qword [rsi + rax]
mov dword [rbp + 0x60], ecx
lea rcx, [rbp + 0x38]
mov qword [rsp + 0x70], rax
mov rdx, qword [rax + 0x20]
call fcn.140154838
mov rdx, qword [rsp + 0x70]
test dword [rdx + 4], 0x1000000
je 0x14017289e
mov rdx, qword [rdx + 0x40]
lea rcx, [rbp + 0x38]
mov rdx, qword [rdx + 0x48]
call fcn.14015488c
mov ecx, dword [rbp + 0x60]
add ebx, r12d
btr ecx, 0x11
add rsi, 0x18
mov dword [rbp + 0x60], ecx
mov r8d, dword [r14 + 0x38]
cmp ebx, r8d
jl 0x14017285e
mov rsi, qword [rbp - 0x60]
xor r10d, r10d
mov rbx, qword [rbp - 0x58]
mov eax, dword [r15 + 0x38]
mov dword [r14 + 0x14], eax
mov rax, qword [rsp + 0x48]
cmp byte [rax + 0x61], r10b
jne 0x140173471
test rdi, rdi
je 0x140172fe9
mov eax, dword [r15 + 0x34]
xor r8d, r8d
mov dword [r14 + 4], eax
mov rdx, rdi
add dword [r15 + 0x34], r12d
mov rcx, r15
mov r9d, dword [r14 + 0x28]
call fcn.140168810
mov r9d, dword [r14 + 0xc]
mov rcx, rsi
mov r8d, dword [r14 + 4]
mov qword [rsp + 0x70], rax
xor eax, eax
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x6f]
call fcn.140178330
mov r8, qword [rsp + 0x70]
mov r9d, 0xfffffff7
mov edx, eax
mov dword [rbp - 0x58], eax
mov rcx, rsi
call fcn.1401786a8
mov eax, dword [r15 + 0x38]
mov ecx, dword [r15 + 0x44]
inc eax
dec ecx
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x54], ecx
lea r8d, [rax + 1]
lea eax, [rcx - 1]
mov dword [rbp - 0x70], r8d
lea edx, [r8 + 2]
mov dword [r15 + 0x44], eax
mov dword [r15 + 0x38], edx
mov r9d, r8d
mov ecx, dword [rdi]
xor r8d, r8d
add ecx, edx
mov dword [rsp + 0x5c], eax
mov dword [r15 + 0x38], ecx
mov dword [rbp - 0x80], edx
lea eax, [rcx + 1]
add ecx, dword [rdi]
mov dword [rbp - 0x60], eax
xor eax, eax
mov dword [r15 + 0x38], ecx
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x45]
call fcn.140178330
mov ecx, dword [rdi]
xor r8d, r8d
mov edx, dword [rbp - 0x80]
dec ecx
inc edx
add ecx, edx
mov r9d, edx
mov dword [rsp + 0x20], ecx
lea edx, [r8 + 0x48]
mov rcx, rsi
call fcn.140178330
mov r9d, dword [rsp + 0x5c]
xor eax, eax
mov r8d, dword [rbp - 0x80]
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xc]
call fcn.140178330
mov eax, dword [rbp - 0x68]
mov r9, rdi
mov r8, qword [rsp + 0x78]
neg eax
mov rdx, rbx
sbb cx, cx
and cx, 0x200
add cx, 0x40
xor eax, eax
mov dword [rsp + 0x30], eax
mov word [rsp + 0x28], cx
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.140184c00
xor r10d, r10d
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14017344f
movsx ecx, byte [rax + 0x41]
cmp ecx, dword [rdi]
jne 0x140172a28
mov ebx, r10d
mov dword [rsp + 0x50], ebx
jmp 0x140172c7d
cmp byte [rbp + 0xd8], r10b
je 0x140172a3e
lea r9, str.DISTINCT
test byte [r13 + 4], r12b
je 0x140172a45
lea r9, str.GROUP_BY
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
mov rcx, r15
call fcn.14017f73c
mov eax, dword [rdi]
xor r10d, r10d
mov ebx, eax
mov dword [rsp + 0x50], r12d
mov r8d, eax
mov dword [rsp + 0x6c], eax
cmp dword [r14 + 0x28], r10d
jle 0x140172a9d
mov rdx, qword [r14 + 0x20]
mov r9d, dword [r14 + 0x28]
add rdx, 0x1a
movsx ecx, word [rdx]
lea eax, [rbx + 1]
cmp ecx, r8d
lea rdx, [rdx + 0x20]
cmovl eax, ebx
mov ebx, eax
lea eax, [r8 + 1]
cmovl eax, r8d
mov r8d, eax
sub r9, r12
jne 0x140172a7b
mov edx, ebx
mov rcx, r15
call fcn.140165754
xor r9d, r9d
mov dword [rbp + 0xd8], eax
mov r8d, eax
mov byte [rsp + 0x20], r10b
mov rcx, r15
mov rdx, rdi
call fcn.140154cc8
xor eax, eax
mov ecx, eax
mov dword [rsp + 0x58], eax
cmp dword [r14 + 0x28], eax
jle 0x140172b36
mov r13d, dword [rsp + 0x6c]
mov edi, eax
mov r15d, dword [rbp + 0xd8]
mov rdx, qword [r14 + 0x20]
movsx eax, word [rdi + rdx + 0x1a]
cmp eax, r13d
jl 0x140172b13
movsx r9d, word [rdi + rdx + 0x18]
lea eax, [r15 + r13]
mov r8d, dword [rdi + rdx + 0x10]
mov rcx, rsi
mov rdx, qword [rdi + rdx]
mov dword [rsp + 0x20], eax
call fcn.140154f70
mov ecx, dword [rsp + 0x58]
add r13d, r12d
add ecx, r12d
add rdi, 0x20
mov dword [rsp + 0x58], ecx
cmp ecx, dword [r14 + 0x28]
jl 0x140172adf
mov r15, qword [rbp + 0xc0]
mov r13, qword [rbp + 0xc8]
mov rdi, qword [rbp - 0x10]
mov al, byte [r15 + 0x1f]
test al, al
jne 0x140172b48
add dword [r15 + 0x38], r12d
mov eax, dword [r15 + 0x38]
jmp 0x140172b5a
sub al, r12b
movzx eax, al
mov byte [r15 + 0x1f], al
mov eax, dword [r15 + rax*4 + 0xd4]
mov r8d, dword [rbp + 0xd8]
mov r9d, ebx
mov edx, 0x5b
mov dword [rbp + 0xc0], eax
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140178330
mov r9d, dword [rbp + 0xc0]
xor eax, eax
mov r8d, dword [r14 + 4]
mov edx, 0x83
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140178330
mov ecx, dword [rbp + 0xc0]
mov edx, 8
test ecx, ecx
je 0x140172bbf
cmp byte [r15 + 0x1f], dl
jae 0x140172bbf
movzx eax, byte [r15 + 0x1f]
mov dword [r15 + rax*4 + 0xd4], ecx
add byte [r15 + 0x1f], r12b
cmp ebx, r12d
jne 0x140172be7
mov ecx, dword [rbp + 0xd8]
test ecx, ecx
je 0x140172bfb
cmp byte [r15 + 0x1f], dl
jae 0x140172bfb
movzx eax, byte [r15 + 0x1f]
mov dword [r15 + rax*4 + 0xd4], ecx
add byte [r15 + 0x1f], r12b
jmp 0x140172bfb
cmp ebx, dword [r15 + 0x28]
jle 0x140172bfb
mov eax, dword [rbp + 0xd8]
mov dword [r15 + 0x2c], eax
mov dword [r15 + 0x28], ebx
mov rcx, qword [rsp + 0x78]
call fcn.140187520
mov ecx, dword [r15 + 0x34]
mov dword [r14 + 8], ecx
add dword [r15 + 0x34], r12d
mov al, byte [r15 + 0x1f]
mov dword [rsp + 0x58], ecx
test al, al
jne 0x140172c27
add dword [r15 + 0x38], r12d
mov eax, dword [r15 + 0x38]
jmp 0x140172c39
sub al, r12b
movzx eax, al
mov byte [r15 + 0x1f], al
mov eax, dword [r15 + rax*4 + 0xd4]
mov r8d, ecx
mov dword [rsp + 0x6c], eax
mov rcx, rsi
mov dword [rsp + 0x20], ebx
mov r9d, eax
mov edx, 0x72
call fcn.140178330
mov r9d, dword [rsp + 0x68]
xor eax, eax
mov r8d, dword [r14 + 4]
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x23]
call fcn.140178330
mov rax, qword [rsp + 0x78]
xor r10d, r10d
mov byte [r14 + 1], r12b
mov ebx, r12d
cmp dword [rbp - 0x68], r10d
je 0x140172cac
mov rcx, qword [rsp + 0x48]
test byte [rcx + 0x5c], 4
jne 0x140172cac
test ebx, ebx
jne 0x140172c9a
lea ecx, [rbx + 8]
test byte [rax + 0x44], cl
je 0x140172cac
mov edx, dword [rbp - 0x28]
mov rcx, rsi
mov qword [rbp - 0x40], r10
call fcn.140178730
xor r10d, r10d
mov eax, dword [rsi + 0x90]
mov dword [rbp + 0xc0], eax
test ebx, ebx
je 0x140172cdd
mov eax, dword [rsp + 0x58]
mov edx, 0x7d
mov r9d, dword [rsp + 0x6c]
mov rcx, rsi
mov r8d, dword [r14 + 4]
mov dword [rsp + 0x20], eax
call fcn.140178330
xor r10d, r10d
mov eax, dword [rdi]
mov ebx, r10d
test eax, eax
jle 0x140172d3d
lea r13, [rdi + 8]
mov r8d, dword [rbp - 0x60]
add r8d, ebx
cmp dword [rsp + 0x50], r10d
je 0x140172d14
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, dword [rsp + 0x58]
mov edx, 0x59
mov rcx, rsi
call fcn.140178330
jmp 0x140172d23
mov byte [r14], r12b
mov rcx, r15
mov rdx, qword [r13]
call fcn.140154bfc
mov eax, dword [rdi]
add ebx, r12d
add r13, 0x20
mov r10d, 0
cmp ebx, eax
jl 0x140172cea
mov r13, qword [rbp + 0xc8]
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x140172d4c
add dword [rbx], r12d
mov eax, dword [rdi]
mov r8d, dword [rbp - 0x80]
mov edx, 0x56
mov r9d, dword [rbp - 0x60]
inc r8d
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140178330
mov r9d, 0xfffffff7
mov r8, rbx
mov edx, eax
mov rcx, rsi
call fcn.1401786a8
mov ebx, dword [rsi + 0x90]
xor r9d, r9d
mov rcx, rsi
lea r8d, [rbx + 1]
lea edx, [r9 + 0x10]
mov dword [rsp + 0x20], r8d
call fcn.140178330
mov r9d, dword [rbp - 0x80]
mov edx, 0x4c
mov eax, dword [rdi]
inc r9d
mov r8d, dword [rbp - 0x60]
mov rcx, qword [r15 + 0x10]
mov dword [rsp + 0x20], eax
call fcn.140178330
mov edi, dword [rbp - 0x70]
xor eax, eax
mov r9d, dword [rsp + 0x54]
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xc]
lea r8d, [rdi + 1]
call fcn.140178330
mov r9d, dword [rsp + 0x68]
xor eax, eax
mov r8d, edi
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea edx, [rax + 0x30]
call fcn.140178330
mov r9d, dword [rsp + 0x5c]
lea r8d, [rdi + 2]
xor eax, eax
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0xc]
call fcn.140178330
mov edx, ebx
mov rcx, rsi
call fcn.14017fa44
mov ecx, dword [rsi + 0x90]
mov r8, r14
mov edx, dword [rsp + 0x40]
mov dword [rax + 8], ecx
mov rcx, r15
call fcn.14018c4fc
mov r9d, dword [rsp + 0x40]
xor eax, eax
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea edx, [rax + 0x45]
call fcn.140178330
xor ebx, ebx
cmp dword [rsp + 0x50], ebx
je 0x140172e67
mov r9d, dword [rbp + 0xc0]
lea edx, [rbx + 3]
mov r8d, dword [r14 + 4]
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.140178330
jmp 0x140172e7c
mov rcx, qword [rsp + 0x78]
call fcn.140187520
mov edx, dword [rbp - 0x58]
mov rcx, rsi
call fcn.140178730
mov r9d, dword [rsp + 0x54]
lea r8d, [rdi + 1]
mov edx, 0xc
mov dword [rsp + 0x20], ebx
mov rcx, rsi
call fcn.140178330
mov r9d, dword [rsp + 0x68]
xor eax, eax
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea edx, [rax + 0xb]
call fcn.140178330
mov r9d, dword [rbp - 0x70]
xor eax, eax
mov edi, dword [rsi + 0x90]
mov r8d, r12d
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x45]
call fcn.140178330
mov r12d, dword [rbp - 0x70]
xor eax, eax
inc r12d
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, r12d
mov rcx, rsi
lea edx, [rax + 0x41]
call fcn.140178330
mov edx, dword [rsp + 0x54]
mov rcx, rsi
call fcn.140182144
mov ebx, dword [rsi + 0x90]
xor eax, eax
mov r8d, dword [rsp + 0x40]
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x30]
lea r9d, [rbx + 2]
call fcn.140178330
xor eax, eax
xor r9d, r9d
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea edx, [rax + 0x41]
call fcn.140178330
mov rdx, r14
mov rcx, r15
call fcn.14010ecd4
mov rdx, qword [rbp - 0x78]
inc ebx
mov r8d, ebx
mov r9d, 0x10
mov rcx, r15
call fcn.1401572f8
mov rax, qword [rbp + 0xd0]
lea r9, [rbp - 0x40]
mov dword [rsp + 0x38], edi
or r8d, 0xffffffff
mov dword [rsp + 0x30], ebx
mov rdx, r13
mov qword [rsp + 0x28], rax
mov rcx, r15
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
call fcn.140147524
xor ebx, ebx
xor r9d, r9d
mov r8d, r12d
mov dword [rsp + 0x20], ebx
mov rcx, rsi
lea edi, [rbx + 0x41]
mov edx, edi
call fcn.140178330
mov edx, dword [rsp + 0x5c]
mov rcx, rsi
call fcn.140182144
mov rdx, r14
mov rcx, r15
call fcn.140142068
mov r9d, dword [rsp + 0x40]
lea edx, [rbx + 0x45]
xor r8d, r8d
mov dword [rsp + 0x20], ebx
mov rcx, rsi
call fcn.140178330
xor r9d, r9d
mov dword [rsp + 0x20], ebx
lea r8d, [r12 + 1]
mov edx, edi
mov rcx, rsi
call fcn.140178330
mov ebx, dword [rsp + 0x68]
xor r12d, r12d
jmp 0x1401733bb
cmp qword [r13 + 0x30], r10
jne 0x140173266
mov rax, qword [r13 + 0x20]
cmp dword [rax], r12d
jne 0x140173266
mov rdx, qword [r13 + 0x28]
cmp dword [rdx], r12d
jne 0x140173266
cmp qword [rdx + 0x30], r10
jne 0x140173266
mov rdx, qword [rdx + 0x28]
mov r9, qword [rax + 8]
cmp dword [rdx + 0x54], r10d
jne 0x140173266
cmp byte [r9], 0xa5
jne 0x140173266
test r8d, r8d
je 0x140173266
mov rax, qword [r14 + 0x30]
mov rcx, qword [rax + 8]
mov eax, 0x100
test dword [rcx + 4], eax
je 0x140173266
test dword [r9 + 4], 0x1000002
jne 0x140173266
test rdx, rdx
je 0x140173266
mov r9, qword [rdx + 0x70]
mov r8d, 0xffff8000
mov dword [rbp + 0xc8], r8d
mov rdi, rdx
test r9, r9
je 0x1401730af
mov rax, qword [r15]
mov r8d, r10d
mov dword [rbp + 0xc8], r10d
mov rcx, qword [rax + 0x20]
add rcx, 0x18
cmp qword [rcx], r9
je 0x1401730af
add r8d, r12d
lea rcx, [rcx + 0x20]
cmp qword [rcx], r9
jne 0x14017309c
mov dword [rbp + 0xc8], r8d
mov eax, dword [r15 + 0x34]
mov edx, r8d
mov dword [rbp + 0xd8], eax
mov rcx, r15
inc eax
mov qword [rsp + 0x70], r10
mov dword [r15 + 0x34], eax
mov rbx, r10
mov eax, dword [rdi + 0x38]
mov dword [rbp + 0xc0], eax
call fcn.1401501dc
mov rax, qword [rdi]
xor r9d, r9d
mov r8d, dword [rdi + 0x38]
mov rcx, r15
mov edx, dword [rbp + 0xc8]
mov qword [rsp + 0x20], rax
call fcn.140174f04
xor edx, edx
test byte [rdi + 0x40], 0x80
je 0x140173118
mov rbx, qword [rdi + 0x10]
jmp 0x140173113
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140173118
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140173106
mov rax, qword [r13 + 0x28]
test byte [rax + 0x48], r12b
jne 0x140173155
mov rax, qword [rdi + 0x10]
jmp 0x140173150
test byte [rax + 0x64], 4
jne 0x14017314c
movzx ecx, word [rax + 0x5c]
cmp cx, word [rdi + 0x4c]
jge 0x14017314c
cmp qword [rax + 0x48], rdx
jne 0x14017314c
test rbx, rbx
je 0x140173149
cmp cx, word [rbx + 0x5c]
jge 0x14017314c
mov rbx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x140173128
test rbx, rbx
je 0x140173173
mov eax, dword [rbx + 0x58]
mov rdx, rbx
mov rcx, r15
mov dword [rbp + 0xc0], eax
call fcn.1401688c8
mov qword [rsp + 0x70], rax
mov eax, dword [rbp + 0xc8]
mov edx, 0x60
mov r9d, dword [rbp + 0xc0]
mov rcx, rsi
mov r8d, dword [rbp + 0xd8]
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
call fcn.140178444
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1401731bb
mov r9d, 0xfffffff7
mov r8, rax
or edx, 0xffffffff
mov rcx, rsi
call fcn.1401786a8
mov rax, qword [r14 + 0x30]
mov edx, 0x5c
mov r8d, dword [rbp + 0xd8]
mov rcx, rsi
and dword [rsp + 0x20], 0
mov r9d, dword [rax + 0x10]
call fcn.140178330
mov r8d, dword [rbp + 0xd8]
xor eax, eax
xor r9d, r9d
mov dword [rsp + 0x20], eax
mov rcx, rsi
lea edx, [rax + 0x74]
call fcn.140178330
cmp byte [r15 + 0x11b], 2
jne 0x140173371
xor r8d, r8d
test rbx, rbx
je 0x140173228
test byte [rdi + 0x40], 0x80
je 0x14017321c
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140173228
mov rax, qword [rbx]
lea rcx, [0x14021e2d9]
jmp 0x140173235
lea rcx, [0x14021e2d9]
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_TABLE__s_s_s
cmovne rcx, rdx
xor edx, edx
mov qword [rsp + 0x20], rcx
mov rcx, r15
call fcn.14017f73c
jmp 0x140173371
mov edi, r10d
cmp dword [r14 + 0x2c], r10d
je 0x1401732c1
mov edx, r10d
test r8d, r8d
jle 0x14017329d
mov rcx, qword [r14 + 0x30]
mov rax, qword [rcx]
test dword [rax + 4], 0x1000000
jne 0x140173291
mov rax, qword [rcx + 8]
test byte [rax + 4], 0x20
jne 0x1401732c1
add edx, r12d
add rcx, 0x18
cmp edx, r8d
jl 0x14017327b
cmp edx, r8d
jne 0x1401732c1
add dword [r15 + 0x38], r12d
xor r8d, r8d
mov edi, dword [r15 + 0x38]
mov rcx, rsi
mov r9d, edi
mov dword [rsp + 0x20], r10d
lea edx, [r8 + 0x45]
call fcn.140178330
mov rdx, r14
mov rcx, r15
call fcn.140142068
movzx eax, byte [rsp + 0x44]
xor ecx, ecx
mov r9, qword [rbp]
mov rdx, rbx
mov r8, qword [rsp + 0x78]
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rcx
mov rcx, r15
call fcn.140184c00
mov rbx, rax
test rax, rax
je 0x14017344f
mov r8, r14
mov edx, edi
mov rcx, r15
call fcn.14018c4fc
xor ecx, ecx
test edi, edi
je 0x14017332b
mov dword [rsp + 0x20], ecx
lea edx, [rcx + 0x45]
mov rcx, rsi
mov r9d, edi
mov r8d, r12d
call fcn.140178330
xor ecx, ecx
test byte [rbx + 0x44], 4
je 0x14017335e
movzx eax, byte [rbx + 0x40]
lea rdx, [rax + rax*2]
shl rdx, 5
mov r9d, dword [rdx + rbx + 0x348]
cmp r9d, dword [rbx + 0x30]
je 0x14017335e
xor r8d, r8d
mov dword [rsp + 0x20], ecx
mov rcx, rsi
lea edx, [r8 + 0xb]
call fcn.140178330
mov rcx, rbx
call fcn.140187520
mov rdx, r14
mov rcx, r15
call fcn.14010ecd4
mov ebx, dword [rsp + 0x68]
xor r12d, r12d
mov rdx, qword [rbp - 0x78]
mov r8d, ebx
mov rcx, r15
mov qword [rbp - 0x40], r12
lea r9d, [r12 + 0x10]
call fcn.1401572f8
mov rax, qword [rbp + 0xd0]
xor r9d, r9d
mov dword [rsp + 0x38], ebx
or r8d, 0xffffffff
mov dword [rsp + 0x30], ebx
mov rdx, r13
mov qword [rsp + 0x28], rax
mov rcx, r15
mov qword [rsp + 0x20], r12
call fcn.140147524
mov edx, ebx
mov rcx, rsi
call fcn.140182144
mov rbx, qword [rbp + 0xd0]
cmp byte [rbp - 0x7c], 3
jne 0x1401733ea
lea r9, str.DISTINCT
xor edx, edx
lea r8, str.USE_TEMP_B_TREE_FOR__s
mov rcx, r15
call fcn.14017f73c
cmp qword [rbp - 0x40], r12
je 0x140173433
cmp dword [rbp - 0x38], r12d
lea rax, str.RIGHT_PART_OF_ORDER_BY
lea r9, str.ORDER_BY
mov rcx, r15
cmovg r9, rax
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
call fcn.14017f73c
mov rax, qword [rsp + 0x60]
lea r8, [rbp - 0x40]
mov rdx, r13
mov qword [rsp + 0x20], rbx
mov rcx, r15
mov r9d, dword [rax]
call fcn.1401306fc
mov edx, dword [rbp - 8]
mov rcx, rsi
call fcn.140182144
xor r10d, r10d
cmp dword [r15 + 0x30], r10d
mov eax, r10d
setg al
mov dword [rsp + 0x50], eax
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbp]
test rax, rax
je 0x140171e8e
mov rdx, rax
mov rcx, rbx
call fcn.14010e2d8
jmp 0x140171e8e
mov rbx, rax
jmp 0x140173454
mov eax, r12d
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret