Function at 0x4c1c10
Capabilities:
Enumerate process modules
Parse pe header
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, 0x558
mov rsi, r8
mov rax, qword [rcx + 8]
cmp qword [0x0058a570], 0
jne 0x4c2218
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdx
mov rax, qword [0x005694a8]
movzx eax, byte [rax]
mov ecx, 0x3c0
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x4c2246
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], 4
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x38], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov ecx, 8
xor edx, edx
call sub.kernel32.dll_CreateToolhelp32Snapshot
cmp rax, 0xffffffffffffffff
je 0x4c2094
mov rbx, rax
lea rsi, [rsp + 0x120]
mov r8d, 0x438
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rsp + 0x120], 0x438
mov rcx, rbx
mov rdx, rsi
call sub.kernel32.dll_Module32FirstW
cmp eax, 1
jne 0x4c208c
lea r12, [rsp + 0x558]
mov eax, 8
mov qword [rsp + 0x90], rax
xor eax, eax
mov qword [rsp + 0x98], rax
jmp 0x4c1d89
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov rax, rdx
shl rax, 6
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmm3, xmmword [rsp + 0x80]
movups xmmword [rcx + rax + 0x30], xmm3
movups xmmword [rcx + rax + 0x20], xmm2
movups xmmword [rcx + rax + 0x10], xmm1
mov qword [rsp + 0x90], rcx
movups xmmword [rcx + rax], xmm0
inc rdx
mov rax, rdx
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x48], rdx
nop word [rax + rax]
mov rcx, rbx
lea rdx, [rsp + 0x120]
call sub.kernel32.dll_Module32NextW
cmp eax, 1
jne 0x4c208c
xor r8d, r8d
nop dword [rax]
cmp word [rsp + r8*2 + 0x350], 0
je 0x4c1df0
lea rax, [rsp + r8*2]
add rax, 0x350
cmp word [rax + 2], 0
je 0x4c1dd7
cmp word [rax + 4], 0
je 0x4c1ddc
cmp word [rax + 6], 0
je 0x4c1de2
cmp word [rax + 8], 0
je 0x4c1de8
add r8, 5
add rax, 0xa
cmp rax, r12
jne 0x4c1d90
mov r8d, 0x104
jmp 0x4c1df0
inc r8
jmp 0x4c1df0
add r8, 2
jmp 0x4c1df0
add r8, 3
jmp 0x4c1df0
add r8, 4
nop dword [rax]
lea rcx, [rsp + 0xc8]
lea rdx, [rsp + 0x350]
call dbg.from_wide
mov rbp, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd8]
lea rcx, [rsp + 0xa0]
mov rdx, rbp
mov r8, r14
call dbg.mmap
cmp qword [rsp + 0xa0], 0
je 0x4c1f30
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xb8]
mov r9d, 0x40
mov rcx, rdi
mov rdx, r15
xor r8d, r8d
call sym.___u8__as_object::read::read_ref::ReadRef_::read_bytes_at::h4126e9298aae2da4
test rax, rax
je 0x4c1f20
cmp rdx, 0x40
jb 0x4c1f20
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x4c1f20
mov r13d, dword [rax + 0x3c]
mov r9d, 0x88
mov rcx, rdi
mov rdx, r15
mov r8, r13
call sym.___u8__as_object::read::read_ref::ReadRef_::read_bytes_at::h4126e9298aae2da4
test rax, rax
je 0x4c1f20
cmp rdx, 0x88
jb 0x4c1f20
cmp dword [rax], 0x4550
jne 0x4c1f20
movzx ecx, word [rax + 0x18]
cmp ecx, 0x20b
jne 0x4c1f20
movzx r9d, word [rax + 0x14]
cmp r9, 0x70
jb 0x4c1f20
add r13, 0x88
add r9, 0xffffffffffffff90
mov qword [rsp + 0x28], rax
mov rcx, rdi
mov rdx, r15
mov r8, r13
call sym.___u8__as_object::read::read_ref::ReadRef_::read_bytes_at::h4126e9298aae2da4
mov rcx, qword [rsp + 0x28]
test rax, rax
je 0x4c1f20
mov r8, rdx
mov r9d, dword [rcx + 0x84]
lea rcx, [rsp + 0xa0]
mov rdx, rax
call sym.object::read::pe::data_directory::DataDirectories::parse::hf86efa450ff7387f
mov rax, qword [rsp + 0x28]
cmp qword [rsp + 0xa0], 0
je 0x4c1f54
nop dword [rax]
mov rcx, rdi
call fcn.0052a798
mov rcx, rsi
call fcn.0052a480
mov rdx, qword [rsp + 0xd0]
test rdx, rdx
je 0x4c1d70
mov r8d, 1
mov rcx, rbp
call sym.__rust_dealloc
jmp 0x4c1d70
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x28], rax
mov r13, qword [rsp + 0x138]
movups xmm0, xmmword [rsp + 0xc8]
movups xmm1, xmmword [rsp + 0xd8]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov rax, qword [0x005694a8]
movzx eax, byte [rax]
mov ecx, 0x10
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x4c2257
mov r15, rax
mov eax, dword [rsp + 0x140]
mov rcx, qword [rsp + 0x28]
mov qword [r15], rcx
mov qword [r15 + 8], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xe8], rax
movzx eax, byte [rsp + 0xe0]
mov byte [rsp + 0x27], al
lea rcx, [rsp + 0xe1]
mov eax, dword [rcx]
mov ecx, dword [rcx + 3]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x33], ecx
mov rcx, rdi
call fcn.0052a798
mov rcx, rsi
call fcn.0052a480
movzx eax, byte [rsp + 0x27]
cmp al, 2
je 0x4c1d70
sub r13, qword [rsp + 0x28]
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x70], rbp
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], r14
mov byte [rsp + 0x88], al
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x33]
lea rdx, [rsp + 0x89]
mov dword [rdx + 3], ecx
mov dword [rdx], eax
mov rdx, qword [rsp + 0x98]
cmp rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x90]
jne 0x4c1d1e
lea rcx, [rsp + 0x38]
call dbg.reserve_for_push<gimli::read::line::FileEntry<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>, usize>, alloc::alloc::Global>
jmp 0x4c1d14
mov rcx, rbx
call fcn.0052a480
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x130], rax
movups xmm0, xmmword [rsp + 0x38]
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x148], rax
movups xmm1, xmmword [rsp + 0x108]
movups xmmword [rsp + 0x138], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x78], rax
mov rsi, qword [0x0058a570]
test rsi, rsi
je 0x4c21dc
mov rdi, qword [0x0058a580]
test rdi, rdi
je 0x4c216e
lea rbx, [rsi + 0x28]
jmp 0x4c2139
add rbx, 0x40
dec rdi
je 0x4c216e
mov rdx, qword [rbx]
test rdx, rdx
je 0x4c2150
mov rcx, qword [rbx - 8]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rbx - 0x18]
test rdx, rdx
je 0x4c2130
mov rcx, qword [rbx - 0x20]
shl rdx, 4
mov r8d, 8
call sym.__rust_dealloc
jmp 0x4c2130
mov rdx, qword [0x0058a578]
test rdx, rdx
je 0x4c218c
shl rdx, 6
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
mov rsi, qword [0x0058a588]
mov r14, qword [0x0058a598]
inc r14
mov rdi, rsi
cmp r14, 1
je 0x4c21bb
lea rcx, [rdi + 8]
add rdi, 0xf0
dec r14
call dbg.drop_in_place<std::backtrace_rs::symbolize::gimli::Mapping>
jmp 0x4c21a0
mov rax, qword [0x0058a590]
test rax, rax
je 0x4c21dc
imul rdx, rax, 0xf0
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [0x0058a590], xmm2
movups xmmword [0x0058a580], xmm1
movups xmmword [0x0058a570], xmm0
mov rsi, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x100]
mov rax, qword [rsp + 0xf8]
xor ecx, ecx
sub rax, 1
cmovae rcx, rax
lea r9, [0x0058a570]
mov r8, rsi
call sym.std::backtrace_rs::symbolize::gimli::resolve::__u7b__u7b_closure_u7d__u7d_::h43dad4aa459450af
nop
add rsp, 0x558
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov edx, 0x3c0
call dbg.handle_alloc_error
ud2
mov ecx, 8
mov edx, 0x10
call dbg.handle_alloc_error
ud2