Function at 0x1400a8ed0
Capabilities:
Enumerate processes via ntquerysysteminformation
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x298
movdqa xmmword [rsp + 0x280], xmm6
mov rbx, rdx
mov r13, rcx
movzx eax, byte [0x140259141]
mov esi, 0x80000
mov edx, 0x80000
xor ecx, ecx
call fcn.14008b700
test rax, rax
je 0x1400a9f99
mov qword [rsp + 0x58], 0x80000
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0
xor edx, edx
lea r14, [rsp + 0x58]
lea r15, [rsp + 0x1b0]
mov r12d, 0x80000
jmp 0x1400a8f5a
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov dword [rsp + 0x1b0], 0
sub rsi, rdx
cmp rsi, r12
jb 0x1400a8fcb
mov rdi, qword [rsp + 0x60]
mov ecx, 5
mov rdx, rdi
mov r8d, r12d
mov r9, r15
call sub.ntdll.dll_NtQuerySystemInformation
test eax, eax
jns 0x1400a8fd8
or eax, 0x10000000
mov ecx, eax
call fcn.1400e9260
cmp edx, 0xd0000004
jne 0x1400a9094
mov ecx, dword [rsp + 0x1b0]
mov rdx, r12
add rdx, r12
lea r12d, [rcx + 0x2800]
test ecx, ecx
cmove r12, rdx
test rax, rax
je 0x1400a8f50
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
jmp 0x1400a8f50
mov rcx, r14
mov r8, r12
call fcn.1400e2df0
jmp 0x1400a8f6d
mov qword [rsp + 0x68], r12
movzx eax, byte [0x140259141]
mov edx, 0xfa0
xor ecx, ecx
call fcn.14008b700
test rax, rax
je 0x1400a9f99
mov qword [rsp + 0x70], 0x1f4
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 0
xor edx, edx
lea r14, [rsp + 0x70]
xor esi, esi
jmp 0x1400a9043
lea rcx, [rdi + rsi]
mov qword [rax + rdx*8], rcx
mov rdx, qword [rsp + 0x80]
inc rdx
mov qword [rsp + 0x80], rdx
add rsi, r15
test r15, r15
je 0x1400a9065
mov r15d, dword [rdi + rsi]
cmp rdx, qword [rsp + 0x70]
jne 0x1400a9020
mov rcx, r14
call fcn.1400a54f0
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
jmp 0x1400a9020
lea rax, [r13 + 0x90]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x128], rax
cmp byte [rbx], 0
je 0x1400a90d9
mov rcx, r13
xor edx, edx
call fcn.1400a47f0
mov rax, qword [r13 + 0x80]
jmp 0x1400a90db
test rax, rax
je 0x1400a90a2
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
cmp qword [rsp + 0x58], 0
je 0x1400a90bd
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
movaps xmm6, xmmword [rsp + 0x280]
add rsp, 0x298
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x1b0], 0
mov rax, qword [0x1401b50f0]
lea rcx, [rsp + 0x1b0]
call rax
mov rax, qword [rsp + 0x1b0]
movabs rcx, 0x19db1ded53e8000
cmp rax, rcx
jl 0x1400a9137
movabs rcx, 0xfe624e212ac18000
add rax, rcx
movabs rcx, 0xd6bf94d5e57a42bd
mul rcx
shr rdx, 0x17
jmp 0x1400a9139
xor edx, edx
mov qword [rsp + 0x138], rdx
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x1c0], rdi
movdqu xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x1b0], xmm0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 8
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x128]
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1d0], rbx
lea rax, [rsp + 0x130]
mov qword [rsp + 0x1d8], rax
lea rax, [rsp + 0x138]
mov qword [rsp + 0x1e0], rax
mov rsi, qword [rsp + 0x1b0]
cmp rsi, rdi
jb 0x1400a9f99
mov rbx, qword [rsp + 0x1b8]
xor ecx, ecx
call fcn.140024fc0
test rax, rax
je 0x1400a9f99
lea r14, [rsp + 0x1c8]
mov rax, qword [rax]
test rax, rax
je 0x1400a91f4
add rax, 0x110
jmp 0x1400a91f9
call fcn.1400250f0
mov rax, qword [rax]
mov r9, qword [rax + 0x208]
xor eax, eax
cmp rdi, 0xffffffffffffffff
sete al
cmp rax, r9
cmova r9, rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 1
lea r14, [rsp + 0x140]
mov rcx, r14
mov rdx, rdi
xor r8d, r8d
call fcn.1400a6930
test rsi, rsi
je 0x1400a9257
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x150]
test rax, rax
je 0x1400a929b
xor r8d, r8d
nop word [rax + rax]
mov r14, qword [r14]
test r14, r14
je 0x1400a9285
add r8, qword [r14 + 0x10]
add r14, 0x18
dec rax
jne 0x1400a9270
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
sub rax, rdx
cmp rax, r8
jb 0x1400a9f8a
movabs rbp, 0x8000000000000000
mov r8, qword [rsp + 0x140]
lea rbx, [rsp + 0x40]
nop word cs:[rax + rax]
test r8, r8
je 0x1400a9376
mov rdi, qword [r8 + 0x18]
test rdi, rdi
je 0x1400a92da
mov qword [rdi + 0x20], 0
mov rsi, qword [r8]
mov r14, qword [r8 + 8]
mov r15, qword [r8 + 0x10]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp rsi, rbp
je 0x1400a936d
mov rax, qword [rsp + 0x40]
mov r12, qword [rsp + 0x50]
sub rax, r12
cmp rax, r15
jb 0x1400a9358
imul rcx, r12, 0x150
add rcx, qword [rsp + 0x48]
imul r8, r15, 0x150
mov rdx, r14
call sub.msvcrt.dll_memcpy
add r12, r15
mov qword [rsp + 0x50], r12
mov rcx, r14
xor edx, edx
call fcn.1400a2580
mov r8, rdi
test rsi, rsi
je 0x1400a92c0
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov r8, rdi
jmp 0x1400a92c0
mov rcx, rbx
mov rdx, r12
mov r8, r15
call fcn.1400a57a0
mov r12, qword [rsp + 0x50]
jmp 0x1400a930a
test rdi, rdi
jne 0x1400a93fd
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xb8], rax
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
imul rdx, rax, 0x150
add rdx, rcx
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x88], rcx
mov r12, rcx
test rax, rax
mov qword [rsp + 0xa0], r13
je 0x1400a9a76
lea rax, [r13 + 0xb0]
mov qword [rsp + 0xa8], rax
pcmpeqd xmm6, xmm6
mov rdi, qword [rsp + 0x88]
jmp 0x1400a9520
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rdi, rsi
test rsi, rsi
je 0x1400a9376
mov rsi, qword [rdi + 0x18]
test rsi, rsi
je 0x1400a940e
mov qword [rsi + 0x20], 0
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
call fcn.1400a2580
cmp qword [rdi], 0
je 0x1400a93e0
mov r8, qword [rdi + 8]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a93e0
and al, 1
movzx eax, al
sub qword [r13 + 0xa0], rax
lea rax, [r8 - 0x10]
and rcx, rax
mov byte [rdi + r8], dl
mov byte [rdi + rcx + 0x10], dl
inc qword [r13 + 0xa8]
neg r8
imul rsi, r8, 0x158
mov qword [rdi + rsi - 0x158], r12
mov qword [rdi + rsi - 0x150], rbx
lea rcx, [rdi + rsi]
add rcx, 0xfffffffffffffeb8
mov r8d, 0xd0
lea rdx, [rsp + 0x1b0]
call sub.msvcrt.dll_memcpy
mov qword [rdi + rsi - 0x78], r12
movaps xmm0, xmmword [rsp + 0x140]
movdqa xmm1, xmmword [rsp + 0x150]
movdqa xmm2, xmmword [rsp + 0x160]
movaps xmm3, xmmword [rsp + 0x170]
movups xmmword [rdi + rsi - 0x70], xmm0
movdqu xmmword [rdi + rsi - 0x60], xmm1
movdqu xmmword [rdi + rsi - 0x50], xmm2
movups xmmword [rdi + rsi - 0x40], xmm3
movaps xmm0, xmmword [rsp + 0x180]
movups xmmword [rdi + rsi - 0x30], xmm0
movaps xmm0, xmmword [rsp + 0x190]
movups xmmword [rdi + rsi - 0x20], xmm0
movdqa xmm0, xmmword [rsp + 0x1a0]
movdqu xmmword [rdi + rsi - 0x10], xmm0
mov rdi, qword [rsp + 0x98]
nop dword [rax]
cmp rdi, qword [rsp + 0x90]
mov r13, qword [rsp + 0xa0]
movabs rbp, 0x8000000000000000
je 0x1400a9c60
lea r12, [rdi + 0x150]
mov rbx, qword [rdi]
cmp rbx, 2
je 0x1400a9a76
mov rsi, rdi
mov qword [rsp + 0x98], r12
mov r12, qword [rdi + 0xd8]
lea rdx, [rdi + 8]
mov r8d, 0xd0
lea rcx, [rsp + 0x1b0]
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rdi + 0xe0]
movups xmm1, xmmword [rdi + 0xf0]
movups xmm2, xmmword [rdi + 0x100]
movups xmm3, xmmword [rdi + 0x110]
movaps xmmword [rsp + 0x140], xmm0
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x160], xmm2
movaps xmmword [rsp + 0x170], xmm3
movups xmm0, xmmword [rdi + 0x120]
movaps xmmword [rsp + 0x180], xmm0
movups xmm0, xmmword [rdi + 0x130]
movaps xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [rdi + 0x140]
movaps xmmword [rsp + 0x1a0], xmm0
mov rcx, qword [r13 + 0xb0]
mov rdx, qword [r13 + 0xb8]
mov r8, r12
call fcn.1400a7f50
cmp qword [r13 + 0xa0], 0
je 0x1400a9a32
mov rdi, qword [r13 + 0x90]
mov rcx, qword [r13 + 0x98]
mov rdx, rax
shr rdx, 0x39
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r9, [rdi - 0x158]
xor r10d, r10d
xor r11d, r11d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb esi, xmm2
nop word cs:[rax + rax]
test si, si
je 0x1400a9670
tzcnt r14d, esi
lea ebp, [rsi - 1]
and ebp, esi
add r14, rax
and r14, rcx
neg r14
imul r15, r14, 0x158
mov esi, ebp
cmp r12, qword [r9 + r15]
jne 0x1400a9640
jmp 0x1400a96c0
cmp r11, 1
mov r11d, 1
je 0x1400a9696
pmovmskb r8d, xmm1
xor r11d, r11d
test r8d, r8d
setne r11b
tzcnt r8d, r8d
add r8, rax
and r8, rcx
pcmpeqb xmm1, xmm6
pmovmskb esi, xmm1
test esi, esi
jne 0x1400a9a52
add rax, r10
add rax, 0x10
add r10, 0x10
jmp 0x1400a961e
mov r14, qword [rdi + r15 - 0x150]
mov rsi, qword [rdi + r15 - 0x140]
mov rax, qword [rdi + r15 - 0x138]
mov qword [rsp + 0xe0], rax
mov rax, qword [rdi + r15 - 0x128]
mov qword [rsp + 0xe8], rax
mov rax, qword [rdi + r15 - 0x120]
mov qword [rsp + 0xf0], rax
mov rbp, qword [rdi + r15 - 0x118]
mov rax, qword [rdi + r15 - 0x110]
mov qword [rsp + 0x108], rax
mov rax, qword [rdi + r15 - 0x108]
mov qword [rsp + 0x118], rax
mov r13, qword [rdi + r15 - 0x100]
mov rax, qword [rdi + r15 - 0xf8]
mov qword [rsp + 0xf8], rax
mov rax, qword [rdi + r15 - 0xf0]
mov qword [rsp + 0xc0], rax
mov rax, qword [rdi + r15 - 0xd8]
mov qword [rsp + 0x100], rax
mov rax, qword [rdi + r15 - 0xd0]
mov qword [rsp + 0xc8], rax
mov rax, qword [rdi + r15 - 0xc0]
mov qword [rsp + 0x110], rax
mov rax, qword [rdi + r15 - 0xb8]
mov qword [rsp + 0xd0], rax
mov rax, qword [rdi + r15 - 0xa0]
mov qword [rsp + 0x120], rax
mov rax, qword [rdi + r15 - 0x98]
mov qword [rsp + 0xd8], rax
mov rax, qword [rdi + r15 - 0x60]
mov qword [rdi + r15 - 0x150], rbx
mov rbx, rax
lea rcx, [rdi + r15]
add rcx, 0xfffffffffffffeb8
mov r8d, 0xd0
lea rdx, [rsp + 0x1b0]
call sub.msvcrt.dll_memcpy
mov qword [rdi + r15 - 0x78], r12
movaps xmm0, xmmword [rsp + 0x140]
movdqa xmm1, xmmword [rsp + 0x150]
movdqa xmm2, xmmword [rsp + 0x160]
movaps xmm3, xmmword [rsp + 0x170]
movups xmmword [rdi + r15 - 0x70], xmm0
movdqu xmmword [rdi + r15 - 0x60], xmm1
movdqu xmmword [rdi + r15 - 0x50], xmm2
movups xmmword [rdi + r15 - 0x40], xmm3
movaps xmm0, xmmword [rsp + 0x180]
movups xmmword [rdi + r15 - 0x30], xmm0
movaps xmm0, xmmword [rsp + 0x190]
movups xmmword [rdi + r15 - 0x20], xmm0
movdqa xmm0, xmmword [rsp + 0x1a0]
movdqu xmmword [rdi + r15 - 0x10], xmm0
cmp r14, 2
mov rdi, qword [rsp + 0x98]
je 0x1400a9500
test rsi, rsi
je 0x1400a9878
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, qword [rsp + 0xe0]
call sub.KERNEL32.dll_HeapFree
test rbp, rbp
mov r14, qword [rsp + 0x118]
mov r15, qword [rsp + 0xf0]
je 0x1400a98d0
lea rsi, [r15 + 8]
jmp 0x1400a98a9
add rsi, 0x18
dec rbp
je 0x1400a98d0
cmp qword [rsi - 8], 0
je 0x1400a98a0
mov r8, qword [rsi]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a98a0
cmp qword [rsp + 0xe8], 0
je 0x1400a98ec
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0xf8]
shl rax, 1
test rax, rax
jne 0x1400a9913
mov rax, qword [rsp + 0x100]
shl rax, 1
test rax, rax
jne 0x1400a9939
test r13, r13
jne 0x1400a9954
jmp 0x1400a9990
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, qword [rsp + 0xc0]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x100]
shl rax, 1
test rax, rax
je 0x1400a990c
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, qword [rsp + 0xc8]
call sub.KERNEL32.dll_HeapFree
test r13, r13
je 0x1400a9990
lea rsi, [r14 + 8]
jmp 0x1400a9969
add rsi, 0x18
dec r13
je 0x1400a9990
cmp qword [rsi - 8], 0
je 0x1400a9960
mov r8, qword [rsi]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a9960
cmp qword [rsp + 0x108], 0
je 0x1400a99ac
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x110]
shl rax, 1
test rax, rax
jne 0x1400a99d6
mov rax, qword [rsp + 0x120]
shl rax, 1
test rax, rax
jne 0x1400a99fc
test rbx, rbx
jne 0x1400a9a1b
jmp 0x1400a9500
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, qword [rsp + 0xd0]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x120]
shl rax, 1
test rax, rax
je 0x1400a99cc
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, qword [rsp + 0xd8]
call sub.KERNEL32.dll_HeapFree
test rbx, rbx
je 0x1400a9500
lock dec qword [rbx]
jne 0x1400a9500
mov rcx, rbx
call fcn.1400a6630
jmp 0x1400a9500
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xa8]
mov rsi, rax
call fcn.1400a3000
mov rax, rsi
jmp 0x1400a95ea
movzx eax, byte [rdi + r8]
test al, al
js 0x1400a9435
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
tzcnt r8d, eax
movzx eax, byte [rdi + r8]
jmp 0x1400a9435
mov r8, qword [rsp + 0x90]
mov rax, r8
sub rax, r12
shr rax, 4
movabs rcx, 0xc30c30c30c30c31
mul rcx
cmp r8, r12
je 0x1400a9c60
mov rdi, rdx
xor ebx, ebx
jmp 0x1400a9abc
inc rbx
cmp rbx, rdi
je 0x1400a9c60
imul rax, rbx, 0x150
lea r14, [r12 + rax]
cmp qword [r12 + rax + 0x10], 0
je 0x1400a9ae1
mov r8, qword [r14 + 0x18]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [r14 + 0x38]
test rsi, rsi
je 0x1400a9b30
mov r15, qword [r14 + 0x30]
add r15, 8
jmp 0x1400a9b09
add r15, 0x18
dec rsi
je 0x1400a9b30
cmp qword [r15 - 8], 0
je 0x1400a9b00
mov r8, qword [r15]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a9b00
cmp qword [r14 + 0x28], 0
je 0x1400a9b49
mov r8, qword [r14 + 0x30]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r14 + 0x58]
cmp rax, rbp
je 0x1400a9b69
test rax, rax
je 0x1400a9b69
mov r8, qword [r14 + 0x60]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r14 + 0x78]
cmp rax, rbp
je 0x1400a9b8c
test rax, rax
je 0x1400a9b8c
mov r8, qword [r14 + 0x80]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [r14 + 0x50]
test rsi, rsi
je 0x1400a9bd0
mov r15, qword [r14 + 0x48]
add r15, 8
jmp 0x1400a9ba9
add r15, 0x18
dec rsi
je 0x1400a9bd0
cmp qword [r15 - 8], 0
je 0x1400a9ba0
mov r8, qword [r15]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a9ba0
cmp qword [r14 + 0x40], 0
je 0x1400a9be9
mov r8, qword [r14 + 0x48]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r14 + 0x90]
cmp rax, rbp
je 0x1400a9c0f
test rax, rax
je 0x1400a9c0f
mov r8, qword [r14 + 0x98]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r14 + 0xb0]
cmp rax, rbp
je 0x1400a9c35
test rax, rax
je 0x1400a9c35
mov r8, qword [r14 + 0xb8]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r14 + 0xf0]
test rax, rax
je 0x1400a9ab0
lock dec qword [rax]
jne 0x1400a9ab0
mov rcx, qword [r14 + 0xf0]
call fcn.1400a6630
jmp 0x1400a9ab0
cmp qword [rsp + 0xb8], 0
je 0x1400a9c81
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, qword [rsp + 0x88]
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [r13 + 0x90]
mov rdi, qword [r13 + 0xa8]
movdqa xmm0, xmmword [rsi]
pmovmskb r15d, xmm0
not r15d
lea rbx, [rsi + 0x10]
movabs r14, 0x82fa0be82fa0be83
pcmpeqd xmm6, xmm6
nop dword [rax]
test rdi, rdi
je 0x1400a90a2
test r15w, r15w
jne 0x1400a9ce0
nop
movdqa xmm0, xmmword [rbx]
pmovmskb r15d, xmm0
add rsi, 0xffffffffffffea80
add rbx, 0x10
cmp r15d, 0xffff
je 0x1400a9cc0
not r15d
tzcnt eax, r15d
lea ecx, [r15 - 1]
and ecx, r15d
mov r15d, ecx
neg rax
imul r12, rax, 0x158
dec rdi
cmp byte [rsi + r12 - 4], 0
mov byte [rsi + r12 - 4], 0
jne 0x1400a9cb0
add r12, rsi
mov rax, qword [r13 + 0x90]
mov rcx, rax
sub rcx, r12
sar rcx, 3
imul rcx, r14
lea rdx, [rcx - 0x10]
and rdx, qword [r13 + 0x98]
movdqu xmm0, xmmword [rax + rdx]
pcmpeqb xmm0, xmm6
psllw xmm0, 7
pmovmskb r8d, xmm0
test r8d, r8d
je 0x1400a9d50
bsr r8w, r8w
xor r8d, 0xf
jmp 0x1400a9d55
mov r8w, 0x10
movdqu xmm0, xmmword [rax + rcx]
pcmpeqb xmm0, xmm6
pmovmskb r9d, xmm0
or r9d, 0x10000
tzcnt r9d, r9d
add r8d, r9d
mov r9b, pe_nt_image_headers64
cmp r8w, 0xf
ja 0x1400a9d86
inc qword [r13 + 0xa0]
mov r9b, 0xff
mov byte [rax + rcx], r9b
mov byte [rax + rdx + 0x10], r9b
dec qword [r13 + 0xa8]
cmp qword [r12 - 0x140], 0
je 0x1400a9db7
mov r8, qword [r12 - 0x138]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r13, qword [r12 - 0x118]
test r13, r13
je 0x1400a9e10
mov rbp, qword [r12 - 0x120]
add rbp, 8
jmp 0x1400a9de9
add rbp, 0x18
dec r13
je 0x1400a9e10
cmp qword [rbp - 8], 0
je 0x1400a9de0
mov r8, qword [rbp]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a9de0
cmp qword [r12 - 0x128], 0
je 0x1400a9e31
mov r8, qword [r12 - 0x120]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r12 - 0xf8]
movabs r13, 0x8000000000000000
cmp rax, r13
je 0x1400a9e63
test rax, rax
je 0x1400a9e63
mov r8, qword [r12 - 0xf0]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r12 - 0xd8]
cmp rax, r13
je 0x1400a9e8b
test rax, rax
je 0x1400a9e8b
mov r8, qword [r12 - 0xd0]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r13, qword [r12 - 0x100]
test r13, r13
je 0x1400a9ee0
mov rbp, qword [r12 - 0x108]
add rbp, 8
jmp 0x1400a9eb9
add rbp, 0x18
dec r13
je 0x1400a9ee0
cmp qword [rbp - 8], 0
je 0x1400a9eb0
mov r8, qword [rbp]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400a9eb0
cmp qword [r12 - 0x110], 0
je 0x1400a9f01
mov r8, qword [r12 - 0x108]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r12 - 0xc0]
movabs rbp, 0x8000000000000000
cmp rax, rbp
mov r13, qword [rsp + 0xa0]
je 0x1400a9f3b
test rax, rax
je 0x1400a9f3b
mov r8, qword [r12 - 0xb8]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r12 - 0xa0]
cmp rax, rbp
je 0x1400a9f63
test rax, rax
je 0x1400a9f63
mov r8, qword [r12 - 0x98]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [r12 - 0x60]
test rax, rax
je 0x1400a9cb0
lock dec qword [rax]
jne 0x1400a9cb0
mov rcx, qword [r12 - 0x60]
call fcn.1400a6630
jmp 0x1400a9cb0
lea rcx, [rsp + 0x40]
call fcn.1400a57a0
jmp 0x1400a929b
ud2