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

Disassembly:
mov word [rsp + 0x10], dx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rax, qword [rcx]
movzx r15d, dx
xor edx, edx
mov qword [rsp + 0x90], rax
mov rdi, rcx
mov dword [rsp + 0x48], edx
movzx ecx, byte [rcx + 0x3a]
mov ebp, 1
mov r13, qword [rax]
movzx esi, dx
mov qword [rsp + 0x98], r13
movzx r12d, dx
mov qword [rsp + 0x80], rdx
mov dword [rsp + 0x108], ecx
cmp ecx, ebp
ja 0x140093df7
mov ebx, ebp
jmp 0x140093e07
cmp ecx, 2
mov ebx, 0xa
mov eax, 5
cmove ebx, eax
mov rax, qword [rdi + 0x10]
mov dword [rsp + 0x44], ebx
test rax, rax
je 0x140093e24
test r15w, r15w
je 0x140093e24
mov r14d, dword [rax]
mov dword [rsp + 0x40], r14d
jmp 0x140093e2b
mov r14d, edx
mov dword [rsp + 0x40], edx
lea eax, [rcx + 4]
imul eax, ebx
lea ecx, [r14 + rax*8]
add ecx, ecx
movsxd rdx, ecx
mov rcx, r13
call fcn.1400157c0
mov qword [rsp + 0x68], rax
mov rdx, rax
test rax, rax
jne 0x140093e57
lea eax, [rdx + 7]
jmp 0x1400946ca
movsxd r8, dword [rsp + 0x108]
xor ecx, ecx
mov eax, ebx
mov r10, rdx
shl rax, 5
lea r9, [rdx + rax]
shl r8, 3
mov qword [r9], rcx
mov qword [r9 + 8], rcx
mov qword [r9 + 0x10], rcx
mov qword [r9 + 0x18], rcx
lea rcx, [r9 + rax]
mov qword [rsp + 0x58], rdx
lea eax, [rbx + rbx]
mov qword [rsp + 0x70], r9
add rdx, 0x18
nop word [rax + rax]
mov qword [rdx], rcx
lea rdx, [rdx + 0x20]
add rcx, r8
dec eax
test eax, eax
jg 0x140093ea0
test r14d, r14d
je 0x140093ed4
movsxd r8, r14d
xor edx, edx
add r8, r8
mov qword [rsp + 0x80], rcx
call fcn.1400a6c90
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x70]
mov rax, qword [rsp + 0x90]
mov ecx, 0x30
mov eax, dword [rax + 0xb4]
cmp eax, ecx
cmovb ecx, eax
mov word [r9 + 0x10], cx
mov ecx, ebp
test r14d, r14d
je 0x140093f15
movzx eax, r14b
mov edx, 0xffffffff
mov r14d, dword [rsp + 0x108]
test r14b, r14b
cmovne eax, edx
mov byte [r9 + 0x16], al
jmp 0x140093f1d
mov r14d, dword [rsp + 0x108]
xor ebx, ebx
mov dword [rsp + 0x4c], ebx
mov r8d, ebx
test r14b, r14b
je 0x140094449
mov r14d, ebx
mov qword [rsp + 0x60], rbx
nop word [rax + rax]
mov dword [rsp + 0x100], ebx
mov edx, ebx
test ecx, ecx
jle 0x14009437d
lea r15, [r9 + 0x10]
mov eax, ecx
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x88], rax
nop dword [rax]
nop dword [rax + rax]
mov r13, qword [rdi + 0x48]
test r13, r13
je 0x140094358
nop dword [rax]
mov rbp, qword [r15 - 0x10]
movzx r11d, byte [r15 + 6]
mov rax, rbp
not rax
mov qword [rsp + 0x78], rbx
test qword [r13], rax
jne 0x140094334
mov r10, qword [r13 + 8]
test r10, rbp
jne 0x14009432f
mov eax, 0x4000
test dword [r13 + 0x28], eax
je 0x140093fc1
cmp word [r15], 0xa
jl 0x14009432f
movsx edi, word [r13 + 0x12]
lea r14, str._n_n_t_t_b_b_a_a_a
movzx r9d, word [r15]
mov ecx, edi
movzx r8d, word [r13 + 0x14]
add r8w, r9w
movsx edx, r8w
cmp di, r8w
jl 0x140094008
lea eax, [rdx + 0x31]
cmp ecx, eax
jg 0x140094030
lea eax, [rdx + 0x1f]
cmp ecx, eax
jle 0x140093ff9
inc di
jmp 0x140094030
sub ecx, edx
movsxd rax, ecx
movzx ecx, byte [rax + r14]
add di, cx
jmp 0x140094030
lea eax, [rcx + 0x31]
cmp edx, eax
jle 0x140094015
movzx edi, r8w
jmp 0x140094030
lea eax, [rcx + 0x1f]
cmp edx, eax
jle 0x140094022
lea edi, [r8 + 1]
jmp 0x140094030
sub edx, ecx
movsxd rax, edx
movzx edi, byte [rax + r14]
add di, r8w
movsx r8d, word [r15 + 4]
movsx ecx, di
mov edx, r8d
cmp di, r8w
jl 0x140094063
lea eax, [rdx + 0x31]
cmp ecx, eax
jg 0x14009408b
lea eax, [rdx + 0x1f]
cmp ecx, eax
jle 0x140094054
inc di
jmp 0x14009408b
sub ecx, edx
movsxd rax, ecx
movzx eax, byte [rax + r14]
add di, ax
jmp 0x14009408b
lea eax, [rcx + 0x31]
cmp edx, eax
jle 0x140094070
movzx edi, r8w
jmp 0x14009408b
lea eax, [rcx + 0x1f]
cmp edx, eax
jle 0x14009407d
lea edi, [r8 + 1]
jmp 0x14009408b
sub edx, ecx
movsxd rax, edx
movzx edi, byte [rax + r14]
add di, r8w
movzx r14d, word [r13 + 0x16]
or rbp, r10
mov rbx, qword [rsp + 0xf0]
add r14w, r9w
test r11b, r11b
jns 0x1400940df
movzx r9d, word [rbx + 0x38]
lea rax, [rsp + 0x78]
mov rdx, qword [rbx + 0x10]
lea r8, [r15 - 0x10]
mov qword [rsp + 0x30], rax
mov rcx, rbx
mov eax, dword [rsp + 0x4c]
mov qword [rsp + 0x28], r13
mov word [rsp + 0x20], ax
mov rax, rbx
call fcn.1400934b0
mov r15, qword [rsp + 0x78]
movzx r11d, al
jmp 0x1400940e3
mov r15, qword [r15 - 8]
test r11b, r11b
js 0x1400941d9
mov edx, dword [rsp + 0x40]
movsx ecx, r11b
cmp ecx, edx
jge 0x1400941d9
mov r8, qword [rsp + 0x80]
movsx rax, r11b
lea r10, [r8 + rax*2]
movzx r8d, word [r8 + rax*2]
test r8w, r8w
jne 0x140094177
movzx r9d, word [rsp + 0xf8]
mov eax, edx
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv dword [rsp + 0x40]
movsxd rcx, eax
call fcn.1400196f0
movzx r8d, ax
mov ecx, 0x4000
movzx eax, r9w
add r8w, ax
test word [rbx + 0x38], cx
je 0x140094155
cmp word [rbx + 0x20], ax
cmovl r9w, word [rbx + 0x20]
cmp r9w, 0xa
jle 0x14009416e
movsx rcx, r9w
call fcn.1400196f0
sub r8w, 0x21
add r8w, ax
sub r8w, 0x32
mov word [r10], r8w
movsx ecx, di
movsx edx, r8w
cmp di, r8w
jl 0x1400941af
lea eax, [rdx + 0x31]
cmp ecx, eax
jg 0x1400941d9
lea eax, [rdx + 0x1f]
cmp ecx, eax
jle 0x140094198
lea r8d, [rdi + 1]
jmp 0x1400941dd
sub ecx, edx
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd rax, ecx
movzx r8d, byte [rax + rdx]
add r8w, di
jmp 0x1400941dd
lea eax, [rcx + 0x31]
cmp edx, eax
jg 0x1400941dd
lea eax, [rcx + 0x1f]
cmp edx, eax
jle 0x1400941c3
inc r8w
jmp 0x1400941dd
sub edx, ecx
movsxd rax, edx
lea rdx, str._n_n_t_t_b_b_a_a_a
movzx ecx, byte [rax + rdx]
add r8w, cx
jmp 0x1400941dd
movzx r8d, di
mov r10, qword [rsp + 0x58]
xor ecx, ecx
mov edx, dword [rsp + 0x100]
mov rbx, r10
test edx, edx
jle 0x14009420e
cmp qword [rbx], rbp
jne 0x140094204
movzx eax, byte [rbx + 0x16]
xor al, r11b
jge 0x140094300
inc ecx
add rbx, 0x20
cmp ecx, edx
jl 0x1400941f2
mov r9d, dword [rsp + 0x44]
cmp edx, r9d
jl 0x14009422e
cmp r8w, si
jg 0x140094323
jne 0x14009422e
cmp di, r12w
jge 0x140094323
cmp edx, r9d
mov eax, edx
cmovge eax, dword [rsp + 0x48]
movsxd rbx, eax
lea eax, [rdx + 1]
shl rbx, 5
add rbx, r10
cmp edx, r9d
cmovge eax, edx
mov dword [rsp + 0x100], eax
mov rax, qword [r13 + 8]
mov rcx, qword [rsp + 0x50]
or rax, qword [rcx - 0x10]
mov word [rbx + 0x10], r14w
mov r14, qword [rsp + 0x60]
mov qword [rbx + 8], r15
mov r15, rcx
mov word [rbx + 0x12], r8w
mov r8, r14
mov qword [rbx], rax
mov word [rbx + 0x14], di
mov byte [rbx + 0x16], r11b
mov rdx, qword [rcx + 8]
mov rcx, qword [rbx + 0x18]
call fcn.1400a6830
mov rax, qword [rbx + 0x18]
xor ebx, ebx
mov edx, dword [rsp + 0x100]
mov r9d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x58]
mov qword [r14 + rax], r13
lea ebp, [rbx + 1]
cmp edx, r9d
jl 0x14009433b
movzx esi, word [r10 + 0x12]
mov edx, ebp
movzx r12d, word [r10 + 0x10]
mov dword [rsp + 0x48], ebx
cmp r9d, edx
jbe 0x1400942f7
lea rax, [r10 + 0x34]
movzx ecx, word [rax - 2]
cmp cx, si
jg 0x1400942e1
jne 0x1400942ec
cmp word [rax], r12w
jle 0x1400942ec
movzx r12d, word [rax]
movzx esi, cx
mov dword [rsp + 0x48], edx
inc edx
add rax, 0x20
cmp edx, r9d
jl 0x1400942d0
mov edx, dword [rsp + 0x100]
jmp 0x14009433b
cmp ecx, edx
jge 0x14009420e
movzx eax, word [rbx + 0x12]
cmp ax, r8w
jl 0x140094323
jne 0x140094252
cmp word [rbx + 0x10], r14w
jg 0x140094252
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x60]
jmp 0x140094334
mov r10, qword [rsp + 0x58]
mov ebp, 1
xor ebx, ebx
mov r13, qword [r13 + 0x40]
test r13, r13
jne 0x140093f80
mov rdi, qword [rsp + 0xf0]
mov rax, qword [rsp + 0x88]
add r15, 0x20
sub rax, 1
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x88], rax
jne 0x140093f70
mov r8d, dword [rsp + 0x4c]
mov r9, qword [rsp + 0x70]
mov rax, r10
mov qword [rsp + 0x58], r9
inc r8d
mov qword [rsp + 0x70], rax
add r14, 8
mov dword [rsp + 0x4c], r8d
mov r10, r9
mov r9, rax
mov ecx, edx
mov qword [rsp + 0x60], r14
cmp r8d, dword [rsp + 0x108]
jl 0x140093f40
test edx, edx
jne 0x140094430
mov rcx, qword [rsp + 0x90]
lea rdx, str.no_query_solution
call fcn.1400184b0
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x68]
test rcx, rcx
je 0x140094421
cmp qword [rcx + 0x298], 0
je 0x1400943f1
call fcn.140015440
mov eax, ebp
jmp 0x1400946ca
cmp rdx, qword [rcx + 0x180]
jb 0x140094421
cmp rdx, qword [rcx + 0x188]
jae 0x140094421
mov rax, qword [rcx + 0x178]
mov qword [rdx], rax
mov eax, ebp
dec dword [rcx + 0x160]
mov qword [rcx + 0x178], rdx
jmp 0x1400946ca
mov rcx, rdx
call fcn.1400153d0
mov eax, ebp
jmp 0x1400946ca
movzx r15d, word [rsp + 0xf8]
mov r13, qword [rsp + 0x98]
mov r14d, dword [rsp + 0x108]
movsxd rdx, ecx
mov rbx, r9
cmp rdx, 1
jle 0x14009447f
lea rcx, [r9 + 0x32]
dec rdx
nop dword [rax]
movzx eax, word [rcx]
cmp word [rbx + 0x12], ax
jle 0x140094473
movsxd rbx, ebp
shl rbx, 5
add rbx, r9
inc ebp
add rcx, 0x20
sub rdx, 1
jne 0x140094460
test r14b, r14b
je 0x1400944c2
xor r8d, r8d
mov r9d, r14d
lea rdx, [rdi + 0x3bc]
mov rax, qword [rbx + 0x18]
lea rdx, [rdx + 0x58]
lea r8, [r8 + 8]
mov rcx, qword [r8 + rax - 8]
mov qword [rdx - 0x3c], rcx
movzx eax, byte [rcx + 0x10]
imul rcx, rax, 0x78
mov byte [rdx - 0x58], al
mov rax, qword [rdi + 8]
mov ecx, dword [rcx + rax + 0x50]
mov dword [rdx - 0x80], ecx
sub r9, 1
jne 0x140094491
movzx eax, word [rdi + 0x38]
mov ecx, 0x180
and ax, cx
mov ecx, 0x100
cmp ax, cx
jne 0x140094530
cmp byte [rdi + 0x3f], 0
jne 0x140094530
test r15w, r15w
je 0x140094530
mov rax, qword [rbx + 0x18]
lea r8, [rsp + 0xf0]
mov qword [rsp + 0x30], r8
lea edx, [r14 - 1]
movzx ecx, r14b
mov r9d, 0x80
mov r8, rbx
mov rax, qword [rax + rcx*8 - 8]
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], dx
mov rdx, qword [rdi + 0x18]
call fcn.1400934b0
movsx ecx, al
mov rax, qword [rdi + 0x18]
cmp ecx, dword [rax]
jne 0x140094530
mov byte [rdi + 0x3f], 2
mov r10, qword [rdi + 0x10]
test r10, r10
je 0x14009466e
test byte [rdi + 0x38], 0x80
movzx ecx, byte [rbx + 0x16]
je 0x14009455b
movsx eax, cl
cmp eax, dword [r10]
jne 0x140094553
mov byte [rdi + 0x3f], 2
mov rdx, r10
jmp 0x1400945f8
mov byte [rdi + 0x3b], cl
mov rdx, r10
mov rax, qword [rbx + 8]
mov qword [rdi + 0x50], rax
test cl, cl
jg 0x1400945f8
mov byte [rdi + 0x3b], 0
test r14b, r14b
je 0x1400945f8
mov rax, qword [rbx + 0x18]
movzx ecx, r14b
mov r11, qword [rax + rcx*8 - 8]
mov eax, dword [r11 + 0x28]
and eax, 0x104
cmp eax, 0x104
setne cl
bt dword [r11 + 0x28], 0xc
setae al
test al, cl
je 0x1400945f8
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0x30], rcx
lea eax, [r14 - 1]
mov qword [rsp + 0x28], r11
mov rcx, rdi
mov r9d, 0x800
mov word [rsp + 0x20], ax
mov r8, rbx
call fcn.1400934b0
mov rdx, qword [rdi + 0x10]
movsx ecx, al
cmp ecx, dword [rdx]
jne 0x1400945f8
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x50], rax
mov byte [rdi + 0x40], 1
mov eax, 0x200
test word [rdi + 0x38], ax
je 0x14009466e
movsx eax, byte [rdi + 0x3b]
cmp eax, dword [rdx]
jne 0x14009466e
test r14b, r14b
je 0x14009466e
mov rax, qword [rbx + 0x18]
lea r8, [rsp + 0xf0]
mov qword [rsp + 0x30], r8
xor r9d, r9d
movzx ecx, r14b
mov r8, rbx
dec r14w
mov qword [rsp + 0xf0], 0
mov rax, qword [rax + rcx*8 - 8]
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], r14w
call fcn.1400934b0
movsx ecx, al
mov rax, qword [rdi + 0x10]
cmp ecx, dword [rax]
jne 0x14009466e
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x50], rax
mov byte [rdi + 0x3c], 1
movzx eax, word [rbx + 0x10]
mov rdx, qword [rsp + 0x68]
mov word [rdi + 0x58], ax
test r13, r13
je 0x1400946c0
cmp qword [r13 + 0x298], 0
je 0x140094694
mov rcx, r13
call fcn.140015440
jmp 0x1400946c8
cmp rdx, qword [r13 + 0x180]
jb 0x1400946c0
cmp rdx, qword [r13 + 0x188]
jae 0x1400946c0
mov rax, qword [r13 + 0x178]
mov qword [rdx], rax
dec dword [r13 + 0x160]
mov qword [r13 + 0x178], rdx
jmp 0x1400946c8
mov rcx, rdx
call fcn.1400153d0
xor eax, eax
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret