Function at 0x140025480
Capabilities:
Link many functions at runtime

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x7e8
movaps xmmword [rsp + 0x7d0], xmm6
mov qword [rsp + 0x90], rdx
mov rbx, rcx
lea rcx, [0x14014e120]
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [0x14014e160]
shl rax, 1
test rax, rax
jne 0x140025d5c
xor edi, edi
movzx eax, byte [0x14014e128]
mov qword [rsp + 0x58], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
call sub.KERNEL32.dll_GetCurrentProcess
mov qword [rsp + 0x80], rax
call sub.KERNEL32.dll_GetCurrentThread
mov qword [rsp + 0x78], rax
lea rsi, [rsp + 0x300]
mov r8d, 0x4d0
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
mov rcx, rsi
call sub.KERNEL32.dll_RtlCaptureContext
mov r14, qword [0x14014e168]
test r14, r14
je 0x140025913
mov rcx, r14
mov edx, 0xffffffff
xor r8d, r8d
call sub.KERNEL32.dll_WaitForSingleObjectEx
mov rax, qword [0x14014e200]
test rax, rax
jne 0x14002555f
lea rcx, str.dbghelp.dll
call sub.KERNEL32.dll_LoadLibraryA
mov qword [0x14014e200], rax
test rax, rax
je 0x140025a7b
cmp byte [0x14014e170], 0
mov dword [rsp + 0x74], edi
mov qword [rsp + 0x88], r14
jne 0x14002562e
mov rcx, qword [0x14014e208]
test rcx, rcx
jne 0x1400255a6
lea rdx, str.SymGetOptions
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140025db9
mov rcx, rax
mov qword [0x14014e208], rax
call rcx
mov esi, eax
mov rdx, qword [0x14014e210]
test rdx, rdx
jne 0x1400255dc
mov rcx, qword [0x14014e200]
lea rdx, str.SymSetOptions
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140025dc2
mov rdx, rax
mov qword [0x14014e210], rax
or esi, 4
mov ecx, esi
call rdx
mov rsi, qword [0x14014e218]
test rsi, rsi
jne 0x140025615
mov rcx, qword [0x14014e200]
lea rdx, str.SymInitializeW
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140025dcb
mov rsi, rax
mov qword [0x14014e218], rax
call sub.KERNEL32.dll_GetCurrentProcess
mov rcx, rax
xor edx, edx
mov r8d, 1
call rsi
mov byte [0x14014e170], 1
call sub.KERNEL32.dll_GetCurrentProcess
mov rbp, qword [0x14014e228]
test rbp, rbp
mov qword [rsp + 0x98], rbx
jne 0x14002566d
mov rcx, qword [0x14014e200]
lea rdx, str.StackWalkEx
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140025afd
mov rbp, rax
mov qword [0x14014e228], rax
lea r9, [rsp + 0xa8]
xorps xmm6, xmm6
movups xmmword [rsp + 0x1a0], xmm6
movups xmmword [rsp + 0x190], xmm6
movups xmmword [rsp + 0x180], xmm6
movups xmmword [rsp + 0x170], xmm6
movups xmmword [rsp + 0x160], xmm6
movups xmmword [rsp + 0x150], xmm6
movups xmmword [rsp + 0x140], xmm6
movups xmmword [rsp + 0x130], xmm6
movups xmmword [rsp + 0x120], xmm6
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0x100], xmm6
movups xmmword [rsp + 0xf0], xmm6
movups xmmword [rsp + 0xe0], xmm6
movups xmmword [rsp + 0xd0], xmm6
movups xmmword [rsp + 0xc0], xmm6
movups xmmword [rsp + 0xb0], xmm6
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0x1b0], 0x110
mov qword [rsp + 0x1b8], 0
mov rax, qword [rsp + 0x3f8]
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xb4], 3
mov rax, qword [rsp + 0x398]
mov rcx, qword [rsp + 0x3a0]
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0xe4], 3
mov qword [rsp + 0xc8], rcx
mov dword [rsp + 0xd4], 3
lea rax, [sym.std::backtrace_rs::backtrace::dbghelp::trace::get_module_base::he1973e2f58a25daf]
mov qword [rsp + 0x38], rax
lea rax, [dbg.function_table_access]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], 0
mov ecx, 0x8664
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
call rbp
cmp eax, 1
jne 0x140025a25
lea r15, [rsp + 0x2e8]
mov rbx, qword [rsp + 0x68]
xor r12d, r12d
lea rdi, [rsp + 0x1c0]
lea r13, [rsp + 0xa0]
mov esi, 1
jmp 0x1400258a6
mov rbx, qword [rsp + 0x68]
imul rcx, rbx, 0x138
add rcx, qword [rsp + 0x58]
mov r8d, 0x138
mov rdx, rdi
call sym.memcpy
inc rbx
mov qword [rsp + 0x68], rbx
mov rax, qword [rsp + 0xa8]
xor rax, qword [rsp + 0x90]
or rax, r12
cmove r14, rbx
cmove r12, rsi
lea rax, [sym.std::backtrace_rs::backtrace::dbghelp::trace::get_module_base::he1973e2f58a25daf]
mov qword [rsp + 0x38], rax
lea rax, [dbg.function_table_access]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], 0
mov ecx, 0x8664
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
lea r9, [rsp + 0xa8]
call rbp
cmp eax, 1
jne 0x140025a28
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x1c0], 0
mov rdx, rdi
xor r8d, r8d
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x1b8], rax
mov r8d, 0x120
mov rcx, rdi
mov rdx, r13
call sym.memcpy
mov qword [rsp + 0x2e0], 8
movups xmmword [r15], xmm6
cmp rbx, qword [rsp + 0x60]
jne 0x140025805
lea rcx, [rsp + 0x58]
mov rdx, rbx
call dbg.reserve_for_push<std::backtrace::BacktraceFrame, alloc::alloc::Global>
jmp 0x140025800
movups xmm0, xmmword [0x1401177d8]
movaps xmmword [rsp + 0x1d0], xmm0
movups xmm0, xmmword [str.LocalRustBacktraceMutex00000000]
movaps xmmword [rsp + 0x1c0], xmm0
mov byte [rsp + 0x1e0], 0
call fcn.1400c5044
test eax, eax
je 0x1400259b5
mov ecx, 0x1f
nop word [rax + rax]
cmp rcx, 0x20
ja 0x140025d85
mov edx, eax
and dl, 0xf
lea r8d, [rdx + 0x30]
lea r9d, [rdx + 0x37]
cmp dl, 0xa
movzx edx, r8b
movzx r8d, r9b
cmovb r8d, edx
mov byte [rsp + rcx + 0x1c0], r8b
cmp eax, 0x10
jb 0x1400259b5
mov edx, eax
shr dl, 4
lea r8d, [rdx + 0x30]
add dl, 0x37
cmp al, 0xa0
movzx r8d, r8b
movzx edx, dl
cmovb edx, r8d
mov byte [rsp + rcx + 0x1bf], dl
mov edx, eax
shr edx, 8
add rcx, 0xfffffffffffffffe
cmp eax, 0x100
mov eax, edx
jae 0x140025950
movzx eax, byte [rsp + 0x1e0]
mov byte [rsp + 0xc0], al
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmm1, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
lea r8, [rsp + 0xa0]
xor ecx, ecx
xor edx, edx
call sub.KERNEL32.dll_CreateMutexA
test rax, rax
je 0x140025a83
mov r14, rax
xor eax, eax
lock cmpxchg qword [0x14014e168], r14
je 0x140025527
mov rsi, rax
mov rcx, r14
call fcn.1400c5124
mov r14, rsi
jmp 0x140025527
xor r12d, r12d
mov rcx, qword [rsp + 0x88]
call fcn.1400c4efc
mov edi, dword [rsp + 0x74]
mov rbx, qword [rsp + 0x98]
cmp qword [rsp + 0x68], 0
je 0x140025a8e
test r12, r12
cmove r14, r12
mov qword [rbx], 2
mov qword [rbx + 8], 0
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rbx + 0x10], xmm0
mov rax, qword [rsp + 0x68]
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], r14
mov byte [rbx + 0x30], 0
jmp 0x140025ab6
mov rcx, r14
call fcn.1400c4efc
xor r12d, r12d
cmp qword [rsp + 0x68], 0
jne 0x140025a49
mov qword [rbx], 0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x140025ab6
mov rcx, qword [rsp + 0x58]
imul rdx, rax, 0x138
mov r8d, 8
call sym.__rust_dealloc
test dil, dil
jne 0x140025ad5
movabs rax, 0x7fffffffffffffff
mov rcx, qword [0x14014e160]
test rcx, rax
jne 0x140025d6c
lea rcx, [0x14014e120]
call fcn.1400c4ef4
movaps xmm6, xmmword [rsp + 0x7d0]
add rsp, 0x7e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xorps xmm6, xmm6
movups xmmword [rsp + 0x1a0], xmm6
movups xmmword [rsp + 0x190], xmm6
movups xmmword [rsp + 0x180], xmm6
movups xmmword [rsp + 0x170], xmm6
movups xmmword [rsp + 0x160], xmm6
movups xmmword [rsp + 0x150], xmm6
movups xmmword [rsp + 0x140], xmm6
movups xmmword [rsp + 0x130], xmm6
movups xmmword [rsp + 0x120], xmm6
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0x100], xmm6
movups xmmword [rsp + 0xf0], xmm6
movups xmmword [rsp + 0xe0], xmm6
movups xmmword [rsp + 0xd0], xmm6
movups xmmword [rsp + 0xc0], xmm6
movups xmmword [rsp + 0xb0], xmm6
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0x1b8], 0
mov rax, qword [rsp + 0x3f8]
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xb4], 3
mov rax, qword [rsp + 0x398]
mov rcx, qword [rsp + 0x3a0]
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0xe4], 3
mov qword [rsp + 0xc8], rcx
mov dword [rsp + 0xd4], 3
xor r12d, r12d
lea r15, [sym.std::backtrace_rs::backtrace::dbghelp::trace::get_module_base::he1973e2f58a25daf]
lea rbp, [dbg.function_table_access]
lea rsi, [rsp + 0x1c0]
lea rdi, [rsp + 0xa0]
mov r13d, 1
jmp 0x140025c5d
imul rcx, rbx, 0x138
add rcx, qword [rsp + 0x58]
mov r8d, 0x138
mov rdx, rsi
call sym.memcpy
inc rbx
mov qword [rsp + 0x68], rbx
mov rax, qword [rsp + 0xa8]
xor rax, qword [rsp + 0x90]
or rax, r12
cmove r14, rbx
cmove r12, r13
mov r10, qword [0x14014e220]
test r10, r10
jne 0x140025c8f
mov rcx, qword [0x14014e200]
lea rdx, str.StackWalk64
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x140025d9f
mov r10, rax
mov qword [0x14014e220], rax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], rbp
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], 0
mov ecx, 0x8664
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
lea r9, [rsp + 0xa8]
call r10
cmp eax, 1
jne 0x140025a28
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x1c0], 0
mov rdx, rsi
xor r8d, r8d
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x1b8], rax
mov r8d, 0x120
mov rcx, rsi
mov rdx, rdi
call sym.memcpy
mov qword [rsp + 0x2e0], 8
lea rax, [rsp + 0x2e8]
movups xmmword [rax], xmm6
mov rbx, qword [rsp + 0x68]
cmp rbx, qword [rsp + 0x60]
jne 0x140025c20
lea rcx, [rsp + 0x58]
mov rdx, rbx
call dbg.reserve_for_push<std::backtrace::BacktraceFrame, alloc::alloc::Global>
mov rbx, qword [rsp + 0x68]
jmp 0x140025c20
call dbg.is_zero_slow_path
mov edi, eax
xor dil, 1
jmp 0x1400254c8
call dbg.is_zero_slow_path
test al, al
jne 0x140025ad5
mov byte [0x14014e128], 1
jmp 0x140025ad5
lea r8, str.library_std_src...._backtrace_srcdbghelp.rs
mov edx, 0x21
mov rcx, 0xffffffffffffffff
call dbg.panic_bounds_check
jmp 0x140025de3
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_5680fa18feaa87f3ff04063800aec256c3d4b4belibrary_alloc_srccollections_btree_navigate.rs
lea r8, str.library_std_src...._backtrace_srcdbghelp.rs
mov edx, 0x2b
call dbg.panic
jmp 0x140025de3
lea r8, str.library_std_src...._backtrace_srcdbghelp.rs
jmp 0x140025dd2
lea r8, str.library_std_src...._backtrace_srcdbghelp.rs
jmp 0x140025dd2
lea r8, str.library_std_src...._backtrace_srcdbghelp.rs
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_5680fa18feaa87f3ff04063800aec256c3d4b4belibrary_alloc_srccollections_btree_navigate.rs
mov edx, 0x2b
call dbg.panic
ud2