Function at 0x66ace0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x23c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x20]
call fcn.0067f980
mov esi, dword [ebp + 0x24]
call fcn.005ebb80
mov edi, dword [ebp + 0x1c]
mov eax, edi
call fcn.0068bf80
test al, al
je 0x66b02c
mov eax, edi
call fcn.0068bff0
test al, al
je 0x66ad4f
lea eax, [esp + 0x40]
push eax
mov eax, str.ffmpeg24
call fcn.004a6a60
test al, al
jne 0x66ad4f
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x40]
push ecx
push str.Video_Component
push str.ffmpeg24
push edx
call fcn.004a6bc0
test al, al
je 0x66b18b
call fcn.004c90f0
cmp eax, 0x2bc00000
jae 0x66ad65
mov eax, 1
jmp 0x66adef
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov esi, dword [esp + 0x30]
push 0x7b6eec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x736614], 0
je 0x66ade2
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
cmp dword [0x736614], 1
jne 0x66adc4
test eax, eax
jge 0x66adb5
mov eax, esi
cdq
sub eax, edx
sar eax, 1
cmp eax, 1
jge 0x66ade0
mov esi, 1
jmp 0x66ade2
add esi, 0xffffffff
cmp esi, 1
jge 0x66ade2
mov esi, 1
jmp 0x66ade2
test eax, eax
jge 0x66adcf
mov esi, 1
jmp 0x66ade2
mov eax, esi
cdq
sub eax, edx
sar eax, 1
cmp eax, 1
mov esi, 1
jl 0x66ade2
mov esi, eax
push 0x7b6eec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
cmp eax, 1
setg cl
push 0xe39
mov byte [esp + 0x14], cl
call fcn.0069e704
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x66afb7
call fcn.004b05b0
mov ecx, dword [ebx + 4]
push 1
push ecx
mov dword [esp + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x18]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, ebx
call fcn.0068c030
mov esi, dword [ebp + 0x20]
mov edi, eax
call fcn.0067f9e0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0x721418
add word [eax + 0x7a], 0xffff
mov ecx, dword [esp + 0x18]
cmp word [ecx + 0x7a], 0
jne 0x66ae69
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 1
call eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ecx
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov eax, ebx
call fcn.0068c1b0
mov esi, dword [ebp + 0x24]
mov edi, eax
mov eax, dword [edi]
add word [eax + 0x12], 1
mov eax, dword [esi]
add word [eax + 0x12], 0xffff
mov ecx, dword [esi]
cmp word [ecx + 0x12], 0
jne 0x66aeab
test ecx, ecx
je 0x66aeab
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [edi]
mov eax, dword [esp + 0x10]
mov dword [esi], ecx
add word [eax + 0x12], 0xffff
mov ecx, dword [esp + 0x10]
cmp word [ecx + 0x12], 0
jne 0x66aecc
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov edi, dword [ebp + 0x20]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
jne 0x66aee8
mov ecx, dword [esi]
test byte [ecx + 0xd], 1
je 0x66afd5
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
je 0x66af4e
mov esi, dword [ebp + 0x1c]
xor edi, edi
call fcn.0066a690
test al, al
jne 0x66af4b
mov edx, dword [ebp + 8]
push edx
lea eax, [esp + 0x14]
mov ecx, esi
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x20], 1
call fcn.0064e440
cmp dword [eax], edi
jne 0x66af4b
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, ebx
call fcn.0068c030
mov esi, dword [ebp + 0x20]
mov edi, eax
call fcn.0067f9e0
lea ecx, [esp + 0x14]
call fcn.0067f910
mov esi, dword [ebp + 0x24]
mov eax, dword [esi]
test byte [eax + 0xd], 1
je 0x66afd5
mov esi, dword [ebp + 0x1c]
mov edi, 1
call fcn.0066a690
test al, al
jne 0x66afd2
mov edx, dword [ebp + 8]
push edx
lea eax, [esp + 0x14]
mov ecx, esi
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x20], 2
call fcn.0064e440
cmp dword [eax], 0
jne 0x66afd2
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ecx
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov eax, ebx
call fcn.0068c1b0
mov esi, dword [ebp + 0x24]
mov edi, eax
call fcn.005ebb50
lea ecx, [esp + 0x10]
call fcn.00408310
jmp 0x66afd5
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
push edx
push eax
push edi
push ebx
call fcn.0068bad0
mov dword [ebx], 0x7230c4
jmp 0x66ae15
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
je 0x66b009
mov ecx, dword [esi]
test byte [ecx + 0xd], 1
je 0x66b009
call fcn.0067f980
call fcn.005ebb80
lea esi, [esp + 0xc]
call fcn.00688ef0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
mov ebx, dword [ebx + 0xdfc]
test ebx, ebx
je 0x66b020
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
test al, al
jne 0x66aff7
lea esi, [esp + 0xc]
call fcn.00688ef0
mov edi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x20], 7
call fcn.0064e440
cmp dword [eax], 0
jne 0x66b18b
push 0x15b0
call fcn.0069e704
add esp, 4
test eax, eax
jne 0x66b0ab
call fcn.004b05b0
xor ebx, ebx
mov eax, dword [ebx + 8]
push 1
push eax
mov dword [esp + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov edx, dword [ebp + 0xc]
mov esi, ebx
call fcn.00655e40
test al, al
jne 0x66b0b7
mov ecx, dword [ebx + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x66b18b
mov edx, dword [ebx]
mov eax, dword [edx]
push 1
mov ecx, ebx
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
push edi
mov esi, eax
call fcn.00655710
mov ebx, eax
jmp 0x66b068
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x66b0c4
mov dword [ebx + 0x113c], eax
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x66b0d1
mov dword [ebx + 0x10f8], eax
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
push ebx
call fcn.00655f50
mov esi, dword [ebp + 0x20]
mov edi, eax
call fcn.0067f9e0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0x721418
add word [eax + 0x7a], 0xffff
mov ecx, dword [esp + 0x18]
cmp word [ecx + 0x7a], 0
jne 0x66b114
mov eax, dword [ecx]
mov edx, dword [eax + 8]
push 1
call edx
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push eax
lea ecx, [esp + 0x10]
push ecx
push edx
mov edx, dword [ebp + 0x14]
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.006569c0
mov esi, dword [ebp + 0x24]
mov edi, eax
call fcn.005ebb50
mov eax, dword [esp + 0x10]
add word [eax + 0x12], 0xffff
mov ecx, dword [esp + 0x10]
cmp word [ecx + 0x12], 0
jne 0x66b156
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov edi, dword [ebp + 0x20]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test al, al
je 0x66b16e
mov ecx, dword [esi]
test byte [ecx + 0xd], 1
jne 0x66b178
push ebx
call fcn.00657280
test al, al
jne 0x66b182
call fcn.0067f980
call fcn.005ebb80
lea esi, [esp + 0xc]
call fcn.00687b90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28