Function at 0x14003a310
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
xor eax, eax
mov rbx, rcx
mov qword [rsp + 0xb8], rax
mov r14, rax
mov r15, rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x50], rax
mov r13, rax
mov rsi, rax
mov rbp, rax
mov r12, rax
cmp rcx, rax
jne 0x14003a373
lea eax, [r12 + 0x57]
jmp 0x14003a55a
lea rcx, str.crypt32.dll
call fcn.14003a0f4
mov rdi, rax
test rax, rax
jne 0x14003a39a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [rdi + 0x7e]
test eax, eax
cmove eax, ecx
jmp 0x14003a55a
call fcn.140038a44
lea rdx, str.CertGetNameStringA
mov rcx, rdi
mov dword [rsp + 0xb0], eax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertOpenStore
mov rcx, rdi
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertCloseStore
mov rcx, rdi
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertFreeCertificateContext
mov rcx, rdi
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, ecx
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x38], rcx
je 0x14003a53d
cmp qword [rsp + 0x40], rcx
je 0x14003a53d
cmp qword [rsp + 0x48], rcx
je 0x14003a53d
cmp rax, rcx
je 0x14003a53d
cmp dword [rsp + 0xb0], ecx
mov rcx, rdi
jne 0x14003a56b
lea rdx, str.CertVerifySubjectCertificateContext
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertFindCertificateInStore
mov rcx, rdi
mov qword [rsp + 0xb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptMsgGetParam
mov rcx, rdi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptMsgControl
mov rcx, rdi
mov r15, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertGetSubjectCertificateFromStore
mov rcx, rdi
mov qword [rsp + 0xc0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertFreeCertificateChain
mov rcx, rdi
mov qword [rsp + 0xc8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptMsgClose
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptQueryObject
mov rcx, rdi
mov qword [rsp + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptDecodeObject
mov rcx, rdi
mov qword [rsp + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, ecx
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0xb8], rcx
je 0x14003a53d
cmp r14, rcx
je 0x14003a53d
cmp r15, rcx
je 0x14003a53d
cmp qword [rsp + 0xc0], rcx
je 0x14003a53d
cmp qword [rsp + 0xc8], rcx
je 0x14003a53d
cmp qword [rsp + 0x20], rcx
je 0x14003a53d
cmp qword [rsp + 0x28], rcx
je 0x14003a53d
cmp qword [rsp + 0x30], rcx
je 0x14003a53d
cmp rax, rcx
jne 0x14003a5d4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rdi
mov ebx, eax
mov eax, 0x7f
test ebx, ebx
cmove ebx, eax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rdx, str.CertGetIntendedKeyUsage
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertGetEnhancedKeyUsage
mov rcx, rdi
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertEnumCertificatesInStore
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CertVerifyTimeValidity
mov rcx, rdi
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
test r13, r13
je 0x14003a53d
test rsi, rsi
je 0x14003a53d
test rbp, rbp
je 0x14003a53d
test rax, rax
je 0x14003a53d
xor edx, edx
mov r8d, 0x90
mov rcx, rbx
call sub.MSVCR90.dll_memset
cmp dword [rsp + 0xb0], 0
mov rax, qword [rsp + 0x38]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x40]
mov qword [rbx], rdi
mov qword [rbx + 0x40], rax
mov rax, qword [rsp + 0x48]
mov qword [rbx + 0x48], rax
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x18], rax
jne 0x14003a667
mov rax, qword [rsp + 0xb8]
mov qword [rbx + 0x20], r14
mov qword [rbx + 0x28], r15
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0xc0]
mov qword [rbx + 0x30], rax
mov rax, qword [rsp + 0xc8]
mov qword [rbx + 0x38], rax
mov rax, qword [rsp + 0x20]
mov qword [rbx + 0x50], rax
mov rax, qword [rsp + 0x28]
mov qword [rbx + 0x58], rax
mov rax, qword [rsp + 0x30]
mov qword [rbx + 0x60], rax
mov rax, qword [rsp + 0x50]
mov qword [rbx + 0x68], rax
jmp 0x14003a67d
mov qword [rbx + 0x70], r13
mov qword [rbx + 0x78], rsi
mov qword [rbx + 0x80], rbp
mov qword [rbx + 0x88], r12
xor eax, eax
jmp 0x14003a55a