Function at 0x14003f480
Capabilities:
Enumerate process modules
Get common file path
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb68
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xac0], rdx
movzx eax, byte [rcx]
mov byte [rbp + 0xae6], al
mov byte [rbp + 0xae4], al
mov qword [rbp + 0xa80], 0
lea rax, [rbp + 0xa88]
mov qword [rbp + 0xad8], rax
mov qword [rbp + 0xa88], 2
mov qword [rbp + 0xa90], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0xac8], rax
xor r13d, r13d
mov r15d, 0xffffffff
xor r12d, r12d
xor esi, esi
cmp r8, 0x201
jae 0x14003f530
jmp 0x14003f51f
jae 0x14003f5ec
cmp r8, 0x201
jae 0x14003f530
mov edi, 0x200
lea rbx, [rbp - 0x40]
mov r14, r8
jmp 0x14003f582
sub r8, rsi
sub r12, rsi
cmp r8, r12
jbe 0x14003f55f
lea rcx, [rbp + 0xa80]
mov rdx, rsi
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h498cd2a0878ddf3d
mov r13, qword [rbp + 0xa80]
mov rax, qword [rbp + 0xa88]
mov qword [rbp + 0xac8], rax
cmp r13, r15
mov esi, 0xffffffff
cmovb rsi, r13
mov qword [rbp + 0xa90], rsi
mov r12, r13
mov rdi, rsi
mov rbx, qword [rbp + 0xac8]
mov r14, rsi
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov ecx, r14d
mov rdx, rbx
call sub.KERNEL32.dll_GetCurrentDirectoryW
test eax, eax
jne 0x14003f5b3
mov r15d, eax
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
mov eax, r15d
mov r15d, 0xffffffff
test ecx, ecx
jne 0x14003f66f
mov r8d, eax
cmp r14, r8
jne 0x14003f510
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14003ff8a
add r14, r14
cmp r14, r15
cmovae r14, r15
mov r8, r14
cmp r8, 0x201
jb 0x14003f51f
jmp 0x14003f530
cmp rdi, r8
jb 0x14003ffb5
lea rcx, [rbp + 0x498]
mov rdx, rbx
call sym.__std::ffi::os_str::OsString_as_std::os::windows::ffi::OsStringExt_::from_wide::h4f0d847f13879248
movups xmm0, xmmword [rbp + 0x498]
movups xmm1, xmmword [rbp + 0x4a8]
movaps xmmword [rbp + 0xa20], xmm1
movaps xmmword [rbp + 0xa10], xmm0
cmp qword [rbp + 0xa80], 0
je 0x14003f63b
mov rcx, qword [rbp + 0xa88]
mov edx, 2
call sym.__rust_dealloc
mov rsi, qword [rbp + 0xa10]
lea rcx, [rbp + 0xa18]
movabs rax, 0x8000000000000000
cmp rsi, rax
je 0x14003f6c0
mov rax, qword [rcx + 0x10]
mov qword [rbp + 0x8e0], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rbp + 0x8d0], xmm0
jmp 0x14003f6c5
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rbp + 0xa18], rax
movabs rax, 0x8000000000000000
mov qword [rbp + 0xa10], rax
cmp qword [rbp + 0xa80], 0
je 0x14003f6af
mov rcx, qword [rbp + 0xa88]
mov edx, 2
call sym.__rust_dealloc
lea rcx, [rbp + 0xa18]
movabs rsi, 0x8000000000000000
call sym.core::ptr::drop_in_place_std::io::error::Error_::h3466fc80fe41233f
movzx eax, byte [rbp + 0xae6]
mov byte [rbp + 0xa08], al
mov qword [rbp + 0x9e8], rsi
movaps xmm0, xmmword [rbp + 0x8d0]
movups xmmword [rbp + 0x9f0], xmm0
mov rax, qword [rbp + 0x8e0]
mov qword [rbp + 0xa00], rax
mov rax, qword [rbp + 0xac0]
mov rcx, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
lea rdx, str.stack_backtrace:_n
mov r8d, 0x11
call qword [rax + 0x18]
test al, al
jne 0x14003ff04
mov rax, qword [rbp + 0xac0]
mov qword [rbp + 0x8e8], rax
mov qword [rbp + 0x900], 0
movzx ecx, byte [rbp + 0xae6]
mov byte [rbp + 0x908], cl
lea rax, [rbp + 0x9e8]
mov qword [rbp + 0x8f0], rax
lea rax, sym.core::ptr::drop_in_place_std::sys::backtrace::_print_fmt::_u7b__u7b_closure_u7d__u7d__::hcedfd830f717b248
mov qword [rbp + 0x8f8], rax
mov byte [rbp + 0xae7], 0
mov qword [rbp + 0x9d0], 0
mov byte [rbp + 0xae2], 1
test cl, cl
setne byte [rbp + 0xae3]
lea rbx, [rbp - 0x40]
mov r8d, 0x4d0
mov rcx, rbx
xor edx, edx
call sub.msvcrt.dll_memset
mov rcx, rbx
call sub.KERNEL32.dll_RtlCaptureContext
mov r15, qword [rbp + 0xb8]
mov qword [rbp + 0xad0], 0
lea rdx, [rbp + 0xad0]
mov rcx, r15
xor r8d, r8d
call sub.KERNEL32.dll_RtlLookupFunctionEntry
test rax, rax
je 0x14003fefb
lea r14, [rbp + 0xae5]
lea r12, [rbp + 0x498]
xor r13d, r13d
jmp 0x14003f80c
inc r13
mov qword [rbp + 0xad0], 0
mov rcx, rsi
lea rdx, [rbp + 0xad0]
xor r8d, r8d
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov r15, rsi
test rax, rax
je 0x14003fefb
mov qword [rbp + 0xac8], rax
mov rax, qword [rbp + 0xad0]
mov rcx, qword [rbp + 0x58]
mov qword [rbp + 0x958], rax
mov qword [rbp + 0x960], r15
mov qword [rbp + 0x968], rcx
cmp byte [rbp + 0xae4], 0
jne 0x14003f846
cmp r13, 0x64
ja 0x14003fefb
mov rax, r15
sub rax, 1
mov edi, 0
cmovae rdi, rax
mov byte [rbp + 0xae5], 0
mov qword [rbp + 0xa80], r14
lea rax, [rbp + 0xae4]
mov qword [rbp + 0xa88], rax
lea rax, [rbp + 0xae3]
mov qword [rbp + 0xa90], rax
lea rax, [rbp + 0x9d0]
mov qword [rbp + 0xa98], rax
lea rax, [rbp + 0xae2]
mov qword [rbp + 0xaa0], rax
lea rax, [rbp + 0x8e8]
mov qword [rbp + 0xaa8], rax
lea rax, [rbp + 0xae7]
mov qword [rbp + 0xab0], rax
lea rax, [rbp + 0x958]
mov qword [rbp + 0xab8], rax
lea rax, [rbp + 0xa80]
mov qword [rbp + 0x910], rax
lea rax, [0x1400b9c00]
mov qword [rbp + 0x918], rax
movabs rax, 0x8000000000000000
cmp qword [0x140045010], rax
jne 0x14003fdea
movzx eax, byte [0x1400c2030]
mov ecx, 0x8c0
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h1ca289f3d44bb24b
test rax, rax
je 0x14003ffa4
mov qword [rbp + 0x9b8], 4
mov qword [rbp + 0x9c0], rax
mov qword [rbp + 0x9c8], 0
mov qword [rbp + 0xa68], 0
mov qword [rbp + 0xa70], 8
mov qword [rbp + 0xa78], 0
mov ecx, 8
xor edx, edx
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
cmp rax, 0xffffffffffffffff
je 0x14003fce8
mov r14, rax
mov r8d, 0x438
mov rcx, r12
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rbp + 0x498], 0x438
mov rcx, r14
mov rdx, r12
call sub.KERNEL32.dll_Module32FirstW
cmp eax, 1
jne 0x14003fce0
mov eax, 8
mov qword [rbp + 0xa50], rax
xor eax, eax
mov qword [rbp + 0xad8], rax
jmp 0x14003f9d4
lea r12, [rbp + 0x498]
nop word cs:[rax + rax]
mov rcx, r14
mov rdx, r12
call sub.KERNEL32.dll_Module32NextW
cmp eax, 1
jne 0x14003fce0
mov eax, 0x208
xor r8d, r8d
nop dword [rax]
cmp word [rbp + r8*2 + 0x6c8], 0
je 0x14003fa50
cmp word [rbp + r8*2 + 0x6ca], 0
je 0x14003fa2e
cmp word [rbp + r8*2 + 0x6cc], 0
je 0x14003fa33
cmp word [rbp + r8*2 + 0x6ce], 0
je 0x14003fa39
cmp word [rbp + r8*2 + 0x6d0], 0
je 0x14003fa3f
add r8, 5
add rax, 0xfffffffffffffff6
jne 0x14003f9e0
mov r8d, 0x104
jmp 0x14003fa50
inc r8
jmp 0x14003fa50
add r8, 2
jmp 0x14003fa50
add r8, 3
jmp 0x14003fa50
add r8, 4
nop word cs:[rax + rax]
lea rcx, [rbp + 0x970]
lea rdx, [rbp + 0x6c8]
call sym.__std::ffi::os_str::OsString_as_std::os::windows::ffi::OsStringExt_::from_wide::h4f0d847f13879248
mov rbx, qword [rbp + 0x978]
mov r8, qword [rbp + 0x980]
lea rcx, [rbp + 0x990]
mov rdx, rbx
call sym.std::backtrace_rs::symbolize::gimli::mmap::h78e3ff3b668087cd
cmp qword [rbp + 0x990], 0
je 0x14003fb37
mov rsi, qword [rbp + 0x998]
mov r12, qword [rbp + 0x9a0]
mov rcx, qword [rbp + 0x9a8]
cmp rcx, 0x40
jb 0x14003fb20
movzx eax, word [r12]
cmp eax, 0x5a4d
jne 0x14003fb20
mov eax, dword [r12 + 0x3c]
mov rdx, rcx
sub rdx, rax
jb 0x14003fb20
cmp rdx, 0x88
jb 0x14003fb20
cmp dword [r12 + rax], 0x4550
jne 0x14003fb20
movzx edx, word [r12 + rax + 0x18]
cmp edx, 0x20b
jne 0x14003fb20
movzx edx, word [r12 + rax + 0x14]
cmp rdx, 0x70
jb 0x14003fb20
lea r8, [rax + 0x88]
add rdx, 0xffffffffffffff90
sub rcx, r8
cmp rcx, rdx
jb 0x14003fb20
mov ecx, dword [r12 + rax + 0x84]
shl rcx, 3
cmp rcx, rdx
jbe 0x14003fb57
nop word cs:[rax + rax]
mov rcx, r12
call sub.KERNEL32.dll_UnmapViewOfFile
mov rcx, rsi
call fcn.1400428b4
lea r12, [rbp + 0x498]
cmp qword [rbp + 0x970], 0
je 0x14003f9c0
mov edx, 1
mov rcx, rbx
call sym.__rust_dealloc
jmp 0x14003f9c0
mov rax, qword [r12 + rax + 0x30]
mov qword [rbp + 0xa58], rax
mov rax, qword [rbp + 0x4b0]
mov qword [rbp + 0x9d8], rax
mov rax, qword [rbp + 0x970]
mov qword [rbp + 0xa60], rax
movzx eax, byte [0x1400c2030]
mov ecx, 0x10
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h1ca289f3d44bb24b
test rax, rax
je 0x14003ffcc
mov edx, dword [rbp + 0x4b8]
mov rcx, qword [rbp + 0xa58]
mov qword [rax], rcx
mov qword [rbp + 0x9e0], rax
mov qword [rax + 8], rdx
lea rax, [rbp + 0x980]
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x990], xmm0
mov rcx, r12
call sub.KERNEL32.dll_UnmapViewOfFile
mov rcx, rsi
call fcn.1400428b4
movabs rax, 0x8000000000000000
mov rcx, qword [rbp + 0xa60]
cmp rcx, rax
je 0x14003f9af
mov rax, rcx
mov rcx, qword [rbp + 0x9d8]
sub rcx, qword [rbp + 0xa58]
mov qword [rbp + 0xa10], rax
mov qword [rbp + 0xa18], rbx
movaps xmm0, xmmword [rbp + 0x990]
lea rax, [rbp + 0xa20]
movups xmmword [rax], xmm0
mov qword [rbp + 0xa30], 1
mov rax, qword [rbp + 0x9e0]
mov qword [rbp + 0xa38], rax
mov qword [rbp + 0xa40], 1
mov qword [rbp + 0xa48], rcx
mov rax, qword [rbp + 0xad8]
cmp rax, qword [rbp + 0xa68]
lea r12, [rbp + 0x498]
jne 0x14003fc7b
lea rcx, [rbp + 0xa68]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h16e5c50b0446a3bb
mov rax, qword [rbp + 0xa70]
mov qword [rbp + 0xa50], rax
mov rcx, qword [rbp + 0xad8]
mov rax, rcx
shl rax, 6
movups xmm0, xmmword [rbp + 0xa10]
movups xmm1, xmmword [rbp + 0xa20]
movups xmm2, xmmword [rbp + 0xa30]
movups xmm3, xmmword [rbp + 0xa40]
mov rdx, qword [rbp + 0xa50]
movups xmmword [rdx + rax + 0x30], xmm3
movups xmmword [rdx + rax + 0x20], xmm2
movups xmmword [rdx + rax + 0x10], xmm1
movups xmmword [rdx + rax], xmm0
inc rcx
mov rax, rcx
mov qword [rbp + 0xad8], rcx
mov qword [rbp + 0xa78], rcx
jmp 0x14003f9c0
mov rcx, r14
call fcn.1400428b4
movups xmm0, xmmword [rbp + 0xa68]
movaps xmmword [rbp + 0x920], xmm0
mov rax, qword [rbp + 0xa78]
mov qword [rbp + 0x930], rax
mov rax, qword [rbp + 0x9c8]
lea rcx, [rbp + 0x938]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rbp + 0x9b8]
movups xmmword [rcx], xmm0
mov rbx, qword [0x140045010]
movabs rax, 0x8000000000000000
cmp rbx, rax
je 0x14003fdb5
mov rsi, qword [0x140045018]
mov r14, qword [0x140045020]
test r14, r14
je 0x14003fd90
lea r12, [rsi + 0x28]
jmp 0x14003fd59
add r12, 0x40
dec r14
je 0x14003fd90
cmp qword [r12 - 0x28], 0
je 0x14003fd70
mov rcx, qword [r12 - 0x20]
mov edx, 1
call sym.__rust_dealloc
cmp qword [r12 - 8], 0
je 0x14003fd50
mov rcx, qword [r12]
mov edx, 8
call sym.__rust_dealloc
jmp 0x14003fd50
test rbx, rbx
je 0x14003fda2
mov edx, 8
mov rcx, rsi
call sym.__rust_dealloc
lea rcx, [0x140045028]
call sym._ZN4core3ptr104drop_in_place_LT_alloc..vec..Vec_LT__LP_usize_C_std..backtrace_rs..symbolize..gimli..Mapping_RP__GT__GT_17hca6f
lea r12, [rbp + 0x498]
movaps xmm0, xmmword [rbp + 0x920]
movaps xmm1, xmmword [rbp + 0x930]
movaps xmm2, xmmword [rbp + 0x940]
movups xmmword [0x140045030], xmm2
movups xmmword [0x140045020], xmm1
movups xmmword [0x140045010], xmm0
lea rbx, [rbp - 0x40]
lea r14, [rbp + 0xae5]
mov rcx, rdi
lea rdx, [rbp + 0x910]
call sym.std::backtrace_rs::symbolize::gimli::resolve::__u7b__u7b_closure_u7d__u7d_::h0272916f41ce74dc
cmp byte [rbp + 0xae5], 0
jne 0x14003fe80
cmp byte [rbp + 0xae3], 0
je 0x14003fe80
lea rax, [rbp + 0x8e8]
mov qword [rbp + 0xa80], rax
mov qword [rbp + 0xa88], 0
mov rdx, qword [rbp + 0x960]
mov qword [rbp + 0x498], 3
mov qword [rbp + 0xa10], 2
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x20], 0
lea rcx, [rbp + 0xa80]
mov r8, r12
lea r9, [rbp + 0xa10]
call sym.std::backtrace_rs::print::BacktraceFrameFmt::print_raw_with_column::h34173e6fc8ff1ce1
mov byte [rbp + 0xae7], al
mov rcx, qword [rbp + 0xa80]
inc qword [rcx + 0x18]
test al, al
je 0x14003fe8b
jmp 0x14003fefb
movzx eax, byte [rbp + 0xae7]
test al, al
jne 0x14003fefb
mov rdi, qword [rbp + 0x58]
mov qword [rbp + 0xa10], 0
mov qword [rbp + 0x498], 0
mov rdx, qword [rbp + 0xad0]
mov qword [rsp + 0x30], r12
lea rax, [rbp + 0xa10]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x38], 0
xor ecx, ecx
mov r8, r15
mov r9, qword [rbp + 0xac8]
call sub.KERNEL32.dll_RtlVirtualUnwind
mov rsi, qword [rbp + 0xb8]
test rsi, rsi
je 0x14003fefb
cmp rsi, r15
jne 0x14003f7e0
cmp qword [rbp + 0x58], rdi
jne 0x14003f7e0
cmp byte [rbp + 0xae7], 0
je 0x14003ff3a
mov rax, qword [rbp + 0x9e8]
shl rax, 1
test rax, rax
je 0x14003ff24
mov rcx, qword [rbp + 0x9f0]
mov edx, 1
call sym.__rust_dealloc
mov al, 1
add rsp, 0xb68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [rbp + 0xae6], 0
jne 0x14003ff66
mov rax, qword [rbp + 0xac0]
mov rcx, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
lea rdx, str.note:_Some_details_are_omitted__run_with__RUST_BACKTRACEfull__for_a_verbose_backtrace._n__rust_begin_short_backtrace__rust_end_short_backtraces_______..._omitted__frame_...__n
mov r8d, 0x58
call qword [rax + 0x18]
test al, al
jne 0x14003ff04
mov rax, qword [rbp + 0x9e8]
shl rax, 1
test rax, rax
je 0x14003ff86
mov rcx, qword [rbp + 0x9f0]
mov edx, 1
call sym.__rust_dealloc
xor eax, eax
jmp 0x14003ff26
lea rcx, str.internal_error:_entered_unreachable_code_v_
lea r8, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call sym.core::panicking::panic::h82631201f060ca88
jmp 0x14003ffe2
mov ecx, 8
mov edx, 0x8c0
call sym.alloc::raw_vec::handle_error::hd43ffb3afada7951
jmp 0x14003ffe2
lea rax, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, rdi
mov r8, rax
call sym.core::slice::index::slice_end_index_len_fail::hdaa9bbd2fcad4cbb
jmp 0x14003ffe2
mov r14, qword [rbp + 0xa60]
mov ecx, 8
mov edx, 0x10
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
ud2