Function at 0x401a70
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41c901
mov eax, dword fs:[0]
push eax
sub esp, 0x33c
mov eax, dword [0x425a8c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.Wintrust.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x1fe
mov dword [ebp - 0x234], eax
call fcn.004029fd
push 0x1fe
call fcn.004029fd
push 0x1fe
call fcn.004029fd
push 0x1fe
call fcn.004029fd
mov ebx, eax
push 0x1fe
mov dword [ebp - 0x244], ebx
call fcn.004029fd
add esp, 0x14
push str.DgiVecp.cat
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x23c], eax
call fcn.004019b0
mov edx, dword [ebp - 0x224]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov dword [ebp - 4], 0
or ecx, eax
jge 0x401b31
push 0
lea ecx, [ebp - 0x224]
call fcn.00401640
mov edx, dword [ebp - 0x224]
push 3
lea eax, [ebp - 0x344]
push edx
lea ecx, [ebp - 0x348]
mov dword [ebp - 0x348], eax
call fcn.00401580
mov eax, dword [ebp - 0x348]
lea ecx, [ebp - 0x344]
cmp eax, ecx
je 0x401b64
push eax
call fcn.0040cb74
add esp, 4
mov eax, dword [ebp - 0x224]
mov esi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or ecx, edx
jge 0x401b90
push esi
lea ecx, [ebp - 0x224]
call fcn.00401640
mov eax, dword [ebp - 0x224]
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0
mov edi, eax
call esi
push eax
push ebx
push 0xffffffffffffffff
push edi
push 0
push 0
call esi
push 0x100
lea edx, [ebp - 0x110]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x110]
push 0x5c
push eax
call fcn.0040c990
inc eax
mov byte [eax], 0
lea eax, [ebp - 0x110]
add esp, 8
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x401be0
mov ecx, dword [str.DgiVecp.cat]
mov edx, dword [0x41e4dc]
mov dword [eax], ecx
mov ecx, dword [0x41e4e0]
mov dword [eax + 4], edx
push 0x1fe
mov dword [eax + 8], ecx
call fcn.004029fd
add esp, 4
lea edx, [ebp - 0x110]
mov ebx, eax
push edx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x240], ebx
call fcn.004019b0
mov edx, dword [ebp - 0x22c]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov byte [ebp - 4], 1
or ecx, eax
jge 0x401c55
push 0
lea ecx, [ebp - 0x22c]
call fcn.00401640
mov edx, dword [ebp - 0x22c]
push 3
lea eax, [ebp - 0x344]
push edx
lea ecx, [ebp - 0x348]
mov dword [ebp - 0x348], eax
call fcn.00401580
mov eax, dword [ebp - 0x348]
lea ecx, [ebp - 0x344]
cmp eax, ecx
je 0x401c88
push eax
call fcn.0040cb74
add esp, 4
mov eax, dword [ebp - 0x22c]
mov edi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, edi
or ecx, edx
jge 0x401cb4
push edi
lea ecx, [ebp - 0x22c]
call fcn.00401640
mov eax, dword [ebp - 0x22c]
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0
mov edi, eax
call esi
push eax
push ebx
push 0xffffffffffffffff
push edi
push 0
push 0
call esi
push 0x100
lea edx, [ebp - 0x210]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x210]
push 0x5c
push eax
call fcn.0040c990
inc eax
mov byte [eax], 0
lea eax, [ebp - 0x210]
add esp, 8
dec eax
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x401d00
mov ecx, dword [str.ssport.cat]
mov edx, dword [0x41e4d0]
mov dword [eax], ecx
mov cx, word [0x41e4d4]
mov dword [eax + 4], edx
mov dl, byte [0x41e4d6]
mov word [eax + 8], cx
mov byte [eax + 0xa], dl
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x228]
call fcn.004019b0
mov edx, dword [ebp - 0x228]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov byte [ebp - 4], 2
or ecx, eax
jge 0x401d6b
push 0
lea ecx, [ebp - 0x228]
call fcn.00401640
mov edx, dword [ebp - 0x228]
lea ecx, [ebp - 0x344]
push 3
mov dword [ebp - 0x348], ecx
push edx
lea ecx, [ebp - 0x348]
call fcn.00401580
mov eax, dword [ebp - 0x348]
lea edx, [ebp - 0x344]
cmp eax, edx
je 0x401d9e
push eax
call fcn.0040cb74
add esp, 4
mov eax, dword [ebp - 0x228]
mov edi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, edi
or ecx, edx
jge 0x401dca
push edi
lea ecx, [ebp - 0x228]
call fcn.00401640
mov eax, dword [ebp - 0x228]
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0
mov edi, eax
call esi
push eax
mov eax, dword [ebp - 0x23c]
push eax
push 0xffffffffffffffff
push edi
push 0
push 0
call esi
mov eax, dword [ebp - 0x234]
mov ecx, 0x38ee
mov edx, 0x11d1
mov dword [ebp - 0x220], 0xf750e6c3
mov word [ebp - 0x21c], cx
mov word [ebp - 0x21a], dx
mov byte [ebp - 0x218], 0x85
mov byte [ebp - 0x217], 0xe5
mov byte [ebp - 0x216], 0
mov byte [ebp - 0x215], 0xc0
mov byte [ebp - 0x214], 0x4f
mov byte [ebp - 0x213], 0xc2
mov byte [ebp - 0x212], 0x95
mov byte [ebp - 0x211], 0xee
test eax, eax
je 0x401f1c
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptCATAdminAcquireContext
push eax
call esi
mov ebx, eax
mov eax, dword [ebp - 0x234]
push str.CryptCATAdminAddCatalog
push eax
call esi
mov ecx, dword [ebp - 0x234]
push str.CryptCATAdminReleaseCatalogContext
push ecx
mov edi, eax
call esi
mov edx, dword [ebp - 0x234]
push str.CryptCATAdminRemoveCatalog
push edx
mov dword [ebp - 0x238], eax
call esi
mov esi, eax
push 0
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x230]
push ecx
call ebx
test eax, eax
je 0x401f1c
mov ebx, dword [ebp - 0x240]
mov edx, dword [ebp - 0x230]
push 0
push ebx
push edx
call esi
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x230]
push 0
push eax
push ebx
push ecx
call edi
mov edx, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x230]
push 0
push 0
push edx
push eax
call edi
mov esi, eax
test esi, esi
jne 0x401f01
push str.Fail_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 0x230]
push esi
push esi
push ecx
jmp 0x401f16
push str.Success_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0x230]
push 0
push esi
push edx
call dword [ebp - 0x238]
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x224]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040ca0e
mov esp, ebp
pop ebp
ret