Function at 0x140098950
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, 0xd68
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xcd0], xmm6
mov qword [rbp + 0xaf8], rdx
mov rdx, qword [0x1400da038]
test rdx, rdx
je 0x14009a223
mov r13, rcx
mov rax, qword [0x1400da030]
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 0x1400989f0
mov r11, r10
add r10, 0x10
mov rsi, qword [r11]
add rsi, r12
add r9, 0xfffffffffffffff0
cmp rsi, r13
ja 0x1400989c0
add rsi, qword [r11 + 8]
cmp rsi, r13
jbe 0x1400989c0
jmp 0x1400989fd
inc r15
cmp r8, rcx
jne 0x1400989a3
jmp 0x14009a223
mov rdi, qword [0x1400da050]
test rdi, rdi
je 0x140098a39
mov r14, qword [0x1400da048]
imul rcx, rdi, 0x230
xor r8d, r8d
xor ebx, ebx
nop dword [rax]
cmp qword [r14 + r8], r15
je 0x140098c6f
inc rbx
add r8, 0x230
cmp rcx, r8
jne 0x140098a20
cmp rdx, r15
jbe 0x14009c4cd
mov rcx, r15
shl rcx, 6
mov rdx, qword [rax + rcx + 8]
mov r8, qword [rax + rcx + 0x10]
lea rcx, [rbp + 0x8c0]
call sym.std::backtrace_rs::symbolize::gimli::mmap::h78e3ff3b668087cd
cmp qword [rbp + 0x8c0], 0
je 0x14009a223
mov rax, qword [rbp + 0x8c8]
mov qword [rbp + 0xc50], rax
mov r14, qword [rbp + 0x8d0]
mov rbx, qword [rbp + 0x8d8]
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 rbx, 0x40
jb 0x14009a203
movzx eax, word [r14]
cmp eax, 0x5a4d
jne 0x14009a203
mov eax, dword [r14 + 0x3c]
mov rcx, rbx
sub rcx, rax
jb 0x14009a203
cmp rcx, 0x88
jb 0x14009a203
cmp dword [r14 + rax], 0x4550
jne 0x14009a203
movzx ecx, word [r14 + rax + 0x18]
cmp ecx, 0x20b
jne 0x14009a203
movzx ecx, word [r14 + rax + 0x14]
cmp rcx, 0x70
jb 0x14009a203
lea rdx, [rax + 0x88]
add rcx, 0xffffffffffffff90
mov r8, rbx
sub r8, rdx
cmp r8, rcx
jb 0x14009a203
mov r8d, dword [r14 + rax + 0x84]
shl r8, 3
cmp r8, rcx
ja 0x14009a203
add rcx, rdx
movzx edi, word [r14 + rax + 6]
lea edx, [rdi*8]
lea rdx, [rdx + rdx*4]
mov r8, rbx
sub r8, rcx
setb r9b
cmp r8, rdx
setb dl
or dl, r9b
add rcx, r14
xor r9d, r9d
test dl, dl
cmove r9, rcx
jne 0x14009a203
mov edx, dword [r14 + rax + 0xc]
test rdx, rdx
je 0x140099930
mov rcx, rbx
sub rcx, rdx
jb 0x14009a203
mov r8, rdx
mov edx, dword [r14 + rax + 0x10]
mov qword [rbp + 0xc78], rdx
add rdx, rdx
lea rdx, [rdx + rdx*8]
cmp rcx, rdx
jb 0x14009a203
add rdx, r8
mov rcx, rbx
sub rcx, rdx
cmp rcx, 4
jb 0x14009a203
mov qword [rbp + 0xca0], r9
mov qword [rbp + 0xc68], rdx
mov ecx, dword [r14 + rdx]
mov qword [rbp + 0xc60], rcx
mov rax, qword [r14 + rax + 0x30]
mov qword [rbp + 0xc98], rax
mov qword [rbp + 0x8c0], 0
lea rsi, [rbp + 0x8c8]
mov qword [rbp + 0x8c8], 8
mov qword [rbp + 0x8d0], 0
cmp qword [rbp + 0xc78], 0
mov qword [rbp + 0xc28], r13
je 0x14009b6dc
mov qword [rbp + 0xb00], rsi
add r8, r14
mov eax, 8
xor ecx, ecx
mov qword [rbp + 0xcc8], rcx
xor esi, esi
mov r9, qword [rbp + 0xc78]
mov qword [rbp + 0xc80], rdi
mov qword [rbp + 0xc58], r8
jmp 0x14009988d
test rbx, rbx
je 0x140098d07
mov r15, r14
imul r14, rbx, 0x230
lea rsi, [r15 + r14]
lea rcx, [rbp - 0x58]
mov r8d, 0x230
mov rdx, rsi
call sym.memcpy
lea rdx, [r15 + r14]
add rdx, 0x230
not rbx
add rbx, rdi
imul r8, rbx, 0x230
mov rcx, rsi
call sub.msvcrt.dll_memmove
lea rsi, [rdi - 1]
mov qword [0x1400da050], rsi
cmp rsi, qword [0x1400da040]
jne 0x140098cd1
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h120ca74d699a0bb0
mov r14, qword [0x1400da048]
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 [0x1400da050], rdi
add rdi, qword [rbp + 0xc98]
add r13, rdi
mov rdx, qword [rbp + 0xcc8]
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], r13
mov r8, qword [rbp + 0xca8]
mov qword [rax + rcx + 8], r8
inc rdx
mov rcx, rdx
mov qword [rbp + 0xcc8], rdx
mov qword [rbp + 0x8d0], rdx
mov rdi, qword [rbp + 0xc80]
mov r8, qword [rbp + 0xc58]
mov r9, qword [rbp + 0xc78]
mov r10, qword [rbp + 0xcb0]
add rsi, r10
inc rsi
cmp rsi, r9
jae 0x140099fea
lea rcx, [rsi + rsi*8]
movzx r10d, byte [r8 + rcx*2 + 0x11]
movzx edx, word [r8 + rcx*2 + 0xe]
and edx, 0x30
cmp dx, 0x20
jne 0x14009987e
lea r11, [r8 + rcx*2]
movzx edx, word [r11 + 0xc]
cmp edx, 0xfeff
movsx ecx, dx
cmovb ecx, edx
test ecx, ecx
jle 0x14009987e
mov qword [rbp + 0xcb0], r10
mov edx, ecx
dec rdx
lea rcx, [rdx + rdx*4]
mov r8, qword [rbp + 0xca0]
lea rcx, [r8 + rcx*8]
cmp rdx, rdi
mov edx, 0x1d
cmovae rcx, rdx
jae 0x14009b6b6
test rcx, rcx
je 0x14009b6b6
mov qword [rbp + 0xca8], r11
mov edi, dword [r11 + 8]
mov r13d, dword [rcx + 0xc]
mov rcx, qword [rbp + 0xcc8]
cmp rcx, qword [rbp + 0x8c0]
jne 0x140099826
lea rcx, [rbp + 0x8c0]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h40c954607b4f4708
mov rax, qword [rbp + 0x8c8]
jmp 0x140099826
mov qword [rbp + 0xc28], r13
mov qword [rbp + 0x8c8], 8
mov qword [rbp + 0x8d0], 0
mov rax, qword [rbp + 0x8c8]
mov qword [rbp + 0x510], rax
mov rax, qword [rbp + 0x8d0]
mov qword [rbp + 0x518], rax
xor r11d, r11d
xor r10d, r10d
xor ecx, ecx
xor eax, eax
movabs r8, 0x8000000000000000
lea rdx, [rbp + 0x858]
mov qword [rbp + 0xb00], rdx
mov rdx, qword [rbp + 0x510]
mov qword [rbp + 0x858], rdx
mov rdx, qword [rbp + 0x518]
mov qword [rbp + 0x860], rdx
mov qword [rbp + 0x850], rax
mov qword [rbp + 0x868], r14
mov qword [rbp + 0x870], rbx
mov qword [rbp + 0x878], r9
mov qword [rbp + 0x880], rdi
mov qword [rbp + 0x888], rcx
mov qword [rbp + 0x890], rbx
mov qword [rbp + 0x898], r10
mov qword [rbp + 0x8a0], r11
mov qword [rbp + 0x7a0], 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_typesNulErrorUtf8Errorvalid_up_toerror_len
lea rsi, [rbp + 0x850]
mov r8d, 0xd
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xcc8], rdx
mov edi, 1
cmove rax, rdi
mov qword [rbp + 0xcb0], rax
lea rdx, [0x14010f4c5]
mov r8d, 0xb
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xca8], rdx
cmove rax, rdi
mov qword [rbp + 0xc78], rax
lea rdx, [0x14010f4d0]
mov r8d, 0xe
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xca0], rdx
cmove rax, rdi
mov qword [rbp + 0xc98], rax
lea rdx, [0x14010f4ed]
mov r8d, 0xb
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xc80], rdx
cmove rax, rdi
mov qword [rbp + 0xc58], rax
lea rdx, [0x14010f4f8]
mov r8d, 0xb
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xc68], rdx
cmove rax, rdi
mov qword [rbp + 0xc60], rax
lea rdx, [0x14010f503]
mov r8d, 0xf
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xcc0], rdx
cmove rax, rdi
mov qword [rbp + 0xcb8], rax
lea rdx, [0x14010f547]
mov r8d, 0xa
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xc48], rdx
cmove rax, rdi
mov qword [rbp + 0xc70], rax
lea rdx, [0x14010f551]
mov r8d, 0x12
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xc90], rdx
cmove rax, rdi
mov qword [rbp + 0xc88], rax
lea rdx, [0x14010f572]
mov r8d, 0xc
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xc30], rdx
cmove rax, rdi
mov qword [rbp + 0xc08], rax
lea rdx, [0x14010f512]
mov r8d, 0xa
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xc38], rdx
cmove rax, rdi
mov qword [rbp + 0xbf8], rax
lea rdx, [0x14010f51c]
mov r8d, 0xf
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test rax, rax
cmove rdx, rax
mov qword [rbp + 0xbd8], rdx
cmove rax, rdi
mov qword [rbp + 0xc40], rax
lea rdx, [0x14010f52b]
mov r8d, 0xd
mov rcx, rsi
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
mov r13, rax
mov rsi, rdx
lea rdx, [0x14010f538]
mov r8d, 0xf
lea rcx, [rbp + 0x850]
call sym.std::backtrace_rs::symbolize::gimli::coff::Object::section::h1b2fe04c59fd9975
test r13, r13
cmove rsi, r13
cmove r13, rdi
test rax, rax
cmovne rdi, rax
cmove rdx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x9a0], xmm0
mov rax, qword [rbp + 0xcb0]
mov qword [rbp + 0x8d0], rax
mov rax, qword [rbp + 0xcc8]
mov qword [rbp + 0x8d8], rax
mov rax, qword [rbp + 0xc78]
mov qword [rbp + 0x8e0], rax
mov rax, qword [rbp + 0xca8]
mov qword [rbp + 0x8e8], rax
mov rax, qword [rbp + 0xc98]
mov qword [rbp + 0x8f0], rax
mov rax, qword [rbp + 0xca0]
mov qword [rbp + 0x8f8], rax
mov rax, qword [rbp + 0xc58]
mov qword [rbp + 0x900], rax
mov rax, qword [rbp + 0xc80]
mov qword [rbp + 0x908], rax
mov rax, qword [rbp + 0xc60]
mov qword [rbp + 0x910], rax
mov rax, qword [rbp + 0xc68]
mov qword [rbp + 0x918], rax
mov rax, qword [rbp + 0xcb8]
mov qword [rbp + 0x920], rax
mov rax, qword [rbp + 0xcc0]
mov qword [rbp + 0x928], rax
mov rax, qword [rbp + 0xc70]
mov qword [rbp + 0x930], rax
mov rax, qword [rbp + 0xc48]
mov qword [rbp + 0x938], rax
mov rax, qword [rbp + 0xc88]
mov qword [rbp + 0x940], rax
mov rax, qword [rbp + 0xc90]
mov qword [rbp + 0x948], rax
mov rax, qword [rbp + 0xc08]
mov qword [rbp + 0x950], rax
mov rax, qword [rbp + 0xc30]
mov qword [rbp + 0x958], rax
mov rax, qword [rbp + 0xbf8]
mov qword [rbp + 0x960], rax
mov rax, qword [rbp + 0xc38]
mov qword [rbp + 0x968], rax
mov rax, qword [rbp + 0xc40]
mov qword [rbp + 0x970], rax
mov rax, qword [rbp + 0xbd8]
mov qword [rbp + 0x978], rax
mov qword [rbp + 0x980], r13
mov qword [rbp + 0x988], rsi
mov qword [rbp + 0x990], rdi
mov qword [rbp + 0x998], rdx
mov qword [rbp + 0x9b8], 0
mov byte [rbp + 0x9c0], 0
mov qword [rbp + 0x8c0], 1
mov qword [rbp + 0x8c8], 1
movzx eax, byte [0x140149110]
mov edx, 0x108
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h1ca289f3d44bb24b
test rax, rax
je 0x14009c4f4
mov r13, rax
lea rdx, [rbp + 0x8c0]
mov r8d, 0x108
mov rcx, rax
call sym.memcpy
mov qword [rbp + 0xba0], r13
mov qword [rbp + 0xb80], 0
mov qword [rbp + 0xb88], 8
mov qword [rbp + 0xb90], 0
mov rax, qword [r13 + 0x30]
mov rcx, qword [r13 + 0x38]
mov qword [rbp + 0xc98], rax
mov qword [rbp + 0x8a8], rax
mov qword [rbp + 0x8b0], rcx
mov qword [rbp + 0x8b8], 0
mov qword [rbp + 0xc78], rcx
test rcx, rcx
mov qword [rbp + 0xca0], r13
je 0x14009a0a3
mov edi, 8
xor eax, eax
mov qword [rbp + 0xcc8], rax
mov eax, 8
mov qword [rbp + 0xca8], rax
xor esi, esi
mov r13, qword [rbp + 0xc78]
jmp 0x140099ec5
mov rax, qword [rbp + 0xca8]
mov qword [rax + rdi - 8], r13
mov rcx, qword [rbp + 0xcb0]
mov qword [rax + rdi], rcx
mov rcx, qword [rbp + 0xcc8]
inc rcx
mov rax, rcx
mov qword [rbp + 0xcc8], rcx
mov qword [rbp + 0xb90], rcx
mov r13, qword [rbp + 0x8b0]
add rdi, 0x10
test r13, r13
je 0x140099f48
lea rcx, [rbp + 0x8c0]
lea rdx, [rbp + 0x8a8]
mov r8, rsi
call sym.gimli::read::aranges::ArangeHeader_R_Offset_::parse::hd81bba8b9a659bfc
cmp byte [rbp + 0x8e9], 3
je 0x14009a188
sub r13, qword [rbp + 0x8b0]
mov rax, qword [rbp + 0x8d0]
mov qword [rbp + 0xcb0], rax
mov rsi, r13
add rsi, qword [rbp + 0x8b8]
mov r13, qword [rbp + 0x8e0]
mov qword [rbp + 0x8b8], rsi
mov rax, qword [rbp + 0xcc8]
cmp rax, qword [rbp + 0xb80]
jne 0x140099e7f
lea rcx, [rbp + 0xb80]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h40c954607b4f4708
mov rax, qword [rbp + 0xb88]
mov qword [rbp + 0xca8], rax
jmp 0x140099e7f
cmp qword [rbp + 0xcc8], 2
mov r13, qword [rbp + 0xca0]
jb 0x14009a0a3
mov rcx, qword [rbp + 0xb88]
cmp qword [rbp + 0xcc8], 0x15
jae 0x14009a090
mov rsi, qword [rbp + 0xcc8]
shl rsi, 4
add rsi, rcx
lea r8, [rcx + 0x10]
mov eax, 0x10
mov r9, rcx
mov r13, qword [rbp + 0xca0]
jmp 0x140099fb3
mov r10, rcx
mov qword [r10], r8
mov qword [r10 + 8], r9
lea r8, [rdx + 0x10]
add rax, 0x10
mov r9, rdx
cmp r8, rsi
je 0x14009a0a3
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x140099f9f
mov r9, qword [r9 + 0x18]
mov r11, rax
movups xmm0, xmmword [rcx + r11 - 0x10]
movups xmmword [rcx + r11], xmm0
cmp r11, 0x10
je 0x140099f95
lea r10, [r11 - 0x10]
cmp r8, qword [rcx + r11 - 0x20]
mov r11, r10
jb 0x140099fc6
add r10, rcx
jmp 0x140099f98
cmp qword [rbp + 0xcc8], 2
lea rsi, [rbp + 0x8c8]
jb 0x14009b6dc
mov rcx, qword [rbp + 0x8c8]
cmp qword [rbp + 0xcc8], 0x15
jae 0x14009b6d0
mov rax, qword [rbp + 0xcc8]
shl rax, 4
add rax, rcx
mov qword [rbp + 0xcc8], rax
lea r8, [rcx + 0x10]
mov eax, 0x10
mov r9, rcx
jmp 0x14009a059
mov r10, rcx
mov qword [r10], r8
mov qword [r10 + 8], r9
lea r8, [rdx + 0x10]
add rax, 0x10
mov r9, rdx
cmp r8, qword [rbp + 0xcc8]
je 0x14009b6dc
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x14009a041
mov r9, qword [r9 + 0x18]
mov r11, rax
movups xmm0, xmmword [rcx + r11 - 0x10]
movups xmmword [rcx + r11], xmm0
cmp r11, 0x10
je 0x14009a037
lea r10, [r11 - 0x10]
cmp r8, qword [rcx + r11 - 0x20]
mov r11, r10
jb 0x14009a06c
add r10, rcx
jmp 0x14009a03a
mov rdx, qword [rbp + 0xcc8]
call sym.core::slice::sort::stable::driftsort_main::heb6c5ce6ed9fd768
mov r13, qword [rbp + 0xca0]
mov qword [rbp + 0xc10], 0
mov qword [rbp + 0xc18], 8
mov qword [rbp + 0xc20], 0
mov qword [rbp + 0xbe0], 0
mov qword [rbp + 0xbe8], 8
mov qword [rbp + 0xbf0], 0
movups xmm0, xmmword [r13 + 0x40]
movups xmmword [rbp + 0xb68], xmm0
mov qword [rbp + 0xb78], 0
lea rcx, [rbp + 0x8c0]
lea rdx, [rbp + 0xb68]
call sym.gimli::read::unit::DebugInfoUnitHeadersIter_R_::next::h3b44d30f78768bf7
mov rax, qword [rbp + 0x8c0]
cmp rax, 3
jne 0x14009a23e
mov rcx, r13
add rcx, 0x10
mov qword [rbp + 0xcc8], rcx
lea rdi, [rbp + 0x8d8]
mov rcx, qword [r13 + 0xd0]
mov qword [rbp + 0xc68], rcx
mov rcx, qword [r13 + 0xd8]
mov qword [rbp + 0xc80], rcx
movzx ecx, byte [r13 + 0x100]
mov byte [rbp + 0xc60], cl
mov rcx, qword [r13 + 0x20]
mov qword [rbp + 0xc58], rcx
mov rcx, qword [r13 + 0x28]
mov qword [rbp + 0xca8], rcx
jmp 0x14009a2c0
cmp qword [rbp + 0x8c0], 0
je 0x14009a203
mov r8, qword [rbp + 0x8c8]
jmp 0x14009a1f5
mov rdx, qword [rbp + 0xcc8]
call sym.core::slice::sort::unstable::ipnsort::h80aff414b8b385f9
mov rax, qword [rbp + 0x8c0]
movups xmm0, xmmword [rsi]
movaps xmmword [rbp + 0x510], xmm0
movabs rcx, 0x8000000000000000
cmp rax, rcx
mov r9, qword [rbp + 0xca0]
mov r10, qword [rbp + 0xc68]
je 0x14009a203
mov r11, qword [rbp + 0xc60]
add r11, r10
mov rcx, r14
jmp 0x140099973
lea r8, [0x140111c70]
mov rcx, r15
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7