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

Disassembly:
mov word [rsp + 0x10], dx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov rbx, rcx
movzx r15d, dx
xor ecx, ecx
mov dword [rsp + 0x58], ecx
mov word [rsp + 0x44], cx
movzx r13d, byte [rbx + 0x40]
mov r12, qword [rbx]
lea eax, [rcx + 5]
cmp r13d, 2
mov word [rsp + 0x42], cx
lea esi, [rcx + 1]
mov qword [rsp + 0x68], rcx
lea r14d, [rcx + 0xa]
mov qword [rsp + 0x90], r12
mov r8, qword [r12]
cmove r14d, eax
mov rax, qword [rbx + 0x10]
cmp r13d, esi
mov qword [rsp + 0xa8], r8
cmovbe r14d, esi
mov dword [rsp + 0x64], r13d
test rax, rax
je 0x1400cdffc
test dx, dx
je 0x1400cdffc
mov edi, dword [rax]
mov dword [rsp + 0x60], edi
jmp 0x1400ce002
mov edi, ecx
mov dword [rsp + 0x60], ecx
lea eax, [r13 + 4]
imul eax, r14d
lea ecx, [rdi + rax*8]
add ecx, ecx
movsxd rdx, ecx
mov rcx, r8
call fcn.1400600a4
xor r11d, r11d
mov qword [rsp + 0xa0], rax
mov rdx, rax
test rax, rax
jne 0x1400ce035
lea eax, [rdx + 7]
jmp 0x1400ce77c
xorps xmm0, xmm0
mov eax, r14d
shl rax, 5
mov r9, r13
shl r9, 3
mov r8, rdx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x98], r9
lea rbp, [rax + rdx]
add rdx, 0x18
movups xmmword [rbp], xmm0
lea rcx, [rax + rbp]
mov qword [rsp + 0x80], rbp
movups xmmword [rbp + 0x10], xmm0
lea eax, [r14 + r14]
mov qword [rdx], rcx
sub eax, esi
add rcx, r9
lea rdx, [rdx + 0x20]
test eax, eax
jg 0x1400ce076
test edi, edi
je 0x1400ce0a4
movsxd r8, edi
xor edx, edx
add r8, r8
mov qword [rsp + 0x68], rcx
call fcn.140175ef0
mov r8, qword [rsp + 0x50]
xor r11d, r11d
mov eax, dword [r12 + 0xb8]
mov ecx, Ordinal_50
cmp eax, ecx
cmovb ecx, eax
mov word [rbp + 0x10], cx
mov ecx, esi
test edi, edi
je 0x1400ce0d0
or edx, 0xffffffff
movzx eax, dil
test r13b, r13b
cmovne eax, edx
mov byte [rbp + 0x16], al
mov edx, r11d
mov r10d, 0x100
mov dword [rsp + 0x5c], edx
test r13b, r13b
je 0x1400ce4fe
mov r9, r11
mov qword [rsp + 0x48], r11
mov edi, 0x4000
mov r12d, r11d
test ecx, ecx
jle 0x1400ce4a0
mov r13d, dword [rsp + 0x60]
lea rax, [rbp + 0x10]
mov qword [rsp + 0x100], rax
mov rbp, qword [rsp + 0x100]
mov eax, ecx
mov qword [rsp + 0x78], rax
mov r15, qword [rbx + 0x58]
test r15, r15
je 0x1400ce478
mov al, byte [rbp + 6]
mov byte [rsp + 0x100], al
mov qword [rsp + 0x70], r11
mov r11, qword [rbp - 0x10]
mov rax, r11
not rax
test qword [r15], rax
jne 0x1400ce27d
mov r10, qword [r15 + 8]
test r10, r11
jne 0x1400ce27d
test dword [r15 + 0x28], edi
je 0x1400ce16b
cmp word [rbp], 3
jl 0x1400ce27d
movzx edi, word [rbp]
movzx ecx, word [r15 + 0x12]
movzx edx, di
add dx, word [r15 + 0x14]
call fcn.14006392c
movzx edx, word [rbp + 4]
movzx ecx, ax
call fcn.14006392c
add di, word [r15 + 0x16]
or r11, r10
mov r10b, byte [rsp + 0x100]
mov word [rsp + 0x40], di
lea rdi, [rbx + 0x3c]
mov word [rsp + 0x118], ax
mov qword [rsp + 0x88], r11
test r10b, r10b
jns 0x1400ce29c
movzx r9d, word [rdi]
lea rax, [rsp + 0x70]
mov rdx, qword [rbx + 0x10]
lea r8, [rbp - 0x10]
mov qword [rsp + 0x30], rax
mov rcx, rbx
mov eax, dword [rsp + 0x5c]
mov qword [rsp + 0x28], r15
mov word [rsp + 0x20], ax
call fcn.1400cd6c4
mov byte [rsp + 0x100], al
mov r10b, al
test al, al
jns 0x1400ce2a5
movzx r8d, word [rsp + 0x118]
movzx edx, r8w
add r8w, 0xfffe
mov r11, qword [rsp + 0x50]
xor eax, eax
mov ecx, eax
mov rdi, r11
test r12d, r12d
jle 0x1400ce377
mov r9, qword [rsp + 0x88]
cmp qword [rdi], r9
jne 0x1400ce239
mov al, r10b
xor al, byte [rdi + 0x16]
jge 0x1400ce244
add ecx, esi
add rdi, 0x20
cmp ecx, r12d
jl 0x1400ce22c
cmp ecx, r12d
jge 0x1400ce377
cmp word [rdi + 0x12], dx
jl 0x1400ce275
movzx ecx, word [rsp + 0x40]
jne 0x1400ce3be
cmp word [rdi + 0x10], cx
jl 0x1400ce275
jne 0x1400ce3be
cmp word [rdi + 0x14], r8w
jg 0x1400ce3be
mov r8, r11
mov edi, 0x4000
xor r11d, r11d
mov r9, qword [rsp + 0x48]
mov r15, qword [r15 + 0x40]
test r15, r15
jne 0x1400ce12b
mov rax, qword [rsp + 0x78]
jmp 0x1400ce47d
mov rax, qword [rbp - 8]
mov qword [rsp + 0x70], rax
movzx ecx, r10b
cmp ecx, r13d
jge 0x1400ce1fd
mov rax, qword [rsp + 0x68]
mov r11d, ecx
movzx r9d, word [rax + rcx*2]
test r9w, r9w
jne 0x1400ce337
movzx r10d, word [rsp + 0x108]
mov eax, r13d
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv r13d
movsxd rcx, eax
call fcn.1400639a4
movzx r9d, ax
mov ecx, 0x4000
movzx eax, r10w
add r9w, ax
test word [rdi], cx
je 0x1400ce359
cmp word [rbx + 0x3e], ax
jge 0x1400ce359
movzx r10d, word [rbx + 0x3e]
mov ecx, 0xa
cmp r10w, cx
jle 0x1400ce320
movsx rcx, r10w
call fcn.1400639a4
sub r9w, 0x21
add r9w, ax
mov rax, qword [rsp + 0x68]
sub r9w, 0x32
mov r10b, byte [rsp + 0x100]
mov word [rax + r11*2], r9w
movzx ecx, word [rsp + 0x118]
movzx edx, r9w
call fcn.14006392c
movzx r8d, word [rsp + 0x118]
lea edx, [rax + 5]
jmp 0x1400ce20f
mov ecx, 0x100
test word [rdi], cx
je 0x1400ce303
mov ecx, 0xa
cmp ax, cx
jle 0x1400ce320
movzx r10d, ax
sub r10w, cx
jmp 0x1400ce308
cmp r12d, r14d
jl 0x1400ce395
cmp dx, word [rsp + 0x44]
jg 0x1400ce275
jne 0x1400ce395
cmp r8w, word [rsp + 0x42]
jge 0x1400ce275
movzx ecx, word [rsp + 0x40]
cmp r12d, r14d
mov eax, r12d
cmovge eax, dword [rsp + 0x58]
movsxd rdi, eax
lea eax, [r12 + 1]
shl rdi, 5
add rdi, r11
cmp r12d, r14d
cmovge eax, r12d
mov r12d, eax
mov rax, qword [r15 + 8]
or rax, qword [rbp - 0x10]
mov qword [rdi], rax
mov rax, qword [rsp + 0x70]
mov word [rdi + 0x10], cx
mov rcx, qword [rdi + 0x18]
mov word [rdi + 0x14], r8w
mov r8, qword [rsp + 0x48]
mov qword [rdi + 8], rax
mov word [rdi + 0x12], dx
mov byte [rdi + 0x16], r10b
mov rdx, qword [rbp + 8]
call fcn.140175840
mov rax, qword [rdi + 0x18]
xor r11d, r11d
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
mov qword [r9 + rax], r15
cmp r12d, r14d
jl 0x1400ce46e
movzx r9d, word [r8 + 0x12]
mov ecx, esi
movzx edx, word [r8 + 0x10]
mov word [rsp + 0x44], r9w
mov word [rsp + 0x42], dx
mov dword [rsp + 0x58], r11d
cmp r14d, esi
jbe 0x1400ce464
lea rax, [r8 + 0x34]
cmp word [rax - 2], r9w
jg 0x1400ce442
jne 0x1400ce44e
cmp word [rax], dx
jle 0x1400ce44e
movzx r9d, word [rax - 2]
movzx edx, word [rax]
mov dword [rsp + 0x58], ecx
add ecx, esi
add rax, 0x20
cmp ecx, r14d
jl 0x1400ce434
mov word [rsp + 0x42], dx
mov word [rsp + 0x44], r9w
mov edi, 0x4000
jmp 0x1400ce280
mov edi, 0x4000
jmp 0x1400ce285
mov r9, qword [rsp + 0x48]
add rbp, 0x20
sub rax, rsi
mov qword [rsp + 0x78], rax
jne 0x1400ce11e
mov r13d, dword [rsp + 0x64]
mov rbp, qword [rsp + 0x80]
mov edx, dword [rsp + 0x5c]
mov rax, r8
mov qword [rsp + 0x50], rbp
add edx, esi
mov qword [rsp + 0x80], rax
add r9, 8
mov dword [rsp + 0x5c], edx
mov qword [rsp + 0x48], r9
mov r8, rbp
mov rbp, rax
mov ecx, r12d
cmp edx, r13d
jl 0x1400ce0f3
test r12d, r12d
jne 0x1400ce4ef
mov rcx, qword [rsp + 0x90]
lea rdx, str.no_query_solution
call fcn.140062934
jmp 0x1400ce765
movzx r15d, word [rsp + 0x108]
mov r10d, 0x100
movsxd rax, ecx
mov rdi, rbp
mov edx, esi
cmp rax, rsi
jle 0x1400ce531
lea rcx, [rbp + 0x32]
lea r8, [rax - 1]
movzx eax, word [rcx]
cmp word [rdi + 0x12], ax
jle 0x1400ce526
movsxd rdi, edx
shl rdi, 5
add rdi, rbp
add edx, esi
add rcx, 0x20
sub r8, rsi
jne 0x1400ce513
lea r12, [rdi + 0x18]
test r13b, r13b
je 0x1400ce578
mov r8, r11
mov r9d, r13d
lea rdx, [rbx + 0x394]
mov rax, qword [r12]
mov rcx, qword [r8 + rax]
lea r8, [r8 + 8]
mov qword [rdx + 0x1c], rcx
movzx eax, byte [rcx + 0x10]
imul rcx, rax, 0x70
mov byte [rdx], al
lea rdx, [rdx + 0x60]
mov rax, qword [rbx + 8]
mov ecx, dword [rcx + rax + 0x4c]
mov dword [rdx - 0x90], ecx
sub r9, rsi
jne 0x1400ce547
movzx eax, word [rbx + 0x3c]
mov ecx, 0x180
and ax, cx
movsxd rbp, r13d
cmp ax, r10w
jne 0x1400ce5e7
cmp byte [rbx + 0x43], r11b
jne 0x1400ce5e7
test r15w, r15w
je 0x1400ce5e7
mov rax, qword [r12]
lea rdx, [rsp + 0x100]
mov qword [rsp + 0x30], rdx
movzx ecx, r13w
mov rdx, qword [rbx + 0x18]
sub cx, si
mov r9d, pe_nt_image_headers64
mov r8, rdi
mov rax, qword [rax + rbp*8 - 8]
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], cx
mov rcx, rbx
call fcn.1400cd6c4
movsx ecx, al
xor r11d, r11d
mov rax, qword [rbx + 0x18]
cmp ecx, dword [rax]
jne 0x1400ce5e7
mov byte [rbx + 0x43], 2
mov ecx, dword [rbx + 0x44]
mov r10, qword [rbx + 0x10]
and ecx, 0xfffffffb
mov dword [rbx + 0x44], ecx
test r10, r10
je 0x1400ce75b
test byte [rbx + 0x3c], 0x80
movsx r8d, byte [rdi + 0x16]
je 0x1400ce621
cmp r8d, dword [r10]
jne 0x1400ce611
mov byte [rbx + 0x43], 2
mov rdx, r10
lea rax, [rbx + 0x41]
lea rbp, [rbx + 0x68]
jmp 0x1400ce6e6
lea r14, [rbx + 0x41]
mov rdx, r10
mov byte [r14], r8b
lea r15, [rbx + 0x68]
mov rax, qword [rdi + 8]
mov qword [r15], rax
test r8b, r8b
jg 0x1400ce6ca
mov byte [r14], r11b
test r13b, r13b
je 0x1400ce6c2
mov rax, qword [r12]
mov ecx, 0x104
mov r11, qword [rax + rbp*8 - 8]
mov eax, dword [r11 + 0x28]
and eax, ecx
cmp eax, ecx
setne cl
bt dword [r11 + 0x28], 0xc
setae al
test al, cl
je 0x1400ce6bf
and qword [rsp + 0x100], 0
lea rcx, [rsp + 0x100]
mov qword [rsp + 0x30], rcx
movzx eax, r13w
sub ax, si
mov qword [rsp + 0x28], r11
mov rcx, rbx
mov word [rsp + 0x20], ax
mov r9d, 0x800
mov r8, rdi
call fcn.1400cd6c4
mov rdx, qword [rbx + 0x10]
movsx ecx, al
cmp ecx, dword [rdx]
jne 0x1400ce6bf
mov rax, qword [rsp + 0x100]
or dword [rbx + 0x44], 4
mov qword [r15], rax
xor r11d, r11d
mov rax, r14
mov rbp, r15
jmp 0x1400ce6e6
mov rax, r14
mov rbp, r15
test r13b, r13b
je 0x1400ce6e6
cmp r8b, sil
jne 0x1400ce6e6
test byte [rbx + 0x3c], 3
je 0x1400ce6e6
or ecx, 4
mov dword [rbx + 0x44], ecx
mov ecx, 0x200
test word [rbx + 0x3c], cx
je 0x1400ce75b
movsx eax, byte [rax]
cmp eax, dword [rdx]
jne 0x1400ce75b
test r13b, r13b
je 0x1400ce75b
mov rax, qword [r12]
lea rcx, [rsp + 0x100]
mov qword [rsp + 0x30], rcx
sub r13w, si
mov rcx, qword [rsp + 0x98]
xor r9d, r9d
mov qword [rsp + 0x100], r11
mov r8, rdi
mov rax, qword [rax + rcx - 8]
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], r13w
call fcn.1400cd6c4
movsx edx, al
mov rax, qword [rbx + 0x10]
cmp edx, dword [rax]
jne 0x1400ce75b
mov rax, qword [rsp + 0x100]
or dword [rbx + 0x44], 8
mov qword [rbp], rax
movzx eax, word [rdi + 0x10]
xor esi, esi
mov word [rbx + 0x48], ax
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
call fcn.14005fd68
mov eax, esi
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret