Function at 0x4125fa
Capabilities:
Check os version
Encrypt data using speck
Get number of processors
Resolve function by parsing pe exports

Disassembly:
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x44], esi
mov edx, dword [ebp - 0x64]
cmp dword [edx - 4], 0
je 0x4125de
cmp dword [ebp - 0x48], 0x400002
jne 0x412584
mov edi, edi
fdiv qword [edx - 0x381bffbf]
inc ebp
movsb byte es:[edi], byte [esi]
add dword [eax], eax
add byte [eax], al
mov dword [ebp - 0x5c], 1
lea eax, [edx + edi*4 + 0x7a]
cmp dword [ebp - 0x48], 0xfffffffb
jne 0x4125a4
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
mov ebx, 8
add word [ebp - 0x58], 0xc9e
cmp dword [ebp - 0x38], 1
je 0x4125c7
mov byte [ebp - 4], 1
jb 0x412553
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.0040d823
add dword [ebp - 0x3c], ebx
or dword [ebp - 0x30], esi
xor ecx, esi
mov eax, edx
and dword [ebp - 0x6c], ebx
jmp 0x41260d
lea edx, [ebp - 0x5c]
push edx
cmp dword [ebp - 0x48], 0x32
jne 0x4125ee
int3
push dword [ebp - 0x5c]
cmp dword [ebp - 0x48], 0
je 0x412605
jne 0x4125a0
call dword [0x4190d0]
mov ebx, eax
push esi
call fcn.00403968
add edx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x3c]
shl edx, 4
mov dword [ebp - 0x3c], edx
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 0xc]
push ebx
push dword [ebp - 0x3c]
call fcn.00403853
or dword [ebp - 0x84], edx
add eax, edx
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0xc]
call fcn.00403812
or dword [ebp - 0x6c], esi
add dword [ebp - 0x48], 0
je 0x41264a
je 0x412674
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0x10]
call fcn.00403812
pop dword [ebp - 0x3c]
add dword [ebp - 0x48], 0
je 0x41267a
jne 0x4126a4
push dword [edi + 0x64]
push ebx
sub ebx, dword [ebp - 0x78]
and ebx, edi
pop dword [ebp - 0x44]
mov ebx, dword [ebp - 0x64]
mov esp, ebx
pop dword [ebp - 0x64]
ret 4
jne 0x412e63
movzx esi, byte [eax - 3]
add esp, 0xfffffff4
add edi, dword [ebp - 0x68]
xor dword [ebp - 0x68], 0xede
cmp dword [ebp - 0x48], 0x400002
jne 0x4126de
inc byte [ebp - 9]
dec edi
inc dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jbe 0x413450
push dword [ebp - 0x44]
add dword [ebp - 0x48], 0
je 0x4126eb
inc eax
push dword [ebp - 0x24]
add esi, 0x30a8
lea ecx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx + 8]
call fcn.00403812
and ebx, dword [ebp - 0x78]
cmp dword [ebp - 0x38], 0xfffffff9
jne 0x41271a
cmp ebx, ecx
jne 0x4126b7
call fcn.00404d22
push 0x16
mov edi, dword [ebp - 0x64]
push dword [edi + 0xc]
xor dword [ebp - 0x60], 0x56
mov ebx, dword [ebp - 0x80]
mov dword [ebp - 0x28], 0x2d8
add dword [ebp - 0x48], 0
je 0x412749
mov edx, dword [ebp - 0x64]
lea ebx, [edx - 0xc]
mov dword [ebp - 0x80], ebx
add edi, 0x9095
mov dword [ebp - 0x68], ecx
push dword [ebp - 0x80]
add ebx, esi
mov dword [ebp - 0x34], ecx
xor eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x24]
add eax, 0x5b0
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x60
jne 0x412795
mov eax, dword [edx + 4]
mov ecx, dword [eax + ebx + 0x38]
movzx edx, word [eax + ebx + 0x40]
mov eax, dword [ecx + 0x24]
cmp dword [eax], 0
mov eax, dword fs:[0x30]
mov dword [ebp - 0x80], eax
lea esi, [ebp - 0x44]
push esi
mov esi, dword [ebp - 0x80]
push dword [esi + 0xc]
call fcn.00403812
cmp dword [ebp - 0x38], 1
je 0x4127c4
mov eax, 0x419455
push dword [ebp + 0xc]
call fcn.0040febb
pop ecx
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x6c], 0xa08
or word [ebp - 0x34], 0x2ab
lea ebx, [eax + 0x1c]
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x38], 1
je 0x4127e9
mov edi, dword [ebp - 0x64]
lea edi, [edi - 4]
push edi
push dword [ebp - 0x44]
call fcn.00403812
cmp dword [ebp - 0x38], 0xffffffe1
jne 0x41280e
call fcn.00404751
or edi, eax
lea eax, [ebx + 0x2e]
push eax
push 0x52
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ecx]
call fcn.00403812
sub ebx, dword [ebp - 0x2c]
and edi, dword [ebp - 0x34]
or ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
xor dword [ebp - 0x68], esi
lea edi, [ecx - 0x10]
mov dword [ebp - 0x44], edi
cmp dword [ebp - 0x38], 1
je 0x412850
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xac], 1
jle 0x41281c
mov dword [ebp + 8], ebx
sar dword [ebp + 8], 8
cmp dword [ebp - 0x48], 0x400002
jne 0x412861
mov ebp, 0xffffffb8
add al, byte [eax]
inc eax
add byte [ebp + 5], dh
sub esp, 0xc
xor ecx, ecx
push 1
cmp dword [ebp - 0x48], 0x400002
jne 0x412882
loopne 0x412851
add eax, 0x431740
test ah, 0x41
jnp 0x4128df
fstp st(1)
fxch st(1)
mov ebx, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x412897
mov edx, dword [ebp - 0x10c]
push edx
call esi
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0x400002
jne 0x4128a7
int3
lea ebx, [ecx + 0x2c]
mov dword [ebp - 0x80], ebx
and edi, dword [ebp - 0x58]
cmp dword [ebp - 0x38], 1
je 0x4128bf
or edi, dword [ebp - 0x6c]
or edi, dword [ebp - 0x58]
push dword [ebp - 0x80]
and edi, dword [ebp - 0x54]
sub edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x80]
or edi, edx
add esi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x64]
lea ebx, [edx - 0xc]
mov dword [ebp - 0x80], ebx
or ecx, edx
mov ecx, esi
cmp dword [ebp - 0x38], 1
je 0x4128f6
mov edx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp + 8]
push edx
call eax
push dword [ebp - 0x80]
mov dword [ebp - 0x50], esi
mov edx, dword [ebp - 0x40]
xor edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
add eax, 0x5f4
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or dword [ebp - 0x4c], eax
mov esi, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x412923
dec eax
or dword [ebp - 0x80], esi
jne 0x412951
xor ebx, dword [ebp - 0x28]
add dword [ebp - 0x48], 0
je 0x412942
test ecx, ecx
je 0x412963
lea ecx, [ebp + eax*4 - 0x10]
mov edx, dword [ecx]
jmp 0x412a0d
lea esi, [ebp - 0x44]
push esi
mov esi, dword [ebp - 0x44]
push dword [esi + 0x10]
call fcn.00403812
or dword [ebp - 0x60], ecx
or edx, dword [ebp - 0x28]
mov dword [ebp - 0x7c], 0x5f0
mov ecx, dword [ebp - 0x64]
lea ebx, [edi - 0x34]
mov esi, dword [ebp - 0x44]
cmp dword [ecx - 4], esi
jne 0x41281f
cmp dword [ebp - 0x48], 0x1b
jne 0x41298a
mov edx, dword [edi]
lea eax, [ebp - 0x80]
xor esi, dword [ebp - 0x28]
push eax
or edx, dword [ebp - 0x58]
test dword [ebp - 0x48], 0
je 0x4129ac
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0xfffffffd
jne 0x4129bd
push esi
lea eax, [ebp - 4]
push eax
call fcn.00403968
lea ebx, [ebp - 0x40]
cmp dword [ebp - 0x38], 1
je 0x4129d5
push ebx
push dword [ebp - 0x40]
mov edi, eax
call fcn.00403968
cmp dword [ebp - 0x38], 1
je 0x412a05
lea eax, [ebp - 0x10c]
push eax
mov dword [ebp - 0x10c], 0x431760
call fcn.00417211
add esp, 4
mov ecx, dword [ebp - 0xc]
jmp 0x412a42
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ecx + 0x18]
call fcn.00403812
and dword [ebp - 0x60], edi
lea ecx, [ebp - 0x40]
xor word [ebp - 0x6c], 0x8fa
and eax, dword [ebp - 0x7c]
push ecx
mov eax, edi
and eax, dword [ebp - 0x34]
push dword [ebp - 0x44]
add word [ebp - 0x84], 0xbf8
call fcn.00403812
and dword [ebp - 0x54], edx
add dword [ebp - 0x68], edi
pop dword [ebp - 0x24]
add esi, dword [ebp - 0x60]
xor dword [ebp - 0x68], 0xffffffd8
xor eax, dword [ebp - 0x50]
pop dword [ebp - 0x44]
xor edx, ecx
mov ebx, dword [ebp - 0x64]
mov esp, ebx
or dword [ebp - 0x4c], 0xffffffd8
mov dword [ebp - 0x30], eax
pop dword [ebp - 0x64]
xor word [ebp - 0x68], 0x7bb
test dword [ebp - 0x48], 0
je 0x412a8b
ret 8
and eax, edx
mov edx, dword [ebp - 0x3c]
push dword [edx]
mov esi, edi
mov edx, esi
mov ecx, dword [ebp - 0x64]
push dword [ecx - 4]
add dword [ebp - 0x48], 0
je 0x412e6d
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
lea edi, [esi + esi]
push edi
call fcn.00416818
sub ebx, edi
xor eax, ecx
mov ecx, dword [ebp - 0x80]
or dword [ebp - 0x80], ecx
je 0x412fdb
cmp dword [ebp - 0x48], 0x16
jne 0x412e96
mov dword [ebp - 0x10], eax
and dword [ebp - 0xc], 0
and dword [ebp - 8], 0
lea edx, [ebp - 0x40]
push edx
add dword [ebp - 0x60], eax
push dword [ebp - 0x80]
call fcn.00403812
mov edx, dword [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x66
jne 0x412ec2
call fcn.00407b35
pop ecx
and dword [ebp - 4], 0
mov eax, dword [edi]
test byte [eax + esi + 4], 1
mov eax, dword [ebp - 0x44]
lea edx, [eax + 0x38]
mov dword [ebp - 0x5c], edx
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x10]
call fcn.00403853
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x5c]
push dword [edx]
call fcn.00403812
xor esi, ebx
mov edi, dword [ebp - 0x40]
cmp word [edi], 0xff8b
jne 0x412f2b
mov dword [ebp - 0x6c], ebx
mov edi, 0xff
cmp dword [ebp - 0x48], 0x400002
jne 0x412f14
and dword [ebp - 0x5c], edi
or ebx, esi
xor esi, dword [ebp - 0x28]
jmp 0x412f37
mov ecx, dword [ebp - 0x5c]
shr ecx, 0x10
mov dword [ebp - 0x5c], ecx
or dword [ebp - 0x78], edx
sub edi, eax
xor ecx, dword [ebp - 0x50]
push dword [ebp - 0x5c]
add dword [ebp - 0x60], eax
push dword [ebp - 0x24]
mov edx, dword [ebp - 0x44]
and ecx, dword [ebp - 0x54]
push dword [edx + 8]
add dword [ebp - 0x48], 0
je 0x412f5d
sub edi, dword [ebp - 0x50]
add ecx, ebx
push dword [ebp - 0x40]
sub edx, dword [ebp - 0x84]
cmp dword [ebp - 0x48], 0x400002
jne 0x412f78
mov edi, dword [ebp - 0x64]
xor ecx, edx
push dword [edi - 4]
and dword [ebp - 0x58], 0x171
or esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x44]
push dword [ebx]
test dword [ebp - 0x48], 0
je 0x412fa5
movzx esi, byte [eax - 0x1e]
movzx edx, byte [ecx - 0x1e]
sub esi, edx
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0xffffffcc
jne 0x412fb3
inc eax
inc esi
push dword [ecx + 0x64]
add ecx, edx
call fcn.0041328d
cmp dword [ebp - 0x48], 0xffffffe3
jne 0x412fd3
cmp eax, edi
jne 0x412f5d
cmp dword [ebp - 0x8c], edi
je 0x412fd8
push ebx
jmp 0x412fe0
add eax, dword [ebp - 0x34]
jmp 0x413055
add dword [ebp - 0x3c], 4
cmp dword [ebp - 0x38], 1
je 0x412ff2
add dword [ebp - 0x24], 4
add esi, 0x597f
mov edi, dword [ebp - 0x64]
add dword [edi - 0x10], 4
cmp dword [ebp - 0x48], 0x60
jne 0x41302e
jne 0x413012
mov dword [esi + 0x64], 0x83
cmp eax, 0xc0000090
jne 0x412fa3
mov dword [esi + 0x64], 0x81
cmp eax, 0xc0000091
mov esi, dword [ebp - 0x3c]
or edx, ecx
cmp dword [ebp - 0x38], 1
je 0x41304c
jne 0x413075
mov edx, 0x41985f
mov eax, dword [eax + esi + 0x14]
and eax, 0x1c0
cmp dword [esi], 0
jne 0x412e46
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x38], 1
je 0x413078
mov edi, dword [ebp - 0x24]
cmp dword [eax], 0
jne 0x4130c1
test dword [ebp - 0x48], 0
je 0x41309b
cmp eax, 0xffffffff
jae fcn.00413061
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
and word [ebp - 0x6c], 0x879
mov edx, dword [ebp - 0x64]
or dword [ebp - 0x2c], esi
mov dword [edx - 0xc], 1
add edx, dword [ebp - 0x58]
cmp dword [ebp - 0x48], 0
je 0x4130c1
lea eax, [esi + 0x70]
push eax
cmp dword [ebp - 0x48], 0x400002
jne 0x4130d7
mov ebp, esp
push ecx
mov edx, dword [ecx + 0x10]
push esi
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x64]
mov dword [eax - 8], 0
lea edi, [ebp - 0x40]
push edi
mov edi, dword [ebp - 0x44]
push dword [edi + 0x68]
call fcn.00403812
cmp dword [ebp - 0x38], 0x400002
jne 0x413105
lea ecx, [ebp - 0x224]
cmp dword [ebp - 0x38], 0x2e
jne 0x413115
pop edi
mov eax, esi
pop esi
pop ebp
int3
push 0x8000
or word [ebp - 0x68], 0xf15
cmp dword [ebp - 0x48], 0
je 0x41312e
mov esi, eax
add esp, 4
or dword [ebp - 0x34], ebx
mov edx, dword [ebp - 0x80]
add esi, edi
cmp dword [ebp - 0x48], 0x45
jne 0x413146
mov dword [ebp - 0x10], 1
mov esi, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0xffffffb0
jne 0x41315e
lea edx, [esi - 8]
mov dword [ebp - 0x80], edx
xor dword [ebp - 0x7c], 0xffffffaa
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0xffffffd7
jne 0x413177
push dword [ebp + 8]
mov esi, edi
or edi, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
or ebx, edx
add dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x400002
jne 0x41319e
lea ecx, [eax - 4]
mov dword [ebp - 0x80], ecx
add dword [ebp - 0x84], ebx
add ebx, edi
push dword [ebp - 0x80]
add dword [ebp - 0x4c], eax
push 0xffffffff
and dword [ebp - 0x58], 0x67
or ecx, edx
mov edx, dword [ebp - 0x40]
xor word [ebp - 0x68], 0x885
or ecx, edx
mov eax, dword [ebp - 0x40]
add eax, 0x5a4
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub eax, ebx
sub ecx, dword [ebp - 0x7c]
cmp dword [ebp - 0x48], 0x51
jne 0x413202
mov dword [ebp - 0xcc], 0x431ab0
mov dword [ebp - 0xbc], 0x431aa0
mov dword [ebp - 0x6c], 0x431770
pop dword [ebp - 0x44]
and edi, dword [ebp - 0x68]
and eax, edx
pop dword [ebp - 0x3c]
or ecx, dword [ebp - 0x78]
pop dword [ebp - 0x24]
xor edi, esi
mov ebx, dword [ebp - 0x64]
mov dword [ebp - 0x34], 0xd6c
cmp dword [ebp - 0x38], 1
je 0x41322c
int3
mov esp, ebx
cmp dword [ebp - 0x48], 0xe
jne 0x413247