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

Disassembly:
push 0xffffffffffffffff
push 0x529b6c
mov eax, dword fs:[0]
push eax
sub esp, 0x550
mov eax, dword [0x581500]
xor eax, esp
mov dword [esp + 0x548], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x581500]
xor eax, esp
push eax
lea eax, [esp + 0x564]
mov dword fs:[0], eax
mov eax, dword [esp + 0x574]
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x38], eax
mov ecx, fcn.004faba2
mov eax, fcn.004fac96
mov edx, fcn.004faac5
mov dword [esp + 0x2c], edi
mov byte [esp + 0x17], 1
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x56c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
xor esi, esi
mov ecx, edi
mov byte [esp + 0x56c], 3
mov dword [esp + 0x30], esi
call fcn.0046fb70
test eax, eax
jle 0x471ccd
mov dword [esp + 0x34], ebx
lea ebp, [edi + 0x3084]
lea ecx, [esp + 0x20]
mov eax, esi
mov edx, edi
mov dword [esp + 0x20], ebx
call fcn.0046fc10
test al, al
je 0x471cae
cmp esi, ebx
jl 0x471cae
cmp esi, dword [edi + 0x24]
jge 0x471cae
mov eax, dword [edi + 0x40]
mov ecx, dword [edi + 4]
add eax, esi
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x24], eax
lea edx, [esp + 0x1c]
mov eax, esi
mov ecx, edi
mov dword [esp + 0x1c], ebx
call fcn.0046fb80
test al, al
je 0x471cae
cmp esi, dword [edi + 0x24]
jge 0x471cae
mov edi, dword [edi + 0x20]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi]
add edi, dword [esp + 0x34]
mov dword [esp + 0x324], ecx
mov edx, dword [esi]
mov dword [esp + 0x18], edi
lea edi, [esp + 0x324]
mov dword [esp + 0x324], edx
call fcn.0046e6b0
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov dword [esp + 0xec], eax
mov ecx, dword [esi]
lea edi, [esp + 0xec]
mov dword [esp + 0xec], ecx
call fcn.0046e6b0
cmp byte [ebp + 0x235], bl
je 0x471b33
call fcn.00467f20
lea esi, [eax + 0x504]
call fcn.00474ee0
mov dword [esp + 0xec], eax
cmp byte [ebp + 0x234], bl
je 0x471b52
call fcn.00467f20
lea esi, [eax + 0x504]
call fcn.00474ee0
mov dword [esp + 0x324], eax
mov edx, dword [ebp]
mov eax, dword [ebp - 0x234]
lea esi, [ebp - 0x234]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
cmp byte [ebp + 0x235], bl
je 0x471bdc
cmp byte [ebp + 0x234], bl
jne 0x471bdc
mov edi, dword [esp + 0x38]
lea eax, [esp + 0xec]
mov ecx, ebp
push edi
cmp byte [esp + 0x1b], bl
je 0x471b93
mov byte [esp + 0x1b], bl
jmp 0x471bea
call fcn.0046fcb0
push edi
lea eax, [esp + 0xf0]
mov ecx, esi
call fcn.0046fcb0
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xac]
call fcn.00468130
lea esi, [ebp - 0x2b4]
lea ecx, [esp + 0xac]
mov eax, esi
mov byte [esp + 0xd0], 1
call fcn.00472af0
lea ecx, [esp + 0xac]
jmp 0x471c13
mov edi, dword [esp + 0x38]
push edi
lea eax, [esp + 0xf0]
mov ecx, ebp
call fcn.0046fcb0
push edi
lea eax, [esp + 0x328]
mov ecx, esi
call fcn.0046fcb0
mov ecx, dword [esp + 0x1c]
lea esi, [ebp - 0x2b4]
mov eax, esi
call fcn.00472af0
mov ecx, dword [esp + 0x18]
lea edi, [ebp - 0x2f4]
mov eax, edi
call fcn.00472af0
push ebp
lea ebx, [esp + 0x78]
call fcn.00472b40
lea eax, [ebp - 0x234]
push eax
lea ebx, [esp + 0x94]
call fcn.00472b40
push esi
lea esi, [esp + 0x40]
call fcn.00467fc0
push edi
lea esi, [esp + 0x5c]
call fcn.00467fc0
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0x4780], 0
je 0x471ca4
mov edi, dword [esp + 0x24]
test edi, edi
je 0x471c81
call fcn.00467f20
lea esi, [eax + 0x504]
call fcn.00474ee0
cmp edi, eax
je 0x471c81
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x471ca4
call fcn.00467f20
lea esi, [eax + 0x504]
call fcn.00474ee0
cmp edi, eax
je 0x471ca4
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
xor ebx, ebx
add dword [esp + 0x34], 0x40
inc esi
mov ecx, edi
mov dword [esp + 0x30], esi
add ebp, 0x530
call fcn.0046fb70
cmp esi, eax
jl 0x471a61
mov eax, dword [edi + 0x24]
mov ebp, dword [edi + 0x3c]
cmp ebp, eax
jge 0x471cdd
mov dword [esp + 0x18], ebp
jmp 0x471ce3
mov ebp, eax
mov dword [esp + 0x18], eax
push ebp
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x30]
push ecx
push edi
call fcn.0046f400
push ebp
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x30]
push ecx
push edi
call fcn.0046f400
xor edx, edx
cmp ebp, 4
jl 0x4720e0
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
add ebp, 0xfffffffc
lea esi, [edx + 0x64]
sub edx, ebx
shr ebp, 2
inc ebp
lea ecx, [ebx + 0x60]
lea ebx, [ebp*4]
lea eax, [edi + 0x2df0]
mov dword [esp + 0x24], ebx
mov ebx, dword [ecx - 0x60]
mov dword [eax - 0x20], ebx
mov ebx, dword [ecx - 0x5c]
mov dword [eax - 0x1c], ebx
mov ebx, dword [ecx - 0x58]
mov dword [eax - 0x18], ebx
mov ebx, dword [ecx - 0x54]
mov dword [eax - 0x14], ebx
fld qword [ecx - 0x50]
fstp qword [eax - 0x10]
fld qword [ecx - 0x48]
fstp qword [eax - 8]
mov ebx, dword [ecx - 0x40]
mov dword [eax], ebx
movzx ebx, byte [ecx - 0x3c]
mov byte [eax + 4], bl
fld dword [ecx - 0x38]
fstp dword [eax + 8]
fld dword [ecx - 0x34]
fstp dword [eax + 0xc]
mov ebx, dword [ecx - 0x30]
mov dword [eax + 0x10], ebx
mov ebx, dword [ecx - 0x2c]
mov dword [eax + 0x14], ebx
mov ebx, dword [ecx - 0x28]
mov dword [eax + 0x18], ebx
mov ebx, dword [esi - 0x64]
mov dword [eax - 0x60], ebx
mov ebx, dword [esi - 0x60]
mov dword [eax - 0x5c], ebx
mov ebx, dword [esi - 0x5c]
mov dword [eax - 0x58], ebx
mov ebx, dword [esi - 0x58]
mov dword [eax - 0x54], ebx
fld qword [esi - 0x54]
fstp qword [eax - 0x50]
fld qword [esi - 0x4c]
fstp qword [eax - 0x48]
mov ebx, dword [esi - 0x44]
mov dword [eax - 0x40], ebx
movzx ebx, byte [esi - 0x40]
mov byte [eax - 0x3c], bl
fld dword [esi - 0x3c]
fstp dword [eax - 0x38]
fld dword [esi - 0x38]
fstp dword [eax - 0x34]
mov ebx, dword [esi - 0x34]
mov dword [eax - 0x30], ebx
mov ebx, dword [esi - 0x30]
mov dword [eax - 0x2c], ebx
mov ebx, dword [esi - 0x2c]
mov dword [eax - 0x28], ebx
mov ebx, dword [ecx - 0x20]
mov dword [eax + 0x510], ebx
mov ebx, dword [ecx - 0x1c]
mov dword [eax + 0x514], ebx
mov ebx, dword [ecx - 0x18]
mov dword [eax + 0x518], ebx
mov ebx, dword [ecx - 0x14]
mov dword [eax + 0x51c], ebx
fld qword [ecx - 0x10]
fstp qword [eax + 0x520]
fld qword [ecx - 8]
fstp qword [eax + 0x528]
mov ebx, dword [ecx]
mov dword [eax + 0x530], ebx
movzx ebx, byte [ecx + 4]
mov byte [eax + 0x534], bl
fld dword [ecx + 8]
fstp dword [eax + 0x538]
fld dword [ecx + 0xc]
fstp dword [eax + 0x53c]
mov ebx, dword [ecx + 0x10]
mov dword [eax + 0x540], ebx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x544], ebx
mov ebx, dword [ecx + 0x18]
mov dword [eax + 0x548], ebx
mov ebx, dword [esi - 0x24]
mov dword [eax + 0x4d0], ebx
mov ebx, dword [esi - 0x20]
mov dword [eax + 0x4d4], ebx
mov ebx, dword [esi - 0x1c]
mov dword [eax + 0x4d8], ebx
mov ebx, dword [esi - 0x18]
mov dword [eax + 0x4dc], ebx
fld qword [esi - 0x14]
fstp qword [eax + 0x4e0]
fld qword [esi - 0xc]
fstp qword [eax + 0x4e8]
mov ebx, dword [edx + ecx]
mov dword [eax + 0x4f0], ebx
movzx ebx, byte [esi]
mov byte [eax + 0x4f4], bl
fld dword [esi + 4]
fstp dword [eax + 0x4f8]
fld dword [esi + 8]
fstp dword [eax + 0x4fc]
mov ebx, dword [esi + 0xc]
mov dword [eax + 0x500], ebx
mov ebx, dword [esi + 0x10]
mov dword [eax + 0x504], ebx
mov ebx, dword [esi + 0x14]
mov dword [eax + 0x508], ebx
mov ebx, dword [ecx + 0x20]
mov dword [eax + 0xa40], ebx
mov ebx, dword [ecx + 0x24]
mov dword [eax + 0xa44], ebx
mov ebx, dword [ecx + 0x28]
mov dword [eax + 0xa48], ebx
mov ebx, dword [ecx + 0x2c]
mov dword [eax + 0xa4c], ebx
fld qword [ecx + 0x30]
fstp qword [eax + 0xa50]
fld qword [ecx + 0x38]
fstp qword [eax + 0xa58]
mov ebx, dword [ecx + 0x40]
mov dword [eax + 0xa60], ebx
movzx ebx, byte [ecx + 0x44]
mov byte [eax + 0xa64], bl
fld dword [ecx + 0x48]
fstp dword [eax + 0xa68]
fld dword [ecx + 0x4c]
fstp dword [eax + 0xa6c]
mov ebx, dword [ecx + 0x50]
mov dword [eax + 0xa70], ebx
mov ebx, dword [ecx + 0x54]
mov dword [eax + 0xa74], ebx
mov ebx, dword [ecx + 0x58]
mov dword [eax + 0xa78], ebx
mov ebx, dword [esi + 0x1c]
mov dword [eax + 0xa00], ebx
mov ebx, dword [esi + 0x20]
mov dword [eax + 0xa04], ebx
mov ebx, dword [esi + 0x24]
mov dword [eax + 0xa08], ebx
mov ebx, dword [esi + 0x28]
mov dword [eax + 0xa0c], ebx
fld qword [esi + 0x2c]
fstp qword [eax + 0xa10]
fld qword [esi + 0x34]
fstp qword [eax + 0xa18]
mov ebx, dword [esi + 0x3c]
mov dword [eax + 0xa20], ebx
movzx ebx, byte [esi + 0x40]
mov byte [eax + 0xa24], bl
fld dword [esi + 0x44]
fstp dword [eax + 0xa28]
fld dword [esi + 0x48]
fstp dword [eax + 0xa2c]
mov ebx, dword [esi + 0x4c]
mov dword [eax + 0xa30], ebx
mov ebx, dword [esi + 0x50]
mov dword [eax + 0xa34], ebx
mov ebx, dword [esi + 0x54]
mov dword [eax + 0xa38], ebx
mov ebx, dword [ecx + 0x60]
mov dword [eax + 0xf70], ebx
mov ebx, dword [ecx + 0x64]
mov dword [eax + 0xf74], ebx
mov ebx, dword [ecx + 0x68]
mov dword [eax + 0xf78], ebx
mov ebx, dword [ecx + 0x6c]
mov dword [eax + 0xf7c], ebx
fld qword [ecx + 0x70]
fstp qword [eax + 0xf80]
add ecx, 0x100
fld qword [ecx - 0x88]
add esi, 0x100
fstp qword [eax + 0xf88]
mov ebx, dword [ecx - 0x80]
mov dword [eax + 0xf90], ebx
movzx ebx, byte [ecx - 0x7c]
mov byte [eax + 0xf94], bl
add eax, 0x14c0
sub ebp, 1
fld dword [ecx - 0x78]
fstp dword [eax - 0x528]
fld dword [ecx - 0x74]
fstp dword [eax - 0x524]
mov ebx, dword [ecx - 0x70]
mov dword [eax - 0x520], ebx
mov ebx, dword [ecx - 0x6c]
mov dword [eax - 0x51c], ebx
mov ebx, dword [ecx - 0x68]
mov dword [eax - 0x518], ebx
mov ebx, dword [esi - 0xa4]
mov dword [eax - 0x590], ebx
mov ebx, dword [esi - 0xa0]
mov dword [eax - 0x58c], ebx
mov ebx, dword [esi - 0x9c]
mov dword [eax - 0x588], ebx
mov ebx, dword [esi - 0x98]
mov dword [eax - 0x584], ebx
fld qword [esi - 0x94]
fstp qword [eax - 0x580]
fld qword [esi - 0x8c]
fstp qword [eax - 0x578]
mov ebx, dword [esi - 0x84]
mov dword [eax - 0x570], ebx
movzx ebx, byte [esi - 0x80]
mov byte [eax - 0x56c], bl
fld dword [esi - 0x7c]
fstp dword [eax - 0x568]
fld dword [esi - 0x78]
fstp dword [eax - 0x564]
mov ebx, dword [esi - 0x74]
mov dword [eax - 0x560], ebx
mov ebx, dword [esi - 0x70]
mov dword [eax - 0x55c], ebx
mov ebx, dword [esi - 0x6c]
mov dword [eax - 0x558], ebx
jne 0x471d45
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
xor ebx, ebx
cmp edx, ebp
jge 0x472208
mov eax, dword [esp + 0x58]
mov ecx, edx
shl ecx, 6
lea esi, [ecx + eax + 0x24]
mov eax, dword [esp + 0x3c]
lea ecx, [ecx + eax + 0x20]
mov eax, edx
imul eax, eax, 0x530
lea eax, [eax + edi + 0x2df0]
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x3c]
sub ebp, edx
mov edx, dword [ecx - 0x20]
mov dword [eax - 0x20], edx
mov edx, dword [ecx - 0x1c]
mov dword [eax - 0x1c], edx
mov edx, dword [ecx - 0x18]
mov dword [eax - 0x18], edx
mov edx, dword [ecx - 0x14]
mov dword [eax - 0x14], edx
fld qword [ecx - 0x10]
fstp qword [eax - 0x10]
add eax, 0x530
fld qword [ecx - 8]
add ecx, 0x40
fstp qword [eax - 0x538]
mov edx, dword [ecx - 0x40]
mov dword [eax - 0x530], edx
movzx edx, byte [ecx - 0x3c]
mov byte [eax - 0x52c], dl
add esi, 0x40
sub ebp, 1
fld dword [ecx - 0x38]
fstp dword [eax - 0x528]
fld dword [ecx - 0x34]
fstp dword [eax - 0x524]
mov edx, dword [ecx - 0x30]
mov dword [eax - 0x520], edx
mov edx, dword [ecx - 0x2c]
mov dword [eax - 0x51c], edx
mov edx, dword [ecx - 0x28]
mov dword [eax - 0x518], edx
mov edx, dword [esi - 0x64]
mov dword [eax - 0x590], edx
mov edx, dword [esi - 0x60]
mov dword [eax - 0x58c], edx
mov edx, dword [esi - 0x5c]
mov dword [eax - 0x588], edx
mov edx, dword [esi - 0x58]
mov dword [eax - 0x584], edx
fld qword [esi - 0x54]
fstp qword [eax - 0x580]
fld qword [esi - 0x4c]
fstp qword [eax - 0x578]
mov edx, dword [ecx + edi - 0x40]
mov dword [eax - 0x570], edx
movzx edx, byte [esi - 0x40]
mov byte [eax - 0x56c], dl
fld dword [esi - 0x3c]
fstp dword [eax - 0x568]
fld dword [esi - 0x38]
fstp dword [eax - 0x564]
mov edx, dword [esi - 0x34]
mov dword [eax - 0x560], edx
mov edx, dword [esi - 0x30]
mov dword [eax - 0x55c], edx
mov edx, dword [esi - 0x2c]
mov dword [eax - 0x558], edx
jne 0x472116
mov byte [esp + 0x56c], 2
mov eax, dword [esp + 0x58]
cmp eax, ebx
je 0x472220
push eax
call dword [esp + 0x74]
add esp, 4
mov byte [esp + 0x56c], 1
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x472238
push eax
call dword [esp + 0x58]
add esp, 4
mov byte [esp + 0x56c], bl
mov eax, dword [esp + 0x90]
cmp eax, ebx
je 0x472255
push eax
call dword [esp + 0xac]
add esp, 4
mov dword [esp + 0x56c], 0xffffffff
mov eax, dword [esp + 0x74]
cmp eax, ebx
je 0x472273
push eax
call dword [esp + 0x90]
add esp, 4
mov ecx, dword [esp + 0x564]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x548]
xor ecx, esp
call fcn.004fa259
add esp, 0x55c
ret 4