Function at 0x18007b320
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 - 0xa8]
sub rsp, 0x1a8
mov r12, qword [rcx + 0x10]
xor r15d, r15d
mov rsi, qword [rcx]
mov r13d, 1
mov dword [rsp + 0x48], r13d
mov r14, rdx
mov qword [rbp - 0x60], r15
mov rbx, rcx
mov qword [rsp + 0x58], rsi
mov edi, r13d
mov qword [rbp - 0x68], r12
test r12, r12
jne 0x18007b399
cmp qword [rcx + 0xa0], r15
jne 0x18007b38d
test byte [rsi + 0x5c], 8
jne 0x18007b38d
mov byte [rcx + 0x23], dil
call fcn.180029450
mov r12, rax
mov qword [rbp - 0x68], rax
test r14, r14
je 0x18007dfd2
cmp byte [rsi + 0x61], r15b
jne 0x18007dfd2
cmp dword [rbx + 0x30], r15d
jne 0x18007dfd2
xor r9d, r9d
mov qword [rsp + 0x20], r15
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x15]
call fcn.180051680
test eax, eax
jne 0x18007dfd2
mov rax, qword [rbp + 0x100]
cmp byte [rax], 6
ja 0x18007b403
mov rdx, qword [r14 + 0x48]
test rdx, rdx
je 0x18007b3f2
mov rcx, rsi
call fcn.180043a80
and dword [r14 + 4], 0xfffffffe
or dword [r14 + 4], 0x400000
mov qword [r14 + 0x48], r15
xor r8d, r8d
mov rdx, r14
mov rcx, rbx
call fcn.18007a7b0
lea r8, [0x1800e67d0]
cmp dword [rbx + 0x30], r15d
jne 0x18007b662
cmp byte [rsi + 0x61], r15b
jne 0x18007b662
test dword [r14 + 4], 0x800000
je 0x18007b490
mov r14, qword [r14 + 0x28]
mov eax, dword [r14]
cmp eax, edi
jle 0x18007b489
mov r13, qword [r14 + 0x28]
mov ebx, 0x70
nop word [rax + rax]
cmp r13, qword [rbx + r14 + 0x28]
jne 0x18007b473
mov rsi, qword [r14 + 0x20]
mov rdx, qword [rbx + r14 + 0x20]
mov rcx, rsi
call sym.SQLite3.dll_sqlite3_stricmp
test eax, eax
je 0x18007b635
mov eax, dword [r14]
inc edi
add rbx, 0x70
cmp edi, eax
jl 0x18007b450
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rsp + 0x58]
mov r14, qword [rbp + 0xf8]
mov r13, qword [rbp + 0x100]
cmp byte [r13], 9
jne 0x18007b4a9
mov rdx, r14
mov rcx, rbx
call fcn.180074af0
mov rdx, r14
mov rcx, rbx
call fcn.180096720
mov dword [rsp + 0x48], eax
mov edi, eax
test eax, eax
jne 0x18007b65b
mov rax, qword [r14 + 0x48]
xorps xmm0, xmm0
mov edx, dword [r14 + 4]
xorps xmm1, xmm1
mov r9, qword [r14 + 0x28]
mov edi, r15d
shr edx, 3
and edx, 1
mov qword [rsp + 0x78], rax
mov qword [rbp + 0x30], rax
mov rax, qword [r14 + 0x50]
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x40], edx
mov qword [rbp + 0x58], r15
movdqu xmmword [rbp + 0x38], xmm0
movdqu xmmword [rbp + 0x48], xmm1
test rax, rax
jne 0x18007b700
mov r10, qword [rbp + 0xf8]
mov rax, r15
mov r14, r15
cmp edi, dword [r9]
jge 0x18007b6f4
imul rbx, r14, 0x70
add rbx, r9
test byte [rbx + 0x44], 8
mov rsi, qword [rbx + 0x30]
mov r13, qword [rbx + 0x28]
je 0x18007b575
mov edx, dword [rbx + 0x4c]
mov rcx, qword [r10 + 0x30]
call fcn.18004a780
mov r10, qword [rbp + 0xf8]
test eax, eax
je 0x18007b56c
mov rcx, qword [rsp + 0x58]
mov eax, 0x2000
test word [rcx + 0x5c], ax
jne 0x18007b56c
and byte [rbx + 0x44], 0xd7
mov rcx, qword [r10 + 0x30]
mov edx, dword [rbx + 0x4c]
call fcn.180071d40
mov edx, dword [rsp + 0x40]
mov r9, qword [rsp + 0x60]
test rsi, rsi
je 0x18007b6a7
mov rax, qword [rsi + 0x20]
movsx r8d, word [r13 + 0x46]
mov ecx, dword [rax]
cmp r8d, ecx
jne 0x18007b6d1
test byte [rsi + 4], 8
jne 0x18007b6a7
cmp qword [rsi + 0x48], r15
je 0x18007b5c8
test edi, edi
jne 0x18007b5c8
test dword [r10 + 4], 0x40000
je 0x18007b5c8
cmp dword [r9], 1
je 0x18007b6a7
test byte [r9 + 0xb4], 0xa
jne 0x18007b6a7
mov rbx, qword [rbp + 0xf0]
mov r9d, edx
mov rcx, rbx
mov r8d, edi
mov rdx, r10
call fcn.180078930
test eax, eax
je 0x18007b5f6
cmp dword [rbx + 0x30], r15d
jne 0x18007b657
mov edi, 0xffffffff
mov r14, 0xffffffffffffffff
mov r10, qword [rbp + 0xf8]
mov rsi, qword [rsp + 0x58]
mov r9, qword [r10 + 0x28]
mov qword [rsp + 0x60], r9
cmp byte [rsi + 0x61], r15b
jne 0x18007b657
mov r13, qword [rbp + 0x100]
cmp byte [r13], 8
jbe 0x18007b6ba
mov rcx, qword [r10 + 0x48]
mov qword [rsp + 0x78], rcx
mov qword [rbp + 0x30], rcx
jmp 0x18007b6ba
test rsi, rsi
jne 0x18007b63e
mov rsi, qword [r13]
mov rbx, qword [rbp + 0xf0]
lea rdx, str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov rcx, rbx
mov r8, rsi
call fcn.180007af0
mov edi, dword [rsp + 0x48]
lea r8, [0x1800e67d0]
mov ecx, dword [rbx + 0x128]
test ecx, ecx
je 0x18007b699
mov rdx, qword [rbx + 0x10]
jns 0x18007b67a
mov ecx, dword [rdx + 0x90]
dec ecx
mov rax, qword [rdx]
cmp byte [rax + 0x61], 0
jne 0x18007b695
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea r8, [rax + rcx*8]
mov r15d, dword [r8 + 8]
mov dword [rbx + 0x128], r15d
mov eax, edi
jmp 0x18007dfd5
mov r13, qword [rbp + 0x100]
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rbp + 0xf0]
mov rax, qword [r10 + 0x50]
inc edi
inc r14
test rax, rax
jne 0x18007b6f4
mov edx, dword [rsp + 0x40]
jmp 0x18007b517
mov rbx, qword [rbp + 0xf0]
lea rdx, str.expected__d_columns_for__s_but_got__d
mov r9, qword [r13]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.180007af0
jmp 0x18007b657
mov r14, qword [rbp + 0xf8]
test rax, rax
je 0x18007b778
mov r8, r13
mov rdx, r14
mov rcx, rbx
call fcn.180076260
mov r8d, eax
cmp qword [r14 + 0x58], r15
jne 0x18007b770
mov ecx, dword [rbx + 0x128]
test ecx, ecx
je 0x18007b769
mov rdx, qword [rbx + 0x10]
jns 0x18007b72f
mov ecx, dword [rdx + 0x90]
dec ecx
mov rax, qword [rdx]
cmp byte [rax + 0x61], r15b
je 0x18007b752
lea rax, [0x1800e67d0]
mov r15d, dword [rax + 8]
mov eax, r8d
mov dword [rbx + 0x128], r15d
jmp 0x18007dfd5
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
mov r15d, dword [rax + rcx*8 + 8]
lea rax, [rax + rcx*8]
mov dword [rbx + 0x128], r15d
mov eax, r8d
jmp 0x18007dfd5
mov eax, dword [r9]
cmp eax, 1
jle 0x18007b87d
cmp word [rsi + 0x5c], r15w
jl 0x18007b87d
mov qword [rbp - 0x10], rbx
lea rdi, [0x1800791e0]
lea rsi, [sym.SQLite3.dll_sqlite3_global_recover]
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [r14 + 0x30]
lea rcx, [rbp - 0x10]
mov qword [rbp - 8], r15
mov qword [rbp], r15
call fcn.1800790a0
cmp dword [rbp - 8], r15d
je 0x18007b86b
mov rdx, qword [r14 + 0x30]
lea rax, [rbp - 0x10]
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x30], rax
test rdx, rdx
je 0x18007b7fd
lea rcx, [rbp - 0x58]
call fcn.18003dc60
mov rax, qword [rbp - 0x10]
mov rdx, qword [rbp]
mov rcx, qword [rax]
test rdx, rdx
je 0x18007b86b
test rcx, rcx
je 0x18007b863
cmp qword [rcx + 0x2d8], r15
je 0x18007b822
call fcn.180004440
jmp 0x18007b86b
cmp rdx, qword [rcx + 0x1c8]
jae 0x18007b863
cmp rdx, qword [rcx + 0x1b8]
jb 0x18007b847
mov rax, qword [rcx + 0x1b0]
mov qword [rdx], rax
mov qword [rcx + 0x1b0], rdx
jmp 0x18007b86b
cmp rdx, qword [rcx + 0x1c0]
jb 0x18007b863
mov rax, qword [rcx + 0x1a0]
mov qword [rdx], rax
mov qword [rcx + 0x1a0], rdx
jmp 0x18007b86b
mov rcx, rdx
call sym.SQLite3.dll_sqlite3_free
cmp dword [rbp - 4], r15d
jne 0x18007b7b0
mov r9, qword [rsp + 0x60]
mov eax, dword [r9]
lea rdx, [0x1800c6874]
mov ecx, r15d
mov dword [rbp + 0x108], ecx
test eax, eax
jle 0x18007bcda
mov rsi, r15
mov qword [rbp - 0x20], r15
mov r11d, 0x1000
nop dword [rax]
nop word [rax + rax]
imul rax, rsi, 0x70
lea rdi, [r9 + 8]
add rdi, rax
cmp qword [rdi + 0x58], r15
jne 0x18007b8f4
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x18007b8f4
mov rax, qword [rdi + 8]
mov r9, rdx
mov edx, 0x14
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.180051680
mov ecx, dword [rbp + 0x108]
mov r11d, 0x1000
mov r9, qword [rsp + 0x60]
mov r13, qword [rdi + 0x28]
test r13, r13
je 0x18007bcb5
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], r15d
mov rcx, r14
call fcn.180041b80
mov rcx, qword [rsp + 0x58]
mov eax, dword [rsp + 0x44]
add dword [rbx + 0x124], eax
test word [rcx + 0x5c], r11w
jne 0x18007b94a
movzx eax, byte [rdi + 0x3c]
mov rdx, r13
mov r9d, dword [rdi + 0x44]
mov rcx, rbx
mov r8, qword [r14 + 0x30]
shr eax, 5
and eax, 1
mov dword [rsp + 0x20], eax
call fcn.1800792a0
mov rax, qword [rbx + 0x160]
test rsi, rsi
mov rsi, qword [rsp + 0x60]
mov qword [rbp - 0x18], rax
mov rax, qword [rdi + 0x10]
mov qword [rbx + 0x160], rax
jne 0x18007ba61
cmp dword [rsi], 1
je 0x18007b980
test byte [rsi + 0xb4], 0xa
je 0x18007ba61
mov esi, dword [r12 + 0x90]
xor r9d, r9d
mov rcx, qword [rbp + 0xf0]
lea ebx, [rsi + 1]
mov r8d, dword [rcx + 0x38]
lea edx, [r9 + 0xd]
inc r8d
mov dword [rsp + 0x20], ebx
mov dword [rcx + 0x38], r8d
mov rcx, r12
mov dword [rdi + 0x34], r8d
call fcn.180029850
mov eax, dword [rdi + 0x34]
lea r8, str.CO_ROUTINE__u
mov dword [rdi + 0x30], ebx
mov edx, 1
mov rbx, qword [rbp + 0xf0]
mov dword [rbp - 0xc], eax
mov rcx, rbx
mov byte [rbp - 0x10], 0xd
mov qword [rbp - 8], r15
mov qword [rbp + 8], r15
mov dword [rbp], r15d
mov r9d, dword [r13 + 0x10]
call fcn.18002a080
lea r8, [rbp - 0x10]
mov rdx, r13
mov rcx, rbx
call fcn.18007b320
movzx eax, word [r13 + 2]
mov rcx, qword [rdi + 0x20]
mov word [rcx + 0x4a], ax
mov rcx, r12
mov eax, dword [rbp - 4]
mov edx, dword [rdi + 0x34]
or dword [rdi + 0x40], 0x10
mov dword [rdi + 0x38], eax
call fcn.18002a3a0
mov rax, qword [r12]
mov edx, dword [r12 + 0x90]
cmp byte [rax + 0x61], r15b
je 0x18007ba3e
lea rax, [0x1800e67d0]
mov dword [rax + 8], edx
jmp 0x18007bc68
lea eax, [rdx - 1]
test esi, esi
cmovns eax, esi
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8 + 8], edx
lea rax, [rax + rcx*8]
jmp 0x18007bc68
mov r9d, dword [rbx + 0x38]
xor r8d, r8d
inc r9d
mov dword [rsp + 0x44], r15d
mov dword [rbx + 0x38], r9d
mov rcx, r12
mov dword [rdi + 0x34], r9d
lea edx, [r8 + 0x45]
call fcn.1800299a0
test byte [rdi + 0x40], 8
mov r14d, eax
lea ecx, [rax + 1]
mov dword [rdi + 0x30], ecx
jne 0x18007baa4
mov edx, 0x11
mov rcx, r12
call fcn.1800298c0
mov dword [rsp + 0x44], eax
lea rbx, [rsi + 8]
cmp rbx, rdi
jae 0x18007bb62
mov rsi, qword [rbx + 0x28]
test rsi, rsi
je 0x18007bb55
test byte [rbx + 0x40], 0x10
jne 0x18007bb55
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x18007bb55
mov rax, qword [rbx + 0x20]
mov r10, qword [rax + 0x70]
mov rax, qword [rdi + 0x20]
cmp r10, qword [rax + 0x70]
jne 0x18007bb55
mov r9, qword [rdi + 0x10]
test r9, r9
je 0x18007bb55
sub r9, rdx
movzx eax, byte [rdx]
movzx r8d, byte [rdx + r9]
cmp eax, r8d
jne 0x18007bb95
test eax, eax
jne 0x18007bbaa
test r10, r10
jne 0x18007bb1d
mov rcx, qword [rdi + 0x28]
mov eax, dword [rsi + 0x10]
cmp dword [rcx + 0x10], eax
jne 0x18007bb55
mov rdx, qword [rdi + 0x28]
mov r9d, 0xffffffff
mov r8, qword [rsi + 0x30]
xor ecx, ecx
mov rdx, qword [rdx + 0x30]
call fcn.180049f00
test eax, eax
jne 0x18007bb55
mov rdx, qword [rdi + 0x28]
lea r9d, [rax - 1]
mov r8, qword [rsi + 0x40]
xor ecx, ecx
mov rdx, qword [rdx + 0x40]
call fcn.180049f00
test eax, eax
je 0x18007bb65
add rbx, 0x70
cmp rbx, rdi
jb 0x18007bab1
mov rbx, r15
test rbx, rbx
je 0x18007bbb2
mov r9d, dword [rbx + 0x44]
mov edx, 0x62
mov r8d, dword [rdi + 0x44]
mov rcx, r12
call fcn.1800299a0
mov rax, qword [rbx + 0x28]
mov rbx, qword [rbp + 0xf0]
movzx ecx, word [rax + 2]
mov word [r13 + 2], cx
jmp 0x18007bbfb
lea r11, [0x1800cfb70]
movzx ecx, byte [rax + r11]
movzx eax, byte [r8 + r11]
cmp ecx, eax
jne 0x18007bb55
inc rdx
jmp 0x18007baf3
mov eax, dword [rdi + 0x44]
lea r8, str.MATERIALIZE__u
mov rbx, qword [rbp + 0xf0]
mov edx, 1
mov dword [rbp - 0xc], eax
mov rcx, rbx
mov byte [rbp - 0x10], 0xc
mov qword [rbp - 8], r15
mov qword [rbp + 8], r15
mov dword [rbp], r15d
mov r9d, dword [r13 + 0x10]
call fcn.18002a080
lea r8, [rbp - 0x10]
mov rdx, r13
mov rcx, rbx
call fcn.18007b320
movzx ecx, word [r13 + 2]
mov rax, qword [rdi + 0x20]
mov word [rax + 0x4a], cx
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x18007bc15
mov edx, eax
mov rcx, r12
call fcn.18002a7b0
mov r8d, dword [rdi + 0x34]
mov edx, 0x41
mov rcx, r12
call fcn.180029930
mov edx, eax
test r14d, r14d
jns 0x18007bc38
mov r14d, dword [r12 + 0x90]
dec r14d
mov rcx, qword [r12]
cmp byte [rcx + 0x61], r15b
je 0x18007bc4b
lea rcx, [0x1800e67d0]
jmp 0x18007bc5e
movsxd rax, r14d
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea rcx, [rax + rcx*8]
mov r14, qword [rbp + 0xf8]
mov dword [rcx + 4], edx
mov rax, qword [rsp + 0x58]
mov byte [rbx + 0x1f], r15b
mov dword [rbx + 0x28], r15d
cmp byte [rax + 0x61], r15b
jne 0x18007b657
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], r15d
mov rcx, r14
call fcn.180041b80
mov rax, qword [rbp - 0x18]
mov edx, dword [rsp + 0x44]
sub dword [rbx + 0x124], edx
mov rsi, qword [rbp - 0x20]
mov ecx, dword [rbp + 0x108]
mov r9, qword [rsp + 0x60]
mov qword [rbx + 0x160], rax
inc ecx
lea rdx, [0x1800c6874]
inc rsi
mov dword [rbp + 0x108], ecx
mov r11d, 0x1000
mov qword [rbp - 0x20], rsi
cmp ecx, dword [r9]
jl 0x18007b8b0
mov rcx, qword [rbp + 0xf8]
mov rsi, qword [r14 + 0x20]
mov r13, qword [r14 + 0x30]
mov r14, qword [r14 + 0x38]
mov rax, qword [rcx + 0x40]
movzx edi, byte [rcx + 4]
and dil, 1
mov qword [rbp + 0x20], rax
mov eax, dword [rcx + 4]
and al, 9
mov qword [rbp + 0x28], rsi
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x78], r14
mov byte [rbp + 0x108], dil
mov byte [rbp - 0x10], dil
cmp al, 1
jne 0x18007bd6b
mov rcx, qword [rsp + 0x78]
mov r8d, 0xffffffff
mov rdx, rsi
call fcn.18004a290
test eax, eax
jne 0x18007bd6b
mov rcx, qword [rbp + 0xf8]
cmp qword [rcx + 0x70], r15
jne 0x18007bd6b
and dword [rcx + 4], 0xfffffffe
xor r8d, r8d
mov rcx, qword [rsp + 0x58]
mov rdx, rsi
call fcn.180042cc0
mov r14, rax
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0xf8]
or dword [rax + 4], 8
mov qword [rax + 0x38], r14
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18007bea1
mov r9d, dword [rsi]
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.180073bd0
mov rsi, qword [rbp + 0xf0]
mov rbx, rax
mov rax, qword [rbp + 0x28]
mov r8d, dword [rsi + 0x34]
mov dword [rbp + 0x3c], r8d
lea ecx, [r8 + 1]
mov dword [rsi + 0x34], ecx
mov edx, dword [rax]
movsxd r10, dword [r12 + 0x90]
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x70], r10d
mov r9d, dword [rax]
inc r9d
add r9d, edx
cmp dword [r12 + 0x94], r10d
jg 0x18007bde9
mov edx, 0x64
mov dword [rsp + 0x20], r15d
mov rcx, r12
call fcn.1800297f0
mov r10d, eax
mov dword [rsp + 0x70], eax
jmp 0x18007be1c
lea rcx, [r10 + r10*2]
lea eax, [r10 + 1]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x64
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [r12]
mov eax, r10d
cmp byte [rcx + 0x61], r15b
je 0x18007be44
mov r8, rbx
mov edx, 0xfffffff7
call fcn.18002aad0
mov r10d, dword [rsp + 0x70]
mov ebx, r10d
mov dword [rbp + 0x48], r10d
jmp 0x18007beb6
test r10d, r10d
jns 0x18007be53
mov eax, dword [r12 + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
cmp byte [rax + rcx*8 + 1], r15b
lea rdx, [rax + rcx*8]
je 0x18007be8b
mov r9d, 0xfffffff7
mov r8, rbx
mov rcx, r12
call fcn.18002ace0
mov r10d, dword [rsp + 0x70]
mov ebx, r10d
mov dword [rbp + 0x48], r10d
jmp 0x18007beb6
test rbx, rbx
je 0x18007be98
mov qword [rdx + 0x10], rbx
mov byte [rdx + 1], 0xf7
mov dword [rbp + 0x48], r10d
mov ebx, r10d
jmp 0x18007beb6
mov rsi, qword [rbp + 0xf0]
mov eax, 0xffffffff
mov dword [rsp + 0x70], eax
mov ebx, eax
mov dword [rbp + 0x48], eax
mov rcx, qword [rbp + 0x100]
cmp byte [rcx], 0xc
jne 0x18007beda
mov rax, qword [rbp + 0x28]
mov edx, 0x64
mov r8d, dword [rcx + 4]
mov rcx, r12
mov r9d, dword [rax]
call fcn.1800299a0
dec dword [rsi + 0x44]
mov ecx, 0x4000
mov rax, qword [rbp + 0xf8]
mov r8d, dword [rsi + 0x44]
mov dword [rbp + 0x18], r8d
test dword [rax + 4], ecx
jne 0x18007beff
mov ecx, 0x140
mov word [rax + 2], cx
mov rdx, rax
mov rcx, rsi
call fcn.180075690
mov rdx, qword [rbp + 0xf8]
cmp dword [rdx + 8], r15d
jne 0x18007bf59
cmp dword [rsp + 0x70], r15d
jl 0x18007bf59
test ebx, ebx
jns 0x18007bf2c
mov ebx, dword [r12 + 0x90]
dec ebx
mov rax, qword [r12]
cmp byte [rax + 0x61], r15b
je 0x18007bf3f
lea rax, [0x1800e67d0]
jmp 0x18007bf52
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea rax, [rax + rcx*8]
or byte [rbp + 0x54], 1
mov byte [rax], 0x6f
test byte [rdx + 4], 1
je 0x18007c07d
mov edi, dword [rsi + 0x34]
xor r9d, r9d
xor r8d, r8d
mov dword [rbp - 0xc], edi
mov rcx, rsi
lea eax, [rdi + 1]
mov dword [rsi + 0x34], eax
mov rdx, qword [rdx + 0x20]
call fcn.180073bd0
movsxd rbx, dword [r12 + 0x90]
mov rsi, rax
cmp dword [r12 + 0x94], ebx
jg 0x18007bfb1
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, edi
mov rcx, r12
lea edx, [r9 + 0x64]
call fcn.1800297f0
mov ebx, eax
jmp 0x18007bfdd
lea rcx, [rbx + rbx*2]
lea eax, [rbx + 1]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x64
mov dword [rax + rcx*8 + 4], edi
mov qword [rax + rcx*8 + 8], r15
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [r12]
mov eax, ebx
cmp byte [rcx + 0x61], r15b
je 0x18007bff8
mov r8, rsi
mov edx, 0xfffffff7
call fcn.18002aad0
jmp 0x18007c03f
test ebx, ebx
jns 0x18007c006
mov eax, dword [r12 + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
cmp byte [rax + rcx*8 + 1], r15b
lea rdx, [rax + rcx*8]
je 0x18007c032
mov r9d, 0xfffffff7
mov r8, rsi
mov rcx, r12
call fcn.18002ace0
jmp 0x18007c03f
test rsi, rsi
je 0x18007c03f
mov qword [rdx + 0x10], rsi
mov byte [rdx + 1], 0xf7
movsxd rax, dword [r12 + 0x90]
mov dword [rbp - 8], ebx
test eax, eax
jle 0x18007c064
lea rcx, [rax + rax*2]
mov edx, 8
mov rax, qword [r12 + 0x88]
mov word [rax + rcx*8 - 0x16], dx
mov rsi, qword [rbp + 0xf0]
mov al, 3
movzx edi, byte [rbp + 0x108]
mov rdx, qword [rbp + 0xf8]
jmp 0x18007c07f
xor al, al
mov byte [rbp - 0xf], al
mov dword [rbp - 0x6c], eax
cmp dword [rsp + 0x40], r15d
jne 0x18007c2b7
test r14, r14
jne 0x18007c2b7
movzx eax, dil
mov ecx, 0x4000
mov rdi, qword [rdx + 0x70]
neg al
movzx eax, word [rdx + 4]
sbb bx, bx
and ax, cx
and bx, 0x100
or bx, ax
test rdi, rdi
je 0x18007c0ce
mov rcx, rsi
call fcn.1800974f0
mov rdx, qword [rbp + 0xf8]
movsx eax, word [rdx + 2]
mov r8, r13
mov rsi, qword [rsp + 0x78]
mov dword [rsp + 0x30], eax
mov r9, rsi
mov rax, qword [rdx + 0x20]
mov rdx, qword [rsp + 0x60]
mov word [rsp + 0x28], bx
mov rbx, qword [rbp + 0xf0]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180093860
mov r13, rax
test rax, rax
je 0x18007b657
mov r10, qword [rbp + 0xf8]
movzx eax, word [rax + 0x48]
cmp ax, word [r10 + 2]
jge 0x18007c126
mov word [r10 + 2], ax
cmp byte [rbp + 0x108], r15b
je 0x18007c145
movzx ecx, byte [r13 + 0x43]
mov eax, dword [rbp - 0x6c]
test cl, cl
movzx eax, al
cmovne eax, ecx
mov dword [rbp - 0x6c], eax
mov byte [rbp - 0xf], al
test rsi, rsi
je 0x18007c181
test byte [r13 + 0x44], 4
movsx edx, byte [r13 + 0x41]
mov dword [rbp + 0x38], edx
jne 0x18007c15f
mov eax, dword [r13 + 0x30]
jmp 0x18007c174
movzx eax, byte [r13 + 0x40]
lea rcx, [rax + rax*2]
shl rcx, 5
mov eax, dword [rcx + r13 + 0x310]
cmp edx, dword [rsi]
mov dword [rbp + 0x50], eax
cmove rsi, r15
mov qword [rbp + 0x30], rsi
mov eax, dword [rsp + 0x70]
test eax, eax
js 0x18007c19f
test rsi, rsi
jne 0x18007c19f
mov edx, eax
mov rcx, r12
call fcn.18002ac80
mov r10, qword [rbp + 0xf8]
mov rdx, r10
test rdi, rdi
je 0x18007c269
mov rax, qword [rbp + 0xf0]
mov r8, r13
mov esi, dword [rbx + 0x44]
mov rcx, rax
inc dword [rax + 0x38]
mov edi, dword [rax + 0x38]
lea ebx, [rsi - 1]
sub esi, 2
mov dword [rsp + 0x20], ebx
mov r9d, edi
lea r14d, [rsi - 1]
mov dword [rax + 0x44], r14d
call fcn.18009afc0
xor r8d, r8d
mov r9d, r14d
mov rcx, r12
lea edx, [r8 + 0xb]
call fcn.1800299a0
mov edx, ebx
mov rcx, r12
call fcn.18002a490
mov rax, qword [rbp + 0x100]
lea r9, [rbp + 0x30]
mov r13, qword [rbp + 0xf8]
mov r8d, 0xffffffff
mov rbx, qword [rbp + 0xf0]
mov rdx, r13
mov dword [rsp + 0x38], r14d
mov rcx, rbx
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x50], r15d
call fcn.180072ae0
mov edx, esi
mov rcx, r12
call fcn.18002a490
mov r8d, edi
mov edx, 0x41
mov rcx, r12
call fcn.180029930
mov edx, r14d
mov rcx, r12
call fcn.18002a490
mov rsi, r15
jmp 0x18007dedc
mov eax, dword [r13 + 0x34]
lea r9, [rbp + 0x30]
mov rdi, qword [rbp + 0x100]
mov r8d, 0xffffffff
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov eax, dword [r13 + 0x30]
mov dword [rsp + 0x30], eax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call fcn.180072ae0
mov rcx, r13
call fcn.180094680
mov r13, qword [rbp + 0xf8]
mov rsi, r15
jmp 0x18007dee3
mov dword [rsp + 0x74], r15d
mov dword [rbp - 0x70], r15d
mov dword [rbp - 0x28], r15d
test r14, r14
je 0x18007c383
mov rcx, qword [rdx + 0x20]
mov eax, dword [rcx]
test eax, eax
jle 0x18007c2ee
add rcx, 0x22
nop dword [rax + rax]
dec eax
mov word [rcx], r15w
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x18007c2e0
mov eax, dword [r14]
test eax, eax
jle 0x18007c30e
lea rcx, [r14 + 0x22]
nop dword [rax]
dec eax
mov word [rcx], r15w
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x18007c300
cmp word [rdx + 2], 0x42
jle 0x18007c31e
mov eax, 0x42
mov word [rdx + 2], ax
mov r9, qword [rsp + 0x78]
test r9, r9
je 0x18007c388
mov eax, dword [r14]
cmp eax, dword [r9]
jne 0x18007c388
mov edx, r15d
test eax, eax
jle 0x18007c365
mov r8, r9
lea rcx, [r14 + 0x18]
sub r8, r14
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
lea rcx, [rcx + 0x20]
and al, 1
inc edx
mov byte [rcx - 0x20], al
cmp edx, dword [r14]
jl 0x18007c350
mov r8d, 0xffffffff
mov rdx, r9
mov rcx, r14
call fcn.18004a290
test eax, eax
jne 0x18007c388
mov dword [rbp - 0x28], 1
jmp 0x18007c388
mov word [rdx + 2], r15w
mov rbx, qword [rbp + 0xf0]
mov edx, 0x48
mov rcx, qword [rsp + 0x58]
dec dword [rbx + 0x44]
mov eax, dword [rbx + 0x44]
mov dword [rsp + 0x4c], eax
call fcn.180004880
mov qword [rsp + 0x68], rax
mov r13, rax
test rax, rax
je 0x18007b657
xor eax, eax
xorps xmm0, xmm0
mov qword [r13], rax
xorps xmm1, xmm1
mov qword [r13 + 8], rax
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rax
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rax
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rax
mov qword [r13 + 0x40], rax
mov rax, qword [rbx + 0xb8]
mov qword [r13 + 0x40], rax
mov rax, qword [rbp + 0xf8]
mov qword [rbx + 0xb8], r13
mov eax, dword [rax + 0x10]
mov dword [r13 + 0x3c], eax
mov rax, qword [rsp + 0x60]
mov qword [rbp + 0x68], rax
mov eax, dword [rbx + 0x38]
inc eax
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x70], r13
movdqu xmmword [rbp + 0x78], xmm0
movdqu xmmword [rbp + 0x88], xmm1
mov dword [r13 + 0x10], eax
test r14, r14
je 0x18007c436
mov eax, dword [r14]
jmp 0x18007c439
mov eax, r15d
mov rsi, qword [rbp + 0x28]
mov dword [r13 + 0xc], eax
mov qword [r13 + 0x18], r14
test rsi, rsi
je 0x18007c4b4
lea rbx, [rsi + 8]
mov edi, r15d
cmp dword [rsi], r15d
jle 0x18007c4b4
lea r13, [0x18004aa50]
lea r12, [0x18003df80]
lea r14, [0x18003df90]
nop dword [rax + rax]
mov rdx, qword [rbx]
lea rax, [rbp + 0x60]
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], r14
mov dword [rbp - 0x38], r15d
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x58], r15
test rdx, rdx
je 0x18007c49d
lea rcx, [rbp - 0x58]
call fcn.18003dc60
inc edi
add rbx, 0x20
cmp edi, dword [rsi]
jl 0x18007c470
mov r12, qword [rbp - 0x68]
mov r13, qword [rsp + 0x68]
mov r14, qword [rbp - 0x78]
mov rsi, qword [rsp + 0x78]
test rsi, rsi
je 0x18007c524
lea rbx, [rsi + 8]
mov edi, r15d
cmp dword [rsi], r15d
jle 0x18007c524
lea r13, [0x18004aa50]
lea r12, [0x18003df80]
lea r14, [0x18003df90]
nop
mov rdx, qword [rbx]
lea rax, [rbp + 0x60]
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], r14
mov dword [rbp - 0x38], r15d
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x58], r15
test rdx, rdx
je 0x18007c50d
lea rcx, [rbp - 0x58]
call fcn.18003dc60
inc edi
add rbx, 0x20
cmp edi, dword [rsi]
jl 0x18007c4e0
mov r12, qword [rbp - 0x68]
mov r13, qword [rsp + 0x68]
mov r14, qword [rbp - 0x78]
mov rcx, qword [rbp + 0x20]
test rcx, rcx
je 0x18007c5be
test r14, r14
je 0x18007c581
mov rbx, qword [rbp + 0xf8]
xorps xmm0, xmm0
mov rax, qword [rbp + 0xf0]
mov qword [rbp - 0x58], rax
lea rax, [0x18007b120]
movdqu xmmword [rbp - 0x48], xmm0
mov rdx, qword [rbx + 0x40]
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x30], rbx
test rdx, rdx
je 0x18007c579
lea rcx, [rbp - 0x58]
call fcn.18003dc60
mov rcx, qword [rbp + 0x20]
mov rax, qword [rbx + 0x30]
mov qword [rbp - 0x20], rax
lea rax, [0x18004aa50]
mov dword [rbp - 0x38], r15d
mov qword [rbp - 0x50], rax
mov rdx, rcx
lea rax, [0x18003df80]
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x48], rax
lea rcx, [rbp - 0x58]
lea rax, [0x18003df90]
mov qword [rbp - 0x40], rax
lea rax, [rbp + 0x60]
mov qword [rbp - 0x30], rax
call fcn.18003dc60
mov rdi, qword [rbp + 0xf8]
mov eax, dword [r13 + 0x28]
mov dword [r13 + 0x2c], eax
cmp qword [rdi + 0x38], r15
jne 0x18007c6d0
cmp qword [rdi + 0x40], r15
jne 0x18007c6d0
cmp dword [r13 + 0x38], 1
jne 0x18007c6d0
mov rax, qword [r13 + 0x30]
mov r9, qword [rax]
mov r11, qword [r9 + 0x20]
test r11, r11
je 0x18007c6d0
cmp dword [r11], 1
jne 0x18007c6d0
test dword [r9 + 4], 0x1000000
jne 0x18007c6d0
mov r9, qword [r9 + 8]
lea r10, [0x1800ca564]
mov rdx, r9
sub r10, r9
nop dword [rax]
movzx eax, byte [rdx]
movzx r8d, byte [rdx + r10]
cmp eax, r8d
jne 0x18007c658
test eax, eax
jne 0x18007c66c
mov rcx, qword [r11 + 8]
call fcn.1800440d0
neg eax
mov eax, 1
sbb bl, bl
and bl, 2
jmp 0x18007c698
lea rbx, [0x1800cfb70]
movzx ecx, byte [rax + rbx]
movzx eax, byte [r8 + rbx]
cmp ecx, eax
jne 0x18007c671
inc rdx
jmp 0x18007c630
lea r8, [0x1800ca568]
sub r8, r9
nop dword [rax + rax]
movzx eax, byte [r9]
movzx edx, byte [r9 + r8]
cmp eax, edx
jne 0x18007c6bf
test eax, eax
jne 0x18007c6cb
mov bl, 1
mov eax, 2
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
mov rdx, r11
mov dword [rsp + 0x40], eax
call fcn.180042cc0
mov qword [rbp - 0x60], rax
test rax, rax
je 0x18007c6b8
mov byte [rax + 0x18], bl
mov r14d, dword [rsp + 0x40]
jmp 0x18007c6d9
movzx ecx, byte [rax + rbx]
movzx eax, byte [rdx + rbx]
cmp ecx, eax
jne 0x18007c6d0
inc r9
jmp 0x18007c680
movzx r14d, r15w
mov dword [rsp + 0x40], r14d
mov ebx, r15d
mov dword [rsp + 0x50], ebx
cmp dword [r13 + 0x38], r15d
jle 0x18007c80a
mov rdi, qword [rsp + 0x68]
lea r12, [0x18004aa50]
mov r13, r15
mov qword [rsp + 0x78], r15
nop
mov rax, qword [rdi + 0x30]
mov r14, qword [rax + r13]
or dword [rbp + 0x88], 0x20000
mov qword [rbp - 0x18], r14
mov rsi, qword [r14 + 0x20]
test rsi, rsi
je 0x18007c789
lea rbx, [rsi + 8]
mov edi, r15d
cmp dword [rsi], r15d
jle 0x18007c780
lea r14, [0x18003df80]
lea r13, [0x18003df90]
nop dword [rax]
mov rdx, qword [rbx]
lea rax, [rbp + 0x60]
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], r13
mov dword [rbp - 0x38], r15d
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x58], r15
test rdx, rdx
je 0x18007c76d
lea rcx, [rbp - 0x58]
call fcn.18003dc60
inc edi
add rbx, 0x20
cmp edi, dword [rsi]
jl 0x18007c740
mov r14, qword [rbp - 0x18]
mov r13, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x50]
test dword [r14 + 4], 0x1000000
je 0x18007c7d3
mov rax, qword [r14 + 0x40]
mov qword [rbp - 0x50], r12
mov dword [rbp - 0x38], r15d
mov qword [rbp - 0x58], r15
mov rdx, qword [rax + 0x48]
lea rax, [0x18003df80]
mov qword [rbp - 0x48], rax
lea rax, [0x18003df90]
mov qword [rbp - 0x40], rax
lea rax, [rbp + 0x60]
mov qword [rbp - 0x30], rax
test rdx, rdx
je 0x18007c7d3
lea rcx, [rbp - 0x58]
call fcn.18003dc60
and dword [rbp + 0x88], 0xfffdffff
inc ebx
add r13, 0x18
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x78], r13
cmp ebx, dword [rdi + 0x38]
jl 0x18007c700
mov r12, qword [rbp - 0x68]
mov r14d, dword [rsp + 0x40]
mov r13, qword [rsp + 0x68]
mov rdi, qword [rbp + 0xf8]
mov rbx, qword [rbp + 0xf0]
mov eax, dword [rbx + 0x38]
mov dword [r13 + 0x14], eax
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x61], r15b
jne 0x18007dfb1
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x18007d8ad
mov eax, dword [rbx + 0x34]
mov rdx, rcx
mov dword [r13 + 4], eax
xor r8d, r8d
inc dword [rbx + 0x34]
mov rcx, rbx
mov r9d, dword [r13 + 0x28]
call fcn.180073bd0
movsxd r9, dword [r12 + 0x90]
mov r14, rax
mov edx, dword [r13 + 0xc]
mov r8d, dword [r13 + 4]
mov qword [rbp - 0x18], rax
mov dword [rsp + 0x78], r9d
cmp dword [r12 + 0x94], r9d
jg 0x18007c894
mov r9d, edx
mov dword [rsp + 0x20], r15d
mov edx, 0x6f
mov rcx, r12
call fcn.1800297f0
mov r9d, eax
mov dword [rsp + 0x78], eax
jmp 0x18007c8c6
lea rcx, [r9 + r9*2]
lea eax, [r9 + 1]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x6f
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [r12]
mov eax, r9d
cmp byte [rcx + 0x61], r15b
je 0x18007c8e2
mov r8, r14
mov edx, 0xfffffff7
call fcn.18002aad0
jmp 0x18007c92a
test r9d, r9d
jns 0x18007c8f1
mov eax, dword [r12 + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
cmp byte [rax + rcx*8 + 1], r15b
lea rdx, [rax + rcx*8]
je 0x18007c91d
mov r9d, 0xfffffff7
mov r8, r14
mov rcx, r12
call fcn.18002ace0
jmp 0x18007c92a
test r14, r14
je 0x18007c92a
mov qword [rdx + 0x10], r14
mov byte [rdx + 1], 0xf7
mov eax, dword [rbx + 0x38]
mov r9, qword [rbp - 0x78]
inc eax
mov r8, qword [rbp + 0xf0]
mov dword [rbp - 0x68], eax
lea edx, [rax + 1]
mov eax, dword [rbx + 0x44]
dec eax
mov dword [rbp - 0x80], edx
lea esi, [rdx + 2]
mov dword [rsp + 0x50], eax
mov dword [rbx + 0x38], esi
mov dword [rsp + 0x40], esi
lea edi, [rax - 1]
mov dword [rbx + 0x44], edi
lea ebx, [rsi + 1]
mov ecx, dword [r9]
add ecx, esi
mov dword [rsp + 0x44], edi
mov dword [r8 + 0x38], ecx
lea eax, [rcx + 1]
add ecx, dword [r9]
mov dword [r8 + 0x38], ecx
movsxd rcx, dword [r12 + 0x90]
mov dword [rbp - 0x24], eax
cmp dword [r12 + 0x94], ecx
jg 0x18007c9a8
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov r9d, edx
mov rcx, r12
lea edx, [r8 + 0x45]
call fcn.1800297f0
mov r9, qword [rbp - 0x78]
jmp 0x18007c9d5
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov r8d, dword [r9]
movsxd rcx, dword [r12 + 0x90]
dec r8d
add r8d, ebx
cmp dword [r12 + 0x94], ecx
jg 0x18007ca09
mov dword [rsp + 0x20], r8d
mov r9d, ebx
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 0x48]
call fcn.1800297f0
jmp 0x18007ca36
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov qword [rax + rcx*8], 0x48
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007ca62
mov r9d, edi
mov dword [rsp + 0x20], r15d
mov r8d, esi
mov edx, 0xc
mov rcx, r12
call fcn.1800297f0
jmp 0x18007ca92
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0xc
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
cmp dword [rbp - 0x28], r15d
mov eax, 0x40
mov rdi, qword [rbp - 0x78]
mov ecx, 0x240
mov rbx, qword [rbp + 0xf0]
cmovne ax, cx
mov r8, qword [rbp - 0x20]
mov r9, rdi
mov rdx, qword [rsp + 0x60]
mov rcx, rbx
mov dword [rsp + 0x30], r15d
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r15
call fcn.180093860
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18007dfac
movsx ecx, byte [rax + 0x41]
cmp ecx, dword [rdi]
jne 0x18007caf5
mov rdi, qword [rsp + 0x68]
mov r13d, r15d
jmp 0x18007ce7d
cmp byte [rbp + 0x108], r15b
je 0x18007cb12
mov rax, qword [rbp + 0xf8]
lea r9, str.DISTINCT
test byte [rax + 4], 1
je 0x18007cb19
lea r9, str.GROUP_BY
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
mov rcx, rbx
call fcn.18002a080
mov r14d, dword [rdi]
mov esi, r14d
mov eax, dword [r13 + 0x28]
mov edx, r14d
mov dword [rbp + 0x108], 1
test eax, eax
jle 0x18007cb70
mov r8, qword [r13 + 0x20]
mov r9d, eax
add r8, 0x1a
movsx ecx, word [r8]
lea eax, [rsi + 1]
cmp ecx, edx
lea r8, [r8 + 0x20]
cmovl eax, esi
mov esi, eax
lea eax, [rdx + 1]
cmovl eax, edx
mov edx, eax
sub r9, 1
jne 0x18007cb50
cmp esi, 1
jne 0x18007cb98
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x18007cb86
inc dword [rbx + 0x38]
mov r13d, dword [rbx + 0x38]
jmp 0x18007cbbd
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r13d, dword [rbx + rax*4 + 0xd4]
jmp 0x18007cbbd
mov ecx, dword [rbx + 0x28]
mov r13d, dword [rbx + 0x2c]
cmp esi, ecx
jg 0x18007cbb1
lea eax, [rsi + r13]
sub ecx, esi
mov dword [rbx + 0x2c], eax
mov dword [rbx + 0x28], ecx
jmp 0x18007cbbd
mov eax, dword [rbx + 0x38]
lea r13d, [rax + 1]
add eax, esi
mov dword [rbx + 0x38], eax
xor r9d, r9d
mov byte [rsp + 0x20], r15b
mov r8d, r13d
mov rdx, rdi
mov rcx, rbx
call fcn.1800491e0
mov rax, qword [rsp + 0x68]
mov edi, r15d
cmp dword [rax + 0x28], r15d
jle 0x18007cc35
mov rbx, r15
mov r15, rax
nop word [rax + rax]
mov rdx, qword [r15 + 0x20]
add rdx, rbx
movsx eax, word [rdx + 0x1a]
cmp eax, r14d
jl 0x18007cc1f
movsx r9d, word [rdx + 0x18]
lea eax, [r14 + r13]
mov r8d, dword [rdx + 0x10]
mov rcx, r12
mov rdx, qword [rdx]
mov dword [rsp + 0x20], eax
call fcn.180047360
inc r14d
inc edi
add rbx, 0x20
cmp edi, dword [r15 + 0x28]
jl 0x18007cbf0
mov rbx, qword [rbp + 0xf0]
xor r15d, r15d
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x18007cc45
inc dword [rbx + 0x38]
mov ebx, dword [rbx + 0x38]
jmp 0x18007cc54
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov ebx, dword [rbx + rax*4 + 0xd4]
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007cc7f
mov r9d, esi
mov dword [rsp + 0x20], ebx
mov r8d, r13d
mov edx, 0x5b
mov rcx, r12
call fcn.1800297f0
jmp 0x18007ccaf
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x5b
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], r15
mov rdi, qword [rsp + 0x68]
movsxd rcx, dword [r12 + 0x90]
mov edx, dword [rdi + 4]
cmp dword [r12 + 0x94], ecx
jg 0x18007cce3
mov r8d, edx
mov dword [rsp + 0x20], r15d
mov edx, 0x84
mov r9d, ebx
mov rcx, r12
call fcn.1800297f0
jmp 0x18007cd13
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x84
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
test ebx, ebx
je 0x18007cd38
mov rcx, qword [rbp + 0xf0]
movzx eax, byte [rcx + 0x1f]
cmp al, 8
jae 0x18007cd38
movzx eax, al
mov dword [rcx + rax*4 + 0xd4], ebx
mov rbx, rcx
inc byte [rcx + 0x1f]
jmp 0x18007cd3f
mov rbx, qword [rbp + 0xf0]
cmp esi, 1
jne 0x18007cd61
test r13d, r13d
je 0x18007cd6d
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x18007cd6d
movzx eax, al
mov dword [rbx + rax*4 + 0xd4], r13d
inc byte [rbx + 0x1f]
jmp 0x18007cd6d
cmp esi, dword [rbx + 0x28]
jle 0x18007cd6d
mov dword [rbx + 0x28], esi
mov dword [rbx + 0x2c], r13d
mov rcx, qword [rsp + 0x60]
call fcn.180094680
mov edx, dword [rbx + 0x34]
mov dword [rdi + 8], edx
inc dword [rbx + 0x34]
movzx eax, byte [rbx + 0x1f]
mov dword [rsp + 0x74], edx
test al, al
jne 0x18007cd95
inc dword [rbx + 0x38]
mov r8d, dword [rbx + 0x38]
jmp 0x18007cda5
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r8d, dword [rbx + rax*4 + 0xd4]
movsxd rcx, dword [r12 + 0x90]
mov dword [rbp - 0x70], r8d
cmp dword [r12 + 0x94], ecx
jg 0x18007cdd4
mov r9d, r8d
mov dword [rsp + 0x20], esi
mov r8d, edx
mov rcx, r12
mov edx, 0x72
call fcn.1800297f0
jmp 0x18007ce04
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x72
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
mov edx, dword [rdi + 4]
cmp dword [r12 + 0x94], ecx
jg 0x18007ce35
mov r9d, dword [rsp + 0x4c]
mov r8d, edx
mov edx, 0x23
mov dword [rsp + 0x20], r15d
mov rcx, r12
call fcn.1800297f0
jmp 0x18007ce69
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x4c]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], 0x23
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov r14, qword [rbp - 0x18]
mov r13d, dword [rbp + 0x108]
mov rax, qword [rsp + 0x60]
mov byte [rdi + 1], 1
cmp dword [rbp - 0x28], 0
je 0x18007ced4
mov rcx, qword [rsp + 0x58]
test byte [rcx + 0x5c], 4
jne 0x18007ced4
test r13d, r13d
jne 0x18007ce99
test byte [rax + 0x44], 8
je 0x18007ced4
mov rcx, qword [r12]
mov qword [rbp + 0x30], r15
cmp byte [rcx + 0x61], 0
jne 0x18007ced4
movsxd rax, dword [rsp + 0x70]
lea rdx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
mov r8, qword [rax + rdx*8 + 0x10]
lea rbx, [rax + rdx*8]
movsx edx, byte [rax + rdx*8 + 1]
call fcn.18002aad0
mov word [rbx], 0xae
mov qword [rbx + 0x10], r15
movsxd rsi, dword [r12 + 0x90]
mov dword [rbp + 0x108], esi
test r13d, r13d
je 0x18007cf10
mov edx, dword [rdi + 4]
cmp dword [r12 + 0x94], esi
jg 0x18007cf6f
mov eax, dword [rsp + 0x74]
mov r8d, edx
mov r9d, dword [rbp - 0x70]
mov edx, 0x7e
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.1800297f0
mov r10d, dword [rsp + 0x74]
mov rax, qword [rbp - 0x78]
mov ebx, r15d
mov edx, dword [rax]
test edx, edx
jle 0x18007d016
mov r14d, dword [rbp - 0x24]
lea rdi, [rax + 8]
mov rsi, qword [rsp + 0x68]
lea r8d, [r14 + rbx]
test r13d, r13d
je 0x18007cfe1
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007cfae
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, r10d
mov edx, 0x59
mov rcx, r12
call fcn.1800297f0
jmp 0x18007cff3
mov r8d, dword [rbp - 0x70]
lea rcx, [rsi + rsi*2]
mov r10d, dword [rsp + 0x74]
lea eax, [rsi + 1]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x7e
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r10d
mov qword [rax + rcx*8 + 0x10], r15
jmp 0x18007cf15
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x59
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r15
jmp 0x18007cff8
mov rcx, qword [rbp + 0xf0]
mov byte [rsi], 1
mov rdx, qword [rdi]
call fcn.180049070
mov r10d, dword [rsp + 0x74]
mov rax, qword [rbp - 0x78]
inc ebx
add rdi, 0x20
mov edx, dword [rax]
cmp ebx, edx
jl 0x18007cf33
mov esi, dword [rbp + 0x108]
mov r14, qword [rbp - 0x18]
test r14, r14
je 0x18007d020
inc dword [r14]
mov edx, dword [rax]
movsxd r8, dword [r12 + 0x90]
mov edi, dword [rbp - 0x24]
cmp dword [r12 + 0x94], r8d
jg 0x18007d056
mov r8d, dword [rsp + 0x40]
mov r9d, edi
mov dword [rsp + 0x20], edx
inc r8d
mov edx, 0x56
mov rcx, r12
call fcn.1800297f0
mov r8d, eax
jmp 0x18007d08f
mov r9d, dword [rsp + 0x40]
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
inc r9d
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x56
mov dword [rax + rcx*8 + 4], r9d
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [r12]
cmp byte [rcx + 0x61], 0
je 0x18007d0a8
mov r8, r14
mov edx, 0xfffffff7
call fcn.18002aad0
jmp 0x18007d0f2
test r8d, r8d
jns 0x18007d0b8
mov r8d, dword [r12 + 0x90]
dec r8d
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x18007d0e5
mov r9d, 0xfffffff7
mov r8, r14
mov rcx, r12
call fcn.18002ace0
jmp 0x18007d0f2
test r14, r14
je 0x18007d0f2
mov qword [rdx + 0x10], r14
mov byte [rdx + 1], 0xf7
movsxd rbx, dword [r12 + 0x90]
lea edx, [rbx + 1]
cmp dword [r12 + 0x94], ebx
jg 0x18007d11f
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, edx
mov rcx, r12
lea edx, [r9 + 0x10]
call fcn.1800297f0
jmp 0x18007d14c
mov rax, qword [r12 + 0x88]
lea rcx, [rbx + rbx*2]
mov dword [r12 + 0x90], edx
mov dword [rax + rcx*8], 0x10
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r15
mov rax, qword [rbp - 0x78]
mov edx, dword [rax]
mov rax, qword [rbp + 0xf0]
mov r10, qword [rax + 0x10]
movsxd rcx, dword [r10 + 0x90]
cmp dword [r10 + 0x94], ecx
jg 0x18007d18f
mov r9d, dword [rsp + 0x40]
mov r8d, edi
mov dword [rsp + 0x20], edx
inc r9d
mov edx, 0x4c
mov rcx, r10
call fcn.1800297f0
mov edi, dword [rsp + 0x40]
jmp 0x18007d1c5
lea eax, [rcx + 1]
mov dword [r10 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r10 + 0x88]
mov dword [rax + rcx*8 + 4], edi
mov edi, dword [rsp + 0x40]
mov dword [rax + rcx*8], 0x4c
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r15
lea r8d, [rdi + 1]
mov dword [rax + rcx*8 + 8], r8d
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d1fe
mov r14d, dword [rbp - 0x80]
mov edx, 0xc
mov r9d, dword [rsp + 0x50]
inc r14d
mov r8d, r14d
mov dword [rsp + 0x20], r15d
mov rcx, r12
call fcn.1800297f0
mov r8d, dword [rbp - 0x80]
jmp 0x18007d23b
mov r8d, dword [rbp - 0x80]
lea eax, [rcx + 1]
mov edx, dword [rsp + 0x50]
lea rcx, [rcx + rcx*2]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
lea r14d, [r8 + 1]
mov dword [rax + rcx*8], 0xc
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d266
mov r9d, dword [rsp + 0x4c]
mov edx, 0x30
mov rcx, r12
mov dword [rsp + 0x20], r15d
call fcn.1800297f0
jmp 0x18007d29b
mov edx, dword [rsp + 0x4c]
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x30
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d2c9
mov r9d, dword [rsp + 0x44]
mov r8d, edi
mov edx, 0xc
mov dword [rsp + 0x20], r15d
mov rcx, r12
call fcn.1800297f0
jmp 0x18007d2fd
mov edx, dword [rsp + 0x44]
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0xc
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov rax, qword [r12]
mov edx, dword [r12 + 0x90]
cmp byte [rax + 0x61], 0
je 0x18007d318
lea rax, [0x1800e67d0]
jmp 0x18007d332
lea eax, [rdx - 1]
test ebx, ebx
cmovns eax, ebx
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea rax, [rax + rcx*8]
mov ebx, dword [rbp - 0x68]
mov r8, qword [rsp + 0x68]
mov rcx, qword [rbp + 0xf0]
mov dword [rax + 8], edx
mov edx, ebx
call fcn.18007ab80
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d378
mov edx, 0x45
mov dword [rsp + 0x20], r15d
mov r9d, ebx
mov rcx, r12
lea r8d, [rdx - 0x44]
call fcn.1800297f0
jmp 0x18007d3ac
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
test r13d, r13d
je 0x18007d418
mov r13, qword [rsp + 0x68]
movsxd rcx, dword [r12 + 0x90]
mov edx, dword [r13 + 4]
cmp dword [r12 + 0x94], ecx
jg 0x18007d3e6
mov r8d, edx
mov dword [rsp + 0x20], r15d
mov edx, 3
mov r9d, esi
mov rcx, r12
call fcn.1800297f0
jmp 0x18007d45e
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 3
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
jmp 0x18007d45e
mov rcx, qword [rsp + 0x60]
call fcn.180094680
mov rcx, qword [r12]
cmp byte [rcx + 0x61], 0
jne 0x18007d459
movsxd rax, dword [rsp + 0x78]
lea rdx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
mov r8, qword [rax + rdx*8 + 0x10]
lea rbx, [rax + rdx*8]
movsx edx, byte [rax + rdx*8 + 1]
call fcn.18002aad0
mov word [rbx], 0xae
mov qword [rbx + 0x10], r15
mov r13, qword [rsp + 0x68]
movsxd rcx, dword [r12 + 0x90]
mov ebx, dword [rsp + 0x50]
cmp dword [r12 + 0x94], ecx
jg 0x18007d48e
mov r9d, ebx
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov edx, 0xc
mov rcx, r12
call fcn.1800297f0
jmp 0x18007d4bf
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0xc
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d4ec
mov r9d, dword [rsp + 0x4c]
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x20], r15d
lea edx, [r8 + 0xb]
call fcn.1800297f0
jmp 0x18007d51d
mov edx, dword [rsp + 0x4c]
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov qword [rax + rcx*8], 0xb
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rdi, dword [r12 + 0x90]
cmp dword [r12 + 0x94], edi
jg 0x18007d54b
mov r9d, dword [rbp - 0x80]
mov edx, 0x45
mov rcx, r12
mov dword [rsp + 0x20], r15d
lea r8d, [rdx - 0x44]
call fcn.1800297f0
jmp 0x18007d582
mov edx, dword [rbp - 0x80]
lea rcx, [rdi + rdi*2]
lea eax, [rdi + 1]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d5ad
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov rcx, r12
lea edx, [r9 + 0x41]
call fcn.1800297f0
jmp 0x18007d5de
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], r14d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [r12 + 0x18]
not ebx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18007d5fa
mov r8d, ebx
mov rdx, r12
call fcn.18002a420
jmp 0x18007d60d
mov rcx, qword [rcx + 0x50]
mov eax, dword [r12 + 0x90]
movsxd r8, ebx
mov dword [rcx + r8*4], eax
movsxd rax, dword [r12 + 0x90]
mov esi, dword [rbp - 0x68]
lea r8d, [rax + 2]
lea ebx, [rax + 1]
cmp dword [r12 + 0x94], eax
jg 0x18007d643
mov r9d, r8d
mov dword [rsp + 0x20], r15d
mov r8d, esi
mov edx, 0x30
mov rcx, r12
call fcn.1800297f0
jmp 0x18007d671
lea rcx, [rax + rax*2]
mov dword [r12 + 0x90], ebx
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x30
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d69c
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov rcx, r12
lea edx, [r9 + 0x41]
call fcn.1800297f0
jmp 0x18007d6cd
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], r14d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [rbp + 0xf0]
mov rdx, r13
call fcn.18007aa70
mov rdx, qword [rbp + 0x20]
mov r9d, 0x10
mov rcx, qword [rbp + 0xf0]
mov r8d, ebx
call fcn.180049a60
mov rax, qword [rbp + 0x100]
lea r9, [rbp + 0x30]
mov rdx, qword [rbp + 0xf8]
mov r8d, 0xffffffff
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x30], ebx
mov rbx, qword [rbp + 0xf0]
mov qword [rsp + 0x28], rax
mov rcx, rbx
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
call fcn.180072ae0
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d75d
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov rcx, r12
lea edx, [r9 + 0x41]
call fcn.1800297f0
jmp 0x18007d78e
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], r14d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r15
mov rcx, qword [r12 + 0x18]
mov edx, dword [rsp + 0x44]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18007d7ae
mov r8d, edx
mov rdx, r12
call fcn.18002a420
jmp 0x18007d7c1
mov rcx, qword [rcx + 0x50]
mov eax, dword [r12 + 0x90]
movsxd r8, edx
mov dword [rcx + r8*4], eax
mov rdx, r13
mov rcx, rbx
call fcn.18007a8c0
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d7f7
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov r9d, esi
mov rcx, r12
lea edx, [r8 + 0x45]
call fcn.1800297f0
jmp 0x18007d824
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007d863
mov r8d, dword [rsp + 0x40]
xor r9d, r9d
mov rcx, r12
mov dword [rsp + 0x20], r15d
lea edx, [r9 + 0x41]
call fcn.1800297f0
mov edi, dword [rsp + 0x4c]
mov r13, qword [rbp + 0xf8]
mov rsi, qword [rbp - 0x60]
jmp 0x18007deae
mov r10d, dword [rsp + 0x40]
lea eax, [rcx + 1]
mov edi, dword [rsp + 0x4c]
lea rcx, [rcx + rcx*2]
mov r13, qword [rbp + 0xf8]
mov rsi, qword [rbp - 0x60]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], r10d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r15
jmp 0x18007deae
cmp qword [rdi + 0x30], r15
jne 0x18007dc62
mov rdx, qword [rdi + 0x20]
cmp dword [rdx], 1
jne 0x18007dc62
mov rsi, qword [rdi + 0x28]
cmp dword [rsi], 1
jne 0x18007dc62
cmp qword [rsi + 0x30], r15
jne 0x18007dc62
mov rsi, qword [rsi + 0x28]
cmp dword [rsi + 0x54], r15d
jne 0x18007dc62
mov rdx, qword [rdx + 8]
cmp byte [rdx], 0xa5
jne 0x18007dc62
cmp dword [r13 + 0x38], r15d
je 0x18007dc62
mov rax, qword [r13 + 0x30]
mov rcx, qword [rax + 8]
test dword [rcx + 4], 0x100
je 0x18007dc62
test dword [rdx + 4], 0x1000002
jne 0x18007dc62
mov rdx, qword [rsi + 0x70]
mov edi, 0xffff8000
test rdx, rdx
je 0x18007d94e
mov rax, qword [rbx]
mov edi, r15d
mov rcx, qword [rax + 0x20]
add rcx, 0x18
cmp qword [rcx], rdx
je 0x18007d94e
inc edi
lea rcx, [rcx + 0x20]
cmp qword [rcx], rdx
jne 0x18007d943
mov r14d, dword [rbx + 0x34]
mov r13, r15
mov rcx, qword [rbp + 0xf0]
lea eax, [r14 + 1]
mov dword [rbx + 0x34], eax
mov rbx, r15
mov eax, dword [rsi + 0x38]
mov dword [rbp + 0x108], eax
mov rax, qword [rcx + 0xa0]
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x74]
bt eax, edi
jb 0x18007d995
bts eax, edi
mov dword [rcx + 0x74], eax
cmp edi, 1
jne 0x18007d995
call fcn.18005a580
mov rax, qword [rsi]
xor r9d, r9d
mov r8d, dword [rsi + 0x38]
mov edx, edi
mov rcx, qword [rbp + 0xf0]
mov qword [rsp + 0x20], rax
call fcn.180051740
test byte [rsi + 0x40], 0x80
je 0x18007d9d3
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x18007d9d3
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x18007d9d3
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18007d9c1
mov rax, qword [rbp + 0xf8]
mov rax, qword [rax + 0x28]
test byte [rax + 0x48], 1
jne 0x18007da1d
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x18007da1d
nop dword [rax]
test byte [rax + 0x64], 4
jne 0x18007da14
movzx ecx, word [rax + 0x5c]
cmp cx, word [rsi + 0x4c]
jge 0x18007da14
cmp qword [rax + 0x48], r15
jne 0x18007da14
test rbx, rbx
je 0x18007da11
cmp cx, word [rbx + 0x5c]
jge 0x18007da14
mov rbx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x18007d9f0
test rbx, rbx
je 0x18007da3d
mov eax, dword [rbx + 0x58]
mov rdx, rbx
mov rcx, qword [rbp + 0xf0]
mov dword [rbp + 0x108], eax
call fcn.18005af60
mov r13, rax
movsxd rdx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], edx
jg 0x18007da6e
mov r9d, dword [rbp + 0x108]
mov r8d, r14d
mov edx, 0x60
mov dword [rsp + 0x20], edi
mov rcx, r12
call fcn.1800297f0
mov edx, eax
jmp 0x18007daa6
mov r8d, dword [rbp + 0x108]
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r12 + 0x90], eax
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x60
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], r15
mov rax, qword [r12]
mov edi, 1
cmp byte [rax + 0x61], r15b
jne 0x18007dacd
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], edi
test r13, r13
je 0x18007db29
mov rcx, qword [r12]
cmp byte [rcx + 0x61], r15b
je 0x18007daeb
mov r8, r13
mov edx, 0xfffffff7
call fcn.18002aad0
jmp 0x18007db29
movsxd rax, dword [r12 + 0x90]
lea rdx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea rdx, [rdx - 3]
cmp byte [rax + rdx*8 + 1], r15b
lea rdx, [rax + rdx*8]
je 0x18007db21
mov r9d, 0xfffffff7
mov r8, r13
mov rcx, r12
call fcn.18002ace0
jmp 0x18007db29
mov qword [rdx + 0x10], r13
mov byte [rdx + 1], 0xf7
mov rax, qword [rsp + 0x68]
movsxd rcx, dword [r12 + 0x90]
mov rax, qword [rax + 0x30]
mov edx, dword [rax + 0x10]
cmp dword [r12 + 0x94], ecx
jg 0x18007db61
mov r9d, edx
mov dword [rsp + 0x20], r15d
mov edx, 0x5c
mov r8d, r14d
mov rcx, r12
call fcn.1800297f0
jmp 0x18007db92
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x5c
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007dbbd
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov rcx, r12
lea edx, [r9 + 0x74]
call fcn.1800297f0
jmp 0x18007dbea
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x74
mov dword [rax + rcx*8 + 4], r14d
mov qword [rax + rcx*8 + 8], r15
mov qword [rax + rcx*8 + 0x10], r15
mov rax, qword [rbp + 0xf0]
cmp byte [rax + 0x11b], 2
jne 0x18007de54
test rbx, rbx
je 0x18007dc1e
test byte [rsi + 0x40], 0x80
je 0x18007dc12
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x18007dc1e
mov rax, qword [rbx]
lea rcx, [0x1800c6874]
jmp 0x18007dc2b
lea rcx, [0x1800c6874]
mov edi, r15d
mov rax, rcx
mov rbx, qword [rbp + 0xf0]
lea rdx, str._USING_COVERING_INDEX
mov r9, qword [rsi]
lea r8, str.SCAN_TABLE__s_s_s
test edi, edi
mov qword [rsp + 0x28], rax
cmovne rcx, rdx
xor edx, edx
mov qword [rsp + 0x20], rcx
mov rcx, rbx
call fcn.18002a080
jmp 0x18007de5b
mov edi, r15d
cmp dword [r13 + 0x2c], r15d
je 0x18007dd04
mov r8d, dword [r13 + 0x38]
mov edx, r15d
test r8d, r8d
jle 0x18007dca1
mov rcx, qword [r13 + 0x30]
nop
mov rax, qword [rcx]
test dword [rax + 4], 0x1000000
jne 0x18007dc96
mov rax, qword [rcx + 8]
test byte [rax + 4], 0x20
jne 0x18007dca1
inc edx
add rcx, 0x18
cmp edx, r8d
jl 0x18007dc80
cmp edx, r8d
jne 0x18007dd04
inc dword [rbx + 0x38]
movsxd rcx, dword [r12 + 0x90]
mov edi, dword [rbx + 0x38]
cmp dword [r12 + 0x94], ecx
jg 0x18007dcd7
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov r9d, edi
mov rcx, r12
lea edx, [r8 + 0x45]
call fcn.1800297f0
jmp 0x18007dd04
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov rdx, r13
mov rcx, rbx
call fcn.18007a8c0
mov rsi, qword [rbp - 0x60]
mov rcx, rbx
mov r8, qword [rbp - 0x20]
mov r9, rsi
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], r15d
mov word [rsp + 0x28], r14w
mov qword [rsp + 0x20], r15
call fcn.180093860
mov rbx, rax
test rax, rax
je 0x18007df9e
mov rcx, qword [rbp + 0xf0]
mov r8, r13
mov edx, edi
call fcn.18007ab80
test edi, edi
je 0x18007ddb9
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x18007dd85
mov edx, 0x45
mov dword [rsp + 0x20], r15d
mov r9d, edi
mov rcx, r12
lea r8d, [rdx - 0x44]
call fcn.1800297f0
jmp 0x18007ddb9
lea eax, [rcx + 1]
mov dword [r12 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r12 + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
test byte [rbx + 0x44], 4
jne 0x18007ddc6
mov ecx, dword [rbx + 0x30]
mov eax, ecx
jmp 0x18007dddc
movzx eax, byte [rbx + 0x40]
lea rcx, [rax + rax*2]
mov eax, dword [rbx + 0x30]
shl rcx, 5
mov ecx, dword [rcx + rbx + 0x310]
cmp ecx, eax
je 0x18007de38
movsxd rdx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], edx
jg 0x18007de0b
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov r9d, ecx
mov rcx, r12
lea edx, [r8 + 0xb]
call fcn.1800297f0
jmp 0x18007de38
lea eax, [rdx + 1]
mov dword [r12 + 0x90], eax
lea rdx, [rdx + rdx*2]
mov rax, qword [r12 + 0x88]
mov qword [rax + rdx*8], 0xb
mov dword [rax + rdx*8 + 8], ecx
mov dword [rax + rdx*8 + 0xc], r15d
mov qword [rax + rdx*8 + 0x10], r15
mov rcx, rbx
call fcn.180094680
mov rbx, qword [rbp + 0xf0]
mov rdx, r13
mov rcx, rbx
call fcn.18007aa70
jmp 0x18007de5f
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp - 0x60]
mov edi, dword [rsp + 0x4c]
mov r9d, 0x10
mov rdx, qword [rbp + 0x20]
mov r8d, edi
mov rcx, rbx
mov qword [rbp + 0x30], r15
call fcn.180049a60
mov rax, qword [rbp + 0x100]
xor r9d, r9d
mov r13, qword [rbp + 0xf8]
mov rcx, rbx
mov dword [rsp + 0x38], edi
mov rdx, r13
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], rax
lea r8d, [r9 - 1]
mov qword [rsp + 0x20], r15
call fcn.180072ae0
mov rcx, qword [r12 + 0x18]
not edi
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18007deca
mov r8d, edi
mov rdx, r12
call fcn.18002a420
jmp 0x18007dedc
mov rcx, qword [rcx + 0x50]
mov eax, dword [r12 + 0x90]
movsxd rdx, edi
mov dword [rcx + rdx*4], eax
mov rdi, qword [rbp + 0x100]
cmp byte [rbp - 0x6c], 3
jne 0x18007df01
lea r9, str.DISTINCT
xor edx, edx
lea r8, str.USE_TEMP_B_TREE_FOR__s
mov rcx, rbx
call fcn.18002a080
cmp qword [rbp + 0x30], 0
je 0x18007df4a
cmp dword [rbp + 0x38], 0
lea rax, str.RIGHT_PART_OF_ORDER_BY
lea r9, str.ORDER_BY
mov rcx, rbx
cmovg r9, rax
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
call fcn.18002a080
mov rax, qword [rbp + 0x28]
lea r8, [rbp + 0x30]
mov rdx, r13
mov qword [rsp + 0x20], rdi
mov rcx, rbx
mov r9d, dword [rax]
call fcn.180073cd0
mov rcx, qword [r12 + 0x18]
mov edx, dword [rbp + 0x18]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18007df79
mov r8d, edx
mov rdx, r12
call fcn.18002a420
cmp dword [rbx + 0x30], 0
mov edi, r15d
mov rax, qword [rsp + 0x58]
setg dil
jmp 0x18007dfb9
mov eax, dword [r12 + 0x90]
mov edi, r15d
mov r8, qword [rcx + 0x50]
movsxd r9, edx
mov dword [r8 + r9*4], eax
cmp dword [rbx + 0x30], 0
mov rax, qword [rsp + 0x58]
setg dil
jmp 0x18007dfb9
mov rbx, qword [rbp + 0xf0]
mov rax, qword [rsp + 0x58]
jmp 0x18007dfb5
mov rax, qword [rsp + 0x58]
mov rsi, qword [rbp - 0x60]
mov edi, dword [rsp + 0x48]
test rsi, rsi
je 0x18007b65b
mov rdx, rsi
mov rcx, rax
call fcn.180043a80
jmp 0x18007b65b
mov eax, r13d
add rsp, 0x1a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret