Function at 0x1400d5ee0
Capabilities:
Link many functions at runtime

Disassembly:
push rsi
push rdi
sub rsp, 0xb8
mov rsi, qword [0x140170088]
test rsi, rsi
je 0x1400d60ad
mov rcx, rsi
mov edx, 0xffffffff
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov rax, qword [0x140170098]
test rax, rax
jne 0x1400d5f33
lea rcx, [0x1401360a0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140170098], rax
test rax, rax
je 0x1400d61ae
cmp byte [0x140170090], 0
jne 0x1400d6336
mov rcx, qword [0x1401700a0]
test rcx, rcx
jne 0x1400d5f6f
lea rdx, str.SymGetOptions
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400d632f
mov rcx, rax
mov qword [0x1401700a0], rax
mov rax, rcx
call qword [0x140146120]
mov ecx, eax
mov rax, qword [0x1401700a8]
test rax, rax
jne 0x1400d5fae
mov edi, ecx
mov rcx, qword [0x140170098]
lea rdx, [0x1401360ba]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400d632f
mov qword [0x1401700a8], rax
mov ecx, edi
or ecx, 4
call qword [0x140146120]
mov rdi, qword [0x1401700b0]
test rdi, rdi
jne 0x1400d5fea
mov rcx, qword [0x140170098]
lea rdx, str.SymInitializeW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400d632f
mov rdi, rax
mov qword [0x1401700b0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
xor edx, edx
mov r8d, 1
mov rax, rdi
call qword [0x140146120]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 2
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x28]
mov edx, 0x400
xor r8d, r8d
call fcn.1400d2370
mov rdi, qword [0x1401700b8]
test rdi, rdi
jne 0x1400d6064
mov rcx, qword [0x140170098]
lea rdx, [0x1401360d7]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400d6345
mov rdi, rax
mov qword [0x1401700b8], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x38]
mov rcx, rax
mov rax, rdi
call qword [0x140146120]
cmp eax, 1
jne 0x1400d61c1
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
js 0x1400d636e
mov edx, eax
lea rcx, [rsp + 0x28]
call fcn.1400d2570
jmp 0x1400d6215
movups xmm0, xmmword [0x140135eb2]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [0x140135ea2]
movaps xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x60], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test eax, eax
je 0x1400d6145
mov ecx, 0x20
nop dword [rax]
test rcx, rcx
je 0x1400d6356
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 + 0x3f], r8b
cmp eax, 0x10
jb 0x1400d6145
mov edx, eax
shr edx, 4
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 + 0x3e], r8b
add rcx, 0xfffffffffffffffe
mov edx, eax
shr edx, 8
cmp eax, 0xff
mov eax, edx
ja 0x1400d60e0
movzx eax, byte [rsp + 0x60]
mov byte [rsp + 0x90], al
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x70], xmm0
lea r8, [rsp + 0x70]
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
test rax, rax
je 0x1400d61a4
mov rsi, rax
xor eax, eax
lock cmpxchg qword [0x140170088], rsi
je 0x1400d5ef9
mov rdi, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, rdi
jmp 0x1400d5ef9
mov eax, 1
jmp 0x1400d6338
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, 1
jmp 0x1400d6338
mov qword [rsp + 0x38], 0
cmp qword [rsp + 0x28], 0
jne 0x1400d61dc
lea rcx, [rsp + 0x28]
call fcn.1400d1db0
mov rax, qword [rsp + 0x30]
mov word [rax], 0x2e
mov qword [rsp + 0x38], 1
cmp qword [rsp + 0x28], 1
jne 0x1400d6201
lea rcx, [rsp + 0x28]
call fcn.1400d1db0
mov rax, qword [rsp + 0x30]
mov word [rax + 2], 0x3b
mov qword [rsp + 0x38], 2
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xb0], rax
movups xmm0, xmmword [rsp + 0x28]
movaps xmmword [rsp + 0xa0], xmm0
mov rdi, qword [0x1401700c8]
test rdi, rdi
jne 0x1400d6262
mov rcx, qword [0x140170098]
lea rdx, str.EnumerateLoadedModulesW64
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400d634c
mov rdi, rax
mov qword [0x1401700c8], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea rdx, [0x1400d6390]
lea r8, [rsp + 0xa0]
mov rcx, rax
mov rax, rdi
call qword [0x140146120]
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x40], xmm0
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0x50], rdi
cmp rdi, qword [rsp + 0x40]
jne 0x1400d62ae
lea rcx, [rsp + 0x40]
call fcn.1400d1db0
mov rax, qword [rsp + 0x48]
mov word [rax + rdi*2], 0
inc rdi
je 0x1400d6362
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], rdi
mov rdi, qword [0x1401700c0]
test rdi, rdi
jne 0x1400d6303
mov rcx, qword [0x140170098]
lea rdx, [0x1401360e9]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400d631a
mov rdi, rax
mov qword [0x1401700c0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rsp + 0x78]
mov rcx, rax
mov rax, rdi
call qword [0x140146120]
lea rdi, [rsp + 0x70]
mov rcx, rdi
call fcn.1400032b0
mov rcx, rdi
call fcn.1400d2160
mov byte [0x140170090], 1
xor eax, eax
mov rdx, rsi
add rsp, 0xb8
pop rdi
pop rsi
ret
lea rdi, [rsp + 0x28]
jmp 0x1400d631f
lea rdi, [rsp + 0xa0]
jmp 0x1400d631f
lea rcx, str..._.._third_party_rust_toolchain_lib_rustlib_src_rust_library_std_src...._backtrace_srcdbghelp.rs
call fcn.1401151f0
lea rcx, [0x140135e30]
call fcn.1401151b0
lea rcx, str.assertion_failed:_len___0
lea r8, str..._.._third_party_rust_toolchain_lib_rustlib_src_rust_library_std_src...._backtrace_srcdbghelp.rs
mov edx, 0x1a
call fcn.1401152b0
int3