Function at 0x140048320
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, 0xc8
mov esi, r9d
mov rbx, rcx
mov r10, qword [rsp + 0x170]
mov r9, qword [rsp + 0x168]
mov r14d, dword [rsp + 0x160]
movzx eax, word [rsp + 0x158]
mov word [rsp + 0x46], ax
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x44], ax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x138]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x9c], eax
mov r15d, esi
lea rax, [r15 + 1]
cmp rax, r14
mov qword [rsp + 0x38], rdx
jne 0x1400483e7
mov qword [rsp + 0x30], r15
mov r15d, r8d
mov r13, qword [rdx + 8]
mov rdi, qword [rdx + 0x10]
mov r12, rdi
sub r12, r14
jbe 0x140048438
cmp byte [r13 + r14], 0xbf
jg 0x14004843a
lea rax, [0x140092d90]
mov qword [rsp + 0x30], r14
jmp 0x140048aba
lea rax, [r15 + 3]
cmp rax, r14
jne 0x140048988
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x50], r9
mov r13, qword [rdx + 8]
mov rdi, qword [rdx + 0x10]
mov dword [rsp + 0x30], esi
test esi, esi
je 0x1400484f5
lea rax, [0x140092cb0]
cmp rdi, r15
jbe 0x1400484ef
cmp byte [r13 + r15], 0xc0
jge 0x1400484f5
mov qword [rsp + 0x30], r15
jmp 0x140048acb
jne 0x1400483d6
cmp r12, 2
jb 0x14004844d
movzx eax, word [r13 + r14]
cmp eax, 0x2f2f
je 0x1400484b8
mov rdx, qword [rsp + 0x38]
test esi, esi
mov r8d, r15d
mov rcx, qword [rsp + 0x30]
je 0x140048476
cmp rdi, rcx
jbe 0x140048470
cmp byte [r13 + rcx], 0xbf
jg 0x140048476
jmp 0x140048ab3
jne 0x140048ab3
sub rdi, rcx
cmp rdi, 3
jb 0x140048988
movzx eax, word [r13 + rcx]
xor eax, 0x2f3a
movzx ecx, byte [r13 + rcx + 2]
xor ecx, 0x2f
or cx, ax
jne 0x140048988
lea r8, [0x140092dc0]
mov edx, 0x4f
lea rax, [0x140092d03]
jmp 0x140048b0d
cmp rdi, r14
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], r10
jbe 0x14004858f
cmp byte [r13 + r14], 0xc0
jge 0x140048595
lea r8, [0x1400928f8]
mov edx, 0x2c
lea rax, str.assertion_failed:_self.is_char_boundary_idx_
jmp 0x140048b0d
jne 0x14004842e
cmp rdi, r14
jbe 0x140048538
cmp byte [r13 + r14], 0xbf
jle 0x140048abf
mov r12, rdx
mov esi, r8d
mov r8, r14
sub r8, r15
lea rbp, [r15 + r13]
lea rdx, [0x140092cc8]
mov rcx, rbp
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14004860f
mov r8d, esi
mov rdx, r12
jmp 0x14004897a
jne 0x140048abf
mov r12, rdx
mov esi, r8d
mov r8, r14
sub r8, r15
add r13, r15
lea rdx, [0x140092cc8]
mov rcx, r13
call sub.msvcrt.dll_memcmp
test eax, eax
mov r8d, esi
mov rdx, r12
mov esi, dword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
jne 0x140048988
lea r8, [0x140092cd0]
mov rcx, r14
mov rdx, rdi
call fcn.1400088f0
jmp 0x140048b49
jne 0x1400484d7
mov rbp, qword [rsp + 0x38]
mov rax, qword [rbp]
sub rax, rdi
cmp rax, 1
ja 0x1400485c1
mov r8d, 2
mov rcx, rbp
mov rdx, rdi
call fcn.140008020
mov rbp, qword [rsp + 0x38]
mov r13, qword [rbp + 8]
lea rdx, [r14 + r13]
lea rcx, [r14 + r13]
add rcx, 2
mov r8, r12
call sub.msvcrt.dll_memmove
mov word [r13 + r14], 0x2e2f
add rdi, 2
mov qword [rbp + 0x10], rdi
add r14d, 2
mov r13, qword [rbp + 8]
mov rdx, rbp
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
test esi, esi
mov r8d, r15d
mov rcx, qword [rsp + 0x30]
jne 0x14004845e
jmp 0x140048476
lea rcx, [r14 + r13]
cmp byte [r13 + r14], 0x2f
jne 0x140048ae5
lea r9, [r14 + 1]
cmp r9, rdi
jae 0x14004863b
cmp byte [r13 + r9], 0x2f
jne 0x14004863b
mov rdx, r12
mov r8d, esi
jmp 0x140048946
mov edx, dword [rsp + 0x30]
test edx, edx
je 0x140048668
lea r8, [0x140093320]
lea rax, str.assertion_failed:_self.is_char_boundary_n__rustc_129f3b9964af4d4a709d1383930ade12dfe7c081library_alloc_src_string.rs
cmp rdi, r15
jbe 0x140048666
cmp byte [rbp], 0xc0
jge 0x140048668
mov edx, 0x2a
jmp 0x140048b0d
jne 0x14004865c
cmp byte [rcx], 0xc0
jl 0x140048afa
mov byte [rsp + 0x43], sil
cmp edx, r14d
ja 0x140048b17
mov r12, rdi
sub r12, r14
jb 0x140048b2b
mov rdx, qword [rsp + 0x38]
mov qword [rdx + 0x10], r15
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x70], rdx
lea rsi, [rsp + 0x88]
lea r13, [0x14009304a]
mov qword [rsp + 0x88], r13
lea rax, [0x14009304b]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 1
jne 0x1400486f0
mov rcx, rdx
mov rdx, rsi
call fcn.140050c30
jmp 0x1400488e9
cmp dword [rsp + 0x30], r14d
jne 0x140048799
mov qword [rsp + 0x58], r9
mov rax, qword [rsp + 0x38]
cmp qword [rax], rdi
jne 0x14004871d
mov r8d, 1
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
call fcn.140051580
mov rdi, rsi
mov rsi, qword [rsp + 0x38]
mov rdx, qword [rsi + 8]
lea rcx, [rdx + r14]
inc rcx
add rdx, r14
mov r8, r12
call sub.msvcrt.dll_memmove
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x78], rdx
mov rcx, qword [rsi + 0x10]
mov rax, r13
cmp rcx, rdx
je 0x1400487bd
mov rax, r14
sub rax, rcx
add rcx, qword [rsi + 8]
inc rax
xor r9d, r9d
lea rdx, [0x14009304a]
cmp r9, 1
je 0x1400488e9
mov r8, r9
movzx r9d, byte [r9 + rdx]
mov byte [rcx + r8], r9b
mov r9, qword [rsp + 0x38]
inc qword [r9 + 0x10]
lea r9, [r8 + 1]
cmp rax, r9
jne 0x140048768
lea rax, [r8 + rdx]
inc rax
jmp 0x1400487b5
mov byte [rbp], 0x3a
inc rbp
mov rdx, qword [rsp + 0x38]
inc qword [rdx + 0x10]
cmp rbp, rcx
jne 0x1400488e9
mov rdi, rsi
mov qword [rsp + 0x88], rax
sub r13, rax
inc r13
je 0x1400487ec
js 0x140048b3f
mov rsi, rdi
movzx eax, byte [0x14009b150]
mov rcx, r13
call fcn.140042430
test rax, rax
jne 0x1400487f7
mov ecx, 1
jmp 0x140048b41
xor r13d, r13d
mov eax, 1
mov rsi, rdi
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], 0
lea rcx, [rsp + 0xa8]
mov rdx, rsi
call fcn.140050c30
mov r9, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
test r13, r13
je 0x1400488d3
mov qword [rsp + 0x58], r9
mov r12, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
lea rdx, [rdi + rbp]
mov rax, qword [r12]
sub rax, rdx
cmp rax, r13
jae 0x140048876
mov rcx, r12
mov r8, r13
call fcn.140051580
mov rcx, qword [r12 + 8]
lea rdx, [rcx + rdi]
add rdi, r13
add rcx, rdi
mov r8, rbp
call sub.msvcrt.dll_memmove
mov qword [rsp + 0x78], rdi
mov rax, qword [r12 + 0x10]
cmp rax, rdi
mov r9, qword [rsp + 0x58]
je 0x1400488d3
mov rcx, qword [r12 + 8]
add rcx, rax
not rax
add rax, rdi
dec r13
xor edx, edx
movzx r8d, byte [rsi + rdx]
mov byte [rcx + rdx], r8b
inc qword [r12 + 0x10]
cmp rax, rdx
je 0x1400488d3
lea r8, [rdx + 1]
cmp r13, rdx
mov rdx, r8
jne 0x1400488b4
test r9, r9
je 0x1400488e9
mov rcx, qword [0x14009b118]
xor edx, edx
mov r8, rsi
call fcn.140055f4c
mov rax, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
cmp rax, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x80]
test rdi, rdi
je 0x14004892f
mov r13, qword [r12 + 0x10]
mov rdx, qword [rsp + 0x78]
cmp rdx, r13
je 0x140048927
mov rcx, qword [r12 + 8]
add rdx, rcx
add rcx, r13
mov r8, rdi
call sub.msvcrt.dll_memmove
add r13, rdi
mov qword [r12 + 0x10], r13
add r14d, 0xfffffffe
mov rdx, qword [rsp + 0x38]
mov r13, qword [rdx + 8]
mov rdi, qword [rdx + 0x10]
movzx r8d, byte [rsp + 0x43]
cmp dword [rsp + 0x30], 0
je 0x14004896d
cmp rdi, r15
jbe 0x14004896b
cmp byte [r13 + r15], 0xbf
jg 0x14004896d
mov qword [rsp + 0x30], r15
lea rax, [0x140092ce8]
jmp 0x140048aba
jne 0x14004895a
sub rdi, r15
cmp rdi, 3
jae 0x140048a7c
mov esi, dword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x60]
mov r9d, esi
call fcn.14004cab0
mov eax, dword [rsp + 0x60]
cmp eax, 2
jne 0x1400489f1
movzx eax, byte [rsp + 0x64]
mov byte [rbx + 8], al
movabs rax, 0x8000000000000000
mov qword [rbx], rax
mov rax, qword [rsp + 0x38]
cmp qword [rax], 0
je 0x140048a68
mov r8, qword [rax + 8]
mov rcx, qword [0x14009b118]
xor edx, edx
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140055f4c
mov ecx, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x64]
mov r9, qword [rsp + 0x38]
mov r8, qword [r9 + 0x10]
mov qword [rbx + 0x10], r8
movups xmm0, xmmword [r9]
movups xmmword [rbx], xmm0
mov r8, qword [rsp + 0xc0]
movups xmm0, xmmword [r8]
movups xmmword [rbx + 0x40], xmm0
movzx r8d, byte [r8 + 0x10]
mov byte [rbx + 0x50], r8b
mov dword [rbx + 0x18], eax
mov qword [rbx + 0x1c], rdx
mov dword [rbx + 0x24], ecx
movzx eax, word [rsp + 0x44]
mov word [rbx + 0x28], ax
movzx eax, word [rsp + 0x46]
mov word [rbx + 0x2a], ax
mov dword [rbx + 0x2c], esi
mov eax, dword [rsp + 0x9c]
mov dword [rbx + 0x30], eax
mov eax, dword [rsp + 0xa0]
mov dword [rbx + 0x34], eax
mov eax, dword [rsp + 0xa4]
mov dword [rbx + 0x38], eax
mov dword [rbx + 0x3c], r14d
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, word [r13 + r15]
xor eax, 0x2f3a
movzx ecx, byte [r13 + r15 + 2]
xor ecx, 0x2f
or cx, ax
mov esi, dword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
jne 0x140048988
lea r8, [0x140092d58]
jmp 0x1400484a7
lea rax, [0x140092da8]
mov r14, rdi
jmp 0x140048acb
mov qword [rsp + 0x30], r15
lea rax, [0x140092cb0]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, rdi
mov r8, qword [rsp + 0x30]
mov r9, r14
call fcn.14000b4c0
jmp 0x140048b49
mov qword [rsp + 0x60], 0
lea rdx, [rsp + 0x60]
call fcn.140051150
jmp 0x140048b49
lea r8, [0x140093338]
mov edx, 0x2a
lea rax, str.assertion_failed:_self.is_char_boundary_n__rustc_129f3b9964af4d4a709d1383930ade12dfe7c081library_alloc_src_string.rs
mov rcx, rax
call fcn.1400095c0
jmp 0x140048b49
lea r8, str.p1_t_
mov rcx, r15
mov rdx, r14
call fcn.140009d60
jmp 0x140048b49
lea r8, str.p1_t_
mov rcx, r14
mov rdx, rdi
call fcn.140009250
jmp 0x140048b49
xor ecx, ecx
mov rdx, r13
call fcn.140007fa0
ud2