Function at 0x140115040
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 r10d, r8d
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 ebp, word [rsp + 0x160]
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0xd0], rax
mov r13d, dword [rsp + 0x150]
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0xa0], eax
mov r15d, ebx
lea rax, [r15 + 1]
cmp rax, rsi
jne 0x14011510a
mov dword [rsp + 0x54], r13d
mov word [rsp + 0x3e], bp
mov ebp, r12d
mov r13, qword [r14 + 0x30]
mov r12, qword [r14 + 0x38]
mov rax, r12
test esi, esi
je 0x140115139
sub rax, rsi
jbe 0x14011515a
cmp byte [r13 + rsi], 0xbf
jg 0x14011515c
lea rax, [0x1401ce768]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, rsi
jmp 0x1401152e6
lea rax, [r15 + 3]
cmp rax, rsi
jne 0x140115334
mov rcx, qword [r14 + 0x30]
mov rdx, qword [r14 + 0x38]
cmp esi, ebx
jb 0x1401151b7
test ebx, ebx
je 0x1401151a8
cmp rdx, r15
jbe 0x1401151a6
cmp byte [rcx + r15], 0xc0
jge 0x1401151a8
jmp 0x1401151b7
sub rax, rsi
cmp rax, 2
jb 0x140115153
movzx eax, word [r13 + rsi]
cmp eax, 0x2f2f
je 0x140115262
xor esi, esi
jmp 0x1401152c0
jne 0x1401150f0
cmp rax, 2
jb 0x1401152c0
movzx eax, word [r13 + rsi]
cmp eax, 0x2f2f
jne 0x1401152c0
cmp r12, rsi
jbe 0x14011525c
cmp byte [r13 + rsi], 0xbf
jg 0x140115262
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x1401ce408]
mov edx, 0x2c
call fcn.140144ec0
ud2
jne 0x1401151b7
test esi, esi
je 0x1401151d2
cmp rdx, rsi
jbe 0x1401151d0
cmp byte [rcx + rsi], 0xbf
jg 0x1401151d2
lea rax, [0x1401ce808]
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rsi
call fcn.1401452d0
ud2
jne 0x1401151b7
mov rax, rsi
sub rax, r15
cmp rax, 3
jne 0x140115334
movzx eax, word [rcx + r15]
xor eax, 0x2f3a
movzx r8d, byte [rcx + r15 + 2]
xor r8d, 0x2e
or r8w, ax
jne 0x140115334
cmp rdx, rsi
jbe 0x140115849
cmp byte [rcx + rsi], 0x2f
jne 0x140115874
lea rax, [rsi + 1]
cmp rax, rdx
jae 0x140115226
cmp byte [rcx + rax], 0x2f
je 0x1401157a6
test ebx, ebx
je 0x140115417
cmp rdx, r15
jbe 0x140115411
cmp byte [rcx + r15], 0xc0
jge 0x140115417
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x1401ceef0]
mov edx, 0x2a
call fcn.140144ec0
ud2
jne 0x14011518c
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x40], r11
mov byte [rsp + 0x3d], r10b
mov rax, qword [r14 + 0x28]
sub rax, r12
cmp rax, 1
jbe 0x14011553a
lea rdx, [rsi + r13]
lea rcx, [rsi + r13]
add rcx, 2
mov r8, r12
sub r8, rsi
call fcn.140137a60
mov word [r13 + rsi], 0x2e2f
add r12, 2
mov qword [r14 + 0x38], r12
add esi, 2
mov r13, qword [r14 + 0x30]
movzx r10d, byte [rsp + 0x3d]
mov r11, qword [rsp + 0x40]
mov r9, qword [rsp + 0x48]
test ebx, ebx
je 0x1401152f2
cmp r12, r15
jbe 0x1401152f0
cmp byte [r13 + r15], 0xbf
jg 0x1401152f2
lea rax, [0x1401ce780]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.1401452d0
ud2
jne 0x1401152d1
sub r12, r15
cmp r12, 3
jae 0x14011530a
mov r12d, ebp
movzx ebp, word [rsp + 0x3e]
mov r13d, dword [rsp + 0x54]
jmp 0x140115334
movzx eax, word [r13 + r15]
xor eax, 0x2f3a
movzx ecx, byte [r13 + r15 + 2]
xor ecx, 0x2f
or cx, ax
mov r12d, ebp
movzx ebp, word [rsp + 0x3e]
mov r13d, dword [rsp + 0x54]
je 0x14011585a
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], r11
lea rcx, [rsp + 0x60]
mov rdx, r14
mov r8d, r10d
mov r9d, ebx
call fcn.140117da0
mov eax, dword [rsp + 0x60]
cmp eax, 2
jne 0x14011539a
movzx eax, byte [rsp + 0x64]
mov byte [rdi], al
mov dword [rdi + 0x18], 2
cmp qword [r14 + 0x28], 0
je 0x1401153fd
mov r8, qword [r14 + 0x30]
mov rcx, qword [0x1401e4bf8]
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 + 0x64]
mov rdx, qword [rsp + 0x68]
mov r8, qword [r14 + 0x38]
mov qword [rdi + 0x10], r8
movups xmm0, xmmword [r14 + 0x28]
movups xmmword [rdi], xmm0
mov r8, qword [rsp + 0xd0]
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 dword [rdi + 0x1c], ecx
mov qword [rdi + 0x20], rdx
mov dword [rdi + 0x28], ebx
mov eax, dword [rsp + 0xa0]
mov dword [rdi + 0x2c], eax
mov eax, dword [rsp + 0xa4]
mov dword [rdi + 0x30], eax
mov dword [rdi + 0x34], r13d
mov dword [rdi + 0x38], esi
mov word [rdi + 0x3c], bp
mov word [rdi + 0x3e], r12w
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x140115242
cmp esi, ebx
jb 0x14011588c
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x48], r9
mov dword [rsp + 0x54], r13d
mov word [rsp + 0x3e], r12w
cmp rdx, rsi
jb 0x1401158a0
lea rax, [r14 + 0x28]
mov qword [r14 + 0x38], r15
mov r12, rdx
mov qword [rsp + 0x80], rsi
sub r12, rsi
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x90], rax
lea r8, [0x1401ceceb]
mov qword [rsp + 0x60], r8
lea r13, [0x1401cecea]
mov qword [rsp + 0x68], r13
lea r9, [0x1401d1ba8]
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x78], r9
jne 0x1401154b1
lea rdx, [rsp + 0x60]
mov rcx, rax
mov r12d, r10d
mov r13, r11
call fcn.14011b850
mov r11, r13
mov r10d, r12d
mov r9, qword [rsp + 0x48]
jmp 0x140115720
cmp esi, ebx
jne 0x1401154ff
mov qword [rsp + 0x40], r11
mov byte [rsp + 0x3d], r10b
cmp qword [rax], rdx
je 0x140115814
mov rdx, qword [r14 + 0x30]
lea rcx, [rdx + rsi]
inc rcx
add rdx, rsi
mov r8, r12
call fcn.140137a60
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x80], rcx
mov rax, qword [r14 + 0x38]
cmp rax, rcx
jne 0x140115555
mov r12d, 1
jmp 0x1401155ab
lea rax, [rcx + r15]
add rcx, rsi
mov byte [rax], 0x3a
inc rax
inc qword [r14 + 0x38]
cmp rax, rcx
mov r9, qword [rsp + 0x48]
jne 0x140115720
mov qword [rsp + 0x40], r11
mov byte [rsp + 0x3d], r10b
mov qword [rsp + 0x68], r8
mov eax, 1
xor r12d, r12d
jmp 0x1401155ed
lea rcx, [r14 + 0x28]
mov r8d, 2
mov rdx, r12
call fcn.140144b10
mov r13, qword [r14 + 0x30]
jmp 0x140115282
mov rdx, rsi
sub rdx, rax
add rax, qword [r14 + 0x30]
inc rdx
xor ecx, ecx
movzx r10d, byte [rsp + 0x3d]
mov r11, qword [rsp + 0x40]
mov r9, qword [rsp + 0x48]
cmp rcx, 1
je 0x140115720
movzx r8d, byte [rcx + r13]
mov byte [rax + rcx], r8b
inc qword [r14 + 0x38]
inc rcx
cmp rdx, rcx
jne 0x140115574
add r13, rcx
lea r12, [rcx - 1]
neg r12
mov qword [rsp + 0x68], r13
dec rcx
je 0x14011580a
test r12, r12
js 0x1401158c0
mov rcx, qword [0x1401e4bf8]
test rcx, rcx
jne 0x1401155d9
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1401158b1
mov rcx, rax
mov qword [0x1401e4bf8], rax
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1401158b1
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], 0
lea rcx, [rsp + 0xa8]
lea rdx, [rsp + 0x60]
call fcn.14011b850
mov r9, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
test r13, r13
je 0x1401156eb
mov qword [rsp + 0xc0], r9
mov qword [rsp + 0xc8], r8
mov rcx, qword [rsp + 0x90]
mov r12, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rdx, [r8 + r12]
mov rax, qword [rcx]
sub rax, rdx
cmp rax, r13
mov qword [rsp + 0x58], rcx
jb 0x140115827
lea rax, [r12 + r13]
mov qword [rsp + 0x98], rax
mov rcx, qword [rcx + 8]
lea rdx, [rcx + r12]
add rcx, rax
call fcn.140137a60
mov r10, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x80], rcx
mov rax, qword [r10 + 0x10]
cmp rax, rcx
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xc0]
je 0x1401156eb
sub r12, rax
add rax, qword [r10 + 8]
add r12, r13
xor ecx, ecx
cmp r13, rcx
je 0x1401156eb
movzx edx, byte [r8 + rcx]
mov byte [rax + rcx], dl
inc qword [r10 + 0x10]
inc rcx
cmp r12, rcx
jne 0x1401156d2
test r9, r9
movzx r10d, byte [rsp + 0x3d]
mov r11, qword [rsp + 0x40]
mov r9, qword [rsp + 0x48]
je 0x140115720
mov rcx, qword [0x1401e4bf8]
xor edx, edx
mov r12d, r10d
mov r13, r11
call qword [sym.imp.kernel32.dll_HeapFree]
mov r9, qword [rsp + 0x48]
mov r11, r13
mov r10d, r12d
mov rax, qword [rsp + 0x70]
mov r12, qword [rsp + 0x88]
cmp rax, qword [rsp + 0x78]
test r12, r12
je 0x140115790
mov rdx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
lea rcx, [rax + 0x10]
mov r13, qword [rax + 0x10]
cmp rdx, r13
je 0x14011578a
mov qword [rsp + 0x58], rcx
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, r13
mov r8, r12
mov byte [rsp + 0x3d], r10b
mov qword [rsp + 0x40], r11
call fcn.140137a60
mov rcx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
movzx r10d, byte [rsp + 0x3d]
add r13, r12
mov qword [rcx], r13
add esi, 0xfffffffe
mov rcx, qword [r14 + 0x30]
mov rdx, qword [r14 + 0x38]
movzx r12d, word [rsp + 0x3e]
mov r13d, dword [rsp + 0x54]
test ebx, ebx
je 0x1401157d1
cmp rdx, r15
jbe 0x1401157cf
cmp byte [rcx + r15], 0xbf
jg 0x1401157d1
lea rax, [0x1401ce858]
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rdx
call fcn.1401452d0
ud2
jne 0x1401157b6
sub rdx, r15
cmp rdx, 3
jb 0x140115334
movzx eax, word [rcx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rcx + r15 + 2]
xor ecx, 0x2f
or cx, ax
jne 0x140115334
lea rcx, [0x1401ce79b]
lea r8, [0x1401ce870]
jmp 0x140115868
mov eax, 1
jmp 0x1401155ed
mov r8d, 1
mov rcx, rax
call fcn.14014e0b0
jmp 0x1401154c8
mov qword [rsp + 0x98], r8
mov r8, r13
call fcn.14014e0b0
mov r8, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x58]
jmp 0x14011567c
lea r8, [0x1401ce820]
mov rcx, rsi
call fcn.140144e20
ud2
lea rcx, [0x1401ce79b]
lea r8, [0x1401ce7f0]
mov edx, 0x51
call fcn.140144ec0
ud2
mov qword [rsp + 0x70], 0
add rcx, rsi
lea rdx, [rsp + 0x60]
call fcn.14014e040
ud2
lea r8, str._rustc_90c541806f23a127002de5b4038be731ba1458calibrary_alloc_src_vecmod.rs
mov rcx, r15
mov rdx, rsi
call fcn.1401450d0
ud2
lea r8, str._rustc_90c541806f23a127002de5b4038be731ba1458calibrary_alloc_src_vecmod.rs
mov rcx, rsi
call fcn.140144eb0
ud2
mov edx, 1
mov rcx, r12
call fcn.140144b00
ud2
call fcn.1400048d0
ud2