Function at 0x581fb0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x814300
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push ebp
push esi
mov esi, dword [ecx + 4]
xor ebp, ebp
push edi
mov edi, dword [ecx]
cmp esi, ebp
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
jg 0x582066
jl 0x58200d
cmp edi, ebp
jae 0x582066
mov al, byte [esp + 0x60]
push ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], al
call fcn.00404c40
mov edi, str.DateTime:_datetime_to_unpack_is_negative
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.DateTime:_datetime_to_unpack_is_negative
lea ecx, [esp + 0x18]
call fcn.004030a0
lea ecx, [esp + 0x10]
mov dword [esp + 0x54], ebp
push ecx
lea ecx, [esp + 0x24]
call fcn.00582bd0
lea edx, [esp + 0x20]
push 0x8b7764
push edx
mov dword [esp + 0x28], 0x866b10
call fcn.007ac5c6
mov ebx, dword [esp + 0x60]
cmp ebx, ebp
jne 0x582190
push ebp
push 0xf4240
push esi
push edi
call fcn.007ae380
sub edi, eax
sbb esi, edx
cmp edx, ebp
jl 0x582098
jg 0x582090
cmp eax, 0x7a120
jb 0x582098
add edi, 0xf4240
adc esi, ebp
push ebp
push 0x3e8
push esi
push edi
mov dword [esp + 0x30], ebx
call fcn.007ae380
push ebp
push 0x3e8
push esi
push edi
mov dword [esp + 0x50], eax
call fcn.007ae2d0
mov edi, edx
push ebp
mov esi, eax
push 0x3e8
push edi
push esi
call fcn.007ae380
push ebp
push 0x3e8
push edi
push esi
mov dword [esp + 0x4c], eax
call fcn.007ae2d0
mov edi, edx
push ebp
mov esi, eax
push 0x3c
push edi
push esi
call fcn.007ae380
push ebp
push 0x3c
push edi
push esi
mov dword [esp + 0x48], eax
call fcn.007ae2d0
mov edi, edx
push ebp
mov esi, eax
push 0x3c
push edi
push esi
call fcn.007ae380
push ebp
push 0x3c
push edi
push esi
mov dword [esp + 0x44], eax
call fcn.007ae2d0
mov edi, edx
push ebp
mov esi, eax
push 0x18
push edi
push esi
call fcn.007ae380
push ebp
push 0x18
push edi
push esi
mov dword [esp + 0x40], eax
call fcn.007ae2d0
mov ebx, eax
mov eax, 0x8421085
mov dword [esp + 0x14], edx
mul ebx
mov esi, ebx
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 4
cmp esi, 0x1d4b5
jae 0x5822aa
mov eax, esi
xor edx, edx
mov ecx, 0xc
div ecx
mov ecx, 0x9519c8
mov edi, eax
mov ebp, edx
push edi
call fcn.005827c0
mov edx, dword [eax]
lea eax, [ebp - 1]
mov dword [esp + 0x10], edx
lea edx, [edi + 1]
xor ecx, ecx
cmp eax, 0xa
mov dword [esp + 0x60], edx
ja case.default.0x582189
jmp dword [eax*4 + 0x5823a8]
cmp ebx, 1
jne 0x5821c6
push ebp
push 0x3e8
push esi
push edi
call fcn.007ae380
sub edi, eax
sbb esi, edx
cmp edx, ebp
jl 0x582098
jg 0x5821bb
cmp eax, 0x1f4
jb 0x582098
add edi, 0x3e8
jmp 0x582096
cmp ebx, 2
je 0x582098
mov al, byte [esp + 0x60]
push ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], al
call fcn.00404c40
mov edi, str.The_specified_time_precision_is_invalid
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.The_specified_time_precision_is_invalid
lea ecx, [esp + 0x18]
call fcn.004030a0
lea ecx, [esp + 0x10]
mov dword [esp + 0x54], 1
push ecx
lea ecx, [esp + 0x24]
call fcn.00582bd0
push 1
lea ecx, [esp + 0x14]
mov byte [esp + 0x58], 3
call fcn.00404c40
lea edx, [esp + 0x20]
push 0x8b7678
push edx
mov dword [esp + 0x28], 0x866b00
mov dword [esp + 0x5c], 0xffffffff
call fcn.007ac5c6
mov ecx, 0x1e
add ecx, 0x1f
add ecx, 0x1e
add ecx, 0x1f
add ecx, 0x1f
add ecx, 0x1e
add ecx, 0x1f
add ecx, 0x1e
add ecx, 0x1f
test dl, 3
je 0x58226b
add ecx, 0x1c
jmp case.0x582189.1
mov eax, edx
xor edx, edx
mov edi, 0x64
div edi
test edx, edx
jne 0x58228e
mov eax, dword [esp + 0x60]
mov edi, 0x190
div edi
test edx, edx
je 0x58228e
add ecx, 0x1c
jmp case.0x582189.1
add ecx, 0x1d
add ecx, 0x1f
mov eax, dword [esp + 0x10]
add ecx, eax
cmp ecx, ebx
ja 0x58232d
inc esi
xor ebp, ebp
jmp 0x582148
mov cl, byte [esp + 0x60]
push ebp
mov byte [esp + 0x14], cl
lea ecx, [esp + 0x14]
call fcn.00404c40
mov edi, str.DateTime:_datetime_to_unpack_is_too_large
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x14]
push ebx
call fcn.00404a50
test al, al
je 0x582300
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov edx, ecx
mov esi, str.DateTime:_datetime_to_unpack_is_too_large
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
call fcn.004049b0
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
mov dword [esp + 0x58], 4
call fcn.00582bd0
lea ecx, [esp + 0x20]
push 0x8b7764
push ecx
mov dword [esp + 0x28], 0x866b10
call fcn.007ac5c6
dec esi
xor edx, edx
mov eax, esi
mov ecx, 0xc
div ecx
push esi
mov ecx, 0x9519c8
mov edi, edx
inc eax
mov dword [esp + 0x28], eax
lea edx, [edi + 1]
mov dword [esp + 0x2c], edx
call fcn.00581df0
mov ecx, ebx
xor edx, edx
sub ecx, eax
lea eax, [ebx + 1]
inc ecx
sub esi, edi
mov dword [esp + 0x2c], ecx
mov ecx, 7
div ecx
push esi
mov ecx, 0x9519c8
mov dword [esp + 0x4c], edx
call fcn.00581df0
sub ebx, eax
mov eax, dword [esp + 0x5c]
inc ebx
mov ecx, 0xb
lea esi, [esp + 0x20]
mov edi, eax
mov dword [esp + 0x44], ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x48
ret 8