Function at 0x40c450
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
push esi
xor esi, esi
push edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
cmp dword [0x6234a0], esi
je 0x40c666
cmp dword [0x6234a4], esi
je 0x40c666
mov edi, dword [0x62349c]
test edi, edi
je 0x40c666
push 0x30
xorps xmm0, xmm0
lea eax, [esp + 0x64]
push esi
movq qword [esp + 0x5c], xmm0
push eax
mov dword [esp + 0x60], 0x5ec7f4
call fcn.005869c0
add esp, 0xc
mov dword [esp + 0x60], 0x30
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
push eax
push esi
push 0x10040
push edi
call dword [sym.imp.CRYPT32.dll_CryptAcquireCertificatePrivateKey]
test eax, eax
je 0x40c614
mov ecx, dword [0x62349c]
mov eax, dword [esp + 0x10]
movq xmm0, qword [esp + 0x54]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x64], eax
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x6c], 1
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x90], xmm0
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
movaps xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0xa0], xmm0
movaps xmm0, xmmword [esp + 0x80]
movaps xmmword [esp + 0xb0], xmm0
xorps xmm0, xmm0
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x90]
movaps xmmword [esp + 0x20], xmm0
push 0x90
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x50]
push esi
movq qword [esp + 0x38], xmm0
mov dword [esp + 0x38], eax
lea eax, [esp + 0x28]
push eax
push 2
push esi
push 0x10001
mov dword [esp + 0x68], ecx
mov dword [esp + 0x38], 0x1c
mov dword [esp + 0x3c], 1
mov dword [esp + 0x44], 1
mov dword [esp + 0x50], esi
call dword [sym.imp.CRYPT32.dll_CryptMsgCalculateEncodedLength]
mov dword [esp + 0x14], eax
test eax, eax
je 0x40c614
push eax
call fcn.0058d200
mov ecx, dword [ebp + 8]
add esp, 4
mov dword [ecx], eax
test eax, eax
je 0x40c670
push esi
push esi
lea eax, [esp + 0x28]
push eax
push 2
push esi
push 0x10001
call dword [sym.imp.CRYPT32.dll_CryptMsgOpenToEncode]
push 1
push 0x90
mov edi, eax
push 0x6247a0
push edi
call dword [sym.imp.CRYPT32.dll_CryptMsgUpdate]
test eax, eax
je 0x40c605
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebp + 8]
push dword [eax]
push esi
push 2
push edi
call dword [sym.imp.CRYPT32.dll_CryptMsgGetParam]
test eax, eax
cmovne esi, dword [esp + 0x14]
test edi, edi
je 0x40c610
push edi
call dword [sym.imp.CRYPT32.dll_CryptMsgClose]
test esi, esi
jne 0x40c62c
mov edi, dword [ebp + 8]
mov eax, dword [edi]
test eax, eax
je 0x40c62c
push eax
call fcn.0058bf82
add esp, 4
mov dword [edi], 0
cmp dword [esp + 0x18], 0
je 0x40c65c
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40c65c
cmp dword [esp + 0x1c], 0xffffffff
jne 0x40c653
push eax
call dword [sym.imp.ncrypt.dll_NCryptFreeObject]
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x18d
mov edx, 0x5ec80c
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x18d
push 0x5ec828
push 0x5ec844
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
int3