Function at 0x14005a070
Capabilities:
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, 0xd58
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xcc0], xmm6
mov qword [rbp + 0xa90], rdx
mov rdx, qword [0x1400a2038]
test rdx, rdx
je 0x14005bce7
mov r13, rcx
mov rax, qword [0x1400a2030]
mov rcx, rdx
shl rcx, 6
add rcx, rax
xor r15d, r15d
mov r8, rax
mov r10, qword [r8 + 0x28]
mov r9, qword [r8 + 0x30]
mov r12, qword [r8 + 0x38]
add r8, 0x40
shl r9, 4
nop word [rax + rax]
test r9, r9
je 0x14005a110
mov r11, r10
add r10, 0x10
mov rsi, qword [r11]
add rsi, r12
add r9, 0xfffffffffffffff0
cmp rsi, r13
ja 0x14005a0e0
add rsi, qword [r11 + 8]
cmp rsi, r13
jbe 0x14005a0e0
jmp 0x14005a11d
inc r15
cmp r8, rcx
jne 0x14005a0c3
jmp 0x14005bce7
mov rdi, qword [0x1400a2050]
test rdi, rdi
je 0x14005a159
mov r14, qword [0x1400a2048]
imul rsi, rdi, 0x230
xor ecx, ecx
xor ebx, ebx
nop dword [rax + rax]
cmp qword [r14 + rbx], r15
je 0x14005a38d
add rbx, 0x230
dec rcx
cmp rsi, rbx
jne 0x14005a140
cmp rdx, r15
jbe 0x14005dff6
mov rcx, r15
shl rcx, 6
mov rdx, qword [rax + rcx + 8]
mov r8, qword [rax + rcx + 0x10]
lea rcx, [rbp + 0x860]
call dbg.mmap
test byte [rbp + 0x860], 1
je 0x14005bce7
mov qword [rbp + 0xca8], r13
mov rax, qword [rbp + 0x868]
mov qword [rbp + 0xc18], rax
mov r14, qword [rbp + 0x870]
mov r13, qword [rbp + 0x878]
mov qword [rbp + 0x738], 0
mov qword [rbp + 0x740], 8
xorps xmm0, xmm0
movups xmmword [rbp + 0x748], xmm0
mov qword [rbp + 0x758], 8
mov qword [rbp + 0x760], 0
cmp r13, 0x40
jb 0x14005bcc7
cmp word [r14], 0x5a4d
jne 0x14005bcc7
mov edi, dword [r14 + 0x3c]
mov rax, r13
sub rax, rdi
setb cl
cmp rax, 0x88
setb al
or al, cl
jne 0x14005bcc7
cmp dword [r14 + rdi], 0x4550
jne 0x14005bcc7
cmp word [r14 + rdi + 0x18], 0x20b
jne 0x14005bcc7
movzx esi, word [r14 + rdi + 0x14]
cmp rsi, 0x70
jb 0x14005bcc7
lea rbx, [rdi + 0x88]
add rsi, 0xffffffffffffff90
mov rax, r13
sub rax, rbx
cmp rax, rsi
jb 0x14005bcc7
lea rdx, [r14 + rbx]
mov r9d, dword [r14 + rdi + 0x84]
lea rcx, [rbp + 0x860]
mov r8, rsi
call sym.object::read::pe::data_directory::DataDirectories::parse::hfaf5b1008f438e82
test byte [rbp + 0x860], 1
jne 0x14005bcc7
add rsi, rbx
movzx r10d, word [r14 + rdi + 6]
lea eax, [r10*8]
lea rax, [rax + rax*4]
mov rcx, r13
sub rcx, rsi
setb dl
cmp rcx, rax
setb al
or al, dl
add rsi, r14
xor r11d, r11d
test al, al
cmove r11, rsi
jne 0x14005bcc7
mov edx, dword [r14 + rdi + 0xc]
test rdx, rdx
je 0x14005b179
mov rax, r13
sub rax, rdx
jb 0x14005bcc7
mov r8d, dword [r14 + rdi + 0x10]
lea rcx, [r8 + r8]
lea rcx, [rcx + rcx*8]
cmp rax, rcx
jb 0x14005bcc7
add rcx, rdx
mov rax, r13
sub rax, rcx
cmp rax, 4
jb 0x14005bcc7
mov eax, dword [r14 + rcx]
mov qword [rbp + 0xc60], rcx
add rax, rcx
mov qword [rbp + 0xc58], rax
mov rax, qword [r14 + rdi + 0x30]
mov qword [rbp + 0xc88], rax
mov qword [rbp + 0x860], 0
mov qword [rbp + 0x868], 8
mov qword [rbp + 0x870], 0
mov qword [rbp + 0xc90], r8
test r8, r8
je 0x14005b33f
mov r8, rdx
add r8, r14
mov eax, 8
mov qword [rbp + 0xcb8], 0
xor edi, edi
mov r9, qword [rbp + 0xc90]
mov qword [rbp + 0xc38], r10
mov qword [rbp + 0xc78], r11
mov qword [rbp + 0xc48], r8
jmp 0x14005b217
test rcx, rcx
je 0x14005a41d
mov r15, r14
add r14, rbx
lea rcx, [rbp - 0x58]
mov r8d, 0x230
mov rdx, r14
call sym.memcpy
lea rdx, [r15 + rbx]
add rdx, 0x230
sub rsi, rbx
add rsi, 0xfffffffffffffdd0
mov rcx, r14
mov r8, rsi
call sub.msvcrt.dll_memmove
lea rsi, [rdi - 1]
mov qword [0x1400a2050], rsi
cmp rsi, qword [0x1400a2040]
jne 0x14005a3e7
call dbg.grow_one<(usize, std::backtrace_rs::symbolize::gimli::Mapping), alloc::alloc::Global>
mov r14, qword [0x1400a2048]
lea rcx, [r14 + 0x230]
imul r8, rsi, 0x230
mov rdx, r14
call sub.msvcrt.dll_memmove
lea rdx, [rbp - 0x58]
mov r8d, 0x230
mov rcx, r14
call sym.memcpy
mov qword [0x1400a2050], rdi
mov qword [rbp + 0x860], 0
mov qword [rbp + 0x868], 8
mov qword [rbp + 0x870], 0
xor eax, eax
xor esi, esi
xor edi, edi
jmp 0x14005b383
mov rax, qword [rbp + 0x868]
add rsi, qword [rbp + 0xc88]
add rbx, rsi
mov rdx, qword [rbp + 0xcb8]
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], rbx
mov r8, qword [rbp + 0xc80]
mov qword [rax + rcx + 8], r8
inc rdx
mov qword [rbp + 0xcb8], rdx
mov qword [rbp + 0x870], rdx
mov r10, qword [rbp + 0xc38]
mov r11, qword [rbp + 0xc78]
mov r8, qword [rbp + 0xc48]
mov r9, qword [rbp + 0xc90]
mov rsi, qword [rbp + 0xca0]
add rdi, rsi
inc rdi
cmp rdi, r9
jae 0x14005b2a9
lea rcx, [rdi + rdi*8]
movzx esi, byte [r8 + rcx*2 + 0x11]
movzx edx, word [r8 + rcx*2 + 0xe]
and edx, 0x30
cmp dx, 0x20
jne 0x14005b208
lea rbx, [r8 + rcx*2]
movzx edx, word [rbx + 0xc]
cmp edx, 0xfeff
movsx ecx, dx
cmovb ecx, edx
test ecx, ecx
jle 0x14005b208
mov qword [rbp + 0xca0], rsi
mov edx, ecx
dec rdx
lea rcx, [rdx + rdx*4]
lea rcx, [r11 + rcx*8]
cmp rdx, r10
mov edx, 0x1d
cmovae rcx, rdx
jae 0x14005b344
test rcx, rcx
je 0x14005b344
mov qword [rbp + 0xc80], rbx
mov esi, dword [rbx + 8]
mov ebx, dword [rcx + 0xc]
mov rcx, qword [rbp + 0xcb8]
cmp rcx, qword [rbp + 0x860]
jne 0x14005b1ac
lea rcx, [rbp + 0x860]
call dbg.grow_one<(usize, &object::pe::ImageSymbol), alloc::alloc::Global>
jmp 0x14005b1a5
mov rdi, r11
mov rsi, r10
cmp qword [rbp + 0xcb8], 2
jb 0x14005b36c
mov rcx, qword [rbp + 0x868]
cmp qword [rbp + 0xcb8], 0x15
jae 0x14005b360
mov rbx, qword [rbp + 0xcb8]
shl rbx, 4
add rbx, rcx
lea r8, [rcx + 0x10]
mov eax, 0x10
mov r9, rcx
jmp 0x14005b308
mov r10, rcx
mov qword [r10], r8
mov qword [r10 + 8], r9
lea r8, [rdx + 0x10]
add rax, 0x10
mov r9, rdx
cmp r8, rbx
je 0x14005b36c
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x14005b2f8
mov r9, qword [r9 + 0x18]
mov r11, rax
movups xmm0, xmmword [rcx + r11 - 0x10]
movups xmmword [rcx + r11], xmm0
cmp r11, 0x10
je 0x14005b2ee
lea r10, [r11 - 0x10]
cmp r8, qword [rcx + r11 - 0x20]
mov r11, r10
jb 0x14005b31b
add r10, rcx
jmp 0x14005b2f1
mov rax, r14
jmp 0x14005b375
mov rdx, qword [rbp + 0x860]
test rdx, rdx
je 0x14005bcc7
mov rcx, qword [rbp + 0x868]
jmp 0x14005bcb8
mov rdx, qword [rbp + 0xcb8]
call dbg.ipnsort<(usize, &object::pe::ImageSymbol), core::slice::{impl#0}::sort_unstable_by_key::{closure_env#0}<(usize, &object::pe::ImageSymbol), usize, std::backtrace_rs::symbolize::gimli::coff::{impl#1}::parse::{closure_env#0}>>
mov rax, r14
mov r10, rsi
mov r11, rdi
mov rsi, qword [rbp + 0xc60]
mov rdi, qword [rbp + 0xc58]
mov rcx, qword [rbp + 0x860]
mov rdx, qword [rbp + 0x868]
mov qword [rbp + 0x4b0], rdx
mov rdx, qword [rbp + 0x870]
mov qword [rbp + 0x4b8], rdx
mov rdx, rcx
neg rdx
jo 0x14005bcc7
lea r9, [rbp + 0xaa8]
movabs r8, 0x8000000000000000
mov rdx, qword [rbp + 0x4b0]
mov qword [r9], rdx
mov rdx, qword [rbp + 0x4b8]
mov qword [r9 + 8], rdx
mov qword [rbp + 0xaa0], rcx
mov qword [rbp + 0xab8], r14
mov qword [rbp + 0xac0], r13
mov qword [rbp + 0xac8], r11
mov qword [rbp + 0xad0], r10
mov qword [rbp + 0xad8], rax
mov qword [rbp + 0xae0], r13
mov qword [rbp + 0xae8], rsi
mov qword [rbp + 0xaf0], rdi
mov qword [rbp + 0x800], r8
lea rdx, str..debug_abbrev.debug_addr.debug_aranges.debug_cu_index.debug_info.debug_line.debug_line_str.debug_loc.debug_loclists.debug_ranges.debug_rnglists.debug_str.debug_str_offsets.debug_tu_index.debug_types
lea rcx, [rbp + 0xaa0]
mov r8d, 0xd
call dbg.section
mov qword [rbp + 0xcb8], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc80], r8
cmove rdx, rcx
mov qword [rbp + 0xc68], rdx
mov rcx, qword [rbp + 0xcb8]
cmove rcx, rax
mov qword [rbp + 0xcb8], rcx
lea rdx, [0x1400a7205]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xb
call dbg.section
mov qword [rbp + 0xca0], rdx
test rax, rax
mov rcx, qword [rbp + 0xc80]
cmovne rcx, rax
mov qword [rbp + 0xc80], rcx
mov rcx, qword [rbp + 0xca0]
cmove rcx, rax
mov qword [rbp + 0xca0], rcx
lea rdx, [0x1400a7210]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xe
call dbg.section
mov qword [rbp + 0xc90], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc38], r8
cmove rdx, rcx
mov qword [rbp + 0xc28], rdx
mov rcx, qword [rbp + 0xc90]
cmove rcx, rax
mov qword [rbp + 0xc90], rcx
lea rdx, [0x1400a722d]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xb
call dbg.section
mov qword [rbp + 0xc88], rdx
test rax, rax
mov rcx, qword [rbp + 0xc38]
cmovne rcx, rax
mov qword [rbp + 0xc38], rcx
mov rcx, qword [rbp + 0xc88]
cmove rcx, rax
mov qword [rbp + 0xc88], rcx
lea rdx, [0x1400a7238]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xb
call dbg.section
mov qword [rbp + 0xc78], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc60], r8
cmove rdx, rcx
mov qword [rbp + 0xc20], rdx
mov rcx, qword [rbp + 0xc78]
cmove rcx, rax
mov qword [rbp + 0xc78], rcx
lea rdx, [0x1400a7243]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xf
call dbg.section
mov qword [rbp + 0xc48], rdx
test rax, rax
mov rcx, qword [rbp + 0xc60]
cmovne rcx, rax
mov qword [rbp + 0xc60], rcx
mov rcx, qword [rbp + 0xc48]
cmove rcx, rax
mov qword [rbp + 0xc48], rcx
lea rdx, [0x1400a7287]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xa
call dbg.section
mov qword [rbp + 0xc58], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xcb0], r8
cmove rdx, rcx
mov qword [rbp + 0xc10], rdx
mov rcx, qword [rbp + 0xc58]
cmove rcx, rax
mov qword [rbp + 0xc58], rcx
lea rdx, [0x1400a7291]
lea rcx, [rbp + 0xaa0]
mov r8d, 0x12
call dbg.section
mov qword [rbp + 0xc70], rdx
test rax, rax
mov rcx, qword [rbp + 0xcb0]
cmovne rcx, rax
mov qword [rbp + 0xcb0], rcx
mov rcx, qword [rbp + 0xc70]
cmove rcx, rax
mov qword [rbp + 0xc70], rcx
lea rdx, [0x1400a72b2]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xc
call dbg.section
mov qword [rbp + 0xc30], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc40], r8
cmove rdx, rcx
mov qword [rbp + 0xbb8], rdx
mov rcx, qword [rbp + 0xc30]
cmove rcx, rax
mov qword [rbp + 0xc30], rcx
lea rdx, [0x1400a7252]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xa
call dbg.section
mov qword [rbp + 0xc98], rdx
test rax, rax
mov rcx, qword [rbp + 0xc40]
cmovne rcx, rax
mov qword [rbp + 0xc40], rcx
mov rcx, qword [rbp + 0xc98]
cmove rcx, rax
mov qword [rbp + 0xc98], rcx
lea rdx, [0x1400a725c]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xf
call dbg.section
mov qword [rbp + 0xc50], rdx
test rax, rax
mov edi, 1
cmovne rdi, rax
mov rcx, qword [rbp + 0xc50]
cmove rcx, rax
mov qword [rbp + 0xc50], rcx
lea rdx, [0x1400a726b]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xd
call dbg.section
mov rsi, rax
mov rbx, rdx
lea rdx, [0x1400a7278]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xf
call dbg.section
test rsi, rsi
cmove rbx, rsi
mov ecx, 1
cmove rsi, rcx
test rax, rax
cmovne rcx, rax
cmove rdx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x940], xmm0
mov rax, qword [rbp + 0xc68]
mov qword [rbp + 0x870], rax
mov rax, qword [rbp + 0xcb8]
mov qword [rbp + 0x878], rax
mov rax, qword [rbp + 0xc80]
mov qword [rbp + 0x880], rax
mov rax, qword [rbp + 0xca0]
mov qword [rbp + 0x888], rax
mov rax, qword [rbp + 0xc28]
mov qword [rbp + 0x890], rax
mov rax, qword [rbp + 0xc90]
mov qword [rbp + 0x898], rax
mov rax, qword [rbp + 0xc38]
mov qword [rbp + 0x8a0], rax
mov rax, qword [rbp + 0xc88]
mov qword [rbp + 0x8a8], rax
mov rax, qword [rbp + 0xc20]
mov qword [rbp + 0x8b0], rax
mov rax, qword [rbp + 0xc78]
mov qword [rbp + 0x8b8], rax
mov rax, qword [rbp + 0xc60]
mov qword [rbp + 0x8c0], rax
mov rax, qword [rbp + 0xc48]
mov qword [rbp + 0x8c8], rax
mov rax, qword [rbp + 0xc10]
mov qword [rbp + 0x8d0], rax
mov rax, qword [rbp + 0xc58]
mov qword [rbp + 0x8d8], rax
mov rax, qword [rbp + 0xcb0]
mov qword [rbp + 0x8e0], rax
mov rax, qword [rbp + 0xc70]
mov qword [rbp + 0x8e8], rax
mov rax, qword [rbp + 0xbb8]
mov qword [rbp + 0x8f0], rax
mov rax, qword [rbp + 0xc30]
mov qword [rbp + 0x8f8], rax
mov rax, qword [rbp + 0xc40]
mov qword [rbp + 0x900], rax
mov rax, qword [rbp + 0xc98]
mov qword [rbp + 0x908], rax
mov qword [rbp + 0x910], rdi
mov rax, qword [rbp + 0xc50]
mov qword [rbp + 0x918], rax
mov qword [rbp + 0x920], rsi
mov qword [rbp + 0x928], rbx
mov qword [rbp + 0x930], rcx
mov qword [rbp + 0x938], rdx
mov qword [rbp + 0x958], 0
mov byte [rbp + 0x960], 0
mov qword [rbp + 0x860], 1
mov qword [rbp + 0x868], 1
mov rax, qword [0x1400c89e8]
movzx eax, byte [rax]
mov ecx, 0x108
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x14005e118
mov rdi, rax
lea rdx, [rbp + 0x860]
mov r8d, 0x108
mov rcx, rax
call sym.memcpy
mov qword [rbp + 0xb88], rdi
mov qword [rbp + 0xb70], 0
mov qword [rbp + 0xb78], 8
mov qword [rbp + 0xb80], 0
mov rax, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x38]
mov qword [rbp + 0xc38], rax
mov qword [rbp + 0x7e8], rax
mov qword [rbp + 0x7f0], rcx
mov qword [rbp + 0x7f8], 0
mov qword [rbp + 0xc90], rcx
test rcx, rcx
mov qword [rbp + 0xc88], rdi
je 0x14005bb4d
mov eax, 8
mov qword [rbp + 0xc80], rax
xor ebx, ebx
xor esi, esi
mov qword [rbp + 0xcb8], 0
mov rdi, qword [rbp + 0xc90]
jmp 0x14005ba30
mov rax, qword [rbp + 0xc80]
mov qword [rax + rbx], rdi
mov rcx, qword [rbp + 0xca0]
mov qword [rax + rbx + 8], rcx
inc rsi
mov qword [rbp + 0xb80], rsi
mov rdi, qword [rbp + 0x7f0]
add rbx, 0x10
test rdi, rdi
je 0x14005bab7
lea rcx, [rbp + 0x860]
lea rdx, [rbp + 0x7e8]
mov r8, qword [rbp + 0xcb8]
call dbg.parse<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>, usize>
cmp byte [rbp + 0x889], 3
je 0x14005bc3d
sub rdi, qword [rbp + 0x7f0]
mov rax, qword [rbp + 0x870]
mov qword [rbp + 0xca0], rax
mov rax, rdi
add rax, qword [rbp + 0x7f8]
mov rdi, qword [rbp + 0x880]
mov qword [rbp + 0xcb8], rax
mov qword [rbp + 0x7f8], rax
cmp rsi, qword [rbp + 0xb70]
jne 0x14005b9fb
lea rcx, [rbp + 0xb70]
call dbg.grow_one<(usize, &object::pe::ImageSymbol), alloc::alloc::Global>
mov rax, qword [rbp + 0xb78]
mov qword [rbp + 0xc80], rax
jmp 0x14005b9fb
cmp rsi, 2
mov rdi, qword [rbp + 0xc88]
jb 0x14005bb4d
mov rcx, qword [rbp + 0xb78]
cmp rsi, 0x15
jae 0x14005bb3e
add rbx, rcx
lea r8, [rcx + 0x10]
mov eax, 0x10
mov r9, rcx
mov rdi, qword [rbp + 0xc88]
jmp 0x14005bb07
mov r10, rcx
mov qword [r10], r8
mov qword [r10 + 8], r9
lea r8, [rdx + 0x10]
add rax, 0x10
mov r9, rdx
cmp rbx, r8
je 0x14005bb4d
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x14005baf7
mov r9, qword [r9 + 0x18]
mov r11, rax
movups xmm0, xmmword [rcx + r11 - 0x10]
movups xmmword [rcx + r11], xmm0
cmp r11, 0x10
je 0x14005baed
lea r10, [r11 - 0x10]
cmp r8, qword [rcx + r11 - 0x20]
mov r11, r10
jb 0x14005bb1a
add r10, rcx
jmp 0x14005baf0
mov rdx, rsi
call sym.core::slice::sort::stable::driftsort_main::he46d4301058094fb
mov rdi, qword [rbp + 0xc88]
mov qword [rbp + 0xbf0], 0
mov qword [rbp + 0xbf8], 8
mov qword [rbp + 0xc00], 0
mov qword [rbp + 0xbd0], 0
mov qword [rbp + 0xbd8], 8
mov qword [rbp + 0xbe0], 0
mov rbx, rdi
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rbp + 0xb08], xmm0
mov qword [rbp + 0xb18], 0
lea rcx, [rbp + 0x860]
lea rdx, [rbp + 0xb08]
call sym.gimli::read::unit::DebugInfoUnitHeadersIter_R_::next::h4d0f12c5899725c0
mov rax, qword [rbp + 0x860]
cmp rax, 3
jne 0x14005bd02
mov rcx, rbx
add rcx, 0x10
mov qword [rbp + 0xcb8], rcx
lea rdi, [rbp + 0x878]
mov rcx, qword [rbx + 0xd0]
mov qword [rbp + 0xc60], rcx
mov rcx, qword [rbx + 0xd8]
mov qword [rbp + 0xc78], rcx
movzx ecx, byte [rbx + 0x100]
mov byte [rbp + 0xc58], cl
mov rcx, qword [rbx + 0x20]
mov qword [rbp + 0xc48], rcx
mov rcx, qword [rbx + 0x28]
mov qword [rbp + 0xc80], rcx
jmp 0x14005bd83
lea r8, [0x1400ab918]
mov rcx, r15
call dbg.panic_bounds_check