Function at 0x1400967c0
Capabilities:
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rbx, rcx
test rcx, rcx
je 0x1400966a8
mov rax, qword [0x1406a3cd0]
cmp rax, rcx
ja 0x140096781
mov rcx, qword [0x1406a3cd8]
lea rdx, [rax + rcx]
cmp rbx, rdx
jae 0x140096781
add rcx, rbx
mov rsi, qword [0x1406a3ce8]
mov r9, qword [0x1406a3cf0]
xor edx, edx
sub rcx, rax
mov r8, qword [0x1406a3cf8]
mov rax, rcx
sub rsi, 1
div r9
cmp rcx, r9
jb 0x140096410
mov rdx, rax
shr rdx, 3
jmp 0x140096400
test al, 1
jne 0x140096768
mov rdx, rax
sub rsi, 1
shr rax, 1
je 0x140096410
shr rdx, 4
movzx ecx, byte [r8 + rdx]
mov edx, eax
and edx, 7
bt rcx, rdx
jae 0x1400963e8
mov edx, esi
mov rcx, rbx
call fcn.1400961c0
test eax, eax
je 0x14009679a
mov r8, qword [0x1406a3d00]
mov edx, esi
mov rcx, rbx
mov ebp, 1
call fcn.1400960d0
mov rax, qword [0x1406a3ce0]
mov rdx, rbx
lea rcx, [rax + rsi*8]
call fcn.140095fe0
jmp 0x140096656
mov r8, qword [0x1406a3d00]
movzx edx, byte [r8 + rdx]
bt rdx, rcx
jb 0x1400966a8
mov ecx, esi
mov rdi, 0xffffffffffffffff
shl rdi, cl
mov rcx, rdi
mov rdi, r10
not rcx
and rax, rcx
imul rax, r9
add rdi, rax
je 0x1400966a8
xor edx, edx
xor r14d, r14d
div r9
add rax, r11
mov rdx, rax
shr rax, 3
xor rdx, 1
movzx r15d, byte [r13 + rax]
mov r11d, edx
and r11d, 7
bt r15, r11
jae 0x1400964ca
movzx eax, byte [r8 + rax]
bt rax, r11
jb 0x1400964ca
and rcx, rdx
imul r9, rcx
lea r14, [r10 + r9]
cmp rbx, r14
jne 0x140096704
test rbx, rbx
je 0x1400966eb
mov edx, r12d
mov rcx, rbx
call fcn.1400961c0
test eax, eax
jne 0x1400966d2
mov r8, r13
mov edx, r12d
mov rcx, rbx
call fcn.1400960d0
mov rax, qword [rbx]
test rax, rax
je 0x14009650d
mov rdx, qword [rbx + 8]
mov qword [rax + 8], rdx
mov rdx, qword [rbx + 8]
mov qword [rdx], rax
mov rax, qword [rbx]
test rax, rax
je 0x14009655c
mov rax, qword [rax + 8]
mov rdx, qword [0x1406a3ce0]
cmp rax, rdx
jb 0x14009653c
mov rcx, qword [0x1406a3ce8]
lea rdx, [rdx + rcx*8]
cmp rax, rdx
jb 0x14009655c
mov rdx, qword [0x1406a3cd0]
cmp rax, rdx
jb 0x1400966b9
add rdx, qword [0x1406a3cd8]
cmp rax, rdx
jae 0x1400966b9
mov r8, qword [0x1406a3d00]
mov edx, r12d
mov rcx, rbx
call fcn.1400961c0
test eax, eax
jne 0x14009674f
mov r8, qword [0x1406a3cf8]
mov edx, r12d
mov rcx, rdi
call fcn.1400960d0
mov rax, qword [rdi]
test rax, rax
je 0x140096598
mov rdx, qword [rdi + 8]
mov qword [rax + 8], rdx
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
mov rax, qword [rdi]
test rax, rax
je 0x1400965e7
mov rax, qword [rax + 8]
mov rdx, qword [0x1406a3ce0]
cmp rax, rdx
jb 0x1400965c7
mov rcx, qword [0x1406a3ce8]
lea rdx, [rdx + rcx*8]
cmp rax, rdx
jb 0x1400965e7
mov rdx, qword [0x1406a3cd0]
cmp rax, rdx
jb 0x1400966b9
add rdx, qword [0x1406a3cd8]
cmp rax, rdx
jae 0x1400966b9
sub rsi, 1
mov rax, rdi
cmp rbx, rdi
cmovae rax, rbx
cmova rbx, rdi
mov edx, esi
mov qword [rax], 0
mov rcx, rbx
mov qword [rax + 8], 0
mov r8, qword [0x1406a3d00]
call fcn.1400961c0
test eax, eax
jne 0x140096736
mov r8, qword [0x1406a3cf8]
mov edx, esi
mov rcx, rbx
call fcn.140095ef0
mov rax, qword [0x1406a3ce0]
mov rdx, rbx
lea rcx, [rax + rsi*8]
call fcn.140095fe0
mov rax, qword [0x1406a3ce0]
cmp rbx, qword [rax + rsi*8]
jne 0x14009671d
mov r10, qword [0x1406a3cd0]
mov ecx, esi
mov rax, rbx
xor edx, edx
mov r9, qword [0x1406a3cd8]
mov r11, rbp
mov r13, qword [0x1406a3cf8]
mov r12d, esi
sub rax, r10
shl r11, cl
shr r9, cl
div r9
lea rdx, [rax + r11]
mov rax, rdx
shr rdx, 3
xor rax, 1
movzx r8d, byte [r13 + rdx]
mov ecx, eax
and ecx, 7
bt r8, rcx
jb 0x140096450
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0x1a6
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_WITHIN_FREELIST_temp2__p_next___WITHIN_ARENA_temp2__p_next_
call fcn.1400f8170
mov r8d, 0x2c9
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:__sh_testbit_ptr__list__sh.bitmalloc_
call fcn.1400f8170
mov r8d, 0x2c8
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_ptr___NULL
call fcn.1400f8170
mov r8d, 0x2c7
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_ptr__sh_find_my_buddy_buddy__list_
call fcn.1400f8170
mov r8d, 0x2da
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_sh.freelist_list___ptr
call fcn.1400f8170
mov r8d, 0x2d7
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:__sh_testbit_ptr__list__sh.bitmalloc_
call fcn.1400f8170
mov r8d, 0x2cc
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:__sh_testbit_ptr__list__sh.bitmalloc_
call fcn.1400f8170
mov r8d, 0x15c
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:__bit__1___0
call fcn.1400f8170
mov r8d, 0x2bc
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_WITHIN_ARENA_ptr_
call fcn.1400f8170
mov r8d, 0x2c1
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_sh_testbit_ptr__list__sh.bittable_
call fcn.1400f8170
nop
nop word cs:[rax + rax]
nop
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x60
mov r12d, dword [0x1406a3d18]
mov rbx, rcx
mov rsi, rdx
test r12d, r12d
je 0x1400967f0
xor r12d, r12d
mov eax, r12d
add rsp, 0x60
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
call fcn.140097ff0
mov qword [0x1406a3d10], rax
test rax, rax
je 0x1400967dd
mov qword [0x1406a3cc0], 0
mov qword [0x1406a3cc8], 0
mov qword [0x1406a3cd0], 0
mov qword [0x1406a3cd8], 0
mov qword [0x1406a3ce0], 0
mov qword [0x1406a3ce8], 0
mov qword [0x1406a3cf0], 0
mov qword [0x1406a3cf8], 0
mov qword [0x1406a3d00], 0
mov qword [0x1406a3d08], 0
test rbx, rbx
je 0x140096be6
lea r8, [rbx - 1]
and r8, rbx
jne 0x140096bff
cmp rsi, 0x10
jbe 0x140096a80
lea rax, [rsi - 1]
test rax, rsi
jne 0x140096c18
xor edx, edx
mov rax, rbx
mov qword [0x1406a3cd8], rbx
div rsi
mov qword [0x1406a3cf0], rsi
add rax, rax
mov rdi, rax
mov qword [0x1406a3d08], rax
shr rdi, 3
je 0x140096a90
nop dword [rax]
mov rcx, r8
add r8, 1
shr rax, 1
jne 0x1400968d0
mov qword [0x1406a3ce8], rcx
mov r8d, 0x1df
shl rcx, 3
lea rdx, str.crypto_mem_sec.c
call fcn.140095c70
mov qword [0x1406a3ce0], rax
test rax, rax
je 0x140096bcd
mov rcx, qword [0x1406a3d08]
mov r8d, 0x1e4
lea rdx, str.crypto_mem_sec.c
shr rcx, 3
call fcn.140095c70
mov qword [0x1406a3cf8], rax
test rax, rax
je 0x140096bb4
mov rcx, qword [0x1406a3d08]
mov r8d, 0x1e9
lea rdx, str.crypto_mem_sec.c
shr rcx, 3
call fcn.140095c70
mov qword [0x1406a3d00], rax
test rax, rax
je 0x140096b9b
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r13d, dword [rsp + 0x34]
xor ecx, ecx
mov rdx, qword [0x1406a3cd8]
mov r9d, 4
mov r8d, 0x3000
lea rbx, [r13 + r13]
add rdx, rbx
mov qword [0x1406a3cc8], rdx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rcx, qword [0x1406a3ce0]
mov qword [0x1406a3cc0], rax
test rax, rax
je 0x140096a92
mov r8, qword [0x1406a3cf8]
lea rcx, [rax + r13]
xor edx, edx
xor r12d, r12d
mov qword [0x1406a3cd0], rcx
lea rdi, [rsp + 0x2c]
call fcn.140095ef0
mov rdx, qword [0x1406a3cd0]
mov rcx, qword [0x1406a3ce0]
call fcn.140095fe0
mov rsi, qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r9, rdi
mov rdx, r13
mov rcx, qword [0x1406a3cc0]
mov r8d, 1
call rsi
mov r9, rdi
mov r8d, 1
mov rdx, r13
test eax, eax
mov rax, qword [0x1406a3cd8]
sete r12b
lea rcx, [rbx + rax - 1]
mov rax, r13
mov ebx, 2
add r12d, 1
neg rax
and rcx, rax
add rcx, qword [0x1406a3cc0]
call rsi
mov rdx, qword [0x1406a3cd8]
mov rcx, qword [0x1406a3cd0]
test eax, eax
cmove r12d, ebx
call qword [sym.imp.KERNEL32.dll_VirtualLock]
mov dword [0x1406a3d18], 1
test eax, eax
cmove r12d, ebx
mov eax, r12d
add rsp, 0x60
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
mov esi, 0x10
jmp 0x14009689c
xor ecx, ecx
mov r8d, 0x254
lea rdx, str.crypto_mem_sec.c
call fcn.140095b40
mov rcx, qword [0x1406a3cf8]
mov r8d, 0x255
lea rdx, str.crypto_mem_sec.c
call fcn.140095b40
mov rcx, qword [0x1406a3d00]
mov r8d, 0x256
lea rdx, str.crypto_mem_sec.c
call fcn.140095b40
mov rcx, qword [0x1406a3cc0]
test rcx, rcx
je 0x140096af0
cmp qword [0x1406a3cc8], 0
jne 0x140096b88
mov rcx, qword [0x1406a3d10]
mov qword [0x1406a3cc0], 0
mov qword [0x1406a3cc8], 0
mov qword [0x1406a3cd0], 0
mov qword [0x1406a3cd8], 0
mov qword [0x1406a3ce0], 0
mov qword [0x1406a3ce8], 0
mov qword [0x1406a3cf0], 0
mov qword [0x1406a3cf8], 0
mov qword [0x1406a3d00], 0
mov qword [0x1406a3d08], 0
call fcn.1400980b0
mov eax, r12d
mov qword [0x1406a3d10], 0
add rsp, 0x60
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
mov r8d, 0x8000
xor edx, edx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x140096af0
mov r8d, 0x1ea
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_sh.bitmalloc___NULL
call fcn.1400f8170
mov r8d, 0x1e5
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_sh.bittable___NULL
call fcn.1400f8170
mov r8d, 0x1e0
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_sh.freelist___NULL
call fcn.1400f8170
mov r8d, 0x1b8
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:_size___0
call fcn.1400f8170
mov r8d, 0x1b9
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:__size___size___1____0
call fcn.1400f8170
mov r8d, 0x1ce
lea rdx, str.crypto_mem_sec.c
lea rcx, str.assertion_failed:__minsize___minsize___1____0
call fcn.1400f8170
nop
nop word cs:[rax + rax]
nop dword [rax]