Function at 0x1400107f0
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, [0x1400a42f8]
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.14000e260
lea rcx, [0x1400b085e]
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.14000f780
test rax, rax
je 0x140010922
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x110]
mov rcx, rdi
xor edx, edx
mov r9d, 0x30
call rax
lea rax, [0x1400a61cf]
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.14000e260
lea rcx, [0x1400ad9de]
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.14000f780
test rax, rax
je 0x1400109d7
mov rcx, rdi
call rax
mov eax, dword [0x1400b4090]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 8], 0
jne 0x1400109f9
call fcn.140009d30
mov eax, dword [0x1400b4090]
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, [0x1400a2e10]
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 0x140011082
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 0x140010a9e
cmp r13, qword [rsp + 0xa0]
je 0x140011082
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 0x1400110af
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 0x140010b2e
mov byte [rax + rdx], r14b
inc rdx
mov qword [rsp + 0x80], rdx
inc r15d
inc rbx
cmp r15d, ebp
jge 0x140010bb0
movzx r14d, byte [rbx]
test r14b, r14b
je 0x140010b22
js 0x140010b60
cmp rdx, qword [rsp + 0x70]
jne 0x140010b10
lea rcx, [rsp + 0x70]
call fcn.140009550
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
jmp 0x140010b10
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 0x140010b90
mov byte [rax + rdx], r12b
mov byte [rax + rdx + 1], r14b
add rdx, 2
jmp 0x140010b17
mov r8d, 2
lea rcx, [rsp + 0x70]
call fcn.1400360d0
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
jmp 0x140010b81
mov rcx, qword [rsp + 0x78]
mov r9, rdx
add r9, 0xfffffffffffffffe
je 0x140010bd3
cmp rdx, 2
jb 0x1400110bd
cmp byte [rcx + r9], 0xbf
jle 0x1400110bd
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, [0x140009120]
mov qword [rsp + 0xf8], rax
lea rcx, str..dll
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
lea rax, [0x1400a2ed8]
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.140007b00
cmp edi, 1
mov qword [rsp + 0xc0], r13
jne 0x140010c80
add rsi, qword [rsp + 0x60]
jmp 0x140010c98
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 0x140010da0
cmp eax, 2
jl 0x140010da0
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 0x140010d25
mov byte [rax + rdx], r14b
inc rdx
mov qword [rsp + 0x38], rdx
inc ebx
inc rdi
cmp ebx, esi
jge 0x140010da0
movzx r14d, byte [rdi]
test r14b, r14b
je 0x140010d1e
js 0x140010d50
cmp rdx, qword [rsp + 0x28]
jne 0x140010d10
lea rcx, [rsp + 0x28]
call fcn.140009550
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
jmp 0x140010d10
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 0x140010d80
mov byte [rax + rdx], r15b
mov byte [rax + rdx + 1], r14b
add rdx, 2
jmp 0x140010d17
mov r8d, 2
lea rcx, [rsp + 0x28]
call fcn.1400360d0
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
jmp 0x140010d71
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.1400110e0
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 0x140010e4c
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x140010f08
add rdi, r12
add rdi, 0x10
add r12, 0x10
mov rax, r13
jmp 0x140010df4
lea eax, [rsi - 1]
and eax, esi
mov esi, eax
test ax, ax
je 0x140010e11
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 0x140010e40
add r15, r14
mov rdx, qword [r15 + 8]
mov rcx, qword [rsp + 0x68]
mov r8, rbp
call fcn.140028610
test eax, eax
jne 0x140010e40
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 0x140010ebc
mov rcx, qword [0x1400b4028]
xor edx, edx
mov r8, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_HeapFree]
test rdi, rdi
je 0x140010ed8
test rsi, rsi
je 0x140010ed8
mov rcx, qword [0x1400b4028]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x70], 0
mov r13, qword [rsp + 0xc0]
je 0x140010a90
mov rcx, qword [0x1400b4028]
xor edx, edx
mov r8, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140010a90
mov rcx, rbx
mov rdi, qword [rsp + 0xa8]
and rcx, rdi
movdqu xmm0, xmmword [r13 + rcx]
pmovmskb eax, xmm0
test eax, eax
je 0x140010f2c
mov rsi, qword [rsp + 0x58]
jmp 0x140010f59
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 0x140010f40
tzcnt eax, eax
add rax, rcx
and rax, rbx
movzx r14d, byte [r13 + rax]
test r14b, r14b
js 0x140010f82
movdqa xmm0, xmmword [r13]
pmovmskb eax, xmm0
tzcnt eax, eax
movzx r14d, byte [r13 + rax]
and r14b, 1
je 0x140010f8f
cmp qword [rsi + 8], 0
je 0x14001100b
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 0x140010eec
jmp 0x140010a90
mov rcx, rsi
mov rdx, qword [rsp + 0x90]
call fcn.140036260
mov rbx, qword [rsi]
mov r13, qword [rsi + 0x18]
and rdi, rbx
movdqu xmm0, xmmword [r13 + rdi]
pmovmskb eax, xmm0
test eax, eax
jne 0x140011059
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 0x140011040
tzcnt eax, eax
add rax, rdi
and rax, rbx
cmp byte [r13 + rax], 0
js 0x140010f8f
movdqa xmm0, xmmword [r13]
pmovmskb eax, xmm0
tzcnt eax, eax
jmp 0x140010f8f
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.140036060
ud2