Function at 0x140031117
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, 0x98
movzx eax, byte [r8]
mov rbx, rdx
mov r12, rcx
mov r13, r8
mov edx, eax
lea rsi, [r8 + 1]
cmp al, 0x4c
je 0x1400311f2
cmp eax, 0x55
je 0x1400311f2
cmp eax, 0x75
je 0x14003172e
cmp eax, 0x52
je 0x140031b26
cmp eax, 0x22
je 0x140031755
mov rdi, rsi
cmp eax, 0x27
je 0x140031228
mov r14d, 0x45
mov ebp, 0x3e
movzx eax, byte [rdi]
xor ecx, ecx
nop
lea rsi, [rdi + 1]
movzx edx, al
cmp al, 0x5c
je 0x1400311ca
cmp edx, ebp
je 0x140031282
cmp edx, 0xa
je 0x14003131e
test edx, edx
jne 0x140031262
movzx eax, byte [rdi + 1]
mov rdi, rsi
mov ecx, 1
lea rsi, [rdi + 1]
movzx edx, al
cmp al, 0x5c
jne 0x140031196
cmp byte [r12 + 0x13], 0
jne 0x140031262
add byte [rax], al
invalid
movzx eax, byte [rdi + 1]
cmp al, 0xa
je 0x140031272
movzx eax, byte [rdi + 2]
add rdi, 2
jmp 0x140031187
movzx ebp, byte [r13 + 1]
lea rax, [r13 + 2]
mov rdi, rax
cmp ebp, 0x52
je 0x1400314ae
cmp ebp, 0x22
je 0x14003178e
cmp ebp, 0x27
jne 0x140031175
mov r14d, 0x3a
cmp dl, 0x4c
je 0x140031180
cmp dl, 0x55
je 0x140031b16
mov r14d, 0x39
mov ebp, 0x27
cmp dl, 0x75
jne 0x140031180
xor r14d, r14d
cmp byte [r13 + 1], 0x38
sete r14b
lea r14d, [r14 + r14 + 0x3b]
jmp 0x140031180
movzx eax, byte [rdi + 1]
mov rdi, rsi
jmp 0x140031187
mov rdi, rsi
jmp 0x140031187
test cl, cl
je 0x140031296
cmp byte [r12 + 0x12], 0
je 0x140031498
cmp r14d, 0x3e
je 0x140031dd5
cmp byte [r12 + 0x505], 0
jne 0x14003137e
cmp byte [r12 + 0x530], 0
jne 0x1400316e6
cmp ebp, 0x3e
je 0x1400318e6
test cl, cl
je 0x14003134e
cmp byte [r12 + 0x12], 0
jne 0x14003134e
lea r8, str.null_character_s__preserved_in_literal
xor edx, edx
mov rcx, r12
call fcn.140025bff
nop
cmp dword [r12 + 0x4d8], 0x17
jne 0x14003141e
cmp byte [r12 + 0x505], 0
mov rsi, rdi
mov r14d, 0x3e
je 0x1400312af
nop word [rax + rax]
movzx eax, byte [rsi]
cmp al, 0x5f
jne 0x140031446
cmp byte [rsi + 1], 0x5f
je 0x140031446
mov rdi, qword [0x1400aeea0]
test byte [rdi + rax*2 + 1], 2
je 0x1400312be
mov ecx, r14d
call fcn.1400270fc
mov ecx, eax
call fcn.1400270dc
movzx edx, byte [rsi + 1]
mov r14d, eax
lea rax, [rsi + 1]
test word [rdi + rdx*2], 0x204
test dword [rdi + rdx*2], 0x840f0204
sbb eax, dword [rax]
add byte [rax], al
mov r9d, ebp
lea r8, str.missing_terminating__c_character
mov rcx, r12
mov rsi, rdi
mov edx, 2
mov r14d, 0x3e
call fcn.140025bff
jmp 0x1400312a0
mov rdx, rsi
mov rcx, r12
call fcn.14002eb4e
test al, al
je 0x140031b0e
cmp byte [r12 + 0x506], 0
je 0x1400312be
cmp byte [r12 + 0x12], 0
jne 0x1400312be
lea rax, str.invalid_suffix_on_literal__C11_requires_a_space_between_literal_and_string_macro
xor r9d, r9d
mov edx, 0x13
mov rcx, r12
mov qword [rsp + 0x20], rax
mov r8d, dword [rbx]
call fcn.140025d1f
jmp 0x1400312be
lea r8, str.null_character_s__preserved_in_literal
xor edx, edx
mov rcx, r12
call fcn.140025bff
jmp 0x140031296
mov dword [rsp + 0x30], 0x40
cmp dl, 0x4c
jne 0x140031a66
mov rax, qword [r12]
add rsi, 2
mov edi, dword [rax + 0x38]
shl rdi, 4
add rdi, qword [rax + 0x30]
cmp rsi, qword [rdi]
jbe 0x1400314ef
nop dword [rax]
add rdi, 0x10
cmp rsi, qword [rdi]
ja 0x1400314e2
mov r10, r13
xor ebp, ebp
mov r14d, 0xfffffffe
xor r15d, r15d
mov qword [rsp + 0x70], 0
mov r13, rdi
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
jmp 0x14003162e
cmp r14d, 0xffffffff
je 0x140031554
movsxd rax, r14d
movzx edx, byte [rsp + rax + 0x50]
movsx eax, dil
cmp edx, eax
je 0x1400317fe
test r15d, r15d
jne 0x1400316b6
cmp dil, 0x22
je 0x140031d4f
test r15d, r15d
jne 0x1400316b6
test rbp, rbp
jne 0x1400317ee
cmp dil, 0xa
jne 0x1400317ee
mov rax, qword [r12]
sub rsi, 1
mov qword [rax], rsi
cmp byte [r12 + 0x10], 0
jne 0x140031e04
cmp byte [r12 + 0x19], 0
je 0x1400315b4
mov rcx, qword [rax + 0x20]
cmp qword [rax + 0x10], rcx
jae 0x140031e04
sub rsi, r10
lea rcx, [rsp + 0x70]
mov r8, r10
mov rdx, r12
lea r9, [rsi + 1]
call fcn.140030df0
mov rcx, r12
xor edx, edx
call fcn.14002f892
mov rax, qword [r12]
mov rcx, qword [rax + 0x20]
cmp qword [rax + 0x10], rcx
jb 0x140031c00
or byte [rax + 0x68], 1
cmp byte [r12 + 0x10], 0
jne 0x140031b7f
mov rcx, r12
call fcn.14002f772
test al, al
je 0x140031b7f
mov rax, qword [r12]
mov r14d, 0xffffffff
mov r10, qword [rax]
mov r13d, dword [rax + 0x38]
mov rsi, r10
shl r13, 4
add r13, qword [rax + 0x30]
nop dword [rax]
mov rbp, qword [rsp + 0x80]
test rbp, rbp
je 0x1400316ce
mov rcx, qword [rsp + 0x78]
lea rax, [rbp + 1]
movsx edi, byte [rbp]
mov edx, 1
mov qword [rsp + 0x80], rax
cmp rax, qword [rcx + 0x10]
je 0x1400317b6
cmp r14d, 0xfffffffe
jne 0x140031536
cmp dil, 0x28
je 0x1400318ef
cmp r15d, 0xf
ja 0x140031906
mov eax, edi
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x1400317c7
cmp dil, 0x3f
jg 0x140031b5b
cmp dil, 0x20
jg 0x140031b36
mov rax, qword [r12]
mov rcx, rsi
sub rcx, qword [rax + 8]
lea r9d, [rdx + rcx]
jmp 0x14003191f
xor r14d, r14d
cmp dil, 0x29
je 0x140031626
jmp 0x140031570
cmp qword [r13], rsi
je 0x140031969
movsx edi, byte [rsi]
xor edx, edx
add rsi, 1
jmp 0x14003165b
mov rdx, rsi
mov rcx, r12
call fcn.14002eb4e
test al, al
je 0x1400312be
cmp byte [r12 + 0x12], 0
jne 0x1400312be
lea rax, str.C11_requires_a_space_between_string_literal_and_macro
xor r9d, r9d
mov edx, 0x19
mov rcx, r12
mov qword [rsp + 0x20], rax
mov r8d, dword [rbx]
call fcn.140025d1f
jmp 0x1400312be
movzx eax, byte [r8 + 1]
cmp eax, 0x38
je 0x1400319af
lea rcx, [r8 + 2]
cmp eax, 0x52
je 0x140031d42
mov rsi, rcx
cmp eax, 0x22
jne 0x140031169
mov rdi, rsi
mov r14d, 0x3f
mov ebp, 0x22
cmp dl, 0x75
jne 0x140031180
xor r14d, r14d
cmp byte [r13 + 1], 0x38
mov ebp, 0x22
sete r14b
lea r14d, [r14 + r14 + 0x41]
jmp 0x140031180
mov r14d, 0x40
cmp dl, 0x4c
je 0x140031180
cmp dl, 0x55
jne 0x140031e65
mov r14d, 0x42
jmp 0x140031180
mov qword [rsp + 0x80], 0
jmp 0x14003165b
mov byte [rsp + r15 + 0x50], dil
lea eax, [r15 + 1]
cmp dil, 0xa
jne 0x140031e6d
cmp byte [rsp + 0x4e], 0xa
mov r15d, eax
jne 0x140031570
nop word [rax + rax]
mov r14d, 0xffffffff
jmp 0x140031626
add r14d, 1
cmp r15d, r14d
jne 0x140031626
cmp byte [r12 + 0x505], 0
mov r13, r10
jne 0x140031a03
movzx r15d, byte [rsp + 0x30]
mov rax, qword [r12]
mov rdi, qword [rsp + 0x88]
mov qword [rax], rsi
sub rsi, r13
test rdi, rdi
je 0x1400319d5
mov rax, qword [r12 + 0x40]
lea rbp, [rdi + rsi + 1]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
sub rdx, rcx
cmp rbp, rdx
ja 0x140031d0d
add rbp, rcx
add edi, esi
mov qword [rax + 0x10], rbp
mov rbp, qword [rsp + 0x70]
mov byte [rbx + 4], r15b
mov dword [rbx + 0x10], edi
mov qword [rbx + 0x18], rcx
test rbp, rbp
je 0x1400318af
mov rbx, rbp
nop word [rax + rax]
mov rdx, qword [rbx + 8]
mov rdi, qword [rbx + 0x10]
sub rdi, rdx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rbx, qword [rbx]
mov rcx, rax
add rcx, rdi
test rbx, rbx
jne 0x14003188a
mov rax, rbp
nop dword [rax]
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x1400318b6
mov rax, qword [r12 + 0x48]
mov r8, rsi
mov qword [rdx], rax
mov rdx, r13
mov qword [r12 + 0x48], rbp
call sub.msvcrt.dll_memcpy
mov byte [rax + rsi], 0
jmp 0x140031306
mov byte [rbx + 4], 3
jmp 0x140031306
mov eax, r15d
mov r14d, 0xffffffff
add r15d, 1
mov byte [rsp + rax + 0x50], 0x22
jmp 0x140031626
mov rax, qword [r12]
mov rcx, rsi
sub rcx, qword [rax + 8]
lea r9d, [rdx + rcx]
cmp r15d, 0x10
je 0x140031c6f
mov r8d, dword [rbx]
cmp dil, 0xa
je 0x140031c3c
mov dword [rsp + 0x28], edi
mov edx, 3
mov rcx, r12
xor r15d, r15d
lea rax, str.invalid_character__c_in_raw_string_delimiter
mov qword [rsp + 0x38], r10
mov r14d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.140025cdf
mov dword [rsp + 0x30], 0x3e
mov r10, qword [rsp + 0x38]
jmp 0x140031626
mov eax, dword [r13 + 8]
lea r11, [r13 + 0x10]
cmp eax, 0x20
je 0x140031a7c
cmp eax, 0x5c
je 0x140031a7c
cmp eax, 0xa
je 0x1400319f3
mov dword [r13 + 8], 0
cmp byte [r12 + 0x4e1], 0
mov byte [rsp + 0x4f], al
jne 0x140031d57
mov r13, r11
jmp 0x1400316d8
movzx eax, byte [r8 + 2]
lea rsi, [r8 + 3]
cmp eax, 0x52
jne 0x140031160
lea rax, [r8 + 2]
mov dword [rsp + 0x30], 0x43
mov rsi, rax
jmp 0x1400314bf
mov byte [rbx + 4], r15b
mov r8d, esi
mov rdx, r13
mov rcx, r12
mov dword [rbx + 0x10], esi
call fcn.140030d79
mov qword [rbx + 0x18], rax
jmp 0x140031306
mov dword [r13 + 8], 0
mov r13, r11
jmp 0x1400316d8
movzx eax, byte [rsi]
cmp al, 0x5f
jne 0x140031cb5
cmp byte [rsi + 1], 0x5f
je 0x140031cb5
mov rdi, qword [0x1400aeea0]
test byte [rdi + rax*2 + 1], 2
je 0x14003181d
mov ecx, dword [rsp + 0x30]
call fcn.1400270dc
movzx edx, byte [rsi + 1]
mov r15d, eax
lea rax, [rsi + 1]
test word [rdi + rdx*2], 0x204
test dword [rdi + rdx*2], 0x840f0204
adc al, 0
add byte [rax], al
movzx edx, byte [rax + 1]
add rax, 1
test word [rdi + rdx*2], 0x204
jne 0x140031a4a
mov rsi, rax
jmp 0x140031823
cmp dl, 0x55
jne 0x140031d2e
mov dword [rsp + 0x30], 0x42
jmp 0x1400314bf
lea rdi, [rsp + 0x70]
mov r9, rsi
mov r8, r10
mov rdx, r12
sub r9, r10
mov rcx, rdi
mov qword [rsp + 0x38], r11
call fcn.140030df0
mov rdx, r12
mov rcx, rdi
call fcn.140030d05
mov r9d, 1
mov rdx, r12
mov rcx, rdi
lea r8, [0x1400a6531]
call fcn.140030df0
mov r11, qword [rsp + 0x38]
cmp dword [r13 + 8], 0x20
je 0x140031ddd
mov r9d, 1
lea r8, [0x1400a6535]
mov rdx, r12
mov rcx, rdi
mov qword [rsp + 0x38], r11
call fcn.140030df0
mov r13, qword [rsp + 0x38]
mov rax, qword [rsp + 0x80]
mov r10, rsi
test rax, rax
je 0x1400316d8
mov rbp, rax
jmp 0x140031637
movzx eax, byte [rsi]
jmp 0x140031393
mov r14d, 0x3c
mov ebp, 0x27
jmp 0x140031180
mov dword [rsp + 0x30], 0x3f
mov rsi, r13
jmp 0x1400314bf
movabs rax, 0xfffffcee00000000
bt rax, rdi
jae 0x14003169d
mov eax, r15d
add r15d, 1
mov byte [rsp + rax + 0x50], dil
jmp 0x140031626
lea eax, [rdi - 0x5b]
cmp al, 0x23
ja 0x14003169d
movabs rcx, 0xf0000001d
bt rcx, rax
jae 0x14003169d
jmp 0x140031b4a
mov rax, qword [r12 + 0x28]
mov rcx, qword [rsp + 0x70]
mov byte [rbx + 4], 0x16
mov r8d, dword [rbx]
mov eax, dword [rax + 0x3c]
mov dword [rbx], eax
mov eax, 0x40
mov word [rbx + 8], ax
mov rax, rcx
test rcx, rcx
je 0x140031bc9
nop dword [rax]
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x140031bad
mov rax, qword [r12 + 0x48]
mov qword [rdx], rax
mov qword [r12 + 0x48], rcx
lea rax, str.unterminated_raw_string
mov rcx, r12
xor r9d, r9d
mov edx, 3
mov qword [rsp + 0x20], rax
call fcn.140025cdf
mov rcx, r12
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140024d70
mov r9, qword [r12 + 0x28]
xor r8d, r8d
mov eax, dword [r9 + 0xc]
mov edx, dword [r9 + 0x3c]
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 fcn.140035f1a
mov rax, qword [r12]
jmp 0x1400315e7
lea rax, str.invalid_new_line_in_raw_string_delimiter
mov edx, 3
mov rcx, r12
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x20], rax
call fcn.140025cdf
mov r10, qword [rsp + 0x30]
mov dword [rsp + 0x30], 0x3e
xor r15d, r15d
jmp 0x140031570
lea rax, str.raw_string_delimiter_longer_than_16_characters
mov edx, 3
mov rcx, r12
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x20], rax
mov r8d, dword [rbx]
call fcn.140025cdf
cmp dil, 0xa
mov r10, qword [rsp + 0x30]
je 0x140031c5f
mov dword [rsp + 0x30], 0x3e
mov r14d, 0xffffffff
xor r15d, r15d
jmp 0x140031626
mov rdx, rsi
mov rcx, r12
call fcn.14002eb4e
test al, al
je 0x140031e31
cmp byte [r12 + 0x506], 0
movzx r15d, byte [rsp + 0x30]
je 0x140031823
cmp byte [r12 + 0x12], 0
jne 0x140031823
lea rax, str.invalid_suffix_on_literal__C11_requires_a_space_between_literal_and_string_macro
xor r9d, r9d
mov edx, 0x13
mov rcx, r12
mov qword [rsp + 0x20], rax
mov r8d, dword [rbx]
call fcn.140025d1f
jmp 0x140031823
mov rdx, rbp
mov rcx, r12
call fcn.140030c55
mov rdx, qword [r12 + 0x40]
mov rcx, qword [rax + 0x10]
mov qword [rax], rdx
mov qword [r12 + 0x40], rax
jmp 0x14003185c
cmp dl, 0x75
jne 0x140031b26
cmp byte [r13 + 1], 0x38
je 0x1400319c5
mov dword [rsp + 0x30], 0x41
jmp 0x1400314bf
mov r13, r10
jmp 0x14003181d
lea rdi, [rsp + 0x70]
mov r9, rsi
mov r8, r10
mov rdx, r12
sub r9, r10
mov rcx, rdi
mov qword [rsp + 0x38], r11
call fcn.140030df0
mov rdx, r12
mov rcx, rdi
call fcn.140030d05
mov r9d, 2
mov rdx, r12
mov rcx, rdi
lea r8, [0x1400a6537]
call fcn.140030df0
lea r8, [rsp + 0x4f]
mov rdx, r12
mov rcx, rdi
mov r9d, 1
call fcn.140030df0
cmp byte [rsp + 0x4f], 0x2f
mov r11, qword [rsp + 0x38]
je 0x140031e39
lea r10, [rsi + 1]
mov rax, qword [rsp + 0x80]
mov r13, r11
mov rsi, r10
jmp 0x140031afa
mov rdi, rsi
jmp 0x14003134e
mov r9d, 1
lea r8, [0x1400a6533]
mov rdx, r12
mov rcx, rdi
mov qword [rsp + 0x38], r11
call fcn.140030df0
mov r11, qword [rsp + 0x38]
jmp 0x140031acd
lea rax, str.unterminated_raw_string
xor r9d, r9d
mov rcx, r12
mov r13, r10
mov qword [rsp + 0x20], rax
mov r8d, dword [rbx]
mov edx, 3
mov r15d, 0x3e
call fcn.140025cdf
jmp 0x140031823
movzx eax, byte [rsi]
jmp 0x140031a18
cmp rsi, qword [r13 + 0x10]
jne 0x140031dbe
mov eax, dword [r13 + 0x18]
cmp eax, 0x5c
je 0x140031e59
cmp eax, 0x20
jne 0x140031e75
mov r13, r11
add r11, 0x10
jmp 0x140031ac2
mov rsi, rax
jmp 0x140031755
mov r15d, eax
jmp 0x140031626
lea r8, str.lex_raw_string
mov edx, 0x724
lea rcx, str..._.._libcpp_lex.c
call fcn.14008dd67
nop
nop word cs:[rax + rax]