Function at 0x4501c5
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55cf24
mov eax, dword fs:[0]
push eax
sub esp, 0x248
push ebx
push esi
push edi
mov eax, dword [0x5b31c8]
xor eax, esp
push eax
lea eax, [esp + 0x258]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edi, dword [eax + 0x30]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov byte [edx + 0x10], 1
cmp ecx, 0x3c
je 0x45021e
cmp ecx, 0x64
jne 0x450222
mov byte [edx + 0x11], 1
mov al, byte [ebx + 0x3a5]
test al, al
je 0x450248
mov al, byte [ebx + 0x3a7]
mov esi, 0x70000000
test al, al
mov dword [esp + 0x14], 0x70000200
cmovne esi, dword [esp + 0x14]
jmp 0x450277
mov al, byte [ebx + 0x3a6]
test al, al
je 0x450259
mov esi, 0x71000100
jmp 0x450277
mov al, byte [ebx + 0x3a8]
test al, al
jne 0x450272
mov al, byte [ebx + 0x3a7]
mov esi, 0x71000000
test al, al
je 0x450277
mov esi, 0x71000200
push edi
push ecx
mov dword [edx + 0xc], esi
call fcn.00450155
mov edi, eax
mov eax, dword [esp + 0x18]
cmp eax, 0x70000000
jl 0x450293
movzx esi, al
jmp 0x4502a6
mov ecx, eax
sub ecx, 0x49
je 0x4502a4
sub ecx, 0x37
je 0x4502a4
xor esi, esi
inc esi
jmp 0x4502a6
xor esi, esi
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], esi
test ecx, ecx
js 0x45034c
or edi, 0x70000000
cmp eax, 0x80
jne 0x4502cd
sub ecx, 3
je 0x4502ed
dec ecx
dec ecx
jne 0x4502f3
jmp 0x4502ed
cmp eax, 0x3c
jne 0x4502fc
and ecx, reloc.WS2_32.dll_accept
jns 0x4502df
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4502f3
mov eax, dword [ebp + 0xc]
cmp dword [eax + 8], 0x7fffffff
je 0x4502f3
or edi, 0x800000
push dword [esp + 0x1c]
mov ecx, edx
push edi
jmp 0x450342
or esi, 0x71000000
dec ecx
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
and eax, reloc.WS2_32.dll_accept
jns 0x450316
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb al, al
inc al
cmp byte [ebx + 0x3a5], al
cmove esi, edi
and ecx, reloc.WS2_32.dll_accept
jns 0x450332
dec ecx
or ecx, 0xfffffffe
inc ecx
je 0x45033a
or esi, 0x800000
push dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
push esi
call fcn.004621ce
jmp 0x4504e7
lea ecx, [esp + 0x3c]
call fcn.004444bd
mov esi, dword [ebp + 0xc]
mov eax, ecx
and dword [esp + 0x260], 0
lea ecx, [ebx + 0x98]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esi + 0x98]
push eax
call fcn.00441994
or dword [esp + 0x260], 0xffffffff
mov ecx, dword [esp + 0x18]
cmp ecx, 0x64
je 0x45042a
cmp ecx, 0x3c
je 0x45042a
cmp ecx, 0x83
jne 0x4504d5
push 0xc
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
pop ecx
test eax, eax
je 0x4503bd
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
jmp 0x4503bf
xor eax, eax
mov dword [esi + 0xc4], eax
lea esi, [ebx + 0x4ec]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.00529310
mov dword [esp + 0x260], 2
mov ecx, dword [ebx + 0x508]
cmp ecx, dword [ebx + 0x50c]
je 0x4504c6
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, dword [ebx + 0x50c]
sub ecx, dword [ebx + 0x508]
sar ecx, 4
mov eax, dword [eax + 8]
div ecx
shl edx, 4
add edx, dword [ebx + 0x508]
je 0x4504c6
mov eax, dword [edx]
cmp eax, dword [edx + 4]
je 0x4504c6
mov ecx, edx
jmp 0x450474
push 0xc
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
pop ecx
test eax, eax
je 0x450443
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
jmp 0x450445
xor eax, eax
mov dword [esi + 0xc4], eax
lea esi, [ebx + 0x4ec]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.00529310
mov dword [esp + 0x260], 1
mov ecx, dword [ebx + 0x504]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x4504c6
lea eax, [esp + 0x20]
push eax
call fcn.0045b521
test al, al
je 0x4504c6
mov ecx, dword [esp + 0x20]
mov eax, ecx
and eax, 0xff000000
cmp eax, 0x70000000
jne 0x45049c
test edi, edi
jle 0x45049c
or ecx, edi
jmp 0x4504ad
cmp eax, 0x71000000
jne 0x4504c6
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4504c6
or ecx, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x20], ecx
push eax
push ecx
push ecx
mov ecx, dword [ebp + 8]
call fcn.00461f10
inc dword [ebx + 0x4d8]
or dword [esp + 0x260], 0xffffffff
mov ecx, esi
call fcn.00529320
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x1c], eax
call fcn.00462068
mov ecx, dword [esp + 0x258]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc