Function at 0x14010c430
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 0x14010c508
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 0x14010c546
cmp byte [r13 + r9], 0xbf
jg 0x14010c548
lea rax, [0x140185538]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r9
mov r9, r12
call fcn.140119a10
lea rax, [r15 + 3]
cmp rax, r9
jne 0x14010c573
mov word [rsp + 0x3e], r13w
mov byte [rsp + 0x3d], r8b
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test ebx, ebx
je 0x14010c606
cmp r12, r15
jbe 0x14010c600
cmp byte [r13 + r15], 0xbf
jg 0x14010c606
jmp 0x14010cbd6
jne 0x14010c4eb
cmp rbp, 2
jb 0x14010c55b
movzx eax, word [r13 + r9]
cmp eax, 0x2f2f
je 0x14010c5d3
test ebx, ebx
mov ebp, esi
je 0x14010c581
cmp r12, r15
jbe 0x14010c57b
cmp byte [r13 + r15], 0xbf
jg 0x14010c581
jmp 0x14010cbf0
mov rsi, r9
jmp 0x14010c686
jne 0x14010cbf0
mov rsi, r9
sub r12, r15
cmp r12, 3
jae 0x14010c598
movzx r13d, word [rsp + 0x3e]
jmp 0x14010c686
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 0x14010c686
lea rcx, [0x1401854ab]
lea r8, [0x140185568]
mov edx, 0x4f
call fcn.1401194c0
cmp r12, r9
jbe 0x14010c779
cmp byte [r13 + r9], 0xbf
jg 0x14010c77f
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x140185068]
mov edx, 0x2c
call fcn.1401194c0
jne 0x14010cbd6
cmp r12, r9
jbe 0x14010c651
cmp byte [r13 + r9], 0xbf
jle 0x14010cbd6
mov dword [rsp + 0x40], ebp
mov r8, r9
sub r8, r15
lea rbp, [r15 + r13]
lea rdx, [0x140185470]
mov rcx, rbp
mov rsi, r9
call fcn.140118fa0
test eax, eax
je 0x14010c7db
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
movzx r13d, word [rsp + 0x3e]
jmp 0x14010c686
jne 0x14010cbd6
mov rsi, r9
mov r8, r9
sub r8, r15
add r13, r15
lea rdx, [0x140185470]
mov rcx, r13
call fcn.140118fa0
test eax, eax
movzx r8d, byte [rsp + 0x3d]
movzx r13d, word [rsp + 0x3e]
je 0x14010cc0d
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.14010f9b0
mov eax, dword [rsp + 0x48]
cmp eax, 2
jne 0x14010c6ff
movzx eax, byte [rsp + 0x4c]
mov byte [rdi + 8], al
movabs rax, 0x8000000000000000
mov qword [rdi], rax
cmp qword [r14], 0
je 0x14010c765
mov r8, qword [r14 + 8]
mov rcx, qword [0x140196260]
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 0x14010c5e8
mov byte [rsp + 0x3d], r8b
mov rax, qword [r14]
sub rax, r12
cmp rax, 1
jbe 0x14010c9a0
lea rdx, [r9 + r13]
lea rcx, [r9 + r13]
add rcx, 2
mov r8, rbp
mov rbp, r9
call fcn.140118560
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 0x14010c561
jmp 0x14010c581
cmp byte [r13 + rsi], 0x2f
movzx r8d, byte [rsp + 0x3d]
jne 0x14010cc1f
lea rcx, [rsi + 1]
cmp rcx, r12
jae 0x14010c807
cmp byte [r13 + rcx], 0x2f
jne 0x14010c807
mov ebp, dword [rsp + 0x40]
jmp 0x14010cb29
test ebx, ebx
je 0x14010c830
cmp r12, r15
jbe 0x14010c82e
cmp byte [rbp], 0xbf
jg 0x14010c830
lea rcx, str.assertion_failed:_self.is_char_boundary_n__rustc_d9284afea99e0969a0e692b9e9fd61ea4ba21366library_alloc_src_string.rs
lea r8, [0x140185a08]
mov edx, 0x2a
call fcn.1401194c0
jne 0x14010c816
cmp byte [r13 + rsi], 0xbf
jle 0x14010cc38
cmp ebx, esi
ja 0x14010cc50
cmp r12, rsi
jb 0x14010cc62
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, [0x1401858a2]
mov qword [rsp + 0x70], r11
lea rax, [0x1401858a3]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x88], rsi
jne 0x14010c8b6
mov rcx, r14
call fcn.140113270
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
jmp 0x14010cac8
cmp ebx, esi
jne 0x14010c946
mov rbp, rcx
mov r13, r11
cmp qword [r14], r12
je 0x14010cb90
mov rdx, qword [r14 + 8]
lea rcx, [rdx + rsi]
inc rcx
add rdx, rsi
call fcn.140118560
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 0x14010c96c
mov rax, qword [rsp + 0x88]
sub rax, rcx
add rcx, qword [r14 + 8]
inc rax
xor r10d, r10d
lea rdx, [0x1401858a2]
cmp r10, 1
je 0x14010cac8
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 0x14010c91a
lea rax, [r9 + rdx]
inc rax
jmp 0x14010c967
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 0x14010cac8
mov qword [rsp + 0x70], rax
sub r11, rax
inc r11
je 0x14010c9c0
js 0x14010cc74
movzx eax, byte [0x140196310]
xor ecx, ecx
mov r12, r11
mov rdx, r11
call fcn.1400f0c90
test rax, rax
jne 0x14010c9c8
mov ecx, 1
mov rdx, r12
call fcn.140119070
mov r8d, 2
mov rcx, r14
mov rdx, r12
mov r13, r9
call fcn.1401190b0
mov r9, r13
mov r13, qword [r14 + 8]
jmp 0x14010c794
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.140113270
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xa8]
test r13, r13
je 0x14010caa1
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 0x14010cbb6
lea rsi, [r12 + r13]
mov rcx, qword [rbp + 8]
lea rdx, [rcx + r12]
add rcx, rsi
call fcn.140118560
mov qword [rsp + 0x60], rsi
mov rax, qword [rbp + 0x10]
cmp rax, rsi
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0xb8]
je 0x14010caa1
sub r12, rax
add rax, qword [rbp + 8]
add r12, r13
xor ecx, ecx
cmp r13, rcx
je 0x14010caa1
movzx edx, byte [r9 + rcx]
mov byte [rax + rcx], dl
inc qword [rbp + 0x10]
inc rcx
cmp r12, rcx
jne 0x14010ca88
test r8, r8
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
je 0x14010cac8
mov rcx, qword [0x140196260]
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 0x14010cb1e
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
lea r13, [rax + 0x10]
mov rbp, qword [rax + 0x10]
cmp rdx, rbp
je 0x14010cb13
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, rbp
mov r8, r12
call fcn.140118560
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 0x14010cb48
cmp r12, r15
jbe 0x14010cb46
cmp byte [r13 + r15], 0xbf
jg 0x14010cb48
lea rax, [0x140185490]
jmp 0x14010cbf7
jne 0x14010cb3a
sub r12, r15
cmp r12, 3
jb 0x14010c58d
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 0x14010c686
lea rcx, [0x1401854ab]
lea r8, [0x140185500]
mov edx, 0x4f
call fcn.1401194c0
mov qword [rsp + 0x80], r8
mov r8d, 1
mov rcx, r14
mov rdx, r12
call fcn.14011f430
mov r8, qword [rsp + 0x80]
jmp 0x14010c8cd
mov rcx, rbp
mov qword [rsp + 0xb0], r8
mov r8, r13
call fcn.14011f430
mov r8, qword [rsp + 0xb0]
jmp 0x14010ca4a
lea rax, [0x140185458]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
call fcn.140119a10
lea rax, [0x140185550]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.140119a10
lea r8, [0x140185478]
mov rcx, rsi
mov rdx, r12
call fcn.1401193e0
mov qword [rsp + 0x48], 0
add r13, rsi
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.140124f20
lea rcx, str.assertion_failed:_self.is_char_boundary_n__rustc_d9284afea99e0969a0e692b9e9fd61ea4ba21366library_alloc_src_string.rs
lea r8, [0x140185a20]
mov edx, 0x2a
call fcn.1401194c0
lea r8, str._rustc_d9284afea99e0969a0e692b9e9fd61ea4ba21366library_alloc_src_vecmod.rs
mov rcx, r15
mov rdx, rsi
call fcn.1401197f0
lea r8, str._rustc_d9284afea99e0969a0e692b9e9fd61ea4ba21366library_alloc_src_vecmod.rs
mov rcx, rsi
mov rdx, r12
call fcn.140119450
xor ecx, ecx
mov rdx, r11
call fcn.140119070
int3