Function at 0x445980
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x516d2a
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x56d06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x586cc0]
test al, 1
jne 0x4459d8
or eax, 1
mov dword [0x586cc0], eax
mov ecx, 0x586cc8
mov dword [ebp - 4], 0
call fcn.004451c0
push 0x51aea0
call fcn.00471b28
add esp, 4
push 0x577700
mov dword [ebp - 0x40], 0x577700
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 1
cmp dword [0x57793c], 0
jne 0x445d42
mov ecx, dword [0x577940]
mov eax, ecx
mov edx, dword [0x577944]
or eax, edx
jne 0x445a2c
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov dword [0x577940], ecx
mov dword [0x577944], edx
mov dword [0x586d20], ecx
lea ecx, [ebp - 0x28]
mov dword [0x586d24], edx
call fcn.0043caf0
mov esi, eax
cmp esi, 0x586cc8
je 0x445a8c
mov eax, dword [0x586cdc]
cmp eax, 0x10
jb 0x445a66
inc eax
mov ecx, 0x586cc8
push eax
push dword [0x586cc8]
call fcn.0042e8f0
push esi
mov ecx, 0x586cc8
mov dword [0x586cdc], 0xf
mov dword [0x586cd8], 0
mov byte [0x586cc8], 0
call fcn.0042e460
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x445aa5
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0042e8f0
lea ecx, [ebp - 0x28]
call fcn.0043cf90
mov esi, eax
cmp esi, 0x586ce0
je 0x445af9
mov eax, dword [0x586cf4]
cmp eax, 0x10
jb 0x445ad3
inc eax
mov ecx, 0x586ce0
push eax
push dword [0x586ce0]
call fcn.0042e8f0
push esi
mov ecx, 0x586ce0
mov dword [0x586cf4], 0xf
mov dword [0x586cf0], 0
mov byte [0x586ce0], 0
call fcn.0042e460
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x445b12
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0042e8f0
lea ecx, [ebp - 0x28]
call fcn.0043cf70
mov esi, eax
cmp esi, 0x586d60
je 0x445b66
mov eax, dword [0x586d74]
cmp eax, 0x10
jb 0x445b40
inc eax
mov ecx, 0x586d60
push eax
push dword [0x586d60]
call fcn.0042e8f0
push esi
mov ecx, 0x586d60
mov dword [0x586d74], 0xf
mov dword [0x586d70], 0
mov byte [0x586d60], 0
call fcn.0042e460
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x445b7f
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0042e8f0
call fcn.0043d4b0
mov dword [0x586cf8], eax
mov dword [0x586cfc], edx
call fcn.0043d190
lea ecx, [ebp - 0x28]
mov dword [0x586d18], eax
call fcn.0043ca30
mov esi, eax
cmp esi, 0x586d48
je 0x445bed
mov eax, dword [0x586d5c]
cmp eax, 0x10
jb 0x445bc7
inc eax
mov ecx, 0x586d48
push eax
push dword [0x586d48]
call fcn.0042e8f0
push esi
mov ecx, 0x586d48
mov dword [0x586d5c], 0xf
mov dword [0x586d58], 0
mov byte [0x586d48], 0
call fcn.0042e460
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x445c06
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0042e8f0
push str.kernel32.dll
mov esi, 0x20
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.GetNativeSystemInfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x445c2e
lea ecx, [ebp - 0x34]
push ecx
call eax
jmp 0x445c38
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ax, word [ebp - 0x34]
cmp ax, 9
je 0x445c48
cmp ax, 6
jne 0x445c4d
mov esi, 0x40
mov word [0x586d44], si
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
lea ecx, [ebp - 0x28]
mov dword [0x586d40], eax
call fcn.0043d2c0
mov esi, eax
cmp esi, 0x586d28
je 0x445cb6
mov eax, dword [0x586d3c]
cmp eax, 0x10
jb 0x445c90
inc eax
mov ecx, 0x586d28
push eax
push dword [0x586d28]
call fcn.0042e8f0
push esi
mov ecx, 0x586d28
mov dword [0x586d3c], 0xf
mov dword [0x586d38], 0
mov byte [0x586d28], 0
call fcn.0042e460
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x445ccf
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0042e8f0
lea ecx, [ebp - 0x28]
call fcn.0043d2c0
mov esi, eax
cmp esi, 0x586d78
je 0x445d23
mov eax, dword [0x586d8c]
cmp eax, 0x10
jb 0x445cfd
inc eax
mov ecx, 0x586d78
push eax
push dword [0x586d78]
call fcn.0042e8f0
push esi
mov ecx, 0x586d78
mov dword [0x586d8c], 0xf
mov dword [0x586d88], 0
mov byte [0x586d78], 0
call fcn.0042e460
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x445d38
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0042e8f0
mov dword [0x57793c], 1
push 0x577700
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x586cc8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00471876
mov esp, ebp
pop ebp
ret