Function at 0x14003dfa0
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, 0x68
mov rbp, rcx
mov rbx, rdx
mov edi, r8d
mov r12d, r9d
test byte [rdx + 0x8a], 1
jne 0x14003e038
cmp r8d, 2
jne 0x14003dfe3
mov byte [rcx + 0x1a1], 1
or byte [rdx + 0x8a], 1
cmp word [rdx + 0x88], 0
jne 0x14003e038
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14003dff9
movzx eax, byte [rax + 0x13]
shr al, 1
and eax, 3
cmp al, 1
ja 0x14003e038
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x14003e050
mov r9, qword [rbx + 8]
mov r8d, dword [rbx + 0x80]
mov rcx, rbp
call qword [rbp + 0x410]
mov rcx, qword [rbx + 0x10]
mov dword [rbx + 0x80], 0xffffffff
call sym.free
mov qword [rbx + 0x10], 0
nop dword [rax]
xor eax, eax
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test byte [rbx + 0x8c], 3
jne 0x14003e150
cmp edi, 4
jg 0x14003e3f0
cmp edi, 1
je 0x14003e3f0
mov rax, qword [rbp + 0x490]
test rax, rax
je 0x14003e150
mov rdx, qword [rbp + 0x28]
mov r9, qword [rbx + 8]
mov r8d, r12d
mov rcx, rbp
call rax
mov rsi, rax
test rax, rax
je 0x14003e150
mov r9d, 1
mov r8d, 2
lea rdx, [0x140090220]
mov rcx, rbp
call sym.cpp_push_buffer_cpp_reader__unsigned_char_const__unsigned_long_long__int_
mov rcx, rsi
call sym.strlen
mov rdx, rsi
mov r9d, 1
mov rcx, rbp
mov byte [rsi + rax], 0xa
mov r8, rax
xor esi, esi
call sym.cpp_push_buffer_cpp_reader__unsigned_char_const__unsigned_long_long__int_
mov rdx, qword [rax + 0x18]
mov qword [rax + 0x28], rdx
movzx eax, byte [rbx + 0x8c]
and eax, 0xfffffffc
or eax, 1
mov byte [rbx + 0x8c], al
mov byte [rbp + 0x1a1], 1
or byte [rbx + 0x8a], 1
nop dword [rax]
movzx eax, byte [rbx + 0x8c]
and eax, 3
cmp qword [rbx + 0x10], 0
je 0x14003e430
cmp al, 1
je 0x14003e13e
cmp edi, 6
mov dword [rsp + 0x20], esi
mov r8, qword [rbx + 8]
mov rcx, rbp
setne r9b
xor edx, edx
movzx r9d, r9b
call sym._cpp_do_file_change
mov eax, 1
jmp 0x14003e03a
or byte [rbx + 0x8c], 3
test byte [rbx + 0x8a], 4
jne 0x14003e176
mov r8d, r12d
mov rdx, rbx
mov rcx, rbp
call sym.read_file_cpp_reader___cpp_file__unsigned_int___clone_part0_
test al, al
je 0x14003e038
mov rdx, qword [0x140111f60]
test rdx, rdx
je 0x14003e23d
cmp edi, 2
je 0x14003e1f8
cmp byte [rdx + 8], 0
je 0x14003e23d
mov rax, qword [rbx + 0x60]
cmp edi, 2
lea rcx, [rsp + 0x30]
mov r9d, 0x20
sete byte [rsp + 0x49]
add rdx, 0x10
mov qword [rsp + 0x30], rax
lea rax, [sym.pchf_compare_void_const__void_const_]
mov r8, qword [rdx - 0x10]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x48], 0
mov qword [rsp + 0x50], rbx
call sym.bsearch
test rax, rax
je 0x14003e23d
cmp edi, 2
je 0x14003e038
mov byte [rbp + 0x1a1], 1
or byte [rbx + 0x8a], 1
jmp 0x14003e038
mov rax, qword [rbx + 0x60]
add rdx, 0x10
lea rcx, [rsp + 0x30]
mov r9d, 0x20
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x30], rax
mov eax, 0x100
mov r8, qword [rdx - 0x10]
mov word [rsp + 0x48], ax
lea rax, [sym.pchf_compare_void_const__void_const_]
mov qword [rsp + 0x20], rax
call sym.bsearch
test rax, rax
jne 0x14003e038
cmp byte [rbp + 0x1a1], 0
je 0x14003e260
mov rsi, qword [rbp + 0x118]
test rsi, rsi
jne 0x14003e345
nop word cs:[rax + rax]
mov rax, qword [rbp]
test rax, rax
je 0x14003e420
mov rdx, qword [rbx + 0x40]
test rdx, rdx
je 0x14003e420
movzx r12d, byte [rdx + 0x14]
movzx eax, byte [rax + 0x69]
cmp r12b, al
cmovb r12d, eax
xor edx, edx
movzx esi, r12b
test esi, esi
setne dl
movzx eax, word [rbx + 0x88]
cmp dword [rbp + 0x514], edx
jle 0x14003e2c0
test ax, ax
jne 0x14003e2c0
mov rdx, qword [rbx + 8]
cmp byte [rdx], 0
jne 0x14003e490
nop word cs:[rax + rax]
add eax, 1
and byte [rbx + 0x8a], 0xfb
xor r9d, r9d
mov word [rbx + 0x88], ax
cmp byte [rbp + 0x4d7], 0
je 0x14003e2ed
movzx r9d, byte [rbp + 0x544]
xor r9d, 1
movzx r9d, r9b
mov rdx, qword [rbx + 0x28]
mov r8, qword [rbx + 0x60]
mov rcx, rbp
call sym.cpp_push_buffer_cpp_reader__unsigned_char_const__unsigned_long_long__int_
mov byte [rax + 0x69], r12b
mov rdx, qword [rbx + 0x30]
mov qword [rax + 0x50], rbx
mov qword [rax + 0x28], rdx
mov byte [rbp + 0x1b8], 1
mov qword [rbp + 0x1a8], 0
jmp 0x14003e108
mov r8, qword [rsi + 0x60]
cmp r8, qword [rbx + 0x60]
je 0x14003e370
nop word [rax + rax]
mov rsi, qword [rsi + 0x20]
test rsi, rsi
je 0x14003e260
cmp rbx, rsi
je 0x14003e338
cmp edi, 2
je 0x14003e358
test byte [rsi + 0x8a], 1
je 0x14003e338
mov ecx, dword [rsi + 0x84]
test ecx, ecx
jne 0x14003e338
mov rax, qword [rbx + 0x70]
cmp qword [rsi + 0x70], rax
jne 0x14003e338
jmp 0x14003e328
movzx eax, byte [rsi + 0x8a]
mov r14, qword [rsi + 0x28]
mov r13, rsi
shr al, 2
and eax, 1
test r14, r14
je 0x14003e590
test al, al
je 0x14003e500
mov rdx, qword [rbx + 0x28]
mov rcx, qword [r13 + 0x28]
call sym.memcmp
test eax, eax
je 0x14003e4b5
test r14, r14
je 0x14003e338
test byte [rsi + 0x8a], 4
jne 0x14003e338
mov qword [r13 + 8], 0
mov rcx, qword [r13 + 0x30]
call sym.free
mov rcx, qword [r13]
call sym.free
mov rcx, qword [r13 + 8]
call sym.free
mov rcx, r13
call sym.free
jmp 0x14003e338
or byte [rbx + 0x8c], 3
test byte [rbx + 0x8a], 4
je 0x14003e160
mov rdx, qword [0x140111f60]
test rdx, rdx
jne 0x14003e18b
jmp 0x14003e23d
xor r12d, r12d
xor edx, edx
xor esi, esi
jmp 0x14003e295
cmp edi, 2
jg 0x14003e11d
mov r9, qword [rbp + 0x28]
mov edx, dword [r9 + 0x38]
cmp edx, 0x6fffffff
je 0x14003e11d
sub edx, 1
mov dword [r9 + 0x38], edx
cmp al, 1
jne 0x14003e121
mov eax, dword [r9 + 0xc]
mov edx, dword [r9 + 0x3c]
xor r8d, r8d
sub eax, 1
cdqe
shl rax, 5
add rax, qword [r9]
movzx ecx, byte [rax + 0xc]
sub edx, dword [rax]
mov eax, dword [rax + 0x18]
shr edx, cl
mov rcx, r9
lea edx, [rdx + rax - 1]
call sym.linemap_line_start_line_maps__unsigned_int__unsigned_int_
jmp 0x14003e13e
cmp qword [rbp + 0x120], rbx
je 0x14003e5a0
mov rcx, qword [rbp + 0x308]
call sym.deps_add_dep_mkdeps__char_const_
movzx eax, word [rbx + 0x88]
jmp 0x14003e2c0
test r14, r14
je 0x14003e038
test byte [rsi + 0x8a], 4
jne 0x14003e038
xor edx, edx
mov rcx, qword [r13 + 0x30]
mov qword [r13 + 8], rdx
call sym.free
mov rcx, qword [r13]
call sym.free
mov rcx, qword [r13 + 8]
call sym.free
mov rcx, r13
call sym.free
jmp 0x14003e038
mov r15, qword [rsi + 0x40]
mov edx, 0x90
mov ecx, 1
mov r14, qword [rsi]
call sym.xcalloc
mov dword [rax + 0x80], 0xffffffff
mov rcx, r14
mov r13, rax
mov qword [rax + 0x40], r15
call sym.xstrdup
movq xmm0, rax
movhps xmm0, qword [rsi + 8]
movups xmmword [r13], xmm0
test byte [r13 + 0x8a], 4
jne 0x14003e559
mov r8d, r12d
mov rdx, r13
mov rcx, rbp
call sym.read_file_cpp_reader___cpp_file__unsigned_int___clone_part0_
test al, al
je 0x14003e578
mov r8, qword [r13 + 0x60]
mov rax, qword [rbx + 0x60]
mov r14, qword [rsi + 0x28]
cmp rax, r8
jne 0x14003e3aa
jmp 0x14003e395
cmp qword [rsi + 0x28], 0
jne 0x14003e3af
jmp 0x14003e338
test al, al
je 0x14003e547
jmp 0x14003e395
cmp byte [rbp + 0x51b], 0
jne 0x14003e2c0
jmp 0x14003e49d