Function at 0x14010dac0
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 0x14010db98
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 0x14010dbd6
cmp byte [r13 + r9], 0xbf
jg 0x14010dbd8
lea rax, [0x140186908]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r9
mov r9, r12
call fcn.14011af60
lea rax, [r15 + 3]
cmp rax, r9
jne 0x14010dc03
mov word [rsp + 0x3e], r13w
mov byte [rsp + 0x3d], r8b
mov r13, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test ebx, ebx
je 0x14010dc96
cmp r12, r15
jbe 0x14010dc90
cmp byte [r13 + r15], 0xbf
jg 0x14010dc96
jmp 0x14010e266
jne 0x14010db7b
cmp rbp, 2
jb 0x14010dbeb
movzx eax, word [r13 + r9]
cmp eax, 0x2f2f
je 0x14010dc63
test ebx, ebx
mov ebp, esi
je 0x14010dc11
cmp r12, r15
jbe 0x14010dc0b
cmp byte [r13 + r15], 0xbf
jg 0x14010dc11
jmp 0x14010e280
mov rsi, r9
jmp 0x14010dd16
jne 0x14010e280
mov rsi, r9
sub r12, r15
cmp r12, 3
jae 0x14010dc28
movzx r13d, word [rsp + 0x3e]
jmp 0x14010dd16
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 0x14010dd16
lea rcx, [0x14018687b]
lea r8, [0x140186938]
mov edx, 0x4f
call fcn.14011aa10
cmp r12, r9
jbe 0x14010de09
cmp byte [r13 + r9], 0xbf
jg 0x14010de0f
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x140186438]
mov edx, 0x2c
call fcn.14011aa10
jne 0x14010e266
cmp r12, r9
jbe 0x14010dce1
cmp byte [r13 + r9], 0xbf
jle 0x14010e266
mov dword [rsp + 0x40], ebp
mov r8, r9
sub r8, r15
lea rbp, [r15 + r13]
lea rdx, [0x140186840]
mov rcx, rbp
mov rsi, r9
call fcn.14011a450
test eax, eax
je 0x14010de6b
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
movzx r13d, word [rsp + 0x3e]
jmp 0x14010dd16
jne 0x14010e266
mov rsi, r9
mov r8, r9
sub r8, r15
add r13, r15
lea rdx, [0x140186840]
mov rcx, r13
call fcn.14011a450
test eax, eax
movzx r8d, byte [rsp + 0x3d]
movzx r13d, word [rsp + 0x3e]
je 0x14010e29d
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.140111040
mov eax, dword [rsp + 0x48]
cmp eax, 2
jne 0x14010dd8f
movzx eax, byte [rsp + 0x4c]
mov byte [rdi + 8], al
movabs rax, 0x8000000000000000
mov qword [rdi], rax
cmp qword [r14], 0
je 0x14010ddf5
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 0x14010dc78
mov byte [rsp + 0x3d], r8b
mov rax, qword [r14]
sub rax, r12
cmp rax, 1
jbe 0x14010e030
lea rdx, [r9 + r13]
lea rcx, [r9 + r13]
add rcx, 2
mov r8, rbp
mov rbp, r9
call fcn.140119a10
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 0x14010dbf1
jmp 0x14010dc11
cmp byte [r13 + rsi], 0x2f
movzx r8d, byte [rsp + 0x3d]
jne 0x14010e2af
lea rcx, [rsi + 1]
cmp rcx, r12
jae 0x14010de97
cmp byte [r13 + rcx], 0x2f
jne 0x14010de97
mov ebp, dword [rsp + 0x40]
jmp 0x14010e1b9
test ebx, ebx
je 0x14010dec0
cmp r12, r15
jbe 0x14010debe
cmp byte [rbp], 0xbf
jg 0x14010dec0
lea rcx, str.assertion_failed:_self.is_char_boundary_n__rustc_c6727fc9b5c64cefa7263486497ee95e529bd0f8library_alloc_src_string.rs
lea r8, [0x140186de0]
mov edx, 0x2a
call fcn.14011aa10
jne 0x14010dea6
cmp byte [r13 + rsi], 0xbf
jle 0x14010e2c8
cmp ebx, esi
ja 0x14010e2e0
cmp r12, rsi
jb 0x14010e2f2
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, [0x140186c7a]
mov qword [rsp + 0x70], r11
lea rax, [0x140186c7b]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x88], rsi
jne 0x14010df46
mov rcx, r14
call fcn.140114840
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
jmp 0x14010e158
cmp ebx, esi
jne 0x14010dfd6
mov rbp, rcx
mov r13, r11
cmp qword [r14], r12
je 0x14010e220
mov rdx, qword [r14 + 8]
lea rcx, [rdx + rsi]
inc rcx
add rdx, rsi
call fcn.140119a10
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 0x14010dffc
mov rax, qword [rsp + 0x88]
sub rax, rcx
add rcx, qword [r14 + 8]
inc rax
xor r10d, r10d
lea rdx, [0x140186c7a]
cmp r10, 1
je 0x14010e158
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 0x14010dfaa
lea rax, [r9 + rdx]
inc rax
jmp 0x14010dff7
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 0x14010e158
mov qword [rsp + 0x70], rax
sub r11, rax
inc r11
je 0x14010e050
js 0x14010e304
movzx eax, byte [0x140198310]
xor ecx, ecx
mov r12, r11
mov rdx, r11
call fcn.1400f22c0
test rax, rax
jne 0x14010e058
mov ecx, 1
mov rdx, r12
call fcn.14011a520
mov r8d, 2
mov rcx, r14
mov rdx, r12
mov r13, r9
call fcn.14011a560
mov r9, r13
mov r13, qword [r14 + 8]
jmp 0x14010de24
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.140114840
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xa8]
test r13, r13
je 0x14010e131
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 0x14010e246
lea rsi, [r12 + r13]
mov rcx, qword [rbp + 8]
lea rdx, [rcx + r12]
add rcx, rsi
call fcn.140119a10
mov qword [rsp + 0x60], rsi
mov rax, qword [rbp + 0x10]
cmp rax, rsi
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0xb8]
je 0x14010e131
sub r12, rax
add rax, qword [rbp + 8]
add r12, r13
xor ecx, ecx
cmp r13, rcx
je 0x14010e131
movzx edx, byte [r9 + rcx]
mov byte [rax + rcx], dl
inc qword [rbp + 0x10]
inc rcx
cmp r12, rcx
jne 0x14010e118
test r8, r8
movzx r8d, byte [rsp + 0x3d]
mov ebp, dword [rsp + 0x40]
je 0x14010e158
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 0x14010e1ae
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
lea r13, [rax + 0x10]
mov rbp, qword [rax + 0x10]
cmp rdx, rbp
je 0x14010e1a3
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, rbp
mov r8, r12
call fcn.140119a10
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 0x14010e1d8
cmp r12, r15
jbe 0x14010e1d6
cmp byte [r13 + r15], 0xbf
jg 0x14010e1d8
lea rax, [0x140186860]
jmp 0x14010e287
jne 0x14010e1ca
sub r12, r15
cmp r12, 3
jb 0x14010dc1d
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 0x14010dd16
lea rcx, [0x14018687b]
lea r8, [0x1401868d0]
mov edx, 0x4f
call fcn.14011aa10
mov qword [rsp + 0x80], r8
mov r8d, 1
mov rcx, r14
mov rdx, r12
call fcn.140121de0
mov r8, qword [rsp + 0x80]
jmp 0x14010df5d
mov rcx, rbp
mov qword [rsp + 0xb0], r8
mov r8, r13
call fcn.140121de0
mov r8, qword [rsp + 0xb0]
jmp 0x14010e0da
lea rax, [0x140186828]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
call fcn.14011af60
lea rax, [0x140186920]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.14011af60
lea r8, [0x140186848]
mov rcx, rsi
mov rdx, r12
call fcn.14011a930
mov qword [rsp + 0x48], 0
add r13, rsi
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.140126240
lea rcx, str.assertion_failed:_self.is_char_boundary_n__rustc_c6727fc9b5c64cefa7263486497ee95e529bd0f8library_alloc_src_string.rs
lea r8, [0x140186df8]
mov edx, 0x2a
call fcn.14011aa10
lea r8, str._rustc_c6727fc9b5c64cefa7263486497ee95e529bd0f8library_alloc_src_vecmod.rs
mov rcx, r15
mov rdx, rsi
call fcn.14011ad40
lea r8, str._rustc_c6727fc9b5c64cefa7263486497ee95e529bd0f8library_alloc_src_vecmod.rs
mov rcx, rsi
mov rdx, r12
call fcn.14011a9a0
xor ecx, ecx
mov rdx, r11
call fcn.14011a520
int3