Function at 0x14010e4a0
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 rax, qword [rsp + 0x180]
mov qword [rsp + 0xc8], rax
mov rsi, qword [rsp + 0x178]
mov r9d, dword [rsp + 0x170]
movzx r13d, word [rsp + 0x168]
movzx edx, word [rsp + 0x160]
mov r11, qword [rsp + 0x158]
mov ebp, dword [rsp + 0x150]
mov ecx, dword [rsp + 0x148]
mov r10d, dword [rsp + 0x140]
mov r15d, ebx
lea rax, [r15 + 1]
cmp rax, r9
mov dword [rsp + 0x94], ecx
mov word [rsp + 0x46], dx
mov dword [rsp + 0x90], r10d
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0xd0], rsi
jne 0x14010e578
mov word [rsp + 0x3e], r13w
mov esi, ebp
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
mov rbp, r12
sub rbp, r9
jbe 0x14010e5b6
cmp byte [r13 + r9], 0xbf
jg 0x14010e5b8
lea rax, [0x140187330]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r9
mov r9, r12
call fcn.14011bae0
lea rax, [r15 + 3]
cmp rax, r9
jne 0x14010e5e3
mov word [rsp + 0x3e], r13w
mov byte [rsp + 0x3d], r8b
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test ebx, ebx
je 0x14010e676
cmp r12, r15
jbe 0x14010e670
cmp byte [r13 + r15], 0xbf
jg 0x14010e676
jmp 0x14010ec46
jne 0x14010e55b
cmp rbp, 2
jb 0x14010e5cb
movzx eax, word [r13 + r9]
cmp eax, 0x2f2f
je 0x14010e643
test ebx, ebx
mov ebp, esi
je 0x14010e5f1
cmp r12, r15
jbe 0x14010e5eb
cmp byte [r13 + r15], 0xbf
jg 0x14010e5f1
jmp 0x14010ec60
mov rsi, r9
jmp 0x14010e6f6
jne 0x14010ec60
mov rsi, r9
sub r12, r15
cmp r12, 3
jae 0x14010e608
movzx r13d, word [rsp + 0x3e]
jmp 0x14010e6f6
movzx eax, word [r13 + r15]
xor eax, 0x2f3a
movzx ecx, byte [r13 + r15 + 2]
xor ecx, 0x2f
or cx, ax
movzx r13d, word [rsp + 0x3e]
jne 0x14010e6f6
lea rcx, [0x1401872a3]
lea r8, [0x140187360]
mov edx, 0x4f
call fcn.14011b5f0
cmp r12, r9
jbe 0x14010e7e9
cmp byte [r13 + r9], 0xbf
jg 0x14010e7ef
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x140186e68]
mov edx, 0x2c
call fcn.14011b5f0
jne 0x14010ec46
cmp r12, r9
jbe 0x14010e6c1
cmp byte [r13 + r9], 0xbf
jle 0x14010ec46
mov dword [rsp + 0x40], ebp
mov r8, r9
sub r8, r15
lea rbp, [r15 + r13]
lea rdx, [0x140187268]
mov rcx, rbp
mov rsi, r9
call fcn.14011b190
test eax, eax
je 0x14010e84b
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
movzx r13d, word [rsp + 0x3e]
jmp 0x14010e6f6
jne 0x14010ec46
mov rsi, r9
mov r8, r9
sub r8, r15
add r13, r15
lea rdx, [0x140187268]
mov rcx, r13
call fcn.14011b190
test eax, eax
movzx r8d, byte [rsp + 0x3d]
movzx r13d, word [rsp + 0x3e]
je 0x14010ec7d
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x48]
mov rdx, r14
mov r9d, ebx
call fcn.140111a50
mov eax, dword [rsp + 0x48]
cmp eax, 2
jne 0x14010e76f
movzx eax, byte [rsp + 0x4c]
mov byte [rdi + 8], al
movabs rax, 0x8000000000000000
mov qword [rdi], rax
cmp qword [r14], 0
je 0x14010e7d5
mov r8, qword [r14 + 8]
mov rcx, qword [0x140198260]
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [rsp + 0x54]
mov rdx, qword [rsp + 0x4c]
mov r8, qword [r14 + 0x10]
mov qword [rdi + 0x10], r8
movups xmm0, xmmword [r14]
movups xmmword [rdi], xmm0
mov r8, qword [rsp + 0xc0]
movups xmm0, xmmword [r8]
movups xmmword [rdi + 0x40], xmm0
movzx r8d, byte [r8 + 0x10]
mov byte [rdi + 0x50], r8b
mov dword [rdi + 0x18], eax
mov qword [rdi + 0x1c], rdx
mov dword [rdi + 0x24], ecx
movzx eax, word [rsp + 0x46]
mov word [rdi + 0x28], ax
mov word [rdi + 0x2a], r13w
mov dword [rdi + 0x2c], ebx
mov eax, dword [rsp + 0x90]
mov dword [rdi + 0x30], eax
mov eax, dword [rsp + 0x94]
mov dword [rdi + 0x34], eax
mov dword [rdi + 0x38], ebp
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 0x14010e658
mov byte [rsp + 0x3d], r8b
mov rax, qword [r14]
sub rax, r12
cmp rax, 1
jbe 0x14010ea10
lea rdx, [r9 + r13]
lea rcx, [r9 + r13]
add rcx, 2
mov r8, rbp
mov rbp, r9
call fcn.14011a750
mov r9, rbp
mov word [r13 + rbp], 0x2e2f
add r12, 2
mov qword [r14 + 0x10], r12
add r9d, 2
mov r13, qword [r14 + 8]
movzx r8d, byte [rsp + 0x3d]
test ebx, ebx
mov ebp, esi
jne 0x14010e5d1
jmp 0x14010e5f1
cmp byte [r13 + rsi], 0x2f
movzx r8d, byte [rsp + 0x3d]
jne 0x14010ec8f
lea rcx, [rsi + 1]
cmp rcx, r12
jae 0x14010e877
cmp byte [r13 + rcx], 0x2f
jne 0x14010e877
mov ebp, dword [rsp + 0x40]
jmp 0x14010eb99
test ebx, ebx
je 0x14010e8a0
cmp r12, r15
jbe 0x14010e89e
cmp byte [rbp], 0xbf
jg 0x14010e8a0
lea rcx, str.assertion_failed:_self.is_char_boundary_n__rustc_ba1d7f4a083e6402679105115ded645512a7aea8library_alloc_src_string.rs
lea r8, [0x140187800]
mov edx, 0x2a
call fcn.14011b5f0
jne 0x14010e886
cmp byte [r13 + rsi], 0xbf
jle 0x14010eca8
cmp ebx, esi
ja 0x14010ecc0
cmp r12, rsi
jb 0x14010ecd2
mov qword [r14 + 0x10], r15
mov r8, r12
mov qword [rsp + 0x60], rsi
lea rdx, [rsp + 0x70]
sub r8, rsi
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x58], r14
lea r11, [0x14018769a]
mov qword [rsp + 0x70], r11
lea rax, [0x14018769b]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x88], rsi
jne 0x14010e926
mov rcx, r14
call fcn.1401155f0
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
jmp 0x14010eb38
cmp ebx, esi
jne 0x14010e9b6
mov rbp, rcx
mov r13, r11
cmp qword [r14], r12
je 0x14010ec00
mov rdx, qword [r14 + 8]
lea rcx, [rdx + rsi]
inc rcx
add rdx, rsi
call fcn.14011a750
mov qword [rsp + 0x60], rbp
mov rcx, qword [r14 + 0x10]
mov r11, r13
mov rax, r13
cmp rcx, rbp
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
je 0x14010e9dc
mov rax, qword [rsp + 0x88]
sub rax, rcx
add rcx, qword [r14 + 8]
inc rax
xor r10d, r10d
lea rdx, [0x14018769a]
cmp r10, 1
je 0x14010eb38
mov r9, r10
movzx r10d, byte [r10 + rdx]
mov byte [rcx + r9], r10b
inc qword [r14 + 0x10]
lea r10, [r9 + 1]
cmp rax, r10
jne 0x14010e98a
lea rax, [r9 + rdx]
inc rax
jmp 0x14010e9d7
add r13, rsi
mov byte [rbp], 0x3a
inc rbp
inc qword [r14 + 0x10]
cmp rbp, r13
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
jne 0x14010eb38
mov qword [rsp + 0x70], rax
sub r11, rax
inc r11
je 0x14010ea30
js 0x14010ece4
movzx eax, byte [0x140198310]
xor ecx, ecx
mov r12, r11
mov rdx, r11
call fcn.1400f3050
test rax, rax
jne 0x14010ea38
mov ecx, 1
mov rdx, r12
call fcn.14011b260
mov r8d, 2
mov rcx, r14
mov rdx, r12
mov r13, r9
call fcn.14011b2a0
mov r9, r13
mov r13, qword [r14 + 8]
jmp 0x14010e804
xor r12d, r12d
mov eax, 1
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x98], r12
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 0
lea rcx, [rsp + 0x98]
call fcn.1401155f0
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xa8]
test r13, r13
je 0x14010eb11
mov qword [rsp + 0xb8], r8
mov qword [rsp + 0x80], r9
mov rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
lea rdx, [r8 + r12]
mov rax, qword [rbp]
sub rax, rdx
cmp rax, r13
jb 0x14010ec26
lea rsi, [r12 + r13]
mov rcx, qword [rbp + 8]
lea rdx, [rcx + r12]
add rcx, rsi
call fcn.14011a750
mov qword [rsp + 0x60], rsi
mov rax, qword [rbp + 0x10]
cmp rax, rsi
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0xb8]
je 0x14010eb11
sub r12, rax
add rax, qword [rbp + 8]
add r12, r13
xor ecx, ecx
cmp r13, rcx
je 0x14010eb11
movzx edx, byte [r9 + rcx]
mov byte [rax + rcx], dl
inc qword [rbp + 0x10]
inc rcx
cmp r12, rcx
jne 0x14010eaf8
test r8, r8
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
je 0x14010eb38
mov rcx, qword [0x140198260]
xor edx, edx
mov r8, r9
call qword [sym.imp.kernel32.dll_HeapFree]
movzx r8d, byte [rsp + 0x3d]
mov rax, qword [rsp + 0x50]
mov r12, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x48]
test r12, r12
mov rsi, qword [rsp + 0x88]
je 0x14010eb8e
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
lea r13, [rax + 0x10]
mov rbp, qword [rax + 0x10]
cmp rdx, rbp
je 0x14010eb83
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, rbp
mov r8, r12
call fcn.14011a750
movzx r8d, byte [rsp + 0x3d]
add rbp, r12
mov qword [r13], rbp
mov ebp, dword [rsp + 0x40]
add esi, 0xfffffffe
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test ebx, ebx
je 0x14010ebb8
cmp r12, r15
jbe 0x14010ebb6
cmp byte [r13 + r15], 0xbf
jg 0x14010ebb8
lea rax, [0x140187288]
jmp 0x14010ec67
jne 0x14010ebaa
sub r12, r15
cmp r12, 3
jb 0x14010e5fd
movzx eax, word [r13 + r15]
xor eax, 0x2f3a
movzx ecx, byte [r13 + r15 + 2]
xor ecx, 0x2f
or cx, ax
movzx r13d, word [rsp + 0x3e]
jne 0x14010e6f6
lea rcx, [0x1401872a3]
lea r8, [0x1401872f8]
mov edx, 0x4f
call fcn.14011b5f0
mov qword [rsp + 0x80], r8
mov r8d, 1
mov rcx, r14
mov rdx, r12
call fcn.140123dc0
mov r8, qword [rsp + 0x80]
jmp 0x14010e93d
mov rcx, rbp
mov qword [rsp + 0xb0], r8
mov r8, r13
call fcn.140123dc0
mov r8, qword [rsp + 0xb0]
jmp 0x14010eaba
lea rax, [0x140187250]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
call fcn.14011bae0
lea rax, [0x140187348]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.14011bae0
lea r8, [0x140187270]
mov rcx, rsi
mov rdx, r12
call fcn.14011b570
mov qword [rsp + 0x48], 0
add r13, rsi
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.140127060
lea rcx, str.assertion_failed:_self.is_char_boundary_n__rustc_ba1d7f4a083e6402679105115ded645512a7aea8library_alloc_src_string.rs
lea r8, [0x140187818]
mov edx, 0x2a
call fcn.14011b5f0
lea r8, str._rustc_ba1d7f4a083e6402679105115ded645512a7aea8library_alloc_src_vecmod.rs
mov rcx, r15
mov rdx, rsi
call fcn.14011b920
lea r8, str._rustc_ba1d7f4a083e6402679105115ded645512a7aea8library_alloc_src_vecmod.rs
mov rcx, rsi
mov rdx, r12
call fcn.14011b5e0
xor ecx, ecx
mov rdx, r11
call fcn.14011b260
int3