Function at 0x500ea0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x138
mov esi, esp
mov dword [esi + 0x120], ebp
mov dword [esi + 0x124], esp
mov dword [esi + 0x130], 0xffffffff
lea eax, [esi + 0x128]
mov dword [esi + 0x12c], 0x594450
mov edx, dword fs:[0]
mov dword [esi + 0x128], edx
mov dword fs:[0], eax
mov eax, dword [0x5d16d8]
mov edi, dword [0x5d16dc]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
mov edx, 0x7ac5d93f
mov eax, 0x622c1611
cmove eax, edx
sete bl
cmp edi, 0xa
mov edi, 0x622c1611
cmovge eax, edi
setl bh
setl byte [esi + 0x30]
xor bh, bl
cmovne eax, edx
mov dword [esi], ecx
mov ecx, dword [ecx + 0x24]
mov edi, 0x7d00ba45
nop word [eax + eax]
cmp edi, 0x7ac5d93e
jg 0x500f60
cmp edi, 0xebbba1c5
je 0x500fa1
cmp edi, 0x622c1611
jne 0x500f40
mov edi, 0xebbba1c5
jmp 0x500f40
cmp edi, 0x7ac5d93f
je 0x500fa5
cmp edi, 0x7d00ba45
jne 0x500f40
movzx edx, byte [esi + 0x10]
mov bh, byte [esi + 0x30]
mov bl, dl
xor bl, bh
mov dword [esi + 4], ecx
mov ecx, 0x622c1611
mov edi, 0xebbba1c5
cmovne ecx, edi
test bh, bh
mov edi, ecx
mov ebx, 0xebbba1c5
cmovne edi, ebx
test dl, dl
cmove edi, ecx
mov ecx, dword [esi + 4]
jmp 0x500f40
mov edi, eax
jmp 0x500f40
test ecx, ecx
setne byte [esi + 0xa8]
movzx eax, byte [esi + 0xa8]
cmp al, 1
jne 0x501052
mov dword [esi + 4], esp
push eax
sub esp, 0x2c
mov edi, esp
mov ebx, dword [esi]
movzx eax, byte [ebx + 0x98]
mov byte [esi + 0xc], al
lea ecx, [edi + 4]
mov dword [esi + 0x130], 0xffffffff
push ebx
call fcn.00500bf0
mov eax, dword [ebp + 0xc]
mov dword [edi], eax
movzx eax, byte [esi + 0xc]
mov byte [edi + 0x2c], al
lea edi, [esi + 0xa8]
mov ecx, edi
call fcn.005103e0
mov esp, dword [esi + 4]
mov dword [esi + 0x130], 0
mov ecx, ebx
push edi
call fcn.00510860
mov eax, dword [0x5d16e0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x5d16e4], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x501192
or cl, al
je 0x501192
nop dword [eax + eax]
jmp 0x501050
mov eax, dword [0x5cf4b8]
mov edx, dword [0x5cf4bc]
lea ecx, [eax + 1]
imul ecx, eax
mov ebx, ecx
xor ebx, 0xfffffffe
test ebx, ecx
sete al
cmp edx, 0xa
setl ah
xor ah, al
mov eax, 0x11f1fb1a
mov edi, 0x8f0f2ca8
cmovne edi, eax
test ebx, ecx
mov ecx, dword [esi]
movzx ecx, byte [ecx + 0x98]
mov ebx, dword [ebp + 0xc]
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
sete byte [esi + 0x10]
mov dword [esi + 0x3c], 0
cmovne eax, edi
cmp edx, 0xa
setl byte [esi + 0xa8]
cmovge eax, edi
mov edi, 0x13d3b53a
nop word cs:[eax + eax]
cmp edi, 0x13d3b539
jg 0x5010f0
cmp edi, 0x8f0f2ca8
je 0x50112e
cmp edi, 0x11f1fb1a
jne 0x5010d0
jmp 0x501139
cmp edi, 0x1a1c1d98
je 0x501135
cmp edi, 0x13d3b53a
jne 0x5010d0
mov ch, byte [esi + 0x10]
movzx ebx, byte [esi + 0xa8]
mov bh, ch
xor bh, bl
mov edx, 0x8f0f2ca8
mov edi, 0x1a1c1d98
cmovne edx, edi
test bl, bl
mov edi, edx
mov ebx, 0x1a1c1d98
cmovne edi, ebx
test ch, ch
cmove edi, edx
jmp 0x5010d0
mov edi, 0x1a1c1d98
jmp 0x5010d0
mov edi, eax
jmp 0x5010d0
mov dword [esi + 0x40], 0
mov byte [esi + 0x44], 0
mov byte [esi + 0x45], cl
mov dword [esi + 0x130], 5
lea eax, [esi + 0x30]
mov ecx, dword [esi]
push eax
call fcn.005139b0
mov eax, dword [0x5d16e0]
mov ecx, dword [0x5d16e4]
lea edi, [eax + 1]
imul edi, eax
mov edx, edi
xor edx, 0xfffffffe
and edx, edi
sete bl
setne al
cmp ecx, 0xa
setl bh
setge ah
cmp bh, bl
jne 0x5011e2
or ah, al
je 0x5011e2
nop dword [eax + eax]
jmp 0x501190
cmp byte [ebp + 8], 0
je 0x5011b3
mov eax, dword [esi]
lea ecx, [eax + 0x30]
mov dword [esi + 4], ecx
call fcn.00506440
mov ecx, dword [esi]
mov dword [ecx + 0x28], eax
cmp eax, 0xf
jne 0x501352
mov eax, dword [0x5d16e0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5d16e4], 0xa
setl cl
test cl, al
jne 0x501232
xor cl, al
jne 0x501232
nop dword [eax + eax]
jmp 0x5011e0
cmp byte [ebp + 8], 0
je 0x501541
mov eax, dword [esi]
lea ecx, [eax + 0x30]
mov dword [esi + 0xc], ecx
call fcn.00506440
mov edi, eax
mov eax, dword [esi]
mov dword [eax + 0x28], edi
mov eax, dword [0x5d16e0]
mov ecx, dword [0x5d16e4]
lea ebx, [eax + 1]
imul ebx, eax
mov edx, ebx
and edx, 1
sete byte [esi + 4]
cmp ecx, 0xa
setge al
setl ah
xor ah, byte [esi + 4]
jne 0x501289
or al, bl
test al, 1
je 0x501289
nop
jmp 0x501230
cmp byte [esi + 0xdc], 0
je 0x5013b2
mov edi, esp
push eax
sub esp, 0xc
mov eax, esp
mov byte [eax], 9
mov dword [eax + 8], 0
mov eax, dword [0x5d16e0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5d16e4], 0xa
setl cl
test cl, al
mov ebx, dword [ebp + 0xc]
jne 0x501820
xor cl, al
je 0x501851
jmp 0x501820
cmp edi, 0xf
je 0x501541
lea ecx, [esi + 0x68]
push 0x5bd3e8
call fcn.00420e10
mov dword [esi + 0x130], 6
lea eax, [esi + 0x10]
mov ecx, dword [esi]
lea edx, [esi + 0x68]
push edx
push 0xf
push eax
call fcn.00512a70
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x88], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x80], xmm0
mov dword [esi + 0x130], 7
lea eax, [esi + 0x80]
lea ecx, [esi + 0xa8]
push 0
lea edx, [esi + 0x10]
push edx
push eax
push 0x65
push ecx
call fcn.00512790
add esp, 0x14
mov dword [esi + 0x130], 8
lea eax, [esi + 0x50]
mov ecx, dword [esi + 0xc]
push eax
call fcn.00513040
mov ecx, dword [0x5d16e0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5d16e4], 0xa
setl ch
setge cl
cmp ch, dl
mov edx, dword [esi]
jne 0x5014b2
or cl, al
test cl, 1
je 0x5014b2
nop word cs:[eax + eax]
jmp 0x501350
lea ecx, [esi + 0x50]
push 0x5bd3e8
call fcn.00420e10
mov dword [esi + 0x130], 1
lea eax, [esi + 0x68]
mov ecx, dword [esi]
lea edx, [esi + 0x50]
push edx
push 0xf
push eax
call fcn.00512a70
mov eax, dword [0x5d16e0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x5d16e4], 0xa
setl cl
test cl, al
jne 0x501429
xor cl, al
jne 0x501429
nop dword [eax]
jmp 0x5013b0
mov ebx, dword [ebp + 0xc]
cmp byte [ebx], 9
jne 0x50185c
nop
mov edi, esp
push eax
sub esp, 0xc
mov eax, esp
mov byte [eax], 0
mov dword [eax + 8], 0
mov ecx, ebx
call fcn.00513530
mov esp, edi
mov ecx, dword [0x5d16e0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5d16e4], 0xa
setge cl
setl ch
xor ch, dl
jne 0x50185c
or cl, al
test cl, 1
je 0x50185c
mov edi, esp
push eax
sub esp, 0xc
mov eax, esp
mov byte [eax], 0
mov dword [eax + 8], 0
mov ecx, ebx
call fcn.00513530
mov esp, edi
jmp 0x5013c0
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0xa0], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x98], xmm0
mov dword [esi + 0x130], 2
lea eax, [esi + 0x98]
lea ecx, [esi + 0x10]
push 0
lea edx, [esi + 0x68]
push edx
push eax
push 0x65
push ecx
call fcn.00512790
add esp, 0x14
mov dword [esi + 0x130], 3
lea eax, [esi + 0x80]
mov ecx, dword [esi + 4]
push eax
call fcn.00513040
mov ecx, dword [0x5d16e0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x5d16e4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x501755
or cl, al
test cl, 1
je 0x501755
jmp 0x5014b0
add edx, 0x44
mov eax, dword [edx]
mov dword [esi + 0x130], 9
lea ecx, [esi + 0x30]
lea edx, [esi + 0xa8]
push edx
lea edx, [esi + 0x50]
push edx
push eax
call fcn.00515780
lea ecx, [esi + 0x50]
call fcn.0040ed30
mov dword [esi + 0xa8], vtable.nlohmann::json_abi_v3_11_2::detail::exception.0
mov dword [esi + 0xb8], vtable.std::exception.0
lea eax, [esi + 0xbc]
push eax
call fcn.005978bc
add esp, 4
mov dword [esi + 0xa8], vtable.std::exception.0
lea eax, [esi + 0xac]
push eax
call fcn.005978bc
add esp, 4
lea ecx, [esi + 0x10]
call fcn.0040ed30
lea ecx, [esi + 0x68]
call fcn.0040ed30
mov eax, dword [0x5d16e0]
mov ecx, dword [0x5d16e4]
lea edi, [eax + 1]
imul edi, eax
mov edx, edi
xor edx, 0xfffffffe
and edx, edi
test edx, edx
setne al
sete dl
cmp ecx, 0xa
setge cl
setl ah
xor ah, dl
jne 0x501562
or cl, al
je 0x501562
nop word [eax + eax]
jmp 0x501560
cmp byte [esi + 0x44], 0
je 0x50166c
mov edi, esp
push eax
sub esp, 0xc
mov eax, esp
mov byte [eax], 9
mov dword [eax + 8], 0
mov ecx, dword [ebp + 0xc]
call fcn.00513530
mov esp, edi
mov eax, dword [0x5d16e8]
mov ecx, dword [0x5d16ec]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0xa8]
mov eax, 0x31e8b23c
mov edi, 0x9d4e7dd5
mov ebx, 0xc719d9ad
nop
cmp eax, 0xc9d07752
jg 0x5015e0
cmp eax, 0x9d4e7dd5
je 0x501618
cmp eax, 0xc719d9ad
jne 0x5015c0
jmp 0x501867
cmp eax, 0xc9d07753
je 0x50165a
cmp eax, 0x31e8b23c
jne 0x5015c0
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0xa8]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0xc9d07753
cmovne eax, edi
test cl, cl
mov ecx, 0xc9d07753
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x5015c0
lea ecx, [esi + 0x34]
call fcn.00515ba0
mov eax, dword [0x5d16e8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xc9d07753
cmove eax, ebx
cmp dword [0x5d16ec], 0xa
mov edx, 0xc9d07753
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, ebx
jmp 0x5015c0
lea ecx, [esi + 0x34]
call fcn.00515ba0
mov eax, 0x9d4e7dd5
jmp 0x5015c0
mov eax, dword [0x5d16e8]
mov ecx, dword [0x5d16ec]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x10]
cmp ecx, 0xa
setl byte [esi + 0xa8]
mov eax, 0x31e8b23c
mov edi, 0x9d4e7dd5
nop dword [eax]
cmp eax, 0xc9d07752
jg 0x5016c0
cmp eax, 0x9d4e7dd5
je 0x5016f3
cmp eax, 0xc719d9ad
jne 0x5016a0
jmp 0x501867
cmp eax, 0xc9d07753
je 0x501743
cmp eax, 0x31e8b23c
jne 0x5016a0
movzx ecx, byte [esi + 0x10]
movzx eax, byte [esi + 0xa8]
mov edx, ecx
xor dl, al
mov edx, 0xc9d07753
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x5016a0
lea ecx, [esi + 0x34]
call fcn.00515ba0
mov edx, dword [0x5d16e8]
mov ecx, dword [0x5d16ec]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xc9d07753
mov edi, 0xc719d9ad
cmovne ebx, edi
test edx, eax
mov eax, ebx
cmove eax, edi
mov edi, 0x9d4e7dd5
cmp ecx, 0xa
cmovge eax, ebx
jmp 0x5016a0
lea ecx, [esi + 0x34]
call fcn.00515ba0
mov eax, 0x9d4e7dd5
jmp 0x5016a0
mov byte [esi + 0xdc], 1
movzx eax, byte [esi + 0x108]
mov byte [esi + 0xb], al
mov ecx, 0x401761a2
mov eax, 0xbd5df94c
cmp ecx, 0xbd5df94c
je 0x5017a0
cmp ecx, 0x401761a2
je 0x50178a
cmp ecx, 0x90778ea6
jne 0x501770
jmp 0x5017ed
movzx ecx, byte [esi + 0xb]
not cl
or cl, 0xfe
cmp cl, 0xff
mov ecx, 0x90778ea6
cmove ecx, eax
jmp 0x501770
lea ecx, [esi + 0x80]
call fcn.0040ed30
mov dword [esi + 0x10], vtable.nlohmann::json_abi_v3_11_2::detail::exception.0
mov dword [esi + 0x20], vtable.std::exception.0
lea eax, [esi + 0x24]
push eax
call fcn.005978bc
add esp, 4
mov dword [esi + 0x10], vtable.std::exception.0
lea eax, [esi + 0x14]
push eax
call fcn.005978bc
add esp, 4
lea ecx, [esi + 0x68]
call fcn.0040ed30
lea ecx, [esi + 0x50]
call fcn.0040ed30
jmp 0x5011b3
lea edi, [esi + 0x30]
mov ecx, edi
lea eax, [esi + 0x10]
push eax
call fcn.005028d0
mov dword [esi + 0x30], vtable.nlohmann::json_abi_v3_11_2::detail::parse_error.0
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x130], 4
push 0x5c3afc
push edi
call fcn.00597280
add esp, 8
mov ecx, ebx
call fcn.00513530
mov esp, edi
mov eax, dword [0x5d16e0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5d16e4], 0xa
setl cl
test cl, al
jne 0x50185c
xor cl, al
jne 0x50185c
mov ecx, ebx
call fcn.00513530
mov esp, edi
jmp 0x501820
lea ecx, [esi + 0xa8]
call fcn.005137e0
mov eax, dword [0x5d16e0]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x5d16e4], 0xa
setl cl
test cl, al
jne 0x501892
xor cl, al
jne 0x501892
nop
jmp 0x501890
mov eax, dword [esi + 0x128]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8