Function at 0x403393
Capabilities:
Create thread
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
xor ebx, ebx
push esi
push edi
call fcn.00404980
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x710]
push 0x24
mov edi, dword [ecx + 0x70c]
lea ecx, [ebp - 0x34]
push 0
mov esi, eax
mov dword [ebp - 4], edx
push ecx
call fcn.0046071c
lea edx, [ebp - 0x34]
push edx
call dword [sym.imp.KERNEL32.DLL_GetNativeSystemInfo]
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [esi + 0x300c], ecx
cmp ecx, edx
jg 0x4033e6
mov dword [esi + 0x300c], edx
mov ecx, dword [esi + 0x300c]
mov dword [esi + 0x3010], ecx
mov ecx, dword [ebp - 0x18]
push 0xc
mov dword [esi + 0x3014], ecx
lea ecx, [ebp - 0x10]
push 0
push ecx
call fcn.0046071c
mov dword [ebp - 0x10], 0xc
mov dword [ebp - 8], 1
add esp, 0x18
push 0x80
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.DLL_SetPriorityClass]
test eax, eax
jne 0x403434
mov ebx, 1
push 0
lea edx, [ebp - 0x10]
push 0x20
push 0
push edx
call dword [sym.imp.KERNEL32.DLL_CreateSemaphoreA]
lea ecx, [ebp - 0x10]
push 0
push 0x20
push 0
mov dword [edi + 0xd4], eax
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateSemaphoreA]
mov edx, dword [ebp - 4]
mov dword [edx + 0xd0], eax
mov edx, dword [ebp - 4]
mov ecx, dword [edi + 0xd4]
mov dword [edx + 0xd4], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xd0]
push 0
push 0
push 0
mov dword [edi + 0xd0], edx
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
push 0
push 0
push 0
mov dword [0x479ff8], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
push 0
push 0
push 0
mov dword [0x479ff4], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
push 0
push 0
push 0
mov dword [0x479ffc], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
push 0
push 0
push 0
mov dword [0x479fec], eax
push 0x4067f5
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0
push 0
push 0
push 0x4527bf
push 0
mov dword [0x479fd8], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0
push 0
push 0
push 0x406c05
push 0
mov dword [0x479fdc], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0
push 0
push 0
push 0x453840
push 0
mov dword [0x479fe0], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0
push 0
push 0
push 0x406af1
push 0
mov dword [0x479ff0], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0
push 0
push 0
push 0x410e98
push 0
mov dword [0x479fe8], eax
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0
mov dword [0x479fe4], eax
push dword [0x479ff0]
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
push 2
push dword [0x479fdc]
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
push 0xfffffffffffffffe
push dword [0x479fd8]
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
push 0xfffffffffffffffe
push dword [0x479fe0]
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
push 0xfffffffffffffffe
push dword [0x479fe8]
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
push 0xfffffffffffffffe
push dword [0x479fe4]
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
cmp dword [0x479fd8], 0
je 0x4035cf
cmp dword [0x479fe0], 0
jne 0x4035d5
or ebx, 2
cmp dword [0x479fe4], 0
je 0x4035e7
cmp dword [0x479ff0], 0
jne 0x4035ed
or ebx, 4
cmp dword [0x479fec], 0
jne 0x4035fc
or ebx, 8
cmp dword [0x479ff8], 0
je 0x40360e
cmp dword [0x479ffc], 0
jne 0x403614
or ebx, 0x10
cmp dword [edi + 0xd4], 0
jne 0x403623
or ebx, 0x20
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd0], 0
jne 0x403635
or ebx, 0x40
pop edi
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret