Function at 0x6469f0
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
mov al, byte [rdx]
mov r13, qword [rcx + 0x28]
mov qword [rsp + 0x1d0], rcx
mov r14, rdx
cmp al, 0x39
mov r15, qword [r13]
ja 0x646a55
cmp al, 0x34
jae 0x647f8f
cmp al, 0x30
je 0x647f8f
ja 0x646a43
cmp al, 0x14
je 0x647ec0
cmp al, 0x2d
je 0x647f44
jmp 0x647fea
cmp al, 0x31
je 0x647ec0
mov rdx, r13
xor eax, eax
jmp 0x646aeb
cmp al, 0x8d
je 0x646b8f
ja 0x646a93
cmp al, 0x4b
je 0x646ab0
cmp al, 0x8a
je 0x647ec0
cmp al, 0x3b
jne 0x647fea
mov rax, qword [rdx + 8]
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], rax
jmp 0x646c15
cmp al, 0xab
je 0x647f44
cmp al, 0xac
je 0x6477d2
cmp al, 0x9c
jne 0x647fea
jmp 0x647f1b
mov rax, qword [r13 + 8]
mov byte [rdx], 0xa7
mov rdx, qword [rax + 0x28]
mov eax, dword [rax + 0x4c]
dec word [r14 + 0x30]
mov byte [r14 + 1], 0x44
mov qword [r14 + 0x40], rdx
mov dword [r14 + 0x2c], eax
jmp 0x647fea
cmp eax, 7
jg 0x646af0
mov ecx, dword [rdx + 0x20]
mov rdx, qword [rdx + 0x18]
mov dword [rsp + rax*4 + 0xc0], ecx
inc rax
test rdx, rdx
jne 0x646ad5
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x1d0]
call fcn.0068e440
mov r9, qword [r14 + 0x10]
mov rcx, r9
call fcn.0065a380
test eax, eax
jne 0x647544
cmp byte [r15 + 0x124], 1
ja 0x647544
cmp byte [r14], 0x33
mov eax, dword [r14 + 4]
jne 0x646b3f
lea rdi, str.true
or eax, 0x10000000
mov qword [r14 + 8], rdi
jmp 0x646b4f
lea rdi, str.false
or eax, 0x20000000
mov qword [r14 + 8], rdi
mov dword [r14 + 4], eax
mov byte [r14], 0xaa
xor eax, eax
test r13, r13
je 0x646b77
cmp eax, 7
jg 0x646b77
mov edx, dword [rsp + rax*4 + 0xc0]
inc rax
mov dword [r13 + 0x20], edx
mov r13, qword [r13 + 0x18]
jmp 0x646b59
mov rcx, qword [r15]
mov rdx, r9
call fcn.0065ca50
mov qword [r14 + 0x10], 0
jmp 0x647544
mov rbx, qword [rdx + 0x10]
mov edx, dword [r13 + 0x28]
test dl, 0x28
je 0x646bb3
lea r8, str.the__.__operator
mov qword [rsp + 0x20], r14
xor r9d, r9d
mov rcx, r15
call fcn.0063d9f0
mov r8, qword [r14 + 0x18]
mov qword [rsp + 0x48], 0
cmp byte [r8], 0x3b
je 0x646bd7
mov rax, qword [rbx + 8]
mov rbx, qword [r8 + 0x10]
mov r8, qword [r8 + 0x18]
mov qword [rsp + 0x48], rax
mov rax, qword [rbx + 8]
cmp byte [r15 + 0x124], 1
mov qword [rsp + 0x30], rax
mov rax, qword [r8 + 8]
mov qword [rsp + 0x38], rax
jbe 0x646c15
mov rcx, qword [r15 + 0x190]
mov rdx, r14
call fcn.00673dd0
mov rcx, qword [r15 + 0x190]
lea rdx, [r14 + 0x40]
mov r8, rbx
call fcn.00673dd0
cmp qword [rsp + 0x48], 0
mov rax, qword [r15]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0xc0], 0
mov dword [r14 + 0x2c], 0xffffffff
mov qword [rsp + 0x40], rax
je 0x646cd8
test byte [r13 + 0x28], 6
jne 0x646cc6
mov esi, dword [rax + 0x28]
xor r11d, r11d
cmp r11d, esi
jge 0x646c87
mov rax, qword [rsp + 0x40]
mov rbx, r11
mov rdx, qword [rsp + 0x48]
shl rbx, 5
add rbx, qword [rax + 0x20]
mov rcx, qword [rbx]
call fcn.0067f7b0
inc r11
test eax, eax
jne 0x646c53
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x50], rax
jmp 0x646cd8
cmp r11d, esi
mov qword [rsp + 0x50], 0
jne 0x646cd8
mov rdx, qword [rsp + 0x48]
lea rcx, str.main
call fcn.0067f7b0
test eax, eax
jne 0x646cd8
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x20]
mov rdi, qword [rax + 0x18]
mov rax, qword [rax]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rax
jmp 0x646cd8
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
lea rax, [rsp + 0xc0]
mov r12, r13
mov dword [rsp + 0x60], 0xa7
xor esi, esi
mov dword [rsp + 0x7c], 0
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x80], rax
mov rax, qword [r12 + 8]
xor ebx, ebx
test rax, rax
mov qword [rsp + 0x70], rax
je 0x6470cf
lea rdi, [rax + 8]
lea rax, [r14 + 0x40]
mov dword [rsp + 0x78], 0
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x78]
cmp ecx, dword [rax]
jge 0x6470a4
test byte [rdi + 0x41], 0x20
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x58], rax
je 0x646ec4
mov rax, qword [rdi + 0x28]
xor ebp, ebp
xor r10d, r10d
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x68], rax
add rax, 8
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x98], ebp
cmp ebp, dword [rax]
jge 0x646eae
mov rcx, qword [rsp + 0x68]
movsxd rax, ebp
shl rax, 5
mov al, byte [rcx + rax + 0x1c]
and eax, 3
cmp al, 2
jne 0x646ea6
mov rcx, rbp
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x30]
shl rcx, 5
add rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x38]
mov dword [rsp + 0x9c], r10d
call fcn.0066dc50
test eax, eax
mov r10d, dword [rsp + 0x9c]
je 0x646ea6
test ebx, ebx
je 0x646e6b
test byte [rdi + 0x41], 4
je 0x646e06
mov rcx, qword [rdi + 0x48]
mov rdx, qword [rsp + 0x38]
call fcn.0066a5b0
test eax, eax
mov r10d, dword [rsp + 0x9c]
jns 0x646e26
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x40]
call fcn.0065d7b0
mov qword [rsp + 0xc0], 0
jmp 0x646e6b
mov al, byte [rdi + 0x3c]
test al, 0x10
je 0x646ea6
test al, 8
jne 0x646e53
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x40]
xor ebx, ebx
call fcn.0065d7b0
mov qword [rsp + 0xc0], 0
jmp 0x646e6b
movsx r9d, word [r14 + 0x30]
mov rdx, qword [rsp + 0x80]
mov r8, rsi
mov rcx, r15
call fcn.00612fa0
movsxd rax, dword [rsp + 0x98]
mov rsi, qword [rsp + 0x68]
inc ebx
mov word [r14 + 0x30], bp
mov r10d, 1
mov dword [rsp + 0x64], 2
shl rax, 5
lea rdx, [rsi + rax + 0x10]
mov rsi, rdi
mov al, byte [rdx + 0xc]
or eax, 0x40
test al, al
mov byte [rdx + 0xc], al
js 0x646eae
inc rbp
jmp 0x646d74
cmp qword [rsp + 0x30], 0
je 0x647097
test r10d, r10d
je 0x646ed0
jmp 0x647097
cmp qword [rsp + 0x30], 0
je 0x646f55
cmp qword [rsp + 0x48], 0
je 0x646f0a
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
cmp qword [rax + 0x60], rcx
jne 0x647097
test rcx, rcx
jne 0x646f0a
mov rcx, qword [rsp + 0x48]
lea rdx, [0x0079f4d7]
call sub.ntdll.dll_strcmp
test eax, eax
jne 0x647097
mov r11, qword [rdi + 0x18]
test r11, r11
mov rcx, r11
jne 0x646f1e
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
mov rdx, qword [rsp + 0x30]
call fcn.0067f7b0
test eax, eax
jne 0x647097
cmp byte [r15 + 0x124], 1
jbe 0x646f55
test r11, r11
je 0x646f55
mov rcx, qword [r15 + 0x190]
mov r8, qword [rsp + 0x90]
xor edx, edx
call fcn.00673dd0
mov rcx, qword [rsp + 0x38]
xor ebp, ebp
call fcn.0067f7f0
mov byte [rsp + 0x68], al
mov rax, qword [rsp + 0x58]
mov r8, qword [rax + 8]
movsx eax, word [rax + 0x36]
mov dword [rsp + 0x98], eax
cmp ebp, dword [rsp + 0x98]
jge 0x647081
mov al, byte [rsp + 0x68]
cmp al, byte [r8 + 0xe]
jne 0x647076
mov rcx, qword [r8]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x88], r8
call fcn.0067f7b0
test eax, eax
mov r8, qword [rsp + 0x88]
jne 0x647076
test ebx, ebx
mov al, byte [rdi + 0x41]
je 0x647047
test al, 4
je 0x646fe2
mov rcx, qword [rdi + 0x48]
mov rdx, qword [rsp + 0x38]
call fcn.0066a5b0
test eax, eax
mov r8, qword [rsp + 0x88]
jns 0x647002
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x40]
call fcn.0065d7b0
mov qword [rsp + 0xc0], 0
jmp 0x647047
mov al, byte [rdi + 0x3c]
test al, 0x10
je 0x647076
test al, 8
jne 0x64702f
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x40]
xor ebx, ebx
call fcn.0065d7b0
mov qword [rsp + 0xc0], 0
jmp 0x647047
movsx r9d, word [r14 + 0x30]
mov rdx, qword [rsp + 0x80]
mov r8, rsi
mov rcx, r15
call fcn.00612fa0
mov rax, qword [rsp + 0x58]
inc ebx
mov rsi, rdi
movsx eax, word [rax + 0x34]
cmp eax, ebp
mov eax, 0xffffffff
cmovne eax, ebp
test byte [rdi + 0x41], 0x20
mov word [r14 + 0x30], ax
je 0x647097
mov edx, ebp
mov rcx, rdi
call fcn.0067e7f0
jmp 0x647097
inc ebp
add r8, 0x18
jmp 0x646f79
test ebx, ebx
jne 0x647097
mov rax, qword [rsp + 0x58]
test byte [rax + 0x31], 2
jne 0x647097
inc dword [rsp + 0x64]
mov rsi, rdi
inc dword [rsp + 0x78]
add rdi, 0x68
jmp 0x646d32
test rsi, rsi
je 0x6470cf
mov eax, dword [rsi + 0x44]
mov dword [r14 + 0x2c], eax
mov rax, qword [rsi + 0x20]
mov qword [r14 + 0x40], rax
test byte [rsi + 0x3c], 0x48
je 0x6470c6
or dword [r14 + 4], 0x200000
mov rax, qword [rax + 0x60]
mov qword [rsp + 0x50], rax
test ebx, ebx
jne 0x64734e
cmp qword [rsp + 0x48], 0
jne 0x64734e
cmp qword [rsp + 0x30], 0
mov rbp, qword [r15 + 0xa8]
mov edi, dword [r12 + 0x28]
setne r11b
test rbp, rbp
je 0x647199
cmp byte [r15 + 0xd5], 0
movzx ebx, byte [r15 + 0xd4]
je 0x647142
bt edi, 0xa
jae 0x647197
cmp qword [rsp + 0x30], 0
je 0x647134
mov rdx, qword [rbp]
mov rcx, qword [rsp + 0x30]
call fcn.0067f7b0
test eax, eax
jne 0x647197
xor eax, eax
add ebx, 0xffffff80
setne al
mov dword [r14 + 0x2c], eax
jmp 0x647199
cmp ebx, 0x80
je 0x64716e
test r11b, r11b
je 0x64716e
mov rdx, qword [rsp + 0x30]
lea rcx, [0x007a0c88]
call fcn.0067f7b0
test eax, eax
jne 0x64716e
mov dword [r14 + 0x2c], 1
jmp 0x647199
cmp ebx, 0x7f
je 0x647197
test r11b, r11b
je 0x647197
mov rdx, qword [rsp + 0x30]
lea rcx, [0x007a0c8c]
call fcn.0067f7b0
test eax, eax
jne 0x647197
mov dword [r14 + 0x2c], 0
jmp 0x647199
xor ebp, ebp
bt edi, 9
jae 0x6471d3
test r11b, r11b
je 0x6471d3
mov r11, qword [r12 + 0x10]
test r11, r11
je 0x6471d3
mov rdx, qword [rsp + 0x30]
lea rcx, str.excluded
call fcn.0067f7b0
test eax, eax
jne 0x6471d3
mov rax, qword [r11 + 0x40]
mov rbp, qword [rax + 0x28]
mov dword [r14 + 0x2c], 2
xor ebx, ebx
test rbp, rbp
je 0x64734e
mov rcx, qword [rsp + 0x38]
call fcn.0067f7f0
inc dword [rsp + 0x64]
mov r8b, al
movsx r11d, word [rbp + 0x36]
mov rax, qword [rbp + 0x60]
mov rdi, qword [rbp + 8]
mov qword [rsp + 0x50], rax
cmp ebx, r11d
jge 0x647239
cmp r8b, byte [rdi + 0xe]
jne 0x647231
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rdi]
mov byte [rsp + 0x58], r8b
call fcn.0067f7b0
test eax, eax
mov r8b, byte [rsp + 0x58]
jne 0x647231
movsx eax, word [rbp + 0x34]
cmp eax, ebx
jne 0x64726b
jmp 0x647268
inc ebx
add rdi, 0x18
jmp 0x647201
mov rcx, qword [rsp + 0x38]
call fcn.0066cd80
test eax, eax
mov ebx, eax
je 0x64734e
mov eax, dword [rbp + 0x30]
xor ebx, ebx
and eax, 0x200
jne 0x64734e
test r11d, r11d
mov ebx, eax
js 0x64734e
or ebx, 0xffffffff
mov eax, dword [r14 + 0x2c]
movsx edx, bx
cmp eax, 2
jne 0x6472aa
cmp byte [r15 + 0x124], 1
jbe 0x647297
mov word [r14 + 0x30], bx
mov qword [r14 + 0x40], rbp
mov dword [rsp + 0x60], 0xa7
jmp 0x647347
mov rcx, rbp
call fcn.0067fa70
mov rdx, qword [r12 + 0x10]
cwde
add eax, dword [rdx + 0x48]
jmp 0x6472d9
mov qword [r14 + 0x40], rbp
cmp byte [r15 + 0xd5], 0
je 0x6472e7
inc r11d
mov byte [r14 + 2], 0xa7
mov ebx, dword [r12 + 0x10]
imul r11d, eax
mov rcx, rbp
add ebx, r11d
call fcn.0067fa70
cwde
lea eax, [rbx + rax + 1]
mov dword [r14 + 0x2c], eax
mov dword [rsp + 0x60], 0xb0
jmp 0x647347
test ebx, ebx
mov word [r14 + 0x30], bx
jns 0x6472f7
mov byte [r14 + 1], 0x44
jmp 0x64733f
test eax, eax
jne 0x64731e
or eax, 0xffffffff
cmp ebx, 0x1f
mov edx, dword [r15 + 0xcc]
jg 0x647313
mov eax, 1
mov cl, bl
shl eax, cl
or eax, edx
mov dword [r15 + 0xcc], eax
jmp 0x64733f
or eax, 0xffffffff
cmp ebx, 0x1f
mov edx, dword [r15 + 0xd0]
jg 0x647336
mov eax, 1
mov cl, bl
shl eax, cl
or eax, edx
mov dword [r15 + 0xd0], eax
mov dword [rsp + 0x60], 0x4d
xor esi, esi
mov ebx, 1
test ebx, ebx
jne 0x647394
cmp dword [rsp + 0x64], 1
jne 0x647394
test rsi, rsi
je 0x64739c
test byte [r12 + 0x28], 0x28
jne 0x64739c
mov rcx, qword [rsp + 0x38]
call fcn.0066cd80
test eax, eax
je 0x64739c
mov rax, qword [rsi + 0x20]
test byte [rax + 0x31], 2
jne 0x64739c
mov word [r14 + 0x30], 0xffff
mov byte [r14 + 1], 0x44
mov ebx, 1
jmp 0x6474c9
test ebx, ebx
jne 0x6474c9
mov edi, dword [r12 + 0x28]
test dil, dil
jns 0x6474b5
cmp qword [rsp + 0x30], 0
jne 0x6474b5
mov rbp, qword [r12 + 0x10]
xor r11d, r11d
mov eax, dword [rbp]
mov dword [rsp + 0x68], eax
cmp r11d, dword [rsp + 0x68]
mov dword [rsp + 0x58], r11d
jge 0x6474b5
movsxd rbx, r11d
shl rbx, 5
add rbx, rbp
test byte [rbx + 0x1c], 3
jne 0x6474ad
mov rax, r11
mov rdx, qword [rsp + 0x38]
shl rax, 5
mov r8, qword [rbp + rax + 0x10]
mov rcx, r8
mov qword [rsp + 0x70], r8
call fcn.0069bd80
test eax, eax
mov r8, qword [rsp + 0x70]
jne 0x6474ad
mov rcx, qword [rbx + 8]
test dil, 1
mov eax, dword [rcx + 4]
jne 0x64742c
test al, 0x10
lea rdx, str.misuse_of_aliased_aggregate__s
jne 0x647444
bt eax, 0xf
jae 0x647451
bt edi, 0xe
jae 0x64743d
cmp r13, r12
je 0x647451
lea rdx, str.misuse_of_aliased_window_function__s
mov rcx, r15
call fcn.00659eb0
jmp 0x647f74
call fcn.0065dc50
dec eax
je 0x64746e
lea rdx, str.row_value_misused
mov rcx, r15
call fcn.00659eb0
jmp 0x647f74
mov eax, dword [rsp + 0x7c]
mov r8d, dword [rsp + 0x58]
mov r9, r14
mov rdx, rbp
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.00646870
cmp byte [r15 + 0x124], 1
jbe 0x64770d
mov rcx, qword [r15 + 0x190]
mov r8, r14
xor edx, edx
call fcn.00673dd0
jmp 0x64770d
inc r11
jmp 0x6473c5
mov r12, qword [r12 + 0x18]
inc dword [rsp + 0x7c]
test r12, r12
jne 0x646d05
xor ebx, ebx
test ebx, ebx
jne 0x64756c
cmp qword [rsp + 0x30], 0
jne 0x64756c
test byte [r14 + 4], 0x80
je 0x64754e
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0xc5], 0
jne 0x647522
test byte [r13 + 0x2a], 1
mov rax, qword [rax + 0x30]
je 0x647517
mov rdx, rax
and edx, 0x10000001
dec rdx
jne 0x647511
bt eax, 0x1e
jb 0x647522
shr rax, 0x1d
jmp 0x64751b
shr rax, 0x1e
and eax, 1
test eax, eax
je 0x64754e
mov r8, qword [rsp + 0x38]
lea rdx, str.double_quoted_string_literal:___w_
mov ecx, 0x1c
call fcn.00698790
mov byte [r14], 0x75
mov qword [r14 + 0x40], 0
mov ebp, 1
jmp 0x647ff2
mov rcx, r14
call fcn.0065cc70
test eax, eax
jne 0x647544
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
jne 0x647576
jmp 0x64760c
cmp ebx, 1
jne 0x64755a
jmp 0x6476a2
lea eax, [rbx - 1]
cmp dword [rdx], eax
jne 0x6475f6
mov eax, dword [r14 + 4]
bt eax, 0x17
jae 0x647592
and eax, 0xff7fffff
mov dword [r14 + 4], eax
jmp 0x6475be
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x40]
call fcn.0065ca50
mov rdx, qword [r14 + 0x18]
mov rcx, qword [rsp + 0x40]
mov qword [r14 + 0x10], 0
call fcn.0065ca50
mov qword [r14 + 0x18], 0
movsx r9d, word [r14 + 0x30]
lea rdx, [rsp + 0xc0]
mov r8, rsi
mov rcx, r15
call fcn.00612fa0
lea rax, str.coalesce
mov byte [r14], 0xac
mov qword [r14 + 8], rax
mov rax, qword [rsp + 0xc0]
mov qword [r14 + 0x20], rax
jmp 0x64770d
mov rcx, qword [rsp + 0x40]
call fcn.0065d7b0
mov qword [rsp + 0xc0], 0
lea r8, str.no_such_column
lea rax, str.ambiguous_column_name
test ebx, ebx
cmovne r8, rax
cmp qword [rsp + 0x48], 0
je 0x647652
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
lea rdx, str._s:__s._s._s
mov rcx, r15
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
call fcn.00659eb0
jmp 0x64768e
cmp qword [rsp + 0x30], 0
je 0x64767a
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
lea rdx, str._s:__s._s
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.00659eb0
jmp 0x64768e
mov r9, qword [rsp + 0x38]
lea rdx, str._s:__s
mov rcx, r15
call fcn.00659eb0
mov rcx, qword [r15]
mov rdx, r14
call fcn.006738d0
mov byte [r15 + 0x1d], 1
inc dword [r13 + 0x24]
test dword [r14 + 4], 0x810000
jne 0x6476e0
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x40]
call fcn.0065ca50
mov rdx, qword [r14 + 0x18]
mov rcx, qword [rsp + 0x40]
mov qword [r14 + 0x10], 0
call fcn.0065ca50
or dword [r14 + 4], 0x800000
mov qword [r14 + 0x18], 0
cmp word [r14 + 0x30], 0
js 0x6476f9
test rsi, rsi
je 0x6476f9
mov rcx, r14
call fcn.0065c560
or qword [rsi + 0x50], rax
mov al, byte [rsp + 0x60]
dec ebx
mov ebp, 2
mov byte [r14], al
jne 0x647ff2
mov rcx, qword [r15]
cmp qword [rcx + 0x1f8], 0
je 0x6477bf
mov r10b, byte [r14]
cmp r10b, 0xa7
je 0x647731
cmp r10b, 0x4d
jne 0x6477bf
mov rdx, qword [rsp + 0x50]
call fcn.0067abc0
test eax, eax
mov r9d, eax
js 0x6477bf
cmp r10b, 0x4d
je 0x647754
mov rcx, qword [r12 + 8]
xor edx, edx
mov r8d, dword [rcx]
jmp 0x64775d
mov rcx, qword [r15 + 0xa8]
jmp 0x647780
cmp edx, r8d
movsxd rax, edx
jge 0x6477bf
inc rdx
imul r10, rdx, 0x68
mov edi, dword [rcx + r10 - 0x1c]
cmp dword [r14 + 0x2c], edi
jne 0x64775d
imul rax, rax, 0x68
mov rcx, qword [rcx + rax + 0x28]
test rcx, rcx
je 0x6477bf
movsx rdx, word [r14 + 0x30]
test dx, dx
jns 0x6477a0
movsx rdx, word [rcx + 0x34]
lea r8, str.ROWID
test dx, dx
js 0x6477ab
imul rdx, rdx, 0x18
add rdx, qword [rcx + 8]
mov r8, qword [rdx]
mov rdx, qword [rcx]
mov rcx, r15
call fcn.00650e50
cmp eax, 2
jne 0x6477bf
mov byte [r14], 0x79
inc dword [r13 + 0x20]
cmp r12, r13
je 0x647544
mov r13, qword [r13 + 0x18]
jmp 0x6477bf
mov rax, qword [rdx + 0x20]
xor esi, esi
test rax, rax
mov qword [rsp + 0x30], rax
je 0x6477e4
mov esi, dword [rax]
xor ebx, ebx
test byte [r14 + 7], 1
mov rcx, qword [r15]
mov eax, dword [r13 + 0x28]
movzx ebp, byte [rcx + 0x64]
mov dword [rsp + 0x38], eax
je 0x647808
mov rbx, qword [r14 + 0x40]
cmp byte [rbx + 0x20], 0xa6
jne 0x647808
xor ebx, ebx
mov rdi, qword [r14 + 8]
mov r9d, ebp
mov dword [rsp + 0x20], 0
mov r8d, esi
mov rdx, rdi
call fcn.0065dda0
test rax, rax
mov r12, rax
jne 0x647862
mov dword [rsp + 0x20], 0
mov rcx, qword [r15]
mov r9d, ebp
mov rdx, rdi
mov r8d, 0xfffffffe
xor ebp, ebp
call fcn.0065dda0
cmp rax, 1
mov r12, rax
sbb esi, esi
xor edi, edi
inc esi
cmp rax, 1
setb dil
jmp 0x647a0b
xor ebp, ebp
cmp qword [rax + 0x20], 0
setne bpl
test byte [rax + 5], 4
je 0x64792b
or dword [r14 + 4], 0x80000
cmp esi, 2
jne 0x647913
mov rax, qword [rsp + 0x30]
mov rdi, qword [0x007a9078]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0xc0], rdi
cmp byte [rax], 0x99
je 0x6478af
mov dword [r14 + 0x2c], 0xffffffff
jmp 0x6478fb
mov r10, qword [rax + 8]
mov rcx, r10
call fcn.0067f830
lea rdx, [rsp + 0xc0]
mov r8d, eax
mov r9d, 1
mov rcx, r10
call fcn.006507a0
movsd xmm0, qword [rsp + 0xc0]
ucomisd xmm0, qword [0x007a8f48]
ja 0x6478a5
mulsd xmm0, qword [0x007a9080]
cvttsd2si eax, xmm0
test eax, eax
mov dword [r14 + 0x2c], eax
jns 0x64792b
lea rdx, str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
mov r8, r14
mov rcx, r15
call fcn.00659eb0
inc dword [r13 + 0x24]
jmp 0x64792b
mov rax, qword [rax + 0x38]
mov edx, 0x800000
cmp byte [rax], 0x75
mov eax, 0x7800000
cmove eax, edx
mov dword [r14 + 0x2c], eax
mov r9, qword [r12 + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], 0
mov edx, 0x1f
mov rcx, r15
call fcn.00650db0
test eax, eax
mov esi, eax
je 0x647972
dec esi
jne 0x647969
lea rdx, str.not_authorized_to_use_function:__T
mov r8, r14
mov rcx, r15
call fcn.00659eb0
inc dword [r13 + 0x24]
mov byte [r14], 0x79
jmp 0x647544
mov eax, dword [r12 + 4]
test ah, 0x28
je 0x647984
or dword [r14 + 4], 0x100000
bt eax, 0xb
mov edx, dword [r13 + 0x28]
jb 0x6479ac
test dl, 0x2a
je 0x6479c3
lea r8, str.non_deterministic_functions
mov qword [rsp + 0x20], r14
xor r9d, r9d
mov rcx, r15
call fcn.0063d9f0
jmp 0x6479c3
mov al, dl
and eax, 0x2e
bt edx, 0x12
mov byte [r14 + 2], al
jae 0x6479c3
or dword [r14 + 4], 0x40000000
mov eax, dword [r12 + 4]
bt eax, 0x12
jae 0x6479de
cmp byte [r15 + 0x1e], 0
jne 0x6479de
mov rdx, qword [r15]
test byte [rdx + 0x2c], 0x20
je 0x647a03
xor edi, edi
test eax, 0x280000
je 0x647a0b
cmp byte [r15 + 0x124], 1
ja 0x647a0b
lea r8, [r12 + 4]
mov rdx, r14
mov rcx, r15
call fcn.0065cc40
jmp 0x647a0b
xor r12d, r12d
mov edi, 1
cmp byte [r15 + 0x124], 1
ja 0x647b37
test rbx, rbx
setne al
test r12, r12
je 0x647a50
cmp qword [r12 + 0x28], 0
jne 0x647a50
test al, al
je 0x647a50
lea rdx, str._T___may_not_be_used_as_a_window_function
mov r8, r14
mov rcx, r15
call fcn.00659eb0
inc dword [r13 + 0x24]
test ebp, ebp
jne 0x647b21
jmp 0x647aac
test ebp, ebp
je 0x647a6b
test byte [r13 + 0x28], 1
mov edx, dword [r12 + 4]
je 0x647a7c
bt edx, 0x10
jae 0x647a6b
test rbx, rbx
je 0x647a7c
test bpl, 1
je 0x647ab3
test al, al
je 0x647ab3
test byte [r13 + 0x29], 0x40
jne 0x647ab3
test byte [r12 + 6], 1
jne 0x647a8f
test al, al
lea r8, str.aggregate
je 0x647a96
lea r8, str.window
lea rdx, str.misuse_of__s_function__T__
mov r9, r14
mov rcx, r15
call fcn.00659eb0
inc dword [r13 + 0x24]
xor ebp, ebp
jmp 0x647b44
test edi, edi
je 0x647acd
mov rax, qword [r15]
mov r8, r14
lea rdx, str.no_such_function:__T
cmp byte [rax + 0xc5], 0
je 0x647adb
test esi, esi
je 0x647aed
lea rdx, str.wrong_number_of_arguments_to_function__T__
mov r8, r14
mov rcx, r15
call fcn.00659eb0
inc dword [r13 + 0x24]
test ebp, ebp
jne 0x647af1
jmp 0x647aac
test ebp, ebp
je 0x647b02
cmp rbx, 1
mov edx, dword [r13 + 0x28]
sbb eax, eax
sub eax, 0x4001
jmp 0x647b2a
test byte [r14 + 7], 1
je 0x647aac
lea rdx, str.FILTER_may_not_be_used_with_non_aggregate__T__
mov r8, r14
mov rcx, r15
call fcn.00659eb0
inc dword [r13 + 0x24]
jmp 0x647b44
mov edx, dword [r13 + 0x28]
mov eax, 0xffffbfff
and eax, edx
mov ebp, 1
mov dword [r13 + 0x28], eax
jmp 0x647b44
test byte [r14 + 7], 1
mov eax, 1
cmovne ebp, eax
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x1d0]
call fcn.0068e450
test ebp, ebp
je 0x647544
test rbx, rbx
je 0x647d89
cmp byte [r15 + 0x124], 1
mov r14, qword [r13 + 0x30]
jbe 0x647bc0
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rsp + 0x1d0]
call fcn.0068e450
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rsp + 0x1d0]
call fcn.0068e450
mov rdx, qword [rbx + 0x48]
mov rcx, qword [rsp + 0x1d0]
call fcn.0068e440
mov rdx, rbx
mov rcx, r14
call fcn.00693ae0
or dword [r13 + 0x28], 0x8000
jmp 0x647eae
xor edx, edx
test r14, r14
je 0x647bcb
mov rdx, qword [r14 + 0x78]
mov r8, qword [rbx]
test r8, r8
je 0x647c57
cmp byte [rbx + 0x20], 0
jne 0x647c57
mov rcx, r15
call fcn.006ae7e0
test rax, rax
mov rsi, rax
je 0x647d77
mov rdx, qword [rax + 0x10]
mov rcx, qword [r15]
xor r8d, r8d
call fcn.0065d7c0
mov rdx, qword [rsi + 0x18]
mov rcx, qword [r15]
xor r8d, r8d
mov qword [rbx + 0x10], rax
call fcn.0065d7c0
mov rdx, qword [rsi + 0x28]
mov rcx, qword [r15]
xor r8d, r8d
mov qword [rbx + 0x18], rax
call fcn.0065cb00
mov rdx, qword [rsi + 0x30]
mov rcx, qword [r15]
xor r8d, r8d
mov qword [rbx + 0x28], rax
call fcn.0065cb00
mov qword [rbx + 0x30], rax
mov al, byte [rsi + 0x21]
mov byte [rbx + 0x21], al
mov al, byte [rsi + 0x22]
mov byte [rbx + 0x22], al
mov al, byte [rsi + 0x20]
mov byte [rbx + 0x20], al
mov al, byte [rsi + 0x24]
mov byte [rbx + 0x24], al
jmp 0x647c65
mov r8, rdx
mov rcx, r15
mov rdx, rbx
call fcn.00692b70
cmp byte [rbx + 0x20], 0x59
jne 0x647c90
cmp qword [rbx + 0x28], 0
jne 0x647c79
cmp qword [rbx + 0x30], 0
je 0x647c90
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x647c87
cmp dword [rax], 1
je 0x647c90
lea rdx, str.RANGE_with_offset_PRECEDING_FOLLOWING_requires_one_ORDER_BY_expression
jmp 0x647caa
test byte [r12 + 6], 1
je 0x647d73
cmp qword [rbx + 0x48], 0
je 0x647cb7
lea rdx, str.FILTER_clause_may_only_be_used_with_aggregate_window_functions
mov rcx, r15
call fcn.00659eb0
jmp 0x647d73
mov rax, qword [r15]
mov rdx, qword [r12 + 0x38]
lea rdi, [rsp + 0xc0]
lea rsi, str.row_number
mov ecx, 0x30
rep movsd dword [rdi], dword [rsi]
lea rcx, [rsp + 0xc0]
mov qword [rsp + 0x30], rax
xor eax, eax
mov esi, eax
imul r8, rax, 0x18
cmp rdx, qword [rcx + r8]
jne 0x647d66
mov rdx, qword [rbx + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.0065ca50
mov rdx, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x30]
call fcn.0065ca50
movsxd rax, esi
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], 0
imul rax, rax, 0x18
mov edx, dword [rsp + rax + 0xc8]
mov byte [rbx + 0x20], dl
mov edx, dword [rsp + rax + 0xcc]
mov byte [rbx + 0x21], dl
mov eax, dword [rsp + rax + 0xd0]
cmp dl, 0x56
mov byte [rbx + 0x24], 0
mov byte [rbx + 0x22], al
jne 0x647d73
mov rcx, qword [rsp + 0x30]
lea r8, [0x0079f76f]
mov edx, 0x9b
call fcn.0065a020
mov qword [rbx + 0x28], rax
jmp 0x647d73
inc rax
cmp rax, 8
jne 0x647ce4
mov qword [rbx + 0x50], r12
mov rax, qword [r15]
cmp byte [rax + 0x67], 0
je 0x647b75
jmp 0x647fea
test byte [r14 + 7], 1
mov byte [r14], 0xa8
mov byte [r14 + 2], 0
je 0x647dae
mov rax, qword [r14 + 0x40]
mov rcx, qword [rsp + 0x1d0]
mov rdx, qword [rax + 0x48]
call fcn.0068e440
lea rbx, [0x00612c40]
mov rsi, r13
lea r8, [rsp + 0xc0]
xor eax, eax
mov ecx, 0xa
mov rdx, qword [rsi + 8]
mov qword [rsp + 0xb0], 0
mov rdi, r8
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0x30], r8
rep stosd dword [rdi], eax
lea rax, [rsp + 0xa0]
lea rdi, [0x0064ec40]
mov rcx, r8
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xe8], rax
mov rax, qword [r15]
mov qword [rsp + 0xa8], rdx
mov rdx, qword [r14 + 0x20]
mov qword [rsp + 0xd0], rdi
lea rdi, [0x0064ecc0]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xd8], rdi
call fcn.0068e450
test byte [r14 + 7], 1
mov r8, qword [rsp + 0x30]
je 0x647e5e
mov rax, qword [r14 + 0x40]
mov rcx, r8
mov rdx, qword [rax + 0x48]
call fcn.0068e440
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [r15]
call fcn.00657910
mov eax, dword [rsp + 0xe4]
test al, 1
jne 0x647e8f
test ax, ax
je 0x647e8f
inc byte [r14 + 2]
mov rsi, qword [rsi + 0x18]
test rsi, rsi
jne 0x647db8
test rsi, rsi
je 0x647eae
test r12, r12
je 0x647eae
mov eax, dword [r12 + 4]
xor eax, 0x8000000
and eax, 0x8001000
or eax, 0x10
or dword [rsi + 0x28], eax
mov eax, dword [rsp + 0x38]
and eax, 0x4001
or dword [r13 + 0x28], eax
jmp 0x647ff2
test byte [r14 + 5], 0x10
je 0x647fea
mov edx, dword [r13 + 0x28]
mov ebx, dword [r13 + 0x20]
test dl, 0x2e
je 0x647ef1
lea r8, str.subqueries
mov qword [rsp + 0x20], r14
mov r9, r14
mov rcx, r15
call fcn.0063d9f0
jmp 0x647f02
mov rdx, qword [r14 + 0x20]
mov rcx, qword [rsp + 0x1d0]
call fcn.0068e4a0
cmp dword [r13 + 0x20], ebx
je 0x647fea
or dword [r14 + 4], 0x40
or dword [r13 + 0x28], 0x40
jmp 0x647fea
mov edx, dword [r13 + 0x28]
test dl, 0x2e
je 0x647fea
lea r8, str.parameters
mov qword [rsp + 0x20], r14
mov r9, r14
mov rcx, r15
call fcn.0063d9f0
jmp 0x647fea
mov rcx, qword [r14 + 0x18]
call fcn.0065dbc0
test rax, rax
mov rbx, rax
je 0x647f8f
mov al, byte [rax]
cmp al, 0x3b
je 0x647f5f
cmp al, 0xaa
jne 0x647f8f
mov rcx, qword [rsp + 0x1d0]
mov rdx, rbx
call fcn.006469f0
cmp eax, 2
jne 0x647f7b
mov ebp, 2
jmp 0x647ff2
cmp byte [rbx], 0xaa
jne 0x647f8f
mov al, byte [r14]
xor ebp, ebp
mov byte [r14], 0xaf
mov byte [r14 + 2], al
jmp 0x647ff2
mov rax, qword [r15]
cmp byte [rax + 0x67], 0
jne 0x647fea
mov rcx, qword [r14 + 0x10]
call fcn.0065dc50
cmp byte [r14], 0x30
mov r8d, eax
jne 0x647fc2
mov r9, qword [r14 + 0x20]
mov rcx, qword [r9 + 8]
call fcn.0065dc50
cmp r8d, eax
jne 0x647fd0
mov rcx, qword [r9 + 0x28]
jmp 0x647fc6
mov rcx, qword [r14 + 0x18]
call fcn.0065dc50
cmp eax, r8d
je 0x647fea
lea rdx, str.row_value_misused
mov rcx, r15
call fcn.00659eb0
mov rcx, qword [r15]
mov rdx, r14
call fcn.006738d0
mov ebp, dword [r15 + 0x30]
test ebp, ebp
jne 0x647f74
mov eax, ebp
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret