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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov ebx, r9d
mov r14, rdx
mov rdi, rcx
mov r9, qword [rsp + 0x180]
mov r11, qword [rsp + 0x178]
mov esi, dword [rsp + 0x170]
movzx r12d, word [rsp + 0x168]
movzx ecx, word [rsp + 0x160]
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0xb8], rax
mov r13d, dword [rsp + 0x150]
mov ebp, dword [rsp + 0x148]
mov edx, dword [rsp + 0x140]
mov r15d, ebx
lea rax, [r15 + 1]
cmp rax, rsi
mov word [rsp + 0x4e], cx
mov dword [rsp + 0x6c], edx
jne 0x1400fa583
mov dword [rsp + 0x40], ebp
mov ebp, r12d
mov rdx, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test esi, esi
je 0x1400fa5aa
mov rax, r12
sub rax, rsi
jbe 0x1400fa5c6
cmp byte [rdx + rsi], 0xbf
jg 0x1400fa5c8
lea rax, [0x14018cb28]
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r12
mov r8, rsi
jmp 0x1400fac03
lea rax, [r15 + 3]
cmp rax, rsi
jne 0x1400fa78e
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
test ebx, ebx
je 0x1400fa60e
cmp rdx, r15
jbe 0x1400fa60c
cmp byte [rcx + r15], 0xc0
jge 0x1400fa60e
jmp 0x1400fa61d
cmp r12, 2
jb 0x1400fa5bf
movzx eax, word [rdx + rsi]
cmp eax, 0x2f2f
je 0x1400fa6d2
xor esi, esi
jmp 0x1400fa739
jne 0x1400fa569
cmp rax, 2
jb 0x1400fa739
movzx eax, word [rdx + rsi]
cmp eax, 0x2f2f
jne 0x1400fa739
cmp r12, rsi
jbe 0x1400fa6cc
cmp byte [rdx + rsi], 0xbf
jg 0x1400fa6d2
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x14018c3c8]
mov edx, 0x2c
call fcn.14001b470
jne 0x1400fa61d
test esi, esi
je 0x1400fa636
cmp rdx, rsi
jbe 0x1400fa634
cmp byte [rcx + rsi], 0xbf
jg 0x1400fa636
lea rax, [0x14018ca50]
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rsi
call fcn.14001f890
jne 0x1400fa61d
mov rax, rsi
sub rax, r15
cmp rax, 3
jne 0x1400fa78e
mov qword [rsp + 0x50], r9
movzx r10d, word [rcx + r15]
xor r10d, 0x2f3a
movzx r9d, byte [rcx + r15 + 2]
xor r9d, 0x2e
or r9w, r10w
je 0x1400fa671
mov r9, qword [rsp + 0x50]
jmp 0x1400fa78e
cmp rdx, rsi
jbe 0x1400fabdf
cmp byte [rcx + rsi], 0x2f
jne 0x1400fac23
lea r9, [rsi + 1]
cmp r9, rdx
jae 0x1400fa698
cmp byte [rcx + r9], 0x2f
je 0x1400fab42
test ebx, ebx
je 0x1400fa86c
cmp rdx, r15
jbe 0x1400fa866
cmp byte [rcx + r15], 0xbf
jg 0x1400fa86c
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x14018c410]
mov edx, 0x2a
call fcn.14001b470
jne 0x1400fa5f4
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x60], r11
mov byte [rsp + 0x39], r8b
mov dword [rsp + 0x3c], r13d
mov rax, qword [r14]
sub rax, r12
cmp rax, 1
jbe 0x1400faaf5
lea r13, [rdx + rsi]
add r13, 2
add rdx, rsi
mov r8, r12
sub r8, rsi
mov rcx, r13
call sub.msvcrt.dll_memmove
mov word [r13 - 2], 0x2e2f
add r12, 2
mov qword [r14 + 0x10], r12
add esi, 2
mov rdx, qword [r14 + 8]
mov r13d, dword [rsp + 0x3c]
mov r8b, byte [rsp + 0x39]
mov r11, qword [rsp + 0x60]
mov r9, qword [rsp + 0x50]
test ebx, ebx
je 0x1400fa751
mov rax, r12
sub rax, r15
jbe 0x1400fa756
cmp byte [rdx + r15], 0xbf
jg 0x1400fa75c
jmp 0x1400fabee
mov rax, r12
jmp 0x1400fa75c
jne 0x1400fabee
cmp rax, 3
jae 0x1400fa76b
mov r12d, ebp
mov ebp, dword [rsp + 0x40]
jmp 0x1400fa78e
movzx eax, word [rdx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rdx + r15 + 2]
xor ecx, 0x2f
or cx, ax
mov r12d, ebp
mov ebp, dword [rsp + 0x40]
je 0x1400fac0b
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], r11
lea r15, [rsp + 0x70]
mov rcx, r15
mov rdx, r14
mov r9d, ebx
call fcn.1400fba25
mov eax, dword [r15]
cmp eax, 2
jne 0x1400fa7f6
mov al, byte [rsp + 0x74]
mov byte [rdi + 8], al
movabs rax, 0x8000000000000000
mov qword [rdi], rax
cmp qword [r14], 0
je 0x1400fa852
mov r8, qword [r14 + 8]
mov rcx, qword [0x14019e0f8]
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400fdef8
mov rcx, qword [rsp + 0x74]
mov edx, dword [rsp + 0x7c]
mov r8, qword [r14 + 0x10]
mov qword [rdi + 0x10], r8
movups xmm0, xmmword [r14]
movups xmmword [rdi], xmm0
mov r8, qword [rsp + 0xb8]
movups xmm0, xmmword [r8]
movups xmmword [rdi + 0x40], xmm0
mov r8b, byte [r8 + 0x10]
mov byte [rdi + 0x50], r8b
mov dword [rdi + 0x18], eax
mov qword [rdi + 0x1c], rcx
mov dword [rdi + 0x24], edx
movzx eax, word [rsp + 0x4e]
mov word [rdi + 0x28], ax
mov word [rdi + 0x2a], r12w
mov dword [rdi + 0x2c], ebx
mov eax, dword [rsp + 0x6c]
mov dword [rdi + 0x30], eax
mov dword [rdi + 0x34], ebp
mov dword [rdi + 0x38], r13d
mov dword [rdi + 0x3c], esi
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x1400fa6b4
cmp ebx, esi
ja 0x1400fac37
mov dword [rsp + 0x3c], r13d
mov r9, rdx
sub r9, rsi
jb 0x1400fac49
mov qword [rsp + 0x60], r11
mov byte [rsp + 0x39], r8b
mov qword [r14 + 0x10], r15
lea r10, [rsp + 0x98]
mov qword [r10 - 0x18], r14
mov qword [r10 - 0x10], rsi
mov qword [rsp + 0x40], r9
mov qword [r10 - 8], r9
lea r13, [0x14018c642]
mov qword [r10], r13
lea r8, [0x14018c643]
mov qword [r10 + 8], r8
lea r9, [0x14018ced8]
mov qword [r10 - 0x28], r9
mov qword [r10 - 0x20], r9
jne 0x1400fa8e2
mov rcx, r14
mov rdx, r10
call fcn.1400f556a
jmp 0x1400fab1e
mov word [rsp + 0x3a], r12w
mov r12, r13
cmp ebx, esi
je 0x1400fa93c
add rcx, r15
xor r11d, r11d
lea r9, [0x14018c642]
movzx r12d, word [rsp + 0x3a]
cmp r11, 1
je 0x1400fab0f
mov r10, r11
mov r11b, byte [r11 + r9]
mov byte [rcx + r10], r11b
inc qword [r14 + 0x10]
lea r11, [r10 + 1]
cmp rax, r11
jne 0x1400fa902
lea r12, [r10 + r9]
inc r12
mov qword [rsp + 0x98], r12
cmp r12, r8
je 0x1400fa9da
sub r13, r12
inc r13
mov rax, qword [r14]
sub rax, rdx
cmp rax, r13
jb 0x1400fabb3
add r13, rsi
mov rcx, qword [r14 + 8]
lea rdx, [rcx + rsi]
add rcx, r13
mov r8, qword [rsp + 0x40]
call sub.msvcrt.dll_memmove
mov qword [rsp + 0x88], r13
mov rdx, qword [r14 + 0x10]
cmp rdx, r13
jne 0x1400fa97f
mov r8, r12
jmp 0x1400fa9da
mov rax, qword [r14 + 8]
add rax, rdx
lea rcx, [0x14018c642]
add rcx, rsi
sub rcx, rdx
sub rcx, r12
inc rcx
xor r9d, r9d
lea rdx, [0x14018c643]
mov r13d, dword [rsp + 0x3c]
mov r8, r9
add r9, r12
cmp r9, rdx
je 0x1400faba0
mov r9b, byte [r12 + r8]
mov byte [rax + r8], r9b
inc qword [r14 + 0x10]
lea r9, [r8 + 1]
cmp rcx, r9
jne 0x1400fa9a8
add r8, r12
inc r8
mov qword [rsp + 0x98], r8
lea rcx, [0x14018c642]
sub rcx, r8
inc rcx
call fcn.1400f4dd8
lea r12, [rsp + 0xc0]
mov qword [r12], rax
mov qword [r12 + 8], rdx
mov qword [r12 + 0x10], 0
mov rcx, r12
lea rdx, [rsp + 0x98]
call fcn.1400f556a
mov r9, qword [r12]
mov r8, qword [r12 + 8]
mov r13, qword [r12 + 0x10]
test r13, r13
je 0x1400faad5
mov qword [rsp + 0xa8], r9
mov qword [rsp + 0xb0], r8
mov rcx, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
lea rdx, [r8 + r12]
mov rax, qword [rcx]
sub rax, rdx
cmp rax, r13
mov qword [rsp + 0x40], rcx
jb 0x1400fabc3
lea rax, [r12 + r13]
mov qword [rsp + 0x58], rax
mov rcx, qword [rcx + 8]
lea rdx, [rcx + r12]
add rcx, rax
call sub.msvcrt.dll_memmove
mov r10, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x88], rcx
mov rax, qword [r10 + 0x10]
cmp rax, rcx
mov r8, qword [rsp + 0xb0]
mov r9, qword [rsp + 0xa8]
je 0x1400faad5
sub r12, rax
add rax, qword [r10 + 8]
add r12, r13
xor ecx, ecx
cmp r13, rcx
je 0x1400faad5
mov dl, byte [r8 + rcx]
mov byte [rax + rcx], dl
inc qword [r10 + 0x10]
inc rcx
cmp r12, rcx
jne 0x1400faabd
test r9, r9
mov r13d, dword [rsp + 0x3c]
movzx r12d, word [rsp + 0x3a]
je 0x1400fab23
mov rcx, qword [0x14019e0f8]
xor edx, edx
call fcn.1400fdef8
jmp 0x1400fab23
mov r8d, 2
mov rcx, r14
mov rdx, r12
call fcn.140011d20
mov rdx, qword [r14 + 8]
jmp 0x1400fa6f6
lea rax, [0x14018c643]
mov qword [rsp + 0x98], rax
mov r13d, dword [rsp + 0x3c]
lea rcx, [rsp + 0x70]
call fcn.1400f5adf
add esi, 0xfffffffe
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
mov r8b, byte [rsp + 0x39]
mov r11, qword [rsp + 0x60]
test ebx, ebx
mov r9, qword [rsp + 0x50]
je 0x1400fab5f
mov rax, rdx
sub rax, r15
jbe 0x1400fab64
cmp byte [rcx + r15], 0xbf
jg 0x1400fab6a
jmp 0x1400fac58
mov rax, rdx
jmp 0x1400fab6a
jne 0x1400fac58
cmp rax, 3
jb 0x1400fa78e
movzx eax, word [rcx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rcx + r15 + 2]
xor ecx, 0x2f
or cx, ax
jne 0x1400fa78e
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x14018caf0]
jmp 0x1400fac19
mov qword [rsp + 0x98], rdx
movzx r12d, word [rsp + 0x3a]
jmp 0x1400fab23
mov rcx, r14
mov r8, r13
call fcn.1400ad3df
jmp 0x1400fa951
mov qword [rsp + 0x58], r8
mov r8, r13
call fcn.1400ad3df
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
jmp 0x1400faa6d
lea r8, [0x14018ca70]
mov rcx, rsi
call fcn.14001a4d0
lea rax, [0x14018cb40]
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.14001f890
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x14018cb58]
mov edx, 0x4f
call fcn.14001b470
add rcx, rsi
lea rdx, [rsp + 0x70]
mov qword [rdx], 0
call fcn.1400f5a9c
lea r8, [0x14018c368]
mov rcx, r15
mov rdx, rsi
call fcn.14001bb10
lea r8, [0x14018c368]
mov rcx, rsi
call fcn.14001b0d0
lea rax, [0x14018ca88]
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rdx
call fcn.14001f890
int3