Function at 0x40eee6
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
xor esi, esi
xor ebp, ebp
push esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x1c], ebp
xor edi, edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40eecc
test al, 0x50
je 0x40eed9
push 0x7e
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x40f17b
cmp dword [0x73dce8], 0
jne 0x40ef98
push 0
push str.crypt32.dll
call fcn.0040edf0
add esp, 8
test eax, eax
mov dword [0x73dce8], eax
je 0x40ef98
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptMsgClose
push eax
call edi
mov ecx, dword [0x73dce8]
push str.CertCloseStore
push ecx
mov dword [0x73dcec], eax
call edi
mov edx, dword [0x73dce8]
push str.CertFreeCertificateContext
push edx
mov dword [0x73dcf0], eax
call edi
mov dword [0x73dcf4], eax
mov eax, dword [0x73dce8]
push str.CertFindCertificateInStore
push eax
call edi
mov ecx, dword [0x73dce8]
push str.CryptMsgGetParam
push ecx
mov dword [0x73dcf8], eax
call edi
mov edx, dword [0x73dce8]
push str.CryptQueryObject
push edx
mov dword [0x73dcfc], eax
call edi
mov dword [0x73dd00], eax
mov eax, dword [0x73dce8]
push str.CertGetNameStringA
push eax
call edi
mov ecx, dword [0x73dce8]
push str.CryptDecodeObject
push ecx
mov dword [0x73dd04], eax
call edi
mov dword [0x73dd08], eax
cmp dword [0x73dcec], 0
je 0x40f1bf
cmp dword [0x73dcf0], 0
je 0x40f1bf
cmp dword [0x73dcf4], 0
je 0x40f1bf
cmp dword [0x73dcf8], 0
je 0x40f1bf
cmp dword [0x73dcfc], 0
je 0x40f1bf
mov eax, dword [0x73dd00]
test eax, eax
je 0x40f1bf
cmp dword [0x73dd04], 0
je 0x40f1bf
cmp dword [0x73dd08], 0
je 0x40f1bf
push 0
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0xb4]
lea edx, [esp + 0x38]
push edx
push 0
push 2
push 0x400
push ecx
push 1
call eax
mov edi, eax
test edi, edi
jne 0x40f041
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40f17b
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push 0
push 0
push 6
push eax
call dword [0x73dcfc]
mov edi, eax
test edi, edi
jne 0x40f068
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40f17b
mov ecx, dword [esp + 0x1c]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
jne 0x40f086
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40f17b
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push esi
push 0
push 6
push eax
call dword [0x73dcfc]
mov edi, eax
test edi, edi
jne 0x40f0ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40f17b
mov ecx, dword [esi + 4]
mov dword [esp + 0x44], ecx
mov edx, dword [esi + 8]
push 0
mov dword [esp + 0x4c], edx
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x30]
push edx
push 0xb0000
push 0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x10]
push 0x10001
push eax
mov dword [esp + 0x4c], ecx
call dword [0x73dcf8]
mov ebx, eax
test ebx, ebx
jne 0x40f0f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40f17b
cmp dword [esp + 0xa4], 0
je 0x40f119
call fcn.0040eaf0
mov ecx, dword [esp + 0xa4]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40f17b
lea edx, [esp + 0x18]
push edx
call fcn.0040ec30
mov ebp, dword [esp + 0x1c]
add esp, 4
test eax, eax
je 0x40f17b
mov eax, dword [ebp + 4]
mov dword [esp + 0x44], eax
mov ecx, dword [ebp + 8]
push 0
mov dword [esp + 0x4c], ecx
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x30]
push ecx
push 0xb0000
push 0
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0x10]
push 0x10001
push edx
mov dword [esp + 0x4c], eax
call dword [0x73dcf8]
mov ebx, eax
test ebx, ebx
jne 0x40f176
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40f17b
mov edi, 1
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
call esi
push ebp
call esi
test ebx, ebx
je 0x40f192
push ebx
call dword [0x73dcf4]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40f1a3
push 0
push eax
call dword [0x73dcf0]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40f1b2
push eax
call dword [0x73dcec]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret