Function at 0x433020
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d30fc
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x52600c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x565e48]
push 1
push str.DirectSound_Notify
call fcn.004aba30
cmp eax, 1
mov ecx, 0x564edc
mov eax, dword [vtable.CCriticalSection.0]
jne 0x4331ce
call dword [eax + 4]
cmp dword [0x56811c], 0
jne 0x433096
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0
push dword [ebp - 0x30]
push 0
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [0x56811c], eax
mov dword [ebp - 4], 0
mov ecx, 0x564edc
mov eax, dword [vtable.CCriticalSection.0]
call dword [eax + 8]
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [0x56811c], esi
je 0x4330fa
mov eax, dword [vtable.CCriticalSection.0]
mov ecx, 0x564edc
call dword [eax + 4]
push 0x13c
push esi
push dword [0x56811c]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x4330e6
inc dword [0x568118]
mov dword [ebp - 4], 1
mov ecx, 0x564edc
mov eax, dword [vtable.CCriticalSection.0]
call dword [eax + 8]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 4], 2
test esi, esi
je 0x4332a5
push 0x13c
push 0
push esi
call fcn.004bf140
add esp, 0xc
mov ecx, esi
call fcn.004339a0
mov dword [esi + 0xdc], 0
mov dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xec], 0
mov dword [esi], vtable.COggSoundNotify.0
mov dword [esi + 0xf8], vtable.CEvent.0
mov dword [esi + 0xfc], 0
mov dword [esi + method.CEvent.virtual_0], vtable.CEvent.0
mov dword [esi + 0x104], 0
push 0x42f960
push 0x42f950
push 4
push 8
lea eax, [esi + 0x108]
mov byte [ebp - 4], 5
push eax
call fcn.004bd297
mov dword [esi + method.CEvent.virtual_0], vtable.CEvent.0
mov dword [esi + 0x12c], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0xffffffff
mov dword [esi + 0x138], 0xffffffff
jmp 0x4332a7
call dword [eax + 4]
cmp dword [0x56811c], 0
jne 0x4331f6
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0
push dword [ebp - 0x54]
push 0
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [0x56811c], eax
mov dword [ebp - 4], 6
mov ecx, 0x564edc
mov eax, dword [vtable.CCriticalSection.0]
call dword [eax + 8]
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [0x56811c], esi
je 0x43325a
mov eax, dword [vtable.CCriticalSection.0]
mov ecx, 0x564edc
call dword [eax + 4]
push 0xf0
push esi
push dword [0x56811c]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x433246
inc dword [0x568118]
mov dword [ebp - 4], 7
mov ecx, 0x564edc
mov eax, dword [vtable.CCriticalSection.0]
call dword [eax + 8]
test esi, esi
je 0x4332a5
push 0xf0
push 0
push esi
call fcn.004bf140
add esp, 0xc
mov ecx, esi
call fcn.004339a0
mov dword [esi], vtable.COggSoundThread.0
mov dword [esi + 0xdc], 0
mov dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xec], 0
jmp 0x4332a7
xor esi, esi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004bcfcc
mov esp, ebp
pop ebp
ret