Function at 0x401010
Capabilities:
Access peb ldr_data
Check os version
Get number of processors
Hash data using fnv
Parse pe header
Resolve function by fnv-1a hash
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
lea eax, [esp + 0x24]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x20]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edx
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], 0x53b2070f
mov dword [esp + 0x44], 0xf8f45725
mov dword [esp + 0x4c], 0x3285501
mov dword [esp + 0x54], 0x820621f3
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0x3a9acc72
mov dword [esp + 0x60], ecx
mov dword [esp + 0x30], 0x29cdd463
mov dword [esp + 0x34], 5
mov dword [esp + 0x38], edx
mov dword [esp + 8], 1
call fcn.00401000
mov ecx, eax
mov dword [esp + 4], ecx
mov edi, edi
movzx eax, word [ecx]
mov edx, 0x5a4d
cmp ax, dx
je 0x4010a7
mov edx, 0x4548
cmp ax, dx
jne 0x4010c7
mov eax, dword [ecx + 0x3c]
lea edx, [eax - 0x40]
cmp edx, 0x3bf
ja 0x4010c7
add eax, ecx
mov eax, dword [eax]
cmp eax, 0x4550
je 0x4010ca
cmp eax, 0xb15b00b5
je 0x4010ca
dec ecx
jmp 0x401090
mov eax, dword fs:[0x30]
push ebx
mov dword [esp + 8], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x14]
push ebp
push esi
push edi
mov dword [esp + 0x10], eax
test eax, eax
je 0x401230
mov edi, eax
lea esp, [esp]
cmp dword [esp + 0x18], 0
je 0x401230
movzx ecx, word [edi + 0x24]
mov edx, dword [edi + 0x28]
mov esi, 0x811c9dc5
test ecx, ecx
je 0x40112f
jmp 0x401110
mov al, byte [edx]
dec ecx
inc edx
test al, al
je 0x40112b
cmp al, 0x61
jb 0x40111e
add al, 0xe0
movzx eax, al
xor eax, esi
imul eax, eax, 0x1000193
mov esi, eax
test ecx, ecx
jne 0x401110
xor eax, eax
lea ecx, [esp + 0x40]
cmp esi, dword [ecx]
je 0x40114d
inc eax
add ecx, 0xc
cmp eax, 1
jb 0x401135
mov edi, dword [edi]
mov dword [esp + 0x10], edi
jmp 0x401228
dec dword [esp + 0x18]
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
mov ecx, dword [esp + eax + 0x48]
mov eax, dword [esp + eax + 0x44]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x40117b
mov edi, dword [edi]
mov dword [esp + 0x10], edi
jmp 0x401228
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x10]
mov edx, dword [esi + 0x3c]
mov ebp, dword [edx + esi + 0x78]
mov ebx, dword [ebp + esi + 0x20]
mov edi, dword [ebp + esi + 0x24]
add ebp, esi
add ebx, esi
add edi, esi
cmp dword [esp + 0x1c], 0
je 0x40121c
mov edi, edi
mov eax, dword [ebx]
add eax, esi
mov edx, 0x811c9dc5
je 0x4011d9
mov cl, byte [eax]
test cl, cl
je 0x4011d9
cmp cl, 0x5f
jne 0x4011b7
inc eax
mov cl, byte [eax]
test cl, cl
je 0x4011d9
lea ecx, [ecx]
cmp cl, 0x40
je 0x4011d9
movzx ecx, cl
xor ecx, edx
imul ecx, ecx, 0x1000193
inc eax
mov edx, ecx
mov cl, byte [eax]
test cl, cl
jne 0x4011c0
xor eax, eax
cmp dword [esp + 0x1c], eax
jbe 0x40120f
mov ecx, dword [esp + 0x2c]
cmp edx, dword [ecx + eax*8]
je 0x4011f3
inc eax
cmp eax, dword [esp + 0x1c]
jb 0x4011e1
jmp 0x40120f
mov eax, dword [ecx + eax*8 + 4]
test eax, eax
je 0x40120f
movzx edx, word [edi]
mov ecx, dword [ebp + 0x1c]
lea edx, [ecx + edx*4]
mov ecx, dword [edx + esi]
add ecx, esi
dec dword [esp + 0x20]
mov dword [eax], ecx
add ebx, 4
add edi, 2
cmp dword [esp + 0x20], 0
jne 0x4011a0
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov edi, eax
test edi, edi
jne 0x4010f0
mov edi, dword [esp + 0x14]
mov ebx, dword [edi + 0x3c]
mov eax, dword [ebx + edi + 0x50]
push 4
add ebx, edi
push 0x3000
push eax
push 0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3c], eax
call dword [esp + 0x40]
mov ecx, dword [ebx + 0x54]
mov edx, eax
mov dword [esp + 0x10], edx
mov eax, edi
test ecx, ecx
je 0x401275
mov esi, edx
sub esi, edi
mov dl, byte [eax]
dec ecx
mov byte [esi + eax], dl
inc eax
test ecx, ecx
jne 0x401266
mov edx, dword [esp + 0x10]
movzx ebp, word [ebx + 6]
movzx eax, word [ebx + 0x14]
lea edi, [eax + ebx + 0x18]
test ebp, ebp
je 0x4012b6
add edi, 0x14
mov eax, dword [edi - 8]
mov ecx, dword [edi]
mov esi, dword [edi - 4]
add ecx, dword [esp + 0x14]
dec ebp
add eax, edx
test esi, esi
je 0x4012af
jmp 0x4012a0
mov dl, byte [ecx]
dec esi
mov byte [eax], dl
inc eax
inc ecx
test esi, esi
jne 0x4012a0
mov edx, dword [esp + 0x10]
add edi, 0x28
test ebp, ebp
jne 0x401288
mov ebx, dword [ebx + 0x80]
mov eax, dword [ebx + edx + 0xc]
add ebx, edx
mov dword [esp + 0x20], ebx
test eax, eax
je 0x40134b
mov ebp, dword [esp + 0x10]
add eax, ebp
push eax
call dword [esp + 0x38]
mov edi, eax
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax]
add esi, ebp
add ebx, ebp
cmp dword [esi], 0
je 0x401339
lea ecx, [ecx]
test ebx, ebx
je 0x40131b
mov eax, dword [ebx]
test eax, eax
jns 0x40131b
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + edi + 0x78]
mov edx, dword [ecx + edi + 0x1c]
add ecx, edi
and eax, 0xffff
sub eax, dword [ecx + 0x10]
lea eax, [edx + eax*4]
mov ecx, dword [eax + edi]
add ecx, edi
mov dword [esi], ecx
jmp 0x40132a
mov eax, dword [esi]
add eax, ebp
add eax, 2
push eax
push edi
call dword [esp + 0x40]
mov dword [esi], eax
add esi, 4
test ebx, ebx
je 0x401334
add ebx, 4
cmp dword [esi], 0
jne 0x4012f0
mov eax, dword [esp + 0x20]
add eax, 0x14
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4012d2
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov ebx, edx
sub ebx, dword [ecx + 0x34]
cmp dword [ecx + 0xa4], 0
je 0x4013fe
mov ebp, dword [ecx + 0xa0]
mov eax, dword [ebp + edx + 4]
add ebp, edx
test eax, eax
je 0x4013fe
lea esp, [esp]
mov edx, dword [ebp]
add edx, dword [esp + 0x10]
lea esi, [eax - 8]
shr esi, 1
lea edi, [ebp + 8]
je 0x4013ec
movzx eax, word [edi]
mov cx, ax
shr cx, 0xc
dec esi
cmp cx, 0xa
jne 0x4013ad
and eax, 0xfff
add eax, edx
add dword [eax], ebx
jmp 0x4013e5
cmp cx, 3
jne 0x4013be
and eax, 0xfff
add eax, edx
add dword [eax], ebx
jmp 0x4013e5
cmp cx, 1
jne 0x4013d5
and eax, 0xfff
mov ecx, ebx
add eax, edx
shr ecx, 0x10
add word [eax], cx
jmp 0x4013e5
cmp cx, 2
jne 0x4013e5
and eax, 0xfff
add eax, edx
add word [eax], bx
add edi, 2
test esi, esi
jne 0x401391
add ebp, dword [ebp + 4]
mov eax, dword [ebp + 4]
test eax, eax
jne 0x401380
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc0]
test eax, eax
je 0x401435
mov esi, dword [eax + edx + 0xc]
test esi, esi
je 0x401435
mov eax, dword [esi]
test eax, eax
je 0x401435
mov edi, dword [esp + 0x10]
lea ebx, [ebx]
push 0
push 1
push edi
call eax
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
jne 0x401420
mov ecx, dword [esp + 0x18]
movzx edi, word [ecx + 6]
movzx edx, word [ecx + 0x14]
lea esi, [edx + ecx + 0x18]
test edi, edi
je 0x401490
mov ebp, dword [esp + 0x10]
add esi, 0x24
lea esp, [esp]
mov eax, dword [esi - 0x18]
mov ecx, dword [esi]
mov edx, dword [esi - 0x14]
dec edi
add eax, ebp
test ecx, 0x2000000
je 0x401470
push 0x4000
push edx
push eax
call dword [esp + 0x34]
jmp 0x401489
test ecx, 0x20000000
lea ecx, [esp + 0x3c]
push ecx
je 0x401481
push 0x20
jmp 0x401483
push 4
push edx
push eax
call dword [esp + 0x34]
add esi, 0x28
test edi, edi
jne 0x401450
mov edx, dword [esp + 0x2c]
push 0x4000
push edx
push ebx
call dword [esp + 0x34]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x28]
mov eax, dword [esp + 0x10]
push ecx
push 1
add esi, eax
push eax
call esi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 4