Function at 0x140040dc0
Capabilities:
Get system information on windows

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x2f]
sub rsp, 0xc8
mov eax, dword [0x14018aca4]
mov r13, rdx
mov dword [rbp + 0x7f], eax
mov r8d, eax
mov r15, rcx
xor r12b, r12b
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov edx, 4
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov r8d, dword [rbp + 0x7f]
lea r9, [rbp + 0x7f]
mov rdx, rax
mov ecx, 0x39
mov rbx, rax
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
mov edi, eax
cmp eax, 0xc0000023
je 0x140040e26
cmp eax, 0xc0000004
jne 0x140040e3e
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8, rbx
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov r8d, dword [rbp + 0x7f]
jmp 0x140040deb
test edi, edi
jns 0x140040e67
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8, rbx
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov eax, edi
add rsp, 0xc8
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
mov eax, dword [rbp + 0x7f]
cmp eax, 0x100000
ja 0x140040e77
mov dword [0x14018aca4], eax
mov rcx, qword [r15]
mov rdx, rbx
mov qword [rbp - 0x19], rbx
cmp qword [rbx + 0x50], rcx
je 0x140040e94
mov eax, dword [rbx]
test eax, eax
je 0x140040e99
add rbx, rax
jne 0x140040e81
jmp 0x140040e99
test rbx, rbx
jne 0x140040ec1
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8, rdx
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov eax, 0xc0000225
add rsp, 0xc8
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
mov qword [rsp + 0x100], rsi
mov edx, 0x7ffe0000
mov rcx, r15
mov qword [rsp + 0xc0], r14
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x140040f01
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rax, rcx
cmp dword [rax + 0xa0], 0
jne 0x140040f01
mov dword [rax + 0xa0], 4
xor edi, edi
lea r8, [rbp - 0x51]
mov r9d, 0x30
mov qword [rsp + 0x20], rdi
xor edx, edx
mov rcx, r13
mov r14, rbx
call qword [sym.imp.ntdll.dll_NtQueryInformationProcess]
test eax, eax
js 0x140041057
mov rdx, qword [rbp - 0x49]
mov rcx, r15
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x140040f56
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rax, rcx
cmp dword [rax + 0xa0], edi
jne 0x140040f56
mov dword [rax + 0xa0], 5
mov rdx, qword [rbp - 0x49]
lea r8, [rbp + 0x77]
add rdx, 0xe8
mov qword [rsp + 0x20], rdi
mov r9d, 4
mov rcx, r13
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x140041057
mov eax, dword [rbp + 0x77]
cmp eax, 0x3e8
jae 0x140041057
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8d, eax
shl r8, 3
mov edx, 4
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov rdx, qword [rbp - 0x49]
lea r8, [rbp - 0x21]
add rdx, 0xf0
mov qword [rsp + 0x20], rdi
mov r9d, 8
mov rcx, r13
mov rsi, rax
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x140041045
mov r9d, dword [rbp + 0x77]
mov r8, rsi
mov rdx, qword [rbp - 0x21]
mov rcx, r13
shl r9, 3
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x140041045
cmp dword [rbp + 0x77], edi
jbe 0x140041045
nop dword [rax + rax]
mov eax, edi
mov rcx, r15
mov rdx, qword [rsi + rax*8]
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x14004103c
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rax, rcx
cmp dword [rax + 0xa0], 0
jne 0x14004103c
mov dword [rax + 0xa0], 0xb
test rax, rax
je 0x14004103c
mov dword [rax + 0xa8], edi
inc edi
cmp edi, dword [rbp + 0x77]
jb 0x140041000
xor edi, edi
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8, rsi
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov r9d, 8
mov qword [rsp + 0x20], rdi
lea r8, [rbp - 0x61]
mov edx, 0x1a
mov rcx, r13
call qword [sym.imp.ntdll.dll_NtQueryInformationProcess]
test eax, eax
js 0x1400411b4
mov rbx, qword [rbp - 0x61]
test rbx, rbx
je 0x1400411b4
mov rdx, rbx
mov rcx, r15
mov r12b, 1
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x1400410ba
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rax, rcx
cmp dword [rax + 0xa0], 0
jne 0x1400410ba
mov dword [rax + 0xa0], 6
lea rdx, [rbx + 0x88]
mov qword [rsp + 0x20], rdi
mov r9d, 4
lea r8, [rbp + 0x77]
mov rcx, r13
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x1400411b4
mov eax, dword [rbp + 0x77]
cmp eax, 0x3e8
jae 0x1400411b4
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8d, eax
shl r8, 2
mov edx, 4
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
lea rdx, [rbx + 0x90]
mov r9d, 4
xor ebx, ebx
lea r8, [rbp - 0x69]
mov rcx, r13
mov qword [rsp + 0x20], rbx
mov rdi, rax
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x1400411a2
mov r9d, dword [rbp + 0x77]
mov r8, rdi
mov edx, dword [rbp - 0x69]
mov rcx, r13
shl r9, 2
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x1400411a2
cmp dword [rbp + 0x77], ebx
jbe 0x1400411a2
nop word [rax + rax]
mov eax, ebx
mov rcx, r15
mov edx, dword [rdi + rax*4]
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x14004119b
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rax, rcx
cmp dword [rax + 0xa0], 0
jne 0x14004119b
mov dword [rax + 0xa0], 0xc
test rax, rax
je 0x14004119b
mov dword [rax + 0xa8], ebx
inc ebx
cmp ebx, dword [rbp + 0x77]
jb 0x140041160
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8, rdi
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
xor edx, edx
mov esi, edx
cmp dword [r14 + 4], edx
jbe 0x1400413fd
jmp 0x1400411d2
xor edx, edx
mov eax, esi
imul rdi, rax, 0x88
add rdi, r14
cmp dword [sym.4yUlCM3HuVsHzW5CaCX.exe_WindowsVersion], 0x3c
jae 0x14004129d
cmp byte [0x1401910b4], 0
mov rax, qword [rdi + 0x130]
mov ebx, dword [sym.4yUlCM3HuVsHzW5CaCX.exe_ThreadQueryAccess]
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x61], rdx
je 0x140041214
mov eax, ebx
and eax, 0x848
cmp eax, ebx
je 0x140041252
mov qword [rbp - 0x49], rdx
lea r9, [rbp - 0x61]
mov dword [rbp - 0x39], edx
lea r8, [rbp - 0x51]
mov qword [rbp - 0x41], rdx
lea rcx, [rbp + 0x77]
xorps xmm0, xmm0
mov dword [rbp - 0x51], 0x30
mov edx, ebx
movdqu xmmword [rbp - 0x31], xmm0
call qword [sym.imp.ntdll.dll_NtOpenThread]
cmp eax, 0xc0000022
jne 0x140041261
cmp byte [0x1401910b4], 0
je 0x14004129d
lea r8, [rbp - 0x61]
mov edx, ebx
lea rcx, [rbp + 0x77]
call fcn.1400ed030
test eax, eax
js 0x14004129d
mov rcx, qword [rbp + 0x77]
lea r8, [rbp - 0x11]
mov r9d, 0x30
mov qword [rsp + 0x20], 0
xor edx, edx
call qword [sym.imp.ntdll.dll_NtQueryInformationThread]
test eax, eax
js 0x140041293
mov rax, qword [rbp - 9]
mov qword [rdi + 0x168], rax
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.ntdll.dll_NtClose]
mov rdx, qword [rdi + 0x168]
test rdx, rdx
je 0x1400413f1
mov rcx, r15
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
mov rdx, rax
test rax, rax
je 0x1400412ee
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rdx, rcx
cmp dword [rdx + 0xa0], 0
jne 0x1400412ee
mov dword [rdx + 0xa0], 7
test rdx, rdx
je 0x1400412ee
mov rax, qword [rdi + 0x130]
mov qword [rdx + 0xa8], rax
mov rdx, qword [rdi + 0x168]
lea rax, [rbp - 0x69]
mov r9d, 0x38
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x11]
mov rcx, r13
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x1400413f1
cmp qword [rbp - 0x69], 0x38
jne 0x1400413f1
mov rdx, qword [rbp - 1]
cmp rdx, qword [rbp - 9]
jae 0x14004136f
mov rcx, r15
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
mov rdx, rax
test rax, rax
je 0x14004136f
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rdx, rcx
cmp dword [rdx + 0xa0], 0
jne 0x14004136f
mov dword [rdx + 0xa0], 9
test rdx, rdx
je 0x14004136f
mov rax, qword [rdi + 0x130]
mov qword [rdx + 0xa8], rax
test r12b, r12b
je 0x1400413f1
mov rax, qword [rbp - 0x11]
test rax, rax
je 0x1400413f1
mov edx, eax
lea r8, [rbp - 0x51]
lea rax, [rbp - 0x69]
mov r9d, 0x1c
mov rcx, r13
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x1400413f1
cmp qword [rbp - 0x69], 0x1c
jne 0x1400413f1
mov eax, dword [rbp - 0x49]
cmp eax, dword [rbp - 0x4d]
jae 0x1400413f1
mov edx, eax
mov rcx, r15
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
mov rdx, rax
test rax, rax
je 0x1400413f1
mov rcx, qword [rax + 0x60]
test rcx, rcx
cmovne rdx, rcx
cmp dword [rdx + 0xa0], 0
jne 0x1400413f1
mov dword [rdx + 0xa0], 0xa
test rdx, rdx
je 0x1400413f1
mov rax, qword [rdi + 0x130]
mov qword [rdx + 0xa8], rax
inc esi
cmp esi, dword [r14 + 4]
jb 0x1400411d0
mov rbx, qword [r15 + 0x38]
lea rsi, [r15 + 0x38]
mov r14, qword [rsp + 0xc0]
cmp rbx, rsi
je 0x140041588
nop word [rax + rax]
cmp dword [rbx + 0xa0], 0
jne 0x14004157c
test dword [rbx + 0x58], 0x1040000
je 0x1400414a2
cmp qword [rbx + 0x60], rbx
jne 0x1400414a2
mov rdx, qword [rbx + 0x30]
lea r8, [rbp - 0x69]
mov rcx, r13
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhGetProcessMappedFileName
test eax, eax
js 0x1400414a2
mov rdi, qword [rbp - 0x69]
mov rcx, rdi
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhResolveDevicePrefix
test rax, rax
je 0x14004148c
mov rcx, rdi
mov qword [rbp - 0x69], rax
mov rdi, rax
test rcx, rcx
je 0x14004148c
add rcx, 0xfffffffffffffff0
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140041488
call fcn.1400d9400
mov rdi, qword [rbp - 0x69]
mov dword [rbx + 0xa0], 3
mov qword [rbx + 0xa8], rdi
jmp 0x14004157c
test dword [rbx + 0x50], 0x1000
je 0x14004157c
mov rdx, qword [rbx + 0x30]
lea r8, [rbp - 0x51]
mov r9d, 0x30
mov qword [rsp + 0x20], 0
mov rcx, r13
call qword [sym.imp.ntdll.dll_NtReadVirtualMemory]
test eax, eax
js 0x14004157c
xor edx, edx
cmp dword [sym.4yUlCM3HuVsHzW5CaCX.exe_WindowsVersion], 0x3c
mov ecx, edx
mov edi, edx
jb 0x140041500
cmp dword [rbp - 0x41], 0xffeeffee
cmove rdi, qword [rbp - 0x29]
cmp dword [rbp - 0x49], 0xffeeffee
jne 0x140041517
mov ecx, dword [rbp - 0x39]
jmp 0x140041517
cmp dword [rbp - 0x41], 0xffeeffee
cmove rdi, qword [rbp - 0x39]
cmp dword [rbp - 0x49], 0xffeeffee
cmove ecx, dword [rbp - 0x41]
test rdi, rdi
je 0x140041547
mov rdx, rdi
mov rcx, r15
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x14004157c
cmp qword [rax + 0x30], rdi
jne 0x14004157c
cmp dword [rax + 0xa0], 0xb
jne 0x14004157c
mov dword [rbx + 0xa0], 0xd
jmp 0x140041575
test ecx, ecx
je 0x14004157c
mov edi, ecx
mov edx, ecx
mov rcx, r15
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhLookupMemoryItemList
test rax, rax
je 0x14004157c
cmp qword [rax + 0x30], rdi
jne 0x14004157c
cmp dword [rax + 0xa0], 0xc
jne 0x14004157c
mov dword [rbx + 0xa0], 0xe
mov qword [rbx + 0xa8], rax
mov rbx, qword [rbx]
cmp rbx, rsi
jne 0x140041420
mov r8, qword [rbp - 0x19]
xor edx, edx
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rsi, qword [rsp + 0x100]
xor eax, eax
add rsp, 0xc8
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret