Function at 0x422620
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5109fb
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x56fcd4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x54], eax
mov al, byte [ebp + 0xc]
mov dword [ebp - 0x70], ecx
mov byte [ecx], al
mov al, byte [ebp + 0x10]
mov byte [ecx + 1], al
mov dword [ebp - 0x60], esi
mov dword [ecx + 0x2c], 0
add ecx, 0x30
mov dword [ebp - 4], 0
push esi
call fcn.0041f8f0
mov ecx, dword [ebp - 0x4c]
xorps xmm0, xmm0
lea eax, [ecx + 0x48]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov dword [ebp - 0x58], eax
mov byte [eax], 0
lea edi, [ecx + 0x60]
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov dword [ebp - 0x48], edi
mov byte [edi], 0
mov dword [ecx + 0x78], 0
mov edx, dword [ebp - 0x54]
mov byte [ebp - 4], 4
movzx eax, byte [edx]
mov byte [ecx + 0x7c], al
movzx eax, byte [edx + 1]
mov byte [ecx + 0x7d], al
mov ax, word [edx + 2]
mov word [ecx + 0x7e], ax
mov eax, dword [edx + 4]
mov dword [ecx + 0x80], eax
mov eax, dword [edx + 8]
mov dword [ecx + 0x84], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x88], eax
lea eax, [ecx + 0xac]
movups xmm0, xmmword [edx + 0x10]
mov dword [ebp - 0x50], eax
movups xmmword [ecx + 0x8c], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [ecx + 0x9c], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, 0x92492493
mov ecx, dword [edx + 0x34]
sub ecx, dword [edx + 0x30]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x5c], eax
je 0x4227c8
cmp eax, 0x9249249
ja 0x422a39
mov ecx, dword [ebp - 0x50]
push eax
call fcn.00437b40
mov esi, dword [ebp - 0x5c]
mov ecx, eax
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x44], edx
lea eax, [esi*8]
sub eax, esi
mov dword [edx], ecx
mov dword [edx + 4], ecx
lea eax, [ecx + eax*4]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x54]
mov esi, dword [edx]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov eax, dword [ecx + 0x34]
mov edi, dword [ecx + 0x30]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x64], edx
mov byte [ebp - 4], 6
cmp edi, eax
je 0x4227bf
nop dword [eax]
push edi
mov ecx, esi
call fcn.0041f8f0
mov eax, dword [edi + 0x18]
add edi, 0x1c
mov dword [esi + 0x18], eax
add esi, 0x1c
mov dword [ebp - 0x68], esi
cmp edi, dword [ebp - 0x5c]
jne 0x4227a0
mov edx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x48]
mov dword [edx + 4], esi
mov esi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0xb8], eax
mov ecx, dword [esi + 0x10]
mov eax, closesocket
sub eax, ecx
mov byte [ebp - 4], 7
cmp eax, 9
jb 0x422a34
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x4227f8
mov eax, dword [esi]
push 9
push str._finished
push ecx
push eax
push esi
push dword [ebp - 0x44]
lea ecx, [ebp - 0x28]
call fcn.0041fc10
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x28]
cmp eax, ecx
je 0x42287a
mov ecx, dword [eax + 0x14]
cmp ecx, 0x10
jb 0x42284d
mov eax, dword [eax]
inc ecx
cmp ecx, 0x1000
jb 0x422840
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x422a3e
mov eax, edx
push ecx
push eax
call fcn.004dee43
mov eax, dword [ebp - 0x58]
add esp, 8
movups xmm0, xmmword [ebp - 0x28]
mov dword [eax + 0x10], 0
mov ecx, 0xf
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
movups xmmword [eax], xmm0
mov byte [ebp - 0x28], 0
movq xmm0, qword [ebp - 0x18]
movq qword [eax + 0x10], xmm0
jmp 0x42287d
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x4228ae
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4228a4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x422a3e
push ecx
push edx
call fcn.004dee43
add esp, 8
mov ecx, dword [esi + 0x10]
mov eax, closesocket
sub eax, ecx
cmp eax, 5
jb 0x422a34
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x4228cb
mov eax, dword [esi]
push 5
push str._temp
push ecx
push eax
push esi
push dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.0041fc10
lea eax, [ebp - 0x40]
cmp edi, eax
je 0x422947
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x42291a
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x422910
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x422a3e
mov eax, edx
push ecx
push eax
call fcn.004dee43
add esp, 8
movups xmm0, xmmword [ebp - 0x40]
mov dword [edi + 0x10], 0
mov ecx, 0xf
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
mov byte [ebp - 0x40], 0
movq xmm0, qword [ebp - 0x30]
movq qword [edi + 0x10], xmm0
jmp 0x42294a
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x10
jb 0x42297b
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422971
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x422a3e
push ecx
push edx
call fcn.004dee43
add esp, 8
mov eax, dword [ebp - 0x58]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.0041f8f0
call fcn.00438db0
mov ecx, esp
push edi
call fcn.0041f8f0
call fcn.00438db0
push 0x40
push 0x80
call fcn.004dee0f
add esp, 0x20
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x4229c5
push 0x7530
mov ecx, eax
call fcn.0041efb0
mov edx, eax
jmp 0x4229c7
xor edx, edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x78]
mov dword [ebp - 0x48], eax
mov dword [ecx + 0x78], edx
test eax, eax
je 0x422a15
nop
lock inc dword [ebp - 0x44]
nop
mov edi, dword [eax]
mov eax, edi
mov esi, dword [eax + 0x80]
mov ecx, dword [eax]
mov ecx, dword [eax + 0x40]
push dword [eax + 0x8c]
call fcn.004eab4b
add esp, 4
mov eax, esi
cmp esi, edi
jne 0x4229e1
push 0x40
push 0x80
push dword [ebp - 0x48]
call fcn.004dee51
mov ecx, dword [ebp - 0x4c]
add esp, 0xc
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004df28f
mov esp, ebp
pop ebp
ret 0x10
call fcn.00437700
call fcn.00437710
call fcn.004eaaef
int3