Function at 0x18003c5e0
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 0x18003c690
jmp 0x18003c67f
jae 0x18003c74c
cmp r8, 0x201
jae 0x18003c690
mov edi, 0x200
lea rbx, [rbp - 0x40]
mov r14, r8
jmp 0x18003c6e2
sub r8, rsi
sub r12, rsi
cmp r8, r12
jbe 0x18003c6bf
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 0x18003c713
mov r15d, eax
call sub.kernel32.dll_GetLastError
mov ecx, eax
mov eax, r15d
mov r15d, 0xffffffff
test ecx, ecx
jne 0x18003d06e
mov r8d, eax
cmp r14, r8
jne 0x18003c670
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x18003d101
add r14, r14
cmp r14, r15
cmovae r14, r15
mov r8, r14
cmp r8, 0x201
jb 0x18003c67f
jmp 0x18003c690
cmp rdi, r8
jb 0x18003d12c
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 0x18003c79f
mov r8, qword [rbp + 0xa88]
mov rcx, qword [0x18007f078]
xor edx, edx
call fcn.1800435e4
mov rsi, qword [rbp + 0xa10]
lea rcx, [rbp + 0xa18]
movabs rax, 0x8000000000000000
cmp rsi, rax
jne 0x18003c7c3
call sym.core::ptr::drop_in_place_std::io::error::Error_::h3466fc80fe41233f
jmp 0x18003c7d8
mov rax, qword [rcx + 0x10]
mov qword [rbp + 0x8e0], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rbp + 0x8d0], xmm0
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 0x18003d034
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 0x18003d02b
lea r14, [rbp + 0xae5]
lea r13, [rbp + 0x498]
xor r12d, r12d
jmp 0x18003c91c
inc r12
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 0x18003d02b
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 0x18003c956
cmp r12, 0x64
ja 0x18003d02b
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, [0x1800759e0]
mov qword [rbp + 0x918], rax
movabs rax, 0x8000000000000000
cmp qword [0x180061010], rax
jne 0x18003cf0e
movzx eax, byte [0x18007f088]
mov edx, 0x8c0
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h1ca289f3d44bb24b
test rax, rax
je 0x18003d11b
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 0x18003cdf8
mov r14, rax
mov r8d, 0x438
mov rcx, r13
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rbp + 0x498], 0x438
mov rcx, r14
mov rdx, r13
call sub.kernel32.dll_Module32FirstW
cmp eax, 1
jne 0x18003cdf0
mov eax, 8
mov qword [rbp + 0xa50], rax
xor eax, eax
mov qword [rbp + 0xad8], rax
jmp 0x18003cae4
lea r13, [rbp + 0x498]
nop dword [rax + rax]
mov rcx, r14
mov rdx, r13
call sub.kernel32.dll_Module32NextW
cmp eax, 1
jne 0x18003cdf0
mov eax, 0x208
xor r8d, r8d
nop dword [rax]
cmp word [rbp + r8*2 + 0x6c8], 0
je 0x18003cb60
cmp word [rbp + r8*2 + 0x6ca], 0
je 0x18003cb3e
cmp word [rbp + r8*2 + 0x6cc], 0
je 0x18003cb43
cmp word [rbp + r8*2 + 0x6ce], 0
je 0x18003cb49
cmp word [rbp + r8*2 + 0x6d0], 0
je 0x18003cb4f
add r8, 5
add rax, 0xfffffffffffffff6
jne 0x18003caf0
mov r8d, 0x104
jmp 0x18003cb60
inc r8
jmp 0x18003cb60
add r8, 2
jmp 0x18003cb60
add r8, 3
jmp 0x18003cb60
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 0x18003cc47
mov rsi, qword [rbp + 0x998]
mov r13, qword [rbp + 0x9a0]
mov rcx, qword [rbp + 0x9a8]
cmp rcx, 0x40
jb 0x18003cc30
movzx eax, word [r13]
cmp eax, 0x5a4d
jne 0x18003cc30
mov eax, dword [r13 + 0x3c]
mov rdx, rcx
sub rdx, rax
jb 0x18003cc30
cmp rdx, 0x88
jb 0x18003cc30
cmp dword [r13 + rax], 0x4550
jne 0x18003cc30
movzx edx, word [r13 + rax + 0x18]
cmp edx, 0x20b
jne 0x18003cc30
movzx edx, word [r13 + rax + 0x14]
cmp rdx, 0x70
jb 0x18003cc30
lea r8, [rax + 0x88]
add rdx, 0xffffffffffffff90
sub rcx, r8
cmp rcx, rdx
jb 0x18003cc30
mov ecx, dword [r13 + rax + 0x84]
shl rcx, 3
cmp rcx, rdx
jbe 0x18003cc6b
nop word cs:[rax + rax]
mov rcx, r13
call sub.kernel32.dll_UnmapViewOfFile
mov rcx, rsi
call fcn.1800434ec
lea r13, [rbp + 0x498]
cmp qword [rbp + 0x970], 0
je 0x18003cad0
mov rcx, qword [0x18007f078]
xor edx, edx
mov r8, rbx
call fcn.1800435e4
jmp 0x18003cad0
mov rax, qword [r13 + 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 [0x18007f088]
mov edx, 0x10
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h1ca289f3d44bb24b
test rax, rax
je 0x18003d143
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, r13
call sub.kernel32.dll_UnmapViewOfFile
mov rcx, rsi
call fcn.1800434ec
movabs rax, 0x8000000000000000
mov rcx, qword [rbp + 0xa60]
cmp rcx, rax
je 0x18003cac1
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 r13, [rbp + 0x498]
jne 0x18003cd91
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 0x18003cad0
mov rcx, r14
call fcn.1800434ec
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 [0x180061010]
movabs rax, 0x8000000000000000
cmp rbx, rax
je 0x18003ced9
mov rsi, qword [0x180061018]
mov r14, qword [0x180061020]
test r14, r14
je 0x18003ceb0
lea r13, [rsi + 0x28]
jmp 0x18003ce79
add r13, 0x40
dec r14
je 0x18003ceb0
cmp qword [r13 - 0x28], 0
je 0x18003ce92
mov r8, qword [r13 - 0x20]
mov rcx, qword [0x18007f078]
xor edx, edx
call fcn.1800435e4
cmp qword [r13 - 8], 0
je 0x18003ce70
mov r8, qword [r13]
mov rcx, qword [0x18007f078]
xor edx, edx
call fcn.1800435e4
jmp 0x18003ce70
test rbx, rbx
je 0x18003cec6
mov rcx, qword [0x18007f078]
xor edx, edx
mov r8, rsi
call fcn.1800435e4
lea rcx, [0x180061028]
call sym._ZN4core3ptr104drop_in_place_LT_alloc..vec..Vec_LT__LP_usize_C_std..backtrace_rs..symbolize..gimli..Mapping_RP__GT__GT_17hca6f
lea r13, [rbp + 0x498]
movaps xmm0, xmmword [rbp + 0x920]
movaps xmm1, xmmword [rbp + 0x930]
movaps xmm2, xmmword [rbp + 0x940]
movups xmmword [0x180061030], xmm2
movups xmmword [0x180061020], xmm1
movups xmmword [0x180061010], 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 0x18003cfb0
cmp byte [rbp + 0xae3], 0
je 0x18003cfb0
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, r13
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 0x18003cfbb
jmp 0x18003d02b
movzx eax, byte [rbp + 0xae7]
test al, al
jne 0x18003d02b
mov rdi, qword [rbp + 0x58]
mov qword [rbp + 0xa10], 0
mov qword [rbp + 0x498], 0
mov rdx, qword [rbp + 0xad0]
mov qword [rsp + 0x30], r13
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 0x18003d02b
cmp rsi, r15
jne 0x18003c8f0
cmp qword [rbp + 0x58], rdi
jne 0x18003c8f0
cmp byte [rbp + 0xae7], 0
je 0x18003d0a6
mov rax, qword [rbp + 0x9e8]
shl rax, 1
test rax, rax
je 0x18003d058
mov r8, qword [rbp + 0x9f0]
mov rcx, qword [0x18007f078]
xor edx, edx
call fcn.1800435e4
mov al, 1
add rsp, 0xb68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
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
jne 0x18003c78a
jmp 0x18003c79f
cmp byte [rbp + 0xae6], 0
jne 0x18003d0d6
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 0x18003d034
mov rax, qword [rbp + 0x9e8]
shl rax, 1
test rax, rax
je 0x18003d0fa
mov r8, qword [rbp + 0x9f0]
mov rcx, qword [0x18007f078]
xor edx, edx
call fcn.1800435e4
xor eax, eax
jmp 0x18003d05a
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call sym.core::panicking::panic::h82631201f060ca88
jmp 0x18003d159
mov ecx, 8
mov edx, 0x8c0
call sym.alloc::raw_vec::handle_error::hd43ffb3afada7951
jmp 0x18003d159
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 0x18003d159
mov r14, qword [rbp + 0xa60]
mov ecx, 8
mov edx, 0x10
call sym.alloc::alloc::handle_alloc_error::h526f0ddc898dc940
ud2