Function at 0x140010930
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movdqa xmmword [rsp + 0x160], xmm8
movdqa xmmword [rsp + 0x150], xmm7
movdqa xmmword [rsp + 0x140], xmm6
mov qword [rsp + 0x58], rcx
call qword [sym.imp.kernel32.dll_GetCurrentProcess]
mov rdi, rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x130], xmm0
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x110], xmm0
lea rax, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rustc_demangle_0.1.21_src_v0.rs
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
movabs rcx, 0xc36b49443494388
xor rcx, qword [rax + 0xf19d]
mov qword [rsp + 0x28], rcx
movzx eax, byte [rax + 0xf1a5]
xor al, 6
mov byte [rsp + 0x30], al
lea rcx, [rsp + 0x28]
mov edx, 9
call fcn.14000e3a0
lea rcx, [0x140379876]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x28]
movabs rdx, 0xd00fd3e3b0fc7c3e
xor rdx, qword [rcx + 0x2c40]
mov qword [rsp + 0x28], rdx
movabs rdx, 0xfd3b704064077d9a
xor rdx, qword [rcx + 0x2c48]
mov qword [rsp + 0x30], rdx
movabs rdx, 0xd46817fcf55402f9
xor rdx, qword [rcx + 0x2c50]
mov qword [rsp + 0x38], rdx
movzx ecx, byte [rcx + 0x2c58]
xor cl, 0x57
mov byte [rsp + 0x40], cl
lea rdx, [rsp + 0x28]
mov r8d, 0x19
mov rcx, rax
call fcn.14000f8c0
test rax, rax
je 0x140010a62
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x110]
mov rcx, rdi
xor edx, edx
mov r9d, 0x30
call rax
lea rax, [0x14036f1cd]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
movabs rcx, 0x9b200423af08b0cb
xor rcx, qword [rax + 0xd2af]
mov qword [rsp + 0x28], rcx
mov ecx, 0xef2117d1
xor ecx, dword [rax + 0xd2b7]
mov dword [rsp + 0x30], ecx
lea rcx, [rsp + 0x28]
mov edx, 0xc
call fcn.14000e3a0
lea rcx, [0x1403769dc]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x28]
movabs rdx, 0x14ec03bff39276f9
xor rdx, qword [rcx + 0x5aac]
mov qword [rsp + 0x28], rdx
movzx edx, word [rcx + 0x5ab4]
movzx ecx, byte [rcx + 0x5ab6]
mov r8d, edx
shr r8d, 8
xor dl, 0xb2
xor r8b, 0x97
mov byte [rsp + 0x30], dl
mov byte [rsp + 0x31], r8b
xor cl, 0xee
mov byte [rsp + 0x32], cl
lea rdx, [rsp + 0x28]
mov r8d, 0xb
mov rcx, rax
call fcn.14000f8c0
test rax, rax
je 0x140010b17
mov rcx, rdi
call rax
mov eax, dword [0x14037d0a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 8], 0
jne 0x140010b39
call fcn.140009e70
mov eax, dword [0x14037d0a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movdqu xmm0, xmmword [rax + 0x10]
inc qword [rax + 0x10]
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x58]
movups xmmword [rcx], xmm1
mov qword [rcx + 0x10], 0
lea rax, [0x14036c800]
mov qword [rcx + 0x18], rax
movdqu xmmword [rcx + 0x20], xmm0
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + 0x68]
mov qword [rsp + 0x60], rax
mov eax, dword [rax + 0xc]
mov qword [rsp + 0xa0], rax
test eax, eax
jle 0x1400111c2
mov rax, qword [rsp + 0x58]
add rax, 0x20
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 0x10]
add rcx, rax
mov qword [rsp + 0x98], rcx
xor r13d, r13d
pcmpeqd xmm6, xmm6
jmp 0x140010bde
cmp r13, qword [rsp + 0xa0]
je 0x1400111c2
mov rax, r13
shl rax, 0x23
lea rdx, [rax + rax*2]
sar rdx, 0x20
mov r8, qword [rsp + 0x98]
movsxd rbx, dword [r8 + rdx + 4]
mov eax, dword [r8 + rdx + 8]
mov ecx, dword [r8 + rdx + 0x10]
mov edi, dword [r8 + rdx + 0x14]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 1
mov qword [rsp + 0x80], 0
cmp eax, 1
jle 0x1400111ef
inc r13
movsxd rsi, ecx
mov ebp, eax
shr ebp, 0x1f
add ebp, eax
sar ebp, 1
add rbx, qword [rsp + 0x60]
xor edx, edx
mov eax, 1
xor r15d, r15d
jmp 0x140010c6e
mov byte [rax + rdx], r14b
inc rdx
mov qword [rsp + 0x80], rdx
inc r15d
inc rbx
cmp r15d, ebp
jge 0x140010cf0
movzx r14d, byte [rbx]
test r14b, r14b
je 0x140010c62
js 0x140010ca0
cmp rdx, qword [rsp + 0x70]
jne 0x140010c50
lea rcx, [rsp + 0x70]
call fcn.140009690
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
jmp 0x140010c50
mov r12d, r14d
shr r12b, 6
or r12b, 0xc0
and r14b, 0x3f
or r14b, 0x80
mov rcx, qword [rsp + 0x70]
sub rcx, rdx
cmp rcx, 1
jbe 0x140010cd0
mov byte [rax + rdx], r12b
mov byte [rax + rdx + 1], r14b
add rdx, 2
jmp 0x140010c57
mov r8d, 2
lea rcx, [rsp + 0x70]
call fcn.140036210
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
jmp 0x140010cc1
mov rcx, qword [rsp + 0x78]
mov r9, rdx
add r9, 0xfffffffffffffffe
je 0x140010d13
cmp rdx, 2
jb 0x1400111fd
cmp byte [rcx + r9], 0xbf
jle 0x1400111fd
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], r9
lea rax, [rsp + 0xc8]
mov qword [rsp + 0xf0], rax
lea rax, [0x140009260]
mov qword [rsp + 0xf8], rax
lea rcx, str..dll
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
lea rax, [0x14036c8c8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x28], 0
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 2
lea rcx, [rsp + 0xd8]
lea rdx, [rsp + 0x28]
call fcn.140007c40
cmp edi, 1
mov qword [rsp + 0xc0], r13
jne 0x140010dc0
add rsi, qword [rsp + 0x60]
jmp 0x140010dd8
add rsi, qword [rsp + 0x60]
lea rax, [rdi + rdi*4]
lea rax, [rsi + rax*4]
add rax, 0xffffffffffffffec
test rax, rax
cmovne rsi, rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x68], rax
mov rbp, qword [rsp + 0xe8]
movsxd rdi, dword [rsi + 0xc]
mov eax, dword [rsi + 0x10]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x38], 0
test eax, eax
je 0x140010ee0
cmp eax, 2
jl 0x140010ee0
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
add rdi, qword [rsp + 0x60]
xor edx, edx
mov eax, 1
xor ebx, ebx
jmp 0x140010e65
mov byte [rax + rdx], r14b
inc rdx
mov qword [rsp + 0x38], rdx
inc ebx
inc rdi
cmp ebx, esi
jge 0x140010ee0
movzx r14d, byte [rdi]
test r14b, r14b
je 0x140010e5e
js 0x140010e90
cmp rdx, qword [rsp + 0x28]
jne 0x140010e50
lea rcx, [rsp + 0x28]
call fcn.140009690
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
jmp 0x140010e50
mov r15d, r14d
shr r15b, 6
or r15b, 0xc0
and r14b, 0x3f
or r14b, 0x80
mov rcx, qword [rsp + 0x28]
sub rcx, rdx
cmp rcx, 1
jbe 0x140010ec0
mov byte [rax + rdx], r15b
mov byte [rax + rdx + 1], r14b
add rdx, 2
jmp 0x140010e57
mov r8d, 2
lea rcx, [rsp + 0x28]
call fcn.140036210
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
jmp 0x140010eb1
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x28]
mov r8, qword [rsp + 0x68]
mov r9, rbp
call fcn.140011220
mov rdi, rax
mov rbx, qword [rsi]
mov rax, qword [rsi + 0x18]
mov rcx, rdi
shr rcx, 0x39
mov qword [rsp + 0xb0], rcx
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm7, xmm0, 0
lea r14, [rax - 0x30]
xor r12d, r12d
mov qword [rsp + 0xa8], rdi
and rdi, rbx
mov r13, rax
movdqu xmm8, xmmword [rax + rdi]
movdqa xmm0, xmm7
pcmpeqb xmm0, xmm8
pmovmskb esi, xmm0
test esi, esi
jne 0x140010f8c
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x140011048
add rdi, r12
add rdi, 0x10
add r12, 0x10
mov rax, r13
jmp 0x140010f34
lea eax, [rsi - 1]
and eax, esi
mov esi, eax
test ax, ax
je 0x140010f51
tzcnt eax, esi
add rax, rdi
and rax, rbx
neg rax
lea r15, [rax + rax*2]
shl r15, 4
cmp qword [r14 + r15 + 0x10], rbp
jne 0x140010f80
add r15, r14
mov rdx, qword [r15 + 8]
mov rcx, qword [rsp + 0x68]
mov r8, rbp
call fcn.140028750
test eax, eax
jne 0x140010f80
mov rsi, qword [r15 + 0x18]
mov rdi, qword [r15 + 0x20]
mov rax, qword [rsp + 0x38]
mov qword [r15 + 0x28], rax
movdqu xmm0, xmmword [rsp + 0x28]
movdqu xmmword [r15 + 0x18], xmm0
cmp qword [rsp + 0x88], 0
je 0x140010ffc
mov rcx, qword [0x14037d038]
xor edx, edx
mov r8, qword [rsp + 0x68]
call qword [sym.imp.kernel32.dll_HeapFree]
test rdi, rdi
je 0x140011018
test rsi, rsi
je 0x140011018
mov rcx, qword [0x14037d038]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x70], 0
mov r13, qword [rsp + 0xc0]
je 0x140010bd0
mov rcx, qword [0x14037d038]
xor edx, edx
mov r8, qword [rsp + 0xb8]
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x140010bd0
mov rcx, rbx
mov rdi, qword [rsp + 0xa8]
and rcx, rdi
movdqu xmm0, xmmword [r13 + rcx]
pmovmskb eax, xmm0
test eax, eax
je 0x14001106c
mov rsi, qword [rsp + 0x58]
jmp 0x140011099
mov edx, 0x10
mov rsi, qword [rsp + 0x58]
nop word cs:[rax + rax]
add rcx, rdx
and rcx, rbx
movdqu xmm0, xmmword [r13 + rcx]
pmovmskb eax, xmm0
add rdx, 0x10
test eax, eax
je 0x140011080
tzcnt eax, eax
add rax, rcx
and rax, rbx
movzx r14d, byte [r13 + rax]
test r14b, r14b
js 0x1400110c2
movdqa xmm0, xmmword [r13]
pmovmskb eax, xmm0
tzcnt eax, eax
movzx r14d, byte [r13 + rax]
and r14b, 1
je 0x1400110cf
cmp qword [rsi + 8], 0
je 0x14001114b
movzx ecx, r14b
sub qword [rsi + 8], rcx
lea rcx, [rax - 0x10]
and rcx, rbx
mov rdx, qword [rsp + 0xb0]
mov byte [r13 + rax], dl
mov byte [rcx + r13 + 0x10], dl
inc qword [rsi + 0x10]
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov rcx, qword [rsp + 0x88]
mov qword [r13 + rax - 0x30], rcx
mov rcx, qword [rsp + 0x68]
mov qword [r13 + rax - 0x28], rcx
mov qword [r13 + rax - 0x20], rbp
movdqu xmm0, xmmword [rsp + 0x28]
movdqu xmmword [r13 + rax - 0x18], xmm0
mov rcx, qword [rsp + 0x38]
mov qword [r13 + rax - 8], rcx
cmp qword [rsp + 0x70], 0
mov r13, qword [rsp + 0xc0]
jne 0x14001102c
jmp 0x140010bd0
mov rcx, rsi
mov rdx, qword [rsp + 0x90]
call fcn.1400363a0
mov rbx, qword [rsi]
mov r13, qword [rsi + 0x18]
and rdi, rbx
movdqu xmm0, xmmword [r13 + rdi]
pmovmskb eax, xmm0
test eax, eax
jne 0x140011199
mov ecx, 0x10
nop dword [rax]
add rdi, rcx
and rdi, rbx
movdqu xmm0, xmmword [r13 + rdi]
pmovmskb eax, xmm0
add rcx, 0x10
test eax, eax
je 0x140011180
tzcnt eax, eax
add rax, rdi
and rax, rbx
cmp byte [r13 + rax], 0
js 0x1400110cf
movdqa xmm0, xmmword [r13]
pmovmskb eax, xmm0
tzcnt eax, eax
jmp 0x1400110cf
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm8, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r9, 0xfffffffffffffffe
mov ecx, 1
xor edx, edx
lea rax, str.dinvokedinvoke_rsdinvoke_srclib.rs
mov qword [rsp + 0x20], rax
xor r8d, r8d
call fcn.1400361a0
ud2