Function at 0x5fb4f0
Capabilities:
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x6c5ca8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x38], ebp
mov al, byte [esp + 0x37]
mov dword [esp + 0xb8], 1
mov byte [esp + 0x14], al
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
push 6
push 0x704698
lea ecx, [esp + 0x18]
mov byte [esp + 0xc0], 2
call fcn.0060ff10
push 4
lea ecx, [esp + 0xc8]
mov byte [esp + 0xbc], 3
call fcn.00610190
push 5
lea ecx, [esp + 0xc8]
mov byte [esp + 0x28], al
call fcn.00610190
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x24]
and eax, 0xff
xor edi, edi
sub eax, ebp
mov dword [esp + 0x2c], edi
je 0x5fbcc5
dec eax
je 0x5fbb9d
dec eax
jne case.default.0x5fbcdb
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 9
ja case.default.0x5fbcdb
jmp dword [eax*4 + 0x5fc0a0]
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.006102b0
push 8
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
sub eax, ebp
je 0x5fb5f0
dec eax
je 0x5fb5ec
sub eax, 3
je 0x5fb5e8
push 0x7a
jmp 0x5fb5f5
push 0x70
jmp 0x5fb5f5
push 0x6e
jmp 0x5fb5f5
push 0xa7
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x54]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xb8], 7
cmp eax, ebx
jae 0x5fb638
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fb65b
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x5fb6e6
cmp ebx, ebp
jbe 0x5fb6a8
cmp ebx, ecx
jne 0x5fb6a8
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fb66f
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5fb6a8
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fb68c
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5fb6e6
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x5fb6e6
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fb6c4
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
mov byte [esp + 0xb8], 3
cmp eax, ebp
je case.default.0x5fbcdb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5fbe87
cmp al, 0xff
je 0x5fbe87
dec al
mov byte [ecx], al
jmp case.default.0x5fbcdb
push 7
jmp 0x5fb71f
push 6
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
lea ecx, [eax + eax*8]
lea ecx, [eax + ecx*2]
shl ecx, 5
sub ecx, eax
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax - 0x64]
jmp case.default.0x5fbcdb
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.006102b0
push 5
lea ecx, [esi + 8]
call fcn.00610190
and eax, 3
sub eax, ebp
je 0x5fb787
dec eax
je 0x5fb783
dec eax
je 0x5fb77f
push 0x3c
jmp 0x5fb789
push 0x7d
jmp 0x5fb789
push 0x7c
jmp 0x5fb789
push 0x7b
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xa4]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xb8], 8
cmp eax, ebx
jae 0x5fb7cf
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fb801
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xb8], 3
jmp 0x5fb6f2
cmp ebx, ebp
jbe 0x5fb860
cmp ebx, ecx
jne 0x5fb860
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fb815
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5fb860
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fb832
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xb8], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0xa4]
jmp 0x5fb6f2
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x5fb89e
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fb87c
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xb8], 3
jmp 0x5fb6f2
push 8
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
lea ecx, [esp + 0x3c]
push eax
push 0x704924
push ecx
call fcn.00698355
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x18]
push ebx
call fcn.00414210
test al, al
je 0x5fb918
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
mov edi, dword [esp + 0x2c]
push edi
lea eax, [esp + 0x40]
push 0x703498
push eax
call fcn.00698355
add esp, 0xc
cmp dword [esp + 0x1c], ebp
jne 0x5fbf0e
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x5fb953
call fcn.0069788b
mov edi, dword [esp + 0x18]
cmp edi, ebp
je 0x5fbeb7
mov al, byte [edi - 1]
test al, al
je 0x5fbeb7
cmp al, 0xff
je 0x5fbeb7
cmp ebx, ebp
jne 0x5fbee0
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x5fbf0e
lea ecx, [esp + 0x14]
push ecx
push 0x89
push 0x88
push 7
lea ecx, [esi + 8]
call fcn.00610190
and al, 0x20
mov ecx, esi
push eax
call fcn.005fc4f0
jmp case.default.0x5fbcdb
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x87
push 0x86
push 7
call fcn.00610190
and al, 0x10
mov ecx, esi
push eax
call fcn.005fc4f0
jmp case.default.0x5fbcdb
push 5
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6d2530]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x44]
push str._.2f
push edx
call fcn.00698355
add esp, 0x10
jmp 0x5fb92f
push 7
push 2
lea ecx, [esp + 0x18]
call fcn.006102b0
push 6
lea ecx, [esi + 8]
call fcn.00610190
and eax, 7
cmp eax, 4
ja case.default.0x5fba3f
jmp dword [eax*4 + 0x5fc0c8]
push 0xc
jmp 0x5fba5c
push 0xd
jmp 0x5fba5c
push 0xe
jmp 0x5fba5c
push 0xf
jmp 0x5fba5c
push 0x10
jmp 0x5fba5c
push 0x11
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x74]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xb8], 9
cmp eax, ebx
jae 0x5fba9f
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fbace
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
mov eax, dword [esp + 0x74]
mov byte [esp + 0xb8], 3
jmp 0x5fb6f2
cmp ebx, ebp
jbe 0x5fbb2a
cmp ebx, ecx
jne 0x5fbb2a
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fbae2
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5fbb2a
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fbaff
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xb8], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x74]
jmp 0x5fb6f2
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x5fbb6a
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fbb46
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x74]
mov byte [esp + 0xb8], 3
jmp 0x5fb6f2
push 9
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6d5310]
jmp 0x5fb9fb
mov edx, dword [esp + 0x30]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 3
ja case.default.0x5fbcdb
jmp dword [eax*4 + 0x5fc0dc]
push 5
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6d1fd8]
jmp 0x5fb9fb
push 6
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov edi, eax
jmp case.default.0x5fbcdb
push 8
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov ecx, eax
shl ecx, 7
add ecx, eax
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
jmp case.default.0x5fbcdb
push 7
push 2
lea ecx, [esp + 0x18]
call fcn.006102b0
push 7
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xf
add eax, 0xfffffffe
cmp eax, 7
ja case.0x5fbc46.5
jmp dword [eax*4 + 0x5fc0ec]
push 3
jmp 0x5fbc6b
push 4
jmp 0x5fbc6b
push 5
jmp 0x5fbc6b
push 7
jmp 0x5fbc6b
push 8
jmp 0x5fbc6b
push 9
jmp 0x5fbc6b
push 0xa
jmp 0x5fbc6b
push 0xb
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x94]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xb8], 6
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x94]
mov byte [esp + 0xb8], 3
jmp 0x5fb6f2
mov edx, dword [esp + 0x30]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 5
ja case.default.0x5fbcdb
jmp dword [eax*4 + 0x5fc10c]
lea eax, [esp + 0x14]
lea ecx, [esi + 8]
push eax
push 2
push 1
push 5
call fcn.00610190
and al, 0x80
mov ecx, esi
push eax
call fcn.005fc4f0
jmp case.default.0x5fbcdb
push 7
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov edi, eax
jmp case.default.0x5fbcdb
lea ecx, [esp + 0x14]
push ecx
push 0xd3
push 0xd4
push 6
lea ecx, [esi + 8]
call fcn.00610190
and al, 8
mov ecx, esi
push eax
call fcn.005fc4f0
jmp case.default.0x5fbcdb
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.006102b0
push 6
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
shr eax, 5
cmp eax, 7
ja case.default.0x5fbd66
jmp dword [eax*4 + 0x5fc124]
push 0x60
jmp 0x5fbd8b
push 0x61
jmp 0x5fbd8b
push 0x62
jmp 0x5fbd8b
push 0x63
jmp 0x5fbd8b
push 0x64
jmp 0x5fbd8b
push 0x65
jmp 0x5fbd8b
push 0x66
jmp 0x5fbd8b
push 0x67
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x64]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xb8], 4
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xb8], 3
jmp 0x5fb6f2
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.006102b0
push 6
lea ecx, [esi + 8]
call fcn.00610190
and eax, 3
cmp eax, 3
ja case.default.0x5fbdfe
jmp dword [eax*4 + 0x5fc144]
push 0x68
jmp 0x5fbe13
push 0x69
jmp 0x5fbe13
push 0x6a
jmp 0x5fbe13
push 0x6b
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x84]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xb8], 5
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xb8], 3
cmp eax, ebp
je case.default.0x5fbcdb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5fbe87
cmp al, 0xff
je 0x5fbe87
dec al
mov byte [ecx], al
jmp case.default.0x5fbcdb
push ecx
call fcn.00697880
add esp, 4
jmp case.default.0x5fbcdb
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x6c
push 0x6d
push 6
call fcn.00610190
and al, 4
mov ecx, esi
push eax
call fcn.005fc6c0
jmp case.default.0x5fbcdb
cmp ebx, ebp
jne 0x5fbec8
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x5fbf0e
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5fbed5
cmp eax, ebx
jae 0x5fbeee
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
push ebx
lea ecx, [esp + 0x18]
call fcn.00414870
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x3c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
mov ebp, dword [esp + 0xc0]
mov cl, byte [esp + 0x14]
mov eax, dword [esp + 0x1c]
xor edi, edi
mov byte [ebp], cl
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov esi, dword [0x6ce1fc]
mov ebx, eax
cmp esi, ebx
jae 0x5fbf39
mov ebx, esi
lea edx, [esp + 0x14]
cmp ebp, edx
jne 0x5fbfa0
cmp ebx, edi
jbe 0x5fbf4a
call fcn.00697ab7
mov ecx, ebp
call fcn.00414980
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x5fbf5c
mov esi, eax
cmp esi, edi
jbe 0x5fbf92
mov ecx, dword [ebp + 4]
sub eax, esi
add ecx, ebx
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.00698020
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push 0
push edi
call fcn.00414210
test al, al
je 0x5fbf90
push edi
mov ecx, ebp
call fcn.004141f0
xor edi, edi
push edi
push edi
mov ecx, ebp
call fcn.004140d0
jmp 0x5fc024
cmp ebx, edi
jbe 0x5fbfec
cmp ebx, eax
jne 0x5fbfec
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5fbfb5
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5fbfec
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5fbfd1
mov eax, 0x6ce1f8
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5fc024
push 1
push ebx
mov ecx, ebp
call fcn.00414210
test al, al
je 0x5fc024
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x5fc007
mov esi, 0x6ce1f8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004141f0
xor edi, edi
mov dword [esp + 0x38], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0xb8], 2
call fcn.0060ffb0
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x5fc062
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5fc059
cmp al, 0xff
je 0x5fc059
dec al
mov byte [ecx], al
jmp 0x5fc062
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0xc4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0xb8], 0
call fcn.0060ffb0
mov ecx, dword [esp + 0xb0]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xac
ret 8