Function at 0x1003cc98
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x3ec
push ebx
push esi
push edi
mov edi, ecx
xor esi, esi
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x68], edi
mov dword [ebp + 0x24], esi
call fcn.10001d04
mov dword [ebp + 0x54], 1
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0xffff
cmp eax, 5
jne 0x1003ccdf
mov dword [ebp + 0x64], 0x20
lea ecx, [ebp - 0x1a4]
call fcn.100258ed
lea ecx, [ebp - 0x380]
call fcn.100258ed
lea ecx, [ebp - 0x2fc]
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x60], esi
call fcn.10002e61
lea ecx, [ebp - 0x120]
call fcn.10002e61
lea ecx, [ebp - 0x21c]
call fcn.100258d2
push str.pem_key_
lea ecx, [ebp - 0x120]
call fcn.10001f35
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea ecx, [ebp - 0x120]
call fcn.10002a48
push 0x1004b4cc
lea ecx, [ebp - 0x120]
call fcn.10001f35
push dword [ebp + 0x74]
lea ecx, [ebp - 0x120]
call fcn.10002a48
push 1
push dword [ebp + 0x78]
lea ebx, [edi + 0x1634]
push dword [ebp + 0x74]
mov ecx, edi
push ebx
call fcn.100399cc
mov edi, 0x590
cmp eax, esi
je 0x1003cd8a
cmp eax, edi
jne 0x1003d01d
mov dword [ebp + 0x58], 1
mov ecx, dword [ebp + 0x68]
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push dword [ebp + 0x74]
call fcn.10039a97
cmp eax, edi
je 0x1003cdce
cmp dword [ebp + 0x28], esi
je 0x1003cdce
cmp eax, esi
jne 0x1003d01d
cmp dword [ebp + 0x60], esi
je 0x1003cdec
push str.Microsoft_Base_DSS_Cryptographic_Provider
lea ecx, [ebp - 0x2fc]
call fcn.10002759
push 2
pop edi
jmp 0x1003cdef
mov dword [ebp + 0x5c], 1
cmp dword [ebp + 0x58], esi
je 0x1003cdb4
push str.The_certificate_could_not_be_decoded
mov ecx, dword [ebp + 0x68]
call fcn.10022cff
jmp 0x1003d01d
mov edi, dword [ebp + 0x54]
cmp dword [ebp + 0x5c], esi
jne 0x1003cf66
cmp dword [ebp - 0x294], esi
je 0x1003ce12
mov ecx, dword [ebp - 0x298]
cmp ecx, esi
jne 0x1003ce14
lea ecx, [ebp - 0x2fc]
jmp 0x1003ce14
xor ecx, ecx
mov eax, dword [ebp - 0xbc]
cmp eax, esi
jne 0x1003ce24
lea eax, [ebp - 0x120]
push 1
push dword [ebp + 0x64]
push eax
push ecx
lea ecx, [ebp - 0x1a4]
call fcn.100259b5
test eax, eax
je 0x1003ce8a
push 0x20
pop edx
mov dword [ebp + 0x64], edx
cmp dword [ebp - 0x294], esi
je 0x1003ce5a
mov ecx, dword [ebp - 0x298]
cmp ecx, esi
jne 0x1003ce5c
lea ecx, [ebp - 0x2fc]
jmp 0x1003ce5c
xor ecx, ecx
mov eax, dword [ebp - 0xbc]
cmp eax, esi
jne 0x1003ce6c
lea eax, [ebp - 0x120]
push 1
push edx
push eax
push ecx
lea ecx, [ebp - 0x1a4]
call fcn.100259b5
test eax, eax
je 0x1003ce8a
push str.Could_not_acquire_provider
jmp 0x1003cddf
mov eax, dword [ebp + 0x24]
cmp eax, esi
jne 0x1003ce94
lea eax, [ebp - 0x40]
lea ecx, [ebp + 0x4c]
push ecx
push 1
push esi
push dword [ebp + 0x28]
push eax
push dword [ebp - 0x1a0]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x1003ced4
mov edi, dword [ebp + 0x68]
mov eax, dword [edi]
lea ecx, [ebp - 0x40]
push ecx
push dword [ebp + 0x60]
mov ecx, edi
call dword [eax + 0x2c]
test eax, eax
je 0x1003d01d
push str.Could_not_import_key
mov ecx, edi
jmp 0x1003cde2
cmp dword [ebp + 0x58], esi
je 0x1003cf04
mov ecx, dword [ebp + 0x68]
push ebx
push esi
push dword [ebp - 0x194]
push dword [ebp - 0x1a0]
call fcn.1003bf27
test eax, eax
jne 0x1003d01d
mov eax, dword [ebp + 0x68]
mov dword [eax + 0x1638], 1
push 0x1c
lea eax, [ebp + 0x30]
push esi
push eax
call fcn.1003e4bd
add esp, 0xc
push esi
lea ecx, [ebp - 0x120]
call fcn.100076fd
push esi
lea ecx, [ebp - 0x2fc]
mov dword [ebp + 0x30], eax
call fcn.100076fd
mov ecx, dword [ebx]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x3c], eax
mov eax, dword [0x10052360]
mov dword [ebp + 0x48], edi
cmp eax, esi
je 0x1003cf5c
lea edx, [ebp + 0x30]
push edx
push esi
push 2
push ecx
call eax
cmp eax, esi
jne 0x1003cf66
push str.Cant_set_key_provider_info
jmp 0x1003cddf
cmp dword [ebx], esi
jne 0x1003cf73
cmp dword [ebp + 0x5c], esi
jne 0x1003cdda
mov ecx, dword [ebp + 0x68]
push 0x10049784
add ecx, 0x160c
call fcn.1000277f
mov eax, dword [0x100522fc]
cmp eax, esi
jne 0x1003cf93
xor edi, edi
jmp 0x1003cf9d
push esi
push esi
push esi
push esi
push 2
call eax
mov edi, eax
mov eax, dword [0x10052368]
mov ecx, dword [ebx]
cmp eax, esi
je 0x1003cfb3
push esi
push 3
push ecx
push edi
call eax
cmp eax, esi
jne 0x1003cfba
push str.Cant_add_certificate_to_store
jmp 0x1003d004
push 0x2ee0
lea ecx, [ebp - 0x21c]
call fcn.1001ea73
test eax, eax
jne 0x1003d00c
mov eax, dword [ebp - 0x1ac]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp - 0x1a8]
mov dword [ebp + 0x54], eax
mov eax, dword [0x10052358]
cmp eax, esi
je 0x1003cfff
push 4
push 0x10048f94
lea ecx, [ebp + 0x50]
push ecx
push edi
call eax
cmp eax, esi
jne 0x1003d09f
push str.Cant_export_certificate
mov ecx, dword [ebp + 0x68]
call fcn.10022cff
cmp edi, esi
je 0x1003d01d
mov eax, dword [0x100522e8]
cmp eax, esi
je 0x1003d01d
push esi
push edi
call eax
mov eax, dword [ebp - 0xbc]
cmp eax, esi
jne 0x1003d02d
lea eax, [ebp - 0x120]
mov ecx, dword [ebp + 0x64]
push 1
or ecx, 0x10
push ecx
push eax
push esi
lea ecx, [ebp - 0x380]
call fcn.100259b5
lea ecx, [ebp - 0x21c]
call fcn.10001d04
lea ecx, [ebp - 0xb0]
call fcn.10001d04
lea ecx, [ebp - 0x120]
call fcn.10001d04
lea ecx, [ebp - 0x28c]
call fcn.10001d04
lea ecx, [ebp - 0x2fc]
call fcn.10001d04
lea ecx, [ebp - 0x380]
call fcn.10025919
lea ecx, [ebp - 0x1a4]
call fcn.10025919
lea ecx, [ebp - 0x40]
call fcn.10001d04
xor eax, eax
jmp 0x1003d144
mov eax, dword [0x100522e8]
cmp eax, esi
je 0x1003d0ac
push esi
push edi
call eax
mov eax, dword [ebp - 0xbc]
cmp eax, esi
jne 0x1003d0bc
lea eax, [ebp - 0x120]
mov ecx, dword [ebp + 0x64]
push 1
or ecx, 0x10
push ecx
push eax
push esi
lea ecx, [ebp - 0x380]
call fcn.100259b5
mov ecx, dword [ebp + 0x68]
push 0x10048f90
push dword [ebp - 0x1ac]
push dword [ebp - 0x1a8]
call fcn.10027873
lea ecx, [ebp - 0x21c]
mov esi, eax
call fcn.10001d04
lea ecx, [ebp - 0xb0]
call fcn.10001d04
lea ecx, [ebp - 0x120]
call fcn.10001d04
lea ecx, [ebp - 0x28c]
call fcn.10001d04
lea ecx, [ebp - 0x2fc]
call fcn.10001d04
lea ecx, [ebp - 0x380]
call fcn.10025919
lea ecx, [ebp - 0x1a4]
call fcn.10025919
lea ecx, [ebp - 0x40]
call fcn.10001d04
mov eax, esi
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc