Function at 0x4370c0
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, 0x98
cmp byte [rcx + 0x68], 0
mov rdi, rcx
mov rbp, rdx
je 0x437a75
test rdx, rdx
je 0x4375ee
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
nop word cs:[rax + rax]
movzx r10d, byte [rbp]
cmp r10b, 9
je 0x437111
cmp r10b, 0x20
jne 0x437126
add rbp, 1
movzx r10d, byte [rbp]
cmp r10b, 0x20
je 0x437111
cmp r10b, 9
je 0x437111
cmp r10b, 0xa
je 0x4379d9
test r10b, r10b
je 0x4375ee
mov rbx, rbp
jmp 0x437148
test al, al
je 0x437602
add rbx, 1
movzx eax, byte [rbx]
cmp al, 0xa
jne 0x437140
cmp rbx, rbp
je 0x4375e1
cmp r10b, 0x23
je 0x4375e1
movzx eax, byte [rbx - 1]
mov r9, rbx
mov edx, eax
and edx, 0xfffffffb
cmp dl, 9
jne 0x437198
nop word [rax + rax]
sub r9, 1
cmp r9, rbp
je 0x43719c
movzx eax, byte [r9 - 1]
mov edx, eax
and edx, 0xfffffffb
cmp dl, 9
je 0x437180
cmp al, 0x20
je 0x437180
mov r13d, dword [rdi + 8]
cmp r13d, 0
jle 0x437a3a
mov r12, qword [rdi]
xor esi, esi
nop
mov r11, qword [r12]
movzx r8d, byte [r11]
cmp r10b, r8b
jne 0x437201
mov rcx, r11
mov rax, rbp
jmp 0x4371ce
movzx r8d, byte [rcx]
cmp dl, r8b
jne 0x437210
add rax, 1
movzx edx, byte [rax]
add rcx, 1
test dl, dl
jne 0x4371c5
add esi, 1
add r12, 8
cmp esi, r13d
jne 0x4371b0
mov rdx, qword [str.SanitizerTool]
lea rcx, str._s:_failed_to_parse_suppressions_n
call fcn.0040c420
call fcn.00406930
mov edx, r10d
mov rax, rbp
nop word [rax + rax]
test r8b, r8b
jne 0x4371dd
cmp dl, 0x3a
jne 0x4371dd
lea rbp, [rax + 1]
sub r9, rbp
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], 0
lea rax, [r9 + 1]
mov r12, r9
mov qword [rsp + 0x58], 0
lea r13, [r9 + 9]
mov qword [rsp + 0x50], 0
cmp rax, r13
ja 0x437623
mov eax, 1
xchg byte [0x01df2f58], al
test al, al
je 0x437270
lea rcx, [0x01df2f58]
call fcn.00438d60
movzx eax, byte [0x01e00781]
test al, al
jne 0x437280
call fcn.00401c40
mov r9d, 8
mov r8, r13
lea rdx, [0x01df2f60]
lea rcx, [0x01e007c0]
call fcn.0043c700
mov byte [0x01df2f58], 0
test rax, rax
je 0x4379e1
movabs rcx, 0x6a6cb03abcebc041
mov qword [rax], rcx
lea rdx, [rax + 8]
test r12, r12
mov qword [rsp + 0x48], rdx
je 0x43757e
lea rax, [rbp + 0x10]
cmp rdx, rax
lea rax, [rdx + 0x10]
setae cl
cmp rbp, rax
setae al
or cl, al
je 0x43762a
cmp r12, 0x16
jbe 0x43762a
mov rcx, rbp
neg rcx
and ecx, 0xf
cmp rcx, r12
cmova rcx, r12
xor eax, eax
test rcx, rcx
je 0x437405
movzx eax, byte [rbp]
cmp rcx, 1
mov byte [rdx], al
je 0x437a6b
movzx eax, byte [rbp + 1]
cmp rcx, 2
mov byte [rdx + 1], al
je 0x437a26
movzx eax, byte [rbp + 2]
cmp rcx, 3
mov byte [rdx + 2], al
je 0x437a30
movzx eax, byte [rbp + 3]
cmp rcx, 4
mov byte [rdx + 3], al
je 0x437a61
movzx eax, byte [rbp + 4]
cmp rcx, 5
mov byte [rdx + 4], al
je 0x437a4d
movzx eax, byte [rbp + 5]
cmp rcx, 6
mov byte [rdx + 5], al
je 0x437a57
movzx eax, byte [rbp + 6]
cmp rcx, 7
mov byte [rdx + 6], al
je 0x437a1c
movzx eax, byte [rbp + 7]
cmp rcx, 8
mov byte [rdx + 7], al
je 0x437a99
movzx eax, byte [rbp + 8]
cmp rcx, 9
mov byte [rdx + 8], al
je 0x437aa3
movzx eax, byte [rbp + 9]
cmp rcx, 0xa
mov byte [rdx + 9], al
je 0x437aad
movzx eax, byte [rbp + 0xa]
cmp rcx, 0xb
mov byte [rdx + 0xa], al
je 0x437ab7
movzx eax, byte [rbp + 0xb]
cmp rcx, 0xc
mov byte [rdx + 0xb], al
je 0x437ac1
movzx eax, byte [rbp + 0xc]
cmp rcx, 0xd
mov byte [rdx + 0xc], al
je 0x437acb
movzx eax, byte [rbp + 0xd]
cmp rcx, 0xe
mov byte [rdx + 0xd], al
je 0x437ad5
movzx eax, byte [rbp + 0xe]
mov byte [rdx + 0xe], al
mov eax, 0xf
mov r10, r12
sub r10, rcx
lea r8, [r10 - 0x10]
shr r8, 4
lea r11, [r8 + 1]
lea r8, [r12 - 1]
mov r13, r11
sub r8, rcx
shl r13, 4
cmp r8, 0xe
jbe 0x43745e
lea r14, [rbp + rcx]
xor r9d, r9d
add rcx, rdx
xor r8d, r8d
movdqa xmm0, xmmword [r14 + r9]
add r8, 1
movups xmmword [rcx + r9], xmm0
add r9, 0x10
cmp r8, r11
jb 0x43743a
add rax, r13
cmp r10, r13
je 0x43757e
movzx ecx, byte [rbp + rax]
mov byte [rdx + rax], cl
lea rcx, [rax + 1]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 1]
mov byte [rdx + rax + 1], cl
lea rcx, [rax + 2]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 2]
mov byte [rdx + rax + 2], cl
lea rcx, [rax + 3]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 3]
mov byte [rdx + rax + 3], cl
lea rcx, [rax + 4]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 4]
mov byte [rdx + rax + 4], cl
lea rcx, [rax + 5]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 5]
mov byte [rdx + rax + 5], cl
lea rcx, [rax + 6]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 6]
mov byte [rdx + rax + 6], cl
lea rcx, [rax + 7]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 7]
mov byte [rdx + rax + 7], cl
lea rcx, [rax + 8]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 8]
mov byte [rdx + rax + 8], cl
lea rcx, [rax + 9]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 9]
mov byte [rdx + rax + 9], cl
lea rcx, [rax + 0xa]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 0xa]
mov byte [rdx + rax + 0xa], cl
lea rcx, [rax + 0xb]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 0xb]
mov byte [rdx + rax + 0xb], cl
lea rcx, [rax + 0xc]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 0xc]
mov byte [rdx + rax + 0xc], cl
lea rcx, [rax + 0xd]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 0xd]
mov byte [rdx + rax + 0xd], cl
lea rcx, [rax + 0xe]
cmp r12, rcx
jbe 0x43757e
movzx ecx, byte [rbp + rax + 0xe]
mov byte [rdx + rax + 0xe], cl
mov byte [rdx + r12], 0
mov rax, qword [rdi + 0x18]
mov rdx, qword [rdi + 0x20]
shr rax, 5
cmp rdx, rax
ja 0x4379b9
je 0x437646
mov rax, qword [rdi + 0x10]
lea rcx, [rdx + 1]
shl rdx, 5
movsxd rsi, esi
add rax, rdx
mov rdx, qword [rsp + 0x40]
mov qword [rdi + 0x20], rcx
mov qword [rax], rdx
mov rdx, qword [rsp + 0x48]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x50]
mov qword [rax + 0x10], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rax + 0x18], rdx
mov byte [rdi + rsi + 0x28], 1
cmp byte [rbx], 0
je 0x4375ee
add rbx, 1
mov rbp, rbx
jne 0x437100
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rbp + 1]
mov rbx, rax
cmp byte [rax], 0
lea rax, [rax + 1]
jne 0x437606
cmp r10b, 0x23
je 0x4375ee
cmp rbx, rbp
jne 0x437166
jmp 0x4375ee
xor edx, edx
jmp 0x4372bd
xor eax, eax
nop dword [rax]
movzx ecx, byte [rbp + rax]
mov byte [rdx + rax], cl
add rax, 1
cmp r12, rax
jne 0x437630
jmp 0x43757e
lea rbp, [rdx + 1]
test rdx, rbp
je 0x43768a
bsr rax, rbp
mov r9d, 0x3f
xor rax, 0x3f
sub r9d, eax
mov eax, 1
lea ecx, [r9 + 1]
mov r8, rax
shl r8, cl
cmp rbp, r8
jae 0x437b04
mov ecx, r9d
shl rax, cl
cmp rbp, rax
jbe 0x437b24
mov rbp, r8
cmp rdx, rbp
ja 0x437ae4
mov rax, qword [0x015c8778]
test rax, rax
je 0x4379e9
lea rdx, [rax - 1]
shl rbp, 5
test rdx, rax
jne 0x437adf
add rbp, rdx
neg rax
lea rdx, str.InternalMmapVector
and rbp, rax
mov rcx, rbp
mov r12, rbp
call fcn.0040d590
mov r9, qword [rdi + 0x20]
mov rbp, rax
mov rcx, qword [rdi + 0x10]
shl r9, 5
test r9, r9
je 0x43799c
lea rax, [rcx + 0x10]
cmp rbp, rax
lea rax, [rbp + 0x10]
setae dl
cmp rcx, rax
setae al
or dl, al
je 0x437a04
cmp r9, 0x16
jbe 0x437a04
mov rax, rcx
neg rax
and eax, 0xf
cmp rax, r9
cmova rax, r9
xor edx, edx
test rax, rax
je 0x437821
movzx edx, byte [rcx]
cmp rax, 1
mov byte [rbp], dl
je 0x437bc6
movzx edx, byte [rcx + 1]
cmp rax, 2
mov byte [rbp + 1], dl
je 0x437bbc
movzx edx, byte [rcx + 2]
cmp rax, 3
mov byte [rbp + 2], dl
je 0x437bb2
movzx edx, byte [rcx + 3]
cmp rax, 4
mov byte [rbp + 3], dl
je 0x437ba8
movzx edx, byte [rcx + 4]
cmp rax, 5
mov byte [rbp + 4], dl
je 0x437b9e
movzx edx, byte [rcx + 5]
cmp rax, 6
mov byte [rbp + 5], dl
je 0x437b94
movzx edx, byte [rcx + 6]
cmp rax, 7
mov byte [rbp + 6], dl
je 0x437b8a
movzx edx, byte [rcx + 7]
cmp rax, 8
mov byte [rbp + 7], dl
je 0x437b80
movzx edx, byte [rcx + 8]
cmp rax, 9
mov byte [rbp + 8], dl
je 0x437b76
movzx edx, byte [rcx + 9]
cmp rax, 0xa
mov byte [rbp + 9], dl
je 0x437b6c
movzx edx, byte [rcx + 0xa]
cmp rax, 0xb
mov byte [rbp + 0xa], dl
je 0x437b62
movzx edx, byte [rcx + 0xb]
cmp rax, 0xc
mov byte [rbp + 0xb], dl
je 0x437b58
movzx edx, byte [rcx + 0xc]
cmp rax, 0xd
mov byte [rbp + 0xc], dl
je 0x437b4e
movzx edx, byte [rcx + 0xd]
cmp rax, 0xe
mov byte [rbp + 0xd], dl
je 0x437b44
movzx edx, byte [rcx + 0xe]
mov byte [rbp + 0xe], dl
mov edx, 0xf
lea r8, [r9 - 1]
mov r11, r9
sub r11, rax
sub r8, rax
lea r10, [r11 - 0x10]
shr r10, 4
add r10, 1
mov r13, r10
shl r13, 4
cmp r8, 0xe
jbe 0x437878
lea r14, [rcx + rax]
xor r8d, r8d
add rax, rbp
xor r15d, r15d
movdqa xmm0, xmmword [r14 + r8]
add r15, 1
movups xmmword [rax + r8], xmm0
add r8, 0x10
cmp r15, r10
jb 0x437854
add rdx, r13
cmp r13, r11
je 0x437998
movzx eax, byte [rcx + rdx]
mov byte [rbp + rdx], al
lea rax, [rdx + 1]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 1]
mov byte [rbp + rdx + 1], al
lea rax, [rdx + 2]
cmp rax, r9
jae 0x437998
movzx eax, byte [rcx + rdx + 2]
mov byte [rbp + rdx + 2], al
lea rax, [rdx + 3]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 3]
mov byte [rbp + rdx + 3], al
lea rax, [rdx + 4]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 4]
mov byte [rbp + rdx + 4], al
lea rax, [rdx + 5]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 5]
mov byte [rbp + rdx + 5], al
lea rax, [rdx + 6]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 6]
mov byte [rbp + rdx + 6], al
lea rax, [rdx + 7]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 7]
mov byte [rbp + rdx + 7], al
lea rax, [rdx + 8]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 8]
mov byte [rbp + rdx + 8], al
lea rax, [rdx + 9]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 9]
mov byte [rbp + rdx + 9], al
lea rax, [rdx + 0xa]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 0xa]
mov byte [rbp + rdx + 0xa], al
lea rax, [rdx + 0xb]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 0xb]
mov byte [rbp + rdx + 0xb], al
lea rax, [rdx + 0xc]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 0xc]
mov byte [rbp + rdx + 0xc], al
lea rax, [rdx + 0xd]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 0xd]
mov byte [rbp + rdx + 0xd], al
lea rax, [rdx + 0xe]
cmp r9, rax
jbe 0x437998
movzx eax, byte [rcx + rdx + 0xe]
mov byte [rbp + rdx + 0xe], al
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
call fcn.0040e7f0
mov qword [rdi + 0x10], rbp
mov rdx, qword [rdi + 0x20]
mov rax, rbp
mov qword [rdi + 0x18], r12
jmp 0x4375a2
mov qword [rsp + 0x20], rax
mov r9, rdx
mov edx, 0x1e7
lea r8, str.__size________capacity____
lea rcx, str....._sanitizer_common_sanitizer_common.h
call fcn.00406990
mov rbx, rbp
jmp 0x4375e1
mov rcx, r13
call fcn.0040ed50
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x64]
mov qword [0x015c8778], rax
jmp 0x4376a3
xor eax, eax
movzx edx, byte [rcx + rax]
mov byte [rbp + rax], dl
add rax, 1
cmp r9, rax
jne 0x437a06
jmp 0x437998
mov eax, 7
jmp 0x437405
mov eax, 2
jmp 0x437405
mov eax, 3
jmp 0x437405
je 0x4371e9
mov rax, qword [rdi]
xor esi, esi
mov r11, qword [rax]
jmp 0x43721e
mov eax, 5
jmp 0x437405
mov eax, 6
jmp 0x437405
mov eax, 4
jmp 0x437405
mov eax, 1
jmp 0x437405
lea r8, str.__can_parse_______0_
xor r9d, r9d
mov edx, 0x20d4
mov qword [rsp + 0x20], 0
lea rcx, str.gotsan.cpp
call fcn.00406990
mov eax, 8
jmp 0x437405
mov eax, 9
jmp 0x437405
mov eax, 0xa
jmp 0x437405
mov eax, 0xb
jmp 0x437405
mov eax, 0xc
jmp 0x437405
mov eax, 0xd
jmp 0x437405
mov eax, 0xe
jmp 0x437405
call fcn.0040b4c0
mov qword [rsp + 0x20], rbp
mov r9, rdx
mov edx, 0x226
lea r8, str.__size________new_capacity__
lea rcx, str....._sanitizer_common_sanitizer_common.h
call fcn.00406990
mov qword [rsp + 0x20], r8
mov r9, rbp
mov edx, 0x1a4
lea r8, str.__size________1ULL_____up__1____
lea rcx, str....._sanitizer_common_sanitizer_common.h
call fcn.00406990
mov r9, rbp
mov qword [rsp + 0x20], rax
mov edx, 0x1a5
lea r8, str.__size________1ULL____up___
lea rcx, str....._sanitizer_common_sanitizer_common.h
call fcn.00406990
mov edx, 0xe
jmp 0x437821
mov edx, 0xd
jmp 0x437821
mov edx, 0xc
jmp 0x437821
mov edx, 0xb
jmp 0x437821
mov edx, 0xa
jmp 0x437821
mov edx, 9
jmp 0x437821
mov edx, 8
jmp 0x437821
mov edx, 7
jmp 0x437821
mov edx, 6
jmp 0x437821
mov edx, 5
jmp 0x437821
mov edx, 4
jmp 0x437821
mov edx, 3
jmp 0x437821
mov edx, 2
jmp 0x437821
mov edx, 1
jmp 0x437821