Function at 0x438d00
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4bd9d8
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x4e3f80]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov eax, dword [0x4e3f80]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0x7cc]
mov ecx, dword [edi + 0x7d4]
mov edx, dword [edi + 0x7c8]
mov ebx, 1
add dword [0x4ee7a8], ebx
cmp dword [edi + 0x7e0], 0
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x7d8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x7e8]
mov dword [esp + 0x30], edx
mov edx, dword [edi + 0x7d0]
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jne 0x4395e5
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x30]
push eax
push 6
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 4
je 0x4395d9
cmp eax, 5
jne 0x438fae
mov ecx, dword [0x4ee750]
mov edx, dword [ecx + 0x1c]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x4ee750]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x54]
sub esi, dword [eax + 0x50]
add dword [0x4ee7c8], ebx
add eax, 0x64
sar esi, 2
push eax
mov dword [esp + 0x28], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub dword [0x4ee7c8], ebx
jns 0x438e01
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
xor edi, edi
test esi, esi
jle 0x438f7e
mov ecx, dword [0x4ee750]
mov edx, dword [ecx + 0x1c]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x4ee750]
mov esi, dword [eax + 0x1c]
mov ecx, dword [esi + 0x54]
sub ecx, dword [esi + 0x50]
add dword [0x4ee7c8], ebx
sar ecx, 2
cmp edi, ecx
jae 0x438e5d
mov edx, dword [esi + 0x54]
sub edx, dword [esi + 0x50]
sar edx, 2
cmp edi, edx
jb 0x438e4b
call fcn.004a0b05
mov eax, dword [esi + 0x50]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx + 0x174]
mov dword [esp + 0x14], edx
jmp 0x438e65
mov dword [esp + 0x14], 0xffffffff
mov eax, dword [0x4ee750]
mov esi, dword [eax + 0x1c]
mov ecx, dword [esi + 0x54]
sub ecx, dword [esi + 0x50]
sar ecx, 2
cmp edi, ecx
jae 0x438f45
mov edx, dword [esi + 0x54]
sub edx, dword [esi + 0x50]
sar edx, 2
cmp edi, edx
jb 0x438e90
call fcn.004a0b05
mov eax, dword [esi + 0x50]
mov esi, dword [eax + edi*4]
test esi, esi
je 0x438f45
lea ebx, [esi + 0x1c0]
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x438eb9
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [0x4ee7c4]
mov ecx, dword [0x4ee750]
mov edx, dword [ecx + 0x1c]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub dword [0x4ee7c8], 1
jns 0x438ee2
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
mov eax, dword [esi + 0x1b4]
test eax, eax
je 0x438f2e
cmp dword [eax + 0x10], 0
setne al
test al, al
je 0x438f2e
push 0x3e8
push 5
push esi
call fcn.00484ae0
mov eax, dword [esp + 0x14]
push eax
push 0x4c3af0
lea edx, [esp + 0x50]
call fcn.0040a1c0
add esp, 8
push 0
lea eax, [esp + 0x4c]
mov ebx, 0xd7
call fcn.0040dea0
mov ebx, dword [esp + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub dword [0x4ee7c4], 1
jns 0x438f6d
push str.ahhh_r_n
jmp 0x438f65
mov ecx, dword [0x4ee750]
mov edx, dword [ecx + 0x1c]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub dword [0x4ee7c8], ebx
jns 0x438f6d
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
mov ebx, 1
add edi, ebx
cmp edi, dword [esp + 0x24]
jl 0x438e0b
push 0
mov eax, str.progress
mov ebx, 0xf
call fcn.0040dea0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x7d0]
push ecx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov edi, dword [esp + 0x18]
mov ebx, 1
jmp 0x4395ca
cmp eax, 3
jne 0x4394de
mov edx, dword [0x4ee750]
mov eax, dword [edx + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add eax, 0x64
push eax
call edi
mov eax, dword [0x4ee750]
mov ebx, dword [eax + 0x1c]
inc dword [0x4ee7c8]
lea esi, [ebx + 0x64]
push esi
call edi
mov edi, dword [ebx + 0x80]
inc dword [0x4ee7c8]
mov ebx, dword [ebx + 0x7c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x48], edi
call esi
sub dword [0x4ee7c8], 1
jns 0x439012
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
test edi, edi
jle 0x4392bc
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
cmp dword [edi + 0x87c], ecx
jl 0x439034
mov dword [edi + 0x87c], 0
mov edx, dword [0x4ee750]
mov eax, dword [edx + 0x1c]
mov ecx, dword [edi + 0x87c]
mov edx, dword [ebx + ecx*4]
push edx
push eax
call fcn.004823b0
mov dword [esp + 0x14], eax
test eax, eax
je 0x439290
mov ebx, eax
lea eax, [ebx + 0x1c0]
push eax
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
xor esi, esi
cmp eax, esi
je 0x439277
mov ecx, dword [0x4ee750]
mov eax, dword [ecx + 0x1c]
inc dword [0x4ee7c4]
call fcn.00483df0
mov eax, dword [ebx + 0x1b4]
cmp eax, esi
je 0x439265
cmp dword [eax + 0x10], esi
setne al
test al, al
je 0x439265
lea ecx, [esp + 0x20]
call fcn.0041c470
mov dword [esp + 0x78], esi
mov edx, dword [edi + 0x7a8]
push 0xffffffffffffffff
push edx
mov dword [esp + 0x24], esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x43912c
mov eax, dword [edi + 0x798]
mov ecx, dword [0x4ee828]
cmp ecx, eax
jl 0x4390e2
xor ecx, ecx
cmp ecx, eax
mov dword [0x4ee828], ecx
jge 0x43911f
mov ebx, eax
cmp ecx, ebx
mov edx, ecx
jge 0x439119
cmp ecx, esi
jl 0x439119
mov eax, dword [edi + 0x790]
je 0x4390fd
sub edx, 1
mov eax, dword [eax]
jne 0x4390f6
cmp eax, esi
je 0x439119
mov eax, dword [eax + 8]
cmp eax, esi
je 0x439119
mov edx, dword [eax + 0x34]
cmp edx, 1
je 0x439175
cmp edx, esi
jne 0x439119
inc ecx
cmp ecx, ebx
jl 0x4390e4
mov dword [0x4ee828], ecx
mov edx, dword [edi + 0x7a8]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [edi + 0x7a8]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x439250
mov ebx, dword [edi + 0x790]
test ebx, ebx
je 0x439243
mov eax, ebx
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov ebx, dword [ebx]
push eax
lea ecx, [esp + 0x24]
call fcn.004086c0
test eax, eax
je 0x4391f5
test ebx, ebx
jne 0x439151
jmp 0x439243
mov dword [0x4ee828], ecx
push eax
lea ecx, [esp + 0x24]
mov dword [eax + 0x3c], 1
call fcn.00408830
mov eax, dword [edi + 0x7a8]
mov ebx, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push eax
call ebx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
push 0x1388
push ecx
call fcn.00486890
movzx edx, al
mov eax, dword [edi + 0x7a8]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x24], edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [edi + 0x78c]
call fcn.0043a470
test eax, eax
je 0x4391e1
mov eax, dword [eax + 8]
test eax, eax
je 0x4391e1
mov dword [eax + 0x3c], 0
mov ecx, dword [edi + 0x7a8]
push ecx
call ebx
inc dword [0x4ee828]
jmp 0x43912c
cmp dword [esp + 0x1c], 0
je 0x43923c
mov edi, dword [esp + 0x14]
mov ecx, esi
call fcn.00439640
push esi
mov ecx, edi
call fcn.00439850
mov eax, edi
call fcn.00480d20
mov ebx, dword [esp + 0x20]
push ebx
mov ecx, edi
call fcn.004855c0
mov ecx, edi
mov dword [esi + 0x20], eax
call fcn.00485390
mov dword [esi + 0x24], eax
mov eax, edi
call fcn.00480d40
mov edi, dword [esp + 0x18]
jmp 0x439243
mov dword [esi + 0x20], 0x64
mov ecx, dword [edi + 0x7a8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [esp + 0x20]
mov dword [esp + 0x78], 0xffffffff
call fcn.00401a70
mov ebx, dword [esp + 0x14]
mov eax, ebx
call fcn.00480d40
inc dword [edi + 0x87c]
jmp 0x439327
mov edx, dword [0x4ee750]
mov eax, dword [edx + 0x1c]
call fcn.00483df0
inc dword [edi + 0x87c]
jmp 0x439327
mov eax, dword [0x4ee750]
mov ecx, dword [eax + 0x1c]
add ecx, 0x64
push ecx
call esi
sub dword [0x4ee7c8], 1
jns 0x4392b4
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
inc dword [edi + 0x87c]
jmp 0x439327
mov edx, dword [0x4ee750]
mov eax, dword [edx + 0x1c]
add eax, 0x64
push eax
call esi
sub dword [0x4ee7c8], 1
jns 0x4392e1
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x7a8]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x439327
mov eax, dword [edi + 0x790]
test eax, eax
je 0x43931a
mov ecx, eax
mov ecx, dword [ecx + 8]
cmp dword [ecx + 0x34], 1
mov eax, dword [eax]
jne 0x439316
mov dword [ecx + 0x20], 0x64
test eax, eax
jne 0x439302
mov edx, dword [edi + 0x7a8]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x4ee750]
mov ecx, dword [eax + 0x1c]
add ecx, 0x64
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [edi + 0x7a8]
inc dword [0x4ee7c8]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4394bf
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x790]
mov dword [esp + 0x14], eax
test eax, eax
je 0x439485
lea esp, [esp]
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 8]
cmp dword [ebx + 0x34], 0
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
jne 0x43947a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x2c]
mov edx, eax
mov eax, 0xd1b71759
mul edx
mov eax, dword [0x4ee750]
shr edx, 0xc
not edx
and edx, 1
mov dword [ebx + 0x3c], edx
mov eax, dword [eax + 0x1c]
push ecx
push eax
call fcn.004823b0
mov esi, eax
test esi, esi
je 0x43947a
lea eax, [esi + 0x1c0]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4393d8
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [0x4ee7c4]
mov eax, dword [esi + 0x1b4]
test eax, eax
je 0x4393ed
cmp dword [eax + 0x10], 0
setne al
test al, al
jne 0x43944b
push str.COMMS_CONNECTED
mov eax, esi
call fcn.00480b20
mov edi, eax
test edi, edi
je 0x43944b
push edi
call fcn.0049e31d
add esp, 4
push edi
mov dword [esp + 0x28], eax
call fcn.0049081d
add esp, 4
cmp dword [esp + 0x24], 0
je 0x43944b
mov edi, esi
mov ecx, ebx
call fcn.00439640
push ebx
mov ecx, esi
call fcn.00439850
push esi
mov eax, str.PRINT_ERRORCODE
call fcn.00480bc0
mov dword [ebx + 0x20], eax
push esi
mov eax, str.VIEWPRINTS
call fcn.00480bc0
mov dword [ebx + 0x24], eax
jmp 0x439459
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0x64
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub dword [0x4ee7c4], 1
jns 0x43947a
push str.ahhh_r_n
call fcn.00477b80
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x439370
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x7a8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [0x4ee750]
mov eax, dword [edx + 0x1c]
add eax, 0x64
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub dword [0x4ee7c8], 1
jns 0x4394bf
push str.Ahh..._r_n
call fcn.00477b80
add esp, 4
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x7d8]
push edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov edi, dword [esp + 0x18]
mov ebx, 1
jmp 0x4395ca
cmp eax, ebx
jne 0x43952e
push edi
call fcn.004373c0
mov ebx, 3
test eax, eax
je 0x4394fe
mov eax, dword [0x4ee74c]
push eax
mov eax, str.SendJobDone
jmp 0x43950a
mov ecx, dword [0x4ee74c]
push ecx
mov eax, str.SendJobFailed
call fcn.0040dea0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x7d4]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov edi, dword [esp + 0x18]
mov ebx, 1
jmp 0x4395ca
cmp eax, 2
jne 0x4395b2
mov eax, dword [edi + 0x7c4]
test eax, eax
je 0x43955a
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x34]
push ecx
mov ecx, dword [eax]
push edx
mov edx, dword [0x4ee750]
mov esi, dword [edx + 0x1c]
push ecx
mov ecx, dword [eax + 0x30]
jmp 0x43956d
mov eax, dword [0x4ee750]
mov esi, dword [eax + 0x1c]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x4c3af8
xor ecx, ecx
call fcn.00482530
mov ecx, dword [edi + 0x7c8]
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
push ecx
call esi
mov edx, dword [edi + 0x7d8]
push edx
call esi
mov eax, dword [edi + 0x7c4]
test eax, eax
je 0x4395a3
call fcn.00433320
mov dword [edi + 0x7c4], 0
push str.back_from_switch_r_n
call fcn.00477b80
add esp, 4
jmp 0x4395ca
test eax, eax
jne 0x4395ca
mov ecx, edi
call fcn.00435c10
mov eax, dword [edi + 0x7cc]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
cmp dword [edi + 0x7e0], 0
je 0x438d91
jmp 0x4395e5
sub dword [0x4ee7a8], ebx
mov dword [edi + 0x7e4], ebx
xor eax, eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0049dc2a
mov esp, ebp
pop ebp
ret