Function at 0x18004b500
Capabilities:
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x960
mov qword [rsp + 0xf0], 0xfffffffffffffffe
mov rax, qword [0x1800d1eb0]
xor rax, rsp
mov qword [rsp + 0x950], rax
mov r15d, r9d
mov dword [rsp + 0x38], r15d
mov r12, r8
mov qword [rsp + 0x80], r8
mov r13, rdx
mov qword [rsp + 0x60], rcx
mov r14, qword [rsp + 0x9c0]
mov rsi, qword [rsp + 0x9c8]
add rcx, 0x888
cmp qword [rcx + 0x10], 0
jbe 0x18004c023
lea r8, [rsp + 0x70]
call fcn.18005c210
test eax, eax
je 0x18004c023
mov rdi, qword [rsp + 0x70]
mov eax, dword [rdi + 0x1248]
mov dword [rsp + 0x88], eax
lea rax, [rdi + 0x1230]
mov qword [rsp + 0x78], rax
xor ebx, ebx
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0x58], rbx
test rsi, rsi
je 0x18004bd12
mov dword [rsp + 0xc8], ebx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x30], rbx
mov rax, qword [rsi]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsi + 8]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0xc0], rax
mov r12d, ebx
mov qword [rsp + 0x48], rbx
mov eax, ebx
cmp qword [rsi + 0x18], rax
setne al
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x18004b640
xor r9d, r9d
xor r8d, r8d
lea edx, [rbx + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov r12, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xc0], rax
lea rdx, [rsp + 0x58]
mov rcx, r13
call qword [0x1800d9648]
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x34], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x30], eax
cmp dword [rdi + 0x124c], 0
je 0x18004b7b1
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r11d, dword [rsi + 0x10]
mov dword [rsp + 0x40], r11d
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x44], eax
mov ecx, dword [rsp + 0x120]
xor edx, edx
mov rdi, qword [rsp + 0x40]
mov rax, rdi
div rcx
mov eax, edx
mov qword [rsp + 0x98], rax
sub rdi, rax
mov qword [rsp + 0x40], rdi
mov r11, qword [rsp + 0x60]
mov r10, qword [r11]
lea ecx, [r15 + rdx]
mov r9, rdi
shr r9, 0x20
mov qword [rsp + 0x28], rcx
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r8d, 4
mov rdx, qword [rsp + 0x70]
mov rdx, qword [rdx + 0x1260]
mov rcx, r11
call qword [r10 + DllRegisterServer]
mov r10, rax
mov qword [rsp + 0xa0], rax
test rax, rax
je 0x18004b7b1
mov r9, qword [rsp + 0x98]
lea rcx, [r15 + r9]
lea rdx, [rcx + rdi + 0x200]
mov rcx, qword [rsp + 0x58]
cmp rdx, rcx
seta bl
test ebx, ebx
je 0x18004b741
sub rcx, r9
sub rcx, rdi
sub rcx, 0x200
mov qword [rsi + 8], rcx
jmp 0x18004b745
mov qword [rsi + 8], r15
test r14, r14
je 0x18004b750
mov eax, dword [rsi + 8]
mov dword [r14], eax
lea rdx, [r9 + r10]
mov r8, qword [rsi + 8]
mov rcx, qword [rsp + 0x80]
call fcn.18007abc0
mov rax, qword [rsp + 0x60]
mov r11, qword [rax]
mov rdx, qword [rsp + 0xa0]
mov rcx, rax
call qword [r11 + 0x98]
mov r9, rsi
mov rax, qword [rsp + 0x70]
mov r8, qword [rax + 0x1258]
mov edx, dword [rsi + 8]
mov rcx, qword [rax + 0x1250]
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
mov ecx, 0x3e5
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
xor eax, eax
jmp 0x18004c03a
mov eax, 0x80000000
mov rdi, qword [rsp + 0x30]
cmp rdi, rax
jbe 0x18004b8ad
add rdi, 0x200
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0xb8], eax
mov rax, rdi
shr rax, 0x20
mov dword [rsp + 0xbc], eax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
mov r9, r14
mov r8d, r15d
mov rdx, qword [rsp + 0x80]
mov rcx, r13
call qword [0x1800d95f8]
mov r15d, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test r15d, r15d
jne 0x18004b84e
cmp eax, 0x3e5
jne 0x18004b847
mov r14d, dword [rsp + 0x3c]
or edx, 0xffffffff
test r14d, r14d
je 0x18004b83c
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x18004b853
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x18004b853
xor eax, eax
jmp 0x18004c03a
mov r14d, dword [rsp + 0x3c]
sub rdi, 0x200
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x30]
mov dword [rsi + 0x10], eax
shr rdi, 0x20
mov dword [rsi + 0x14], edi
mov rax, qword [rsp + 0xb0]
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsi], rax
test r14d, r14d
je 0x18004b89c
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, r12
call qword [0x1800d9668]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov eax, r15d
jmp 0x18004c03a
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x94], eax
lea edx, [r15 + rax]
mov dword [rsp + 0x38], edx
mov r9d, edx
mov r8d, eax
lea rdx, [rsp + 0xd0]
mov rcx, qword [rsp + 0x78]
call fcn.180034000
mov r11, qword [rsp + 0xd8]
mov rax, r11
mov r12, qword [rsp + 0xd0]
sub rax, r12
sar rax, 3
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x18004ba11
add rdi, 0x200
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0xb8], eax
mov rax, rdi
shr rax, 0x20
mov dword [rsp + 0xbc], eax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
mov r9, r14
mov r8d, r15d
mov rdx, qword [rsp + 0x80]
mov rcx, r13
call qword [0x1800d95f8]
mov ebx, eax
mov dword [rsp + 0x38], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
test ebx, ebx
jne 0x18004b99e
cmp eax, 0x3e5
jne 0x18004b98a
mov r14d, dword [rsp + 0x3c]
or edx, 0xffffffff
test r14d, r14d
je 0x18004b97f
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x18004b9a8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x18004b9a3
test r12, r12
je 0x18004b997
mov rcx, r12
call fcn.18007a7a4
xor eax, eax
jmp 0x18004c03a
mov r14d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x48]
sub rdi, 0x200
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x30]
mov dword [rsi + 0x10], eax
shr rdi, 0x20
mov dword [rsi + 0x14], edi
mov rax, qword [rsp + 0xb0]
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsi], rax
test r14d, r14d
je 0x18004b9f1
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rbx
call qword [0x1800d9668]
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
test r12, r12
je 0x18004ba08
mov rcx, r12
call fcn.18007a7a4
mov eax, dword [rsp + 0x38]
jmp 0x18004c03a
mov ecx, dword [r12]
mov edx, dword [rsp + 0x94]
mov edi, edx
cmp edx, ecx
ja 0x18004ba28
mov dword [rsp + 0x50], edx
jmp 0x18004ba39
mov eax, edx
sub eax, ecx
and eax, 0xf
sub edi, eax
mov dword [rsp + 0x50], edi
mov dword [r12], edi
mov r9d, dword [rsp + 0x38]
cmp r9d, dword [r11 - 4]
jae 0x18004ba65
mov eax, r9d
sub eax, dword [r11 - 8]
and eax, 0xf
mov ecx, reloc.WS2_32.dll_recv
sub ecx, eax
cmp ecx, 0x10
cmove ecx, ebx
lea r8d, [rcx + r9]
mov dword [r11 - 4], r8d
jmp 0x18004ba68
mov r8d, r9d
sub edx, edi
mov dword [rsp + 0x94], edx
mov edx, r8d
sub edx, edi
mov dword [rsp + 0x68], edx
mov eax, ebx
cmp r9d, r8d
setne al
mov dword [rsp + 0x98], eax
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffe00
mov eax, r8d
mov r8d, ebx
cmp rax, rcx
mov eax, 1
cmovg r8d, eax
mov dword [rsp + 0xa0], r8d
mov ecx, edx
call fcn.180078408
mov qword [rsp + 0x60], rax
mov r8d, dword [rsp + 0x68]
xor edx, edx
mov rcx, rax
call fcn.18007e840
nop
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x44], ebx
mov rax, qword [rsp + 0x40]
add rax, 0x200
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x40]
mov dword [rsp + 0xb8], ecx
shr rax, 0x20
mov dword [rsp + 0xbc], eax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc8]
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov rcx, r13
call qword [0x1800d95f8]
mov edi, eax
mov dword [rsp + 0x30], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], eax
test edi, edi
jne 0x18004bb6f
cmp eax, 0x3e5
jne 0x18004bb60
or edx, 0xffffffff
cmp dword [rsp + 0x3c], edi
je 0x18004bb55
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x18004bb74
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x18004bb6f
mov rcx, r12
call fcn.18007a7a4
xor eax, eax
jmp 0x18004c03a
mov rdi, qword [rsp + 0x48]
lea rcx, [rsp + 0x130]
call fcn.18003aba0
nop
mov rax, qword [rsp + 0x70]
mov edx, dword [rax + 0x104c]
lea rcx, [rsp + 0x130]
call fcn.18003f2f0
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x1154]
mov dword [rsp + 0x940], eax
mov rdx, rbx
mov qword [rsp + 0x70], rbx
cmp qword [rsp + 0x78], rbx
jbe 0x18004bc10
nop dword [rax]
mov ecx, dword [r12 + rdx*8]
mov edx, dword [r12 + rdx*8 + 4]
sub edx, ecx
mov eax, dword [rsp + 0x50]
sub rcx, rax
mov rax, qword [rsp + 0x60]
lea r8, [rcx + rax]
mov dword [rsp + 0x20], edx
mov r9, r8
lea rdx, [rsp + 0x138]
lea rcx, [rsp + 0x940]
call fcn.18006c590
inc ebx
mov rdx, qword [rsp + 0x70]
inc rdx
mov qword [rsp + 0x70], rdx
movsxd rax, ebx
cmp rax, qword [rsp + 0x78]
jb 0x18004bbc0
mov eax, dword [rsp + 0x8c]
mov dword [rsi + 0x14], eax
mov eax, dword [rsp + 0x90]
mov dword [rsi + 0x10], eax
mov qword [rsi + 8], r15
lea rax, [rsp + 0xa8]
mov rax, qword [rax]
mov qword [rsi], rax
cmp dword [rsp + 0x3c], 0
je 0x18004bc50
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rdi
call qword [0x1800d9668]
mov edx, dword [rsp + 0xa0]
mov rax, qword [rsp + 0x58]
test edx, edx
je 0x18004bc6f
mov ecx, eax
sub ecx, dword [rsi + 0x10]
add ecx, 0xfffffe00
mov qword [rsi + 8], rcx
test r14, r14
je 0x18004bc88
test edx, edx
je 0x18004bc85
sub eax, dword [rsi + 0x10]
sub eax, 0x200
mov dword [r14], eax
jmp 0x18004bc88
mov dword [r14], r15d
cmp dword [rsp + 0x98], 0
je 0x18004bcb5
cmp dword [rsp + 0x88], 0
jne 0x18004bcb5
mov edx, dword [rsp + 0x38]
add edx, 0x200
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
call qword [0x1800d9618]
mov edx, dword [rsp + 0x94]
mov rbx, qword [rsp + 0x60]
add rdx, rbx
mov r8, qword [rsi + 8]
mov rcx, qword [rsp + 0x80]
call fcn.18007abc0
mov rcx, rbx
call fcn.18007a7a4
mov ecx, dword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
test r12, r12
je 0x18004bcf5
mov rcx, r12
call fcn.18007a7a4
mov eax, dword [rsp + 0x30]
jmp 0x18004c03a
mov dword [rsp + 0x88], ebx
mov qword [rsp + 0x48], rbx
lea rdx, [rsp + 0x58]
mov rcx, r13
call qword [0x1800d9648]
sub qword [rsp + 0x58], 0x200
mov r9d, 1
lea r8, [rsp + 0x48]
mov rdx, rbx
mov rcx, r13
call qword [0x1800d9628]
mov r11, qword [rsp + 0x48]
cmp r11, 0x200
jge 0x18004bd61
xor eax, eax
jmp 0x18004c03a
mov eax, 0x80000000
cmp r11, rax
jle 0x18004bd88
mov qword [rsp + 0x20], rbx
mov r9, r14
mov r8d, r15d
mov rdx, r12
mov rcx, r13
call qword [0x1800d95f8]
nop
jmp 0x18004c03a
mov esi, dword [rsp + 0x48]
add esi, 0xfffffe00
mov dword [rsp + 0x48], esi
lea r12d, [r15 + rsi]
mov dword [rsp + 0x8c], r12d
mov r9d, r12d
mov r8d, esi
lea rdx, [rsp + 0xd0]
mov rcx, qword [rsp + 0x78]
call fcn.180034000
mov r11, qword [rsp + 0xd8]
mov rax, r11
mov rdi, qword [rsp + 0xd0]
sub rax, rdi
sar rax, 3
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x18004be10
mov qword [rsp + 0x20], rbx
mov r9, r14
mov r8d, r15d
mov rdx, qword [rsp + 0x80]
mov rcx, r13
call qword [0x1800d95f8]
mov ebx, eax
test rdi, rdi
je 0x18004be09
mov rcx, rdi
call fcn.18007a7a4
mov eax, ebx
jmp 0x18004c03a
mov ecx, dword [rdi]
mov r15d, esi
cmp esi, ecx
jbe 0x18004be26
mov eax, esi
sub eax, ecx
and eax, 0xf
sub r15d, eax
mov dword [rdi], r15d
cmp r12d, dword [r11 - 4]
jae 0x18004be4d
mov eax, r12d
sub eax, dword [r11 - 8]
and eax, 0xf
mov ecx, reloc.WS2_32.dll_recv
sub ecx, eax
cmp ecx, 0x10
cmove ecx, ebx
lea eax, [rcx + r12]
mov dword [r11 - 4], eax
jmp 0x18004be50
mov eax, r12d
mov ecx, esi
sub ecx, r15d
mov dword [rsp + 0x50], ecx
mov edx, eax
sub edx, r15d
mov dword [rsp + 0x98], edx
mov r8d, ebx
test ecx, ecx
setne r8b
mov dword [rsp + 0x30], r8d
mov ecx, ebx
cmp r12d, eax
setne cl
mov dword [rsp + 0x90], ecx
mov ecx, ebx
cmp rax, qword [rsp + 0x58]
setg cl
mov dword [rsp + 0xa0], ecx
mov eax, edx
mov qword [rsp + 0x40], rax
mov ecx, edx
call fcn.180078408
mov r12, rax
mov qword [rsp + 0x60], rax
mov r8, qword [rsp + 0x40]
xor edx, edx
mov rcx, rax
call fcn.18007e840
nop
cmp dword [rsp + 0x30], 0
je 0x18004bed6
lea edx, [r15 + 0x200]
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
call qword [0x1800d9618]
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x88]
mov r8d, dword [rsp + 0x98]
mov rdx, r12
mov rcx, r13
call qword [0x1800d95f8]
test eax, eax
jne 0x18004bf0a
mov rcx, rdi
call fcn.18007a7a4
xor eax, eax
jmp 0x18004c03a
lea rcx, [rsp + 0x130]
call fcn.18003aba0
nop
mov r12, qword [rsp + 0x70]
mov edx, dword [r12 + 0x104c]
lea rcx, [rsp + 0x130]
call fcn.18003f2f0
movzx eax, word [r12 + 0x1154]
mov dword [rsp + 0x940], eax
mov r12, rbx
cmp qword [rsp + 0x78], rbx
jbe 0x18004bf95
nop dword [rax]
mov ecx, dword [rdi + r12*8]
mov edx, dword [rdi + r12*8 + 4]
sub edx, ecx
mov eax, r15d
sub rcx, rax
mov rax, qword [rsp + 0x60]
lea r8, [rcx + rax]
mov dword [rsp + 0x20], edx
mov r9, r8
lea rdx, [rsp + 0x138]
lea rcx, [rsp + 0x940]
call fcn.18006c590
inc ebx
inc r12
movsxd rax, ebx
cmp rax, qword [rsp + 0x78]
jb 0x18004bf50
cmp dword [rsp + 0xa0], 0
je 0x18004bfa7
mov eax, dword [rsp + 0x58]
sub eax, esi
jmp 0x18004bfab
mov eax, dword [rsp + 0x38]
test r14, r14
je 0x18004bfb3
mov dword [r14], eax
mov rbx, qword [rsp + 0x60]
mov edx, dword [rsp + 0x50]
mov r8d, eax
add rdx, rbx
mov rcx, qword [rsp + 0x80]
call fcn.18007abc0
cmp dword [rsp + 0x90], 0
je 0x18004bff5
mov edx, dword [rsp + 0x8c]
add edx, 0x200
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
call qword [0x1800d9618]
mov rcx, rbx
call fcn.18007b7a8
nop
test rdi, rdi
je 0x18004c00b
mov rcx, rdi
call fcn.18007a7a4
mov eax, 1
jmp 0x18004c03a
mov qword [rsp + 0x20], rsi
mov r9, r14
mov r8d, r15d
mov rdx, r12
mov rcx, r13
call qword [0x1800d95f8]
mov rcx, qword [rsp + 0x950]
xor rcx, rsp
call fcn.18007a7c0
add rsp, 0x960
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret