Function at 0x1402a77e0
Capabilities:
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, 0x388
mov rdi, qword [rcx + 8]
mov rax, qword [rcx]
mov rbp, qword [rcx + 0x10]
mov r9, qword [rdi + 0x20]
mov qword [rsp + 0x3d8], rdx
mov r13, rcx
mov edx, dword [rdi + 0x14]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov rcx, qword [rax + 8]
movzx eax, byte [rbp + 0x10]
mov qword [rsp + 0x3e0], r8
lea r8, [rax + rax*2]
lea rax, [rax + r8*4]
lea rax, [rcx + rax*8 + 8]
mov qword [rsp + 0x28], rax
test byte [rax + 0x3c], 0x10
jne 0x1402a78de
movsxd rax, edx
mov r12, qword [rdi + 0x20]
lea rdx, [rax*8]
sub rdx, rax
lea r14, [r9 + rdx*8]
cmp r14, r12
jbe 0x1402a78de
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], rdi
mov r15, rbp
mov rbp, r12
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x34], eax
test byte [rbp + 0x15], 2
je 0x1402a78d5
mov rdx, qword [rbp + 0x20]
mov rax, qword [rdx + 0x1e8]
and rax, qword [r15 + 8]
jne 0x1402a7900
add rbp, 0x38
cmp r14, rbp
ja 0x1402a78be
xor r15d, r15d
mov eax, r15d
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rdx + 0x20]
movsxd rdx, dword [rdx + 0x14]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmm0, xmmword [r13]
lea rax, [rdx*8]
movdqu xmm2, xmmword [r13 + 0x20]
sub rax, rdx
movups xmmword [rsp + 0xa0], xmm1
lea rdi, [rsi + rax*8]
mov rax, qword [r13 + 0x30]
movups xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0xa8], rax
lea rax, [r15 + 0x18]
mov qword [rsp + 0x68], rax
movups xmmword [rsp + 0xb0], xmm2
cmp rsi, rdi
jae 0x1402a7e4c
xor edi, edi
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x88], rbp
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x3d0], r13
jmp 0x1402a7a5b
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x28]
xor edi, edi
lea r12, [rsp + 0x90]
mov word [rsp + 0x110], di
mov rax, qword [rax + 0x20]
cmp byte [rax + 0x3f], 1
je 0x1402a7ac8
mov rdx, qword [rsp + 0x3d8]
mov rcx, r12
call sym.whereLoopAddBtree
mov dword [rsp + 0x30], eax
mov ebx, dword [rsp + 0x30]
test ebx, ebx
je 0x1402a7af0
movzx r8d, word [rsp + 0x110]
test r8w, r8w
je 0x1402a7e1a
mov r10d, dword [rsp + 0x50]
test r10d, r10d
je 0x1402a7b18
lea rcx, [rsp + 0xd8]
lea rdx, [rsp + 0x118]
mov word [rsp + 0xd0], r8w
shl r8, 4
call sym.memcpy
mov dword [rsp + 0x50], 0
add rsi, 0x38
cmp qword [rsp + 0x40], rsi
jbe 0x1402a7d50
test byte [rsi + 0x15], 4
jne 0x1402a79b0
mov eax, dword [rsp + 0x34]
cmp dword [rsi + 0x1c], eax
jne 0x1402a7a4c
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
mov qword [rsp + 0x198], rbx
mov byte [rsp + 0x1a0], 0x2c
mov qword [rsp + 0x190], rax
lea rax, [rsp + 0x190]
mov dword [rsp + 0x1a4], 1
mov dword [rsp + 0x1ac], 1
mov qword [rsp + 0x1b0], rsi
mov qword [rsp + 0x98], rax
jmp 0x1402a79bc
mov r8, qword [rsp + 0x3e0]
mov rdx, qword [rsp + 0x3d8]
mov rcx, r12
call sym.whereLoopAddVirtual
mov dword [rsp + 0x30], eax
jmp 0x1402a79f5
mov r8, qword [rsp + 0x3e0]
mov rdx, qword [rsp + 0x3d8]
mov rcx, r12
call sym.whereLoopAddOr
mov dword [rsp + 0x30], eax
jmp 0x1402a7a01
lea rcx, [rsp + 0x158]
lea rdx, [rsp + 0xd8]
movzx r8d, word [rsp + 0xd0]
lea rbp, [rsp + 0x150]
mov rbx, r8
shl r8, 4
call sym.memcpy
xor r9d, r9d
mov word [rsp + 0xd0], r9w
test bx, bx
je 0x1402a7a4c
lea eax, [rbx - 1]
mov qword [rsp + 0x70], rsi
lea r14, [rsp + 0xd0]
mov r12, rbp
shl rax, 4
add rax, rbp
mov qword [rsp + 0x60], rax
movsx r13d, word [r12 + 0x12]
movsx r15d, word [r12 + 0x10]
xor esi, esi
mov qword [rsp + 0x48], r12
mov rcx, qword [r12 + 8]
mov rbx, qword [rsp + 0x58]
mov r12, r14
lea eax, [r13 + 1]
mov edi, r13d
mov ebp, r15d
mov r14d, r15d
cwde
mov r15d, r13d
mov r13d, esi
mov rsi, rcx
mov dword [rsp + 0x54], eax
movsx r9d, word [rbx + 0x12]
mov eax, r9d
cmp r9w, di
jg 0x1402a7c90
lea eax, [r9 + 0x31]
cmp eax, r15d
jl 0x1402a7cc0
lea eax, [r9 + 0x1f]
cmp eax, r15d
jge 0x1402a7cd0
mov r9d, dword [rsp + 0x54]
nop dword [rax]
movsx r8d, word [rbx + 0x10]
mov eax, r8d
cmp r8w, bp
jg 0x1402a7c70
lea eax, [r8 + 0x31]
cmp eax, r14d
jl 0x1402a7cb8
lea eax, [r8 + 0x1f]
cmp eax, r14d
jge 0x1402a7cf0
lea r8d, [rbp + 1]
movsx r8d, r8w
nop dword [rax + rax]
mov rdx, qword [rbx + 8]
mov rcx, r12
add r13d, 1
add rbx, 0x10
or rdx, rsi
call sym.whereOrInsert.isra.0
movzx eax, word [rsp + 0x110]
mov edx, eax
cmp eax, r13d
jg 0x1402a7bb4
mov r14, r12
mov r12, qword [rsp + 0x48]
cmp qword [rsp + 0x60], r12
je 0x1402a7c66
add r12, 0x10
test dx, dx
jne 0x1402a7b79
mov rsi, qword [rsp + 0x70]
jmp 0x1402a7a4c
lea edx, [r14 + 0x31]
cmp r8d, edx
jg 0x1402a7c20
lea edx, [r14 + 0x1f]
cmp r8d, edx
jle 0x1402a7d30
lea r8d, [r8 + 1]
movsx r8d, r8w
jmp 0x1402a7c20
lea edx, [r15 + 0x31]
cmp r9d, edx
jg 0x1402a7be8
lea edx, [r15 + 0x1f]
cmp r9d, edx
jle 0x1402a7d10
lea r9d, [r9 + 1]
movsx r9d, r9w
jmp 0x1402a7be8
mov r8d, r14d
jmp 0x1402a7c20
mov r9d, r15d
jmp 0x1402a7be8
mov eax, r15d
lea rcx, str._n_n_t_t_b_b_a_a_a
sub eax, r9d
cdqe
movzx r9d, byte [rcx + rax]
add r9d, edi
movsx r9d, r9w
jmp 0x1402a7be8
mov eax, r14d
lea rcx, str._n_n_t_t_b_b_a_a_a
sub eax, r8d
cdqe
movzx r8d, byte [rcx + rax]
add r8d, ebp
movsx r8d, r8w
jmp 0x1402a7c20
sub r9d, r15d
lea rcx, str._n_n_t_t_b_b_a_a_a
movsxd r9, r9d
movzx r9d, byte [rcx + r9]
add r9d, eax
movsx r9d, r9w
jmp 0x1402a7be8
sub r8d, r14d
lea rcx, str._n_n_t_t_b_b_a_a_a
movsxd r8, r8d
movzx r8d, byte [rcx + r8]
add r8d, eax
movsx r8d, r8w
jmp 0x1402a7c20
mov r14, qword [rsp + 0x78]
mov r15, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
mov edi, dword [rsp + 0x30]
mov r13, qword [rsp + 0x3d0]
mov rax, qword [r15 + 0x48]
mov ecx, 1
xor r8d, r8d
mov word [r15 + 0x3c], cx
mov qword [rax], rbp
mov rax, qword [rsp + 0x68]
mov dword [r15 + 0x38], 0x2000
mov word [r15 + 0x12], r8w
mov byte [r15 + 0x11], 0
mov qword [r15 + 0x18], 0
mov qword [r15 + 0x20], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
test edi, edi
jne 0x1402a7e9b
lea rbx, [rsp + 0xd0]
xor esi, esi
nop
movzx eax, word [rsp + 0xd0]
cmp esi, eax
jge 0x1402a78d5
movzx eax, word [rbx + 0x10]
mov rdx, r15
mov rcx, r13
add esi, 1
add rbx, 0x10
add eax, 1
mov word [r15 + 0x14], ax
movzx eax, word [rbx + 2]
mov word [r15 + 0x16], ax
mov rax, qword [rbx - 8]
mov qword [r15], rax
call sym.whereLoopInsert
test eax, eax
je 0x1402a7dd0
mov r15d, eax
jmp 0x1402a78e1
xor r11d, r11d
mov r14, qword [rsp + 0x78]
mov edi, dword [rsp + 0x30]
mov r15, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
mov word [rsp + 0xd0], r11w
mov r13, qword [rsp + 0x3d0]
jmp 0x1402a7d71
mov eax, 1
xor edx, edx
mov word [r15 + 0x3c], ax
mov rax, qword [r15 + 0x48]
mov qword [rax], rbp
mov rax, qword [rsp + 0x68]
mov dword [r15 + 0x38], 0x2000
mov word [r15 + 0x12], dx
mov byte [r15 + 0x11], 0
mov qword [r15 + 0x18], 0
mov qword [r15 + 0x20], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
jmp 0x1402a7dc4
mov r15d, edi
jmp 0x1402a78e1