Function at 0x401960
Capabilities:
Check os version

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
mov ebx, edx
sub esp, 0x14c
mov dword [esp], 0x11
call sub.libgpg_error_0.dll_gpgrt_strusage
mov dword [esp], 0xd
mov edi, eax
call sub.libgpg_error_0.dll_gpgrt_strusage
cmp byte [ebx], 0
mov ecx, 0x4221ba
mov dword [esp], esi
mov edx, eax
mov eax, 0x422060
mov dword [esp + 0x1c], edi
cmove eax, ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], str.d073f26d8
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s_sGnuPG__s___s__n_s_s_n
call sub.libgpg_error_0.dll_gpgrt_fprintf
cmp byte [ebx], 0x23
je 0x401a6d
xor eax, eax
mov ecx, 0x24
lea edi, [esp + 0xb0]
mov dword [esp + 0xac], 0x94
rep stosd dword es:[edi], eax
lea eax, [esp + 0xac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, 0x422060
mov eax, 0x4221bf
mov edx, 0x4221bd
sub esp, 4
cmp byte [esp + 0xc0], 0
mov dword [esp + 8], ebx
cmove eax, ecx
cmove edx, ecx
mov dword [esp], esi
mov dword [esp + 4], str._sWindows__lu._lu_build__lu_s_s_s_n
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x20], edx
lea edx, [esp + 0xc0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc], eax
call sub.libgpg_error_0.dll_gpgrt_fprintf
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0040dfc0
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00408ca0
mov dword [esp], eax
mov edi, eax
call sub.msvcrt.dll_strlen
mov ebp, eax
cmp eax, 0xa
ja 0x401aa0
mov dword [esp], edi
call sub.libgcrypt_20.dll_gcry_free
jmp 0x4019cf
lea edx, [edi + eax - 0xa]
mov dword [esp + 4], str._GnuPG_bin
mov dword [esp], edx
mov dword [esp + 0x3c], edx
call fcn.00409110
mov edx, dword [esp + 0x3c]
test eax, eax
jne 0x401b34
lea eax, [edi + ebp - 9]
mov dword [eax], 0x53524556
mov dword [eax + 4], 0x4e4f49
mov dword [esp + 4], 0x4221ef
mov dword [esp], edi
call sub.libgpg_error_0.dll_gpgrt_fopen
mov ebp, eax
test eax, eax
je 0x401b51
mov dword [esp + 8], eax
lea eax, [esp + 0x48]
mov dword [esp + 4], 0x64
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fgets
test eax, eax
je 0x401b90
lea eax, [esp + 0x48]
mov dword [esp], eax
call fcn.004087f0
lea edx, [esp + 0x48]
jmp 0x401b20
cmp al, 0x5b
je 0x401b2f
add edx, 1
movzx eax, byte [edx]
test al, al
je 0x401b72
lea ecx, [eax - 0x20]
cmp cl, 0x5e
jbe 0x401b19
mov byte [edx], 0x3f
jmp 0x401b1d
mov dword [esp + 4], str.GnuPG_bin
mov dword [esp], edx
call fcn.00409110
test eax, eax
je 0x401ac0
jmp 0x401a93
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s_VERSION_file_not_found__n
mov dword [esp], esi
call sub.libgpg_error_0.dll_gpgrt_fprintf
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_fclose
jmp 0x401a93
lea eax, [esp + 0x48]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x422233
mov dword [esp], esi
call sub.libgpg_error_0.dll_gpgrt_fprintf
jmp 0x401b65
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s_VERSION_file_is_empty__n
mov dword [esp], esi
call sub.libgpg_error_0.dll_gpgrt_fprintf
jmp 0x401b65