Function at 0x3661111c
Capabilities:
Hash data via wincrypt
Hash data with md5
Import public key
Initialize hashing via wincrypt

Disassembly:
mov eax, 0x366360b2
call fcn.3662ab98
mov eax, 0x2504
call fcn.3662acc0
mov eax, dword [0x3663a11c]
push ebx
xor ebx, ebx
push esi
mov dword [ebp - 0x10], eax
push edi
mov dword [ebp - 0x23f0], ebx
mov dword [ebp - 0x23ec], ebx
mov dword [ebp - 0x23e8], ebx
mov dword [ebp - 0x23e4], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24ac], ebx
mov dword [ebp - 0x24a8], ebx
mov dword [ebp - 0x24a4], ebx
mov dword [ebp - 0x24a0], ebx
mov dword [ebp - 0x24bc], ebx
mov dword [ebp - 0x24b8], ebx
mov dword [ebp - 0x24b4], ebx
mov dword [ebp - 0x24b0], ebx
mov dword [ebp - 0x2474], ebx
mov dword [ebp - 0x2470], ebx
mov dword [ebp - 0x246c], ebx
mov dword [ebp - 0x2468], ebx
push 0x17
pop ecx
xor eax, eax
lea edi, [ebp - 0x74]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x74], 0x5c
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2510], ebx
lea edi, [ebp - 0x250c]
stosd dword es:[edi], eax
push 0x40
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 4
stosd dword es:[edi], eax
mov dword [ebp - 0x240c], ebx
mov dword [ebp - 0x2440], ebx
mov dword [ebp - 0x23d4], ebx
mov dword [ebp - 0x2444], ebx
mov dword [ebp - 0x2408], ebx
mov dword [ebp - 0x2418], ebx
mov dword [ebp - 0x2420], ebx
mov dword [ebp - 0x23d8], ebx
mov dword [ebp - 0x23b8], ebx
call fcn.36623c98
mov eax, 0x3663a5e0
mov dword [ebp - 0x2410], ebx
mov dword [ebp - 0x23b0], ebx
mov dword [ebp - 0x245c], ebx
mov dword [ebp - 0x23ac], ebx
mov dword [ebp - 0x23f4], ebx
mov dword [ebp - 0x2414], ebx
mov dword [ebp - 0x243c], ebx
mov dword [ebp - 0x247c], ebx
mov dword [ebp - 0x2478], ebx
mov dword [ebp - 0x2480], eax
mov dword [ebp - 0x24c8], ebx
mov dword [ebp - 0x24c4], ebx
mov dword [ebp - 0x24cc], eax
mov dword [ebp - 0x2500], ebx
mov dword [ebp - 0x24fc], ebx
mov dword [ebp - 0x2504], eax
mov dword [ebp - 0x24f4], ebx
mov dword [ebp - 0x24f0], ebx
mov dword [ebp - 0x24f8], eax
mov edx, dword [ebp + 0x10]
push 6
pop ecx
push ebx
push ebx
lea edi, [edx + 0xc]
push 0xffffffffffffffff
xor eax, eax
mov dword [ebp - 0x2464], edi
rep stosd dword es:[edi], eax
push dword [edx + 8]
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 1
push ebx
mov byte [ebp - 4], 9
mov dword [ebp - 0x23d0], ebx
call edi
mov esi, eax
lea eax, [esi + esi + 2]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x241c], eax
jne 0x366112d4
mov esi, 0x8007000e
jmp 0x366124f4
mov eax, dword [ebp + 0x10]
inc esi
push esi
push dword [ebp - 0x241c]
push 0xffffffffffffffff
push dword [eax + 8]
push 1
push ebx
call edi
mov eax, dword [ebp + 0x10]
push 1
push dword [eax + 8]
push dword [ebp + 8]
call fcn.36617c5e
mov esi, eax
cmp esi, ebx
je 0x36611308
cmp esi, 2
jne 0x366124f4
push 0xff
lea eax, [ebp - 0x2f8]
push eax
push 0x2c0015
push dword [0x3663a598]
call fcn.3661cb53
mov dword [ebp - 0x23cc], eax
lea eax, [ebp - 0x23d0]
push eax
lea eax, [ebp - 0x2f8]
push eax
mov eax, dword [ebp + 0x10]
push dword [eax + 8]
push 0x40000001
push dword [ebp + 8]
call fcn.3660fa1a
mov esi, eax
cmp esi, ebx
jne 0x366124f4
mov eax, dword [ebp + 0x10]
push dword [eax + 8]
lea ecx, [ebp - 0x74]
push dword [ebp - 0x23d0]
call fcn.36610fe0
mov esi, eax
cmp esi, ebx
jl 0x366124f4
cmp dword [ebp - 0x70], 3
je 0x36611381
push 0xa
pop esi
jmp 0x366124f4
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x24cc]
call fcn.3660c520
mov esi, dword [sym.imp.CRYPT32.dll_CertOpenStore]
push 0x36601d0c
mov edi, 0x10000
push edi
push ebx
push 1
push 0xa
call esi
cmp eax, ebx
mov dword [ebp - 0x23d4], eax
je 0x3661180e
push 0x36601ba0
push edi
push ebx
push 1
push 0xa
call esi
cmp eax, ebx
mov dword [ebp - 0x240c], eax
je 0x3661180e
push 0x36601e24
push edi
push ebx
push 1
push 0xa
call esi
cmp eax, ebx
mov dword [ebp - 0x2444], eax
je 0x3661180e
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2474]
push eax
push ebx
push 0x26
call fcn.3661d52c
mov esi, eax
cmp esi, ebx
jl 0x366124f4
mov eax, dword [ebp + 0xc]
mov esi, dword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
and eax, 2
mov dword [ebp - 0x23e0], eax
je 0x3661162c
mov dword [ebp - 0x23c8], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23c0], ebx
mov dword [ebp - 0x23bc], ebx
mov eax, dword [ebp + 0x10]
push ebx
push 0x8000000
push dword [eax + 8]
lea eax, [ebp - 0x23b8]
push eax
mov byte [ebp - 4], 0xa
call fcn.3660e7d2
cmp eax, ebx
jne 0x36611464
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x366115d2
mov eax, dword [ebp - 0x23d0]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x23b8]
push 1
push ebx
push eax
push 0x2710
call fcn.3660e9c8
cmp eax, ebx
jne 0x3661148f
mov esi, 0x80004005
jmp 0x366115d2
lea eax, [ebp - 0x23d8]
push eax
push 0x9c4
push dword [ebp - 0x23b8]
call sym.EXCHCSP.dll_CPGetUserKey
cmp eax, ebx
jne 0x366114f1
lea eax, [ebp - 0x23d8]
push eax
push 0x5dc
push dword [ebp - 0x23b8]
call sym.EXCHCSP.dll_CPGetUserKey
cmp eax, ebx
jne 0x366114d4
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x23c8]
jmp 0x366116c9
lea eax, [ebp - 0x48]
push ebx
mov dword [ebp - 0x2434], eax
lea eax, [ebp - 0x2438]
push eax
push edi
push ebx
push 1
push dword [ebp - 0x240c]
jmp 0x3661150c
lea eax, [ebp - 0x34]
push ebx
mov dword [ebp - 0x2434], eax
lea eax, [ebp - 0x2438]
push eax
push edi
push ebx
push 1
push dword [ebp - 0x2444]
mov dword [ebp - 0x2438], 0x14
call esi
cmp eax, ebx
mov dword [ebp - 0x2414], eax
je 0x366114c5
mov ecx, dword [ebp - 0x23d8]
xor eax, eax
inc eax
push eax
mov dword [ecx + 0x1c], eax
mov ecx, dword [ebp - 0x23b8]
lea eax, [ebp - 0x2420]
push eax
push ebx
push dword [ebp - 0x23d8]
push dword [ebp - 0x246c]
push dword [ebp - 0x2474]
call fcn.36610295
cmp eax, ebx
je 0x366114c5
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x23c8]
push eax
push ebx
push 0x1b
call fcn.3661d52c
mov esi, eax
cmp esi, ebx
jl 0x366115d2
mov eax, dword [ebp - 0x23c0]
mov dword [ebp - 0x23cc], eax
lea eax, [ebp - 0x23cc]
push eax
push dword [ebp - 0x23c8]
push ebx
push 1
push ebx
push dword [ebp - 0x2420]
push dword [ebp - 0x23b8]
call sym.EXCHCSP.dll_CPDecrypt
cmp eax, ebx
lea ecx, [ebp - 0x23c8]
jne 0x366115b5
mov byte [ebp - 4], 9
jmp 0x366116c9
push dword [ebp - 0x23cc]
call fcn.3661afb4
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push 0x1c
call fcn.3661e190
mov esi, eax
cmp esi, ebx
jge 0x366115dd
lea ecx, [ebp - 0x23c8]
jmp 0x36612783
push dword [ebp - 0x2420]
push dword [ebp - 0x23b8]
call sym.EXCHCSP.dll_CPDestroyKey
push dword [ebp - 0x23d8]
mov dword [ebp - 0x2420], ebx
push dword [ebp - 0x23b8]
call sym.EXCHCSP.dll_CPDestroyKey
push ebx
push dword [ebp - 0x23b8]
mov dword [ebp - 0x23d8], ebx
call sym.EXCHCSP.dll_CPReleaseContext
lea ecx, [ebp - 0x23c8]
mov dword [ebp - 0x23b8], ebx
mov byte [ebp - 4], 9
call fcn.3661aef4
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2480]
push eax
push ebx
push 0x1a
call fcn.3661dcb3
mov esi, eax
cmp esi, ebx
jl 0x366124f4
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x24ac]
push eax
push ebx
push 0x1e
call fcn.3661d52c
cmp dword [ebp - 0x23e0], ebx
jne 0x366116d8
mov dword [ebp - 0x2454], ebx
mov dword [ebp - 0x2450], ebx
mov dword [ebp - 0x244c], ebx
mov dword [ebp - 0x2448], ebx
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2454]
push eax
push ebx
push 2
mov byte [ebp - 4], 0xb
call fcn.3661d52c
mov esi, eax
cmp esi, ebx
jge 0x366116a1
lea ecx, [ebp - 0x2454]
jmp 0x36612783
push dword [ebp - 0x244c]
push dword [ebp - 0x2454]
push 1
call dword [sym.imp.CRYPT32.dll_CertCreateCertificateContext]
cmp eax, ebx
mov dword [ebp - 0x2414], eax
lea ecx, [ebp - 0x2454]
mov byte [ebp - 4], 9
jne 0x366116d3
call fcn.3661aef4
jmp 0x36611792
call fcn.3661aef4
push 0xf0000000
push 5
push ebx
push ebx
lea eax, [ebp - 0x23b8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
cmp eax, ebx
je 0x36611792
lea eax, [ebp - 0x2418]
push eax
mov eax, dword [ebp - 0x2414]
mov eax, dword [eax + 0xc]
add eax, 0x38
push eax
push 1
push dword [ebp - 0x23b8]
call dword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
cmp eax, ebx
je 0x36611792
lea eax, [ebp - 0x2408]
push eax
xor eax, eax
cmp dword [ebp - 0x23e0], ebx
push ebx
setne al
push ebx
add eax, 0x8003
push eax
push dword [ebp - 0x23b8]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
cmp eax, ebx
je 0x36611792
push ebx
push dword [ebp - 0x247c]
push dword [ebp - 0x2480]
push dword [ebp - 0x2408]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp eax, ebx
je 0x36611792
lea ecx, [ebp - 0x24ac]
call fcn.3661b1df
push ebx
push ebx
push dword [ebp - 0x2418]
push dword [ebp - 0x24a4]
push dword [ebp - 0x24ac]
push dword [ebp - 0x2408]
call dword [sym.imp.ADVAPI32.dll_CryptVerifySignatureA]
cmp eax, ebx
jne 0x3661179e
call fcn.36610ba3
mov esi, eax
jmp 0x366124f4
push dword [ebp - 0x2408]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push dword [ebp - 0x2418]
mov dword [ebp - 0x2408], ebx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push ebx
push dword [ebp - 0x23b8]
mov dword [ebp - 0x2418], ebx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push dword [ebp - 0x23ac]
mov dword [ebp - 0x23b8], ebx
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2458]
push eax
push ebx
push 0x15
mov dword [ebp - 0x23ac], ebx
call fcn.3661d120
mov esi, eax
cmp esi, ebx
jl 0x366124f4
mov eax, dword [ebp - 0x2458]
cmp eax, dword [ebp - 0x6c]
je 0x36611818
mov esi, 0x80004005
jmp 0x366124f4
mov eax, dword [ebp + 0xc]
and eax, 3
cmp eax, 1
mov dword [ebp - 0x24d4], eax
jne 0x366119cd
push 0x200
lea ecx, [ebp - 0x23a8]
call fcn.36624b63
mov ecx, dword [ebp - 0x23d0]
lea eax, [ebp - 0x23f0]
push eax
mov eax, dword [ebp + 0x10]
push 0x36601c50
push dword [eax + 8]
mov byte [ebp - 4], 0xc
call fcn.3660c857
test eax, eax
jl 0x366119f3
mov ecx, dword [ebp - 0x23e8]
cmp ecx, ebx
je 0x366119f3
mov edx, dword [ebp - 0x23f0]
push 0xc
pop eax
sub eax, dword [edx]
add ecx, eax
push ecx
mov dword [ebp - 0x23cc], eax
call dword [sym.imp.MSVCRT.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x23b0], eax
jne 0x366118a3
mov esi, 0x8007000e
jmp 0x36611997
cmp dword [ebp - 0x23cc], ebx
jne 0x366118e0
mov eax, dword [ebp - 0x23e8]
lea ecx, [ebp - 0x23f0]
mov dword [ebp - 0x23b4], eax
call fcn.3661afb4
mov edi, dword [ebp - 0x23b0]
mov esi, eax
mov eax, dword [ebp - 0x23b4]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x36611934
cmp dword [ebp - 0x23cc], 4
jne 0x366119ec
lea ecx, [ebp - 0x23f0]
call fcn.3661afb4
mov ecx, dword [eax]
mov edx, dword [ebp - 0x23b0]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x23e8]
mov esi, dword [ebp - 0x23f0]
add ecx, 0xfffffff8
mov eax, ecx
shr ecx, 2
add esi, 8
lea edi, [edx + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, edx
rep movsb byte es:[edi], byte [esi]
mov dword [eax + 8], 0x2400
mov esi, dword [ebp - 0x23b0]
mov eax, dword [esi + 0x14]
add eax, dword [ebp - 0x23cc]
push dword [esi + 0x10]
add eax, esi
push eax
lea ecx, [ebp - 0x24bc]
call fcn.3661b245
lea eax, [ebp - 0x24bc]
push eax
lea ecx, [ebp - 0x23a8]
call fcn.3662588a
test eax, eax
jne 0x36611992
lea ecx, [ebp - 0x2474]
call fcn.3661b1df
lea eax, [ebp - 0x23a8]
push eax
lea eax, [ebp - 0x2474]
push eax
lea ecx, [ebp - 0xf8]
call fcn.3662123a
test eax, eax
je 0x366119ab
mov esi, 0x80090003
lea ecx, [ebp - 0x23a8]
mov byte [ebp - 4], 9
call fcn.36624606
jmp 0x366124f4
push esi
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
lea ecx, [ebp - 0x23a8]
mov dword [ebp - 0x23b0], ebx
mov byte [ebp - 4], 9
call fcn.36624606
mov edi, 0x10000
push dword [ebp - 0x23ac]
mov esi, dword [sym.imp.CRYPT32.dll_CertEnumCertificatesInStore]
push dword [ebp - 0x23d4]
mov dword [ebp - 0x24c0], ebx
call esi
jmp 0x36611a92
mov esi, 0x80004005
jmp 0x36611997
mov esi, 0x80090016
jmp 0x36611997
push eax
call dword [sym.imp.CRYPT32.dll_CertDuplicateCertificateContext]
push dword [ebp - 0x23ac]
push dword [ebp - 0x23d4]
call esi
mov dword [ebp - 0x23b4], eax
lea eax, [ebp - 0x24c0]
push eax
lea eax, [ebp - 0x23cc]
push eax
lea eax, [ebp - 0x243c]
push eax
push 2
push dword [ebp - 0x23ac]
call fcn.3661e77e
cmp eax, ebx
jne 0x36611a80
mov eax, dword [ebp - 0x243c]
cmp dword [eax + 8], 5
jne 0x36611a80
push dword [ebp - 0x241c]
push dword [eax]
call dword [sym.imp.MSVCRT.dll_wcscmp]
test eax, eax
pop ecx
pop ecx
jne 0x36611a80
mov eax, dword [ebp - 0x243c]
mov eax, dword [eax + 0x18]
cmp eax, 0x5dc
je 0x36611a72
cmp eax, 0x9c4
jne 0x36611a80
push dword [ebp - 0x23ac]
call dword [sym.imp.CRYPT32.dll_CertDeleteCertificateFromStore]
jmp 0x36611a8c
push dword [ebp - 0x23ac]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, dword [ebp - 0x23b4]
cmp eax, ebx
mov dword [ebp - 0x23ac], eax
jne 0x366119fa
cmp dword [ebp - 0x23e0], ebx
je 0x36611b8d
mov dword [ebp - 0x23c8], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23c0], ebx
mov dword [ebp - 0x23bc], ebx
test byte [ebp + 0xc], 1
mov byte [ebp - 4], 0xd
je 0x36611b0a
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x23c8]
push eax
push ebx
push 2
call fcn.3661d52c
push dword [ebp - 0x23c0]
push dword [ebp - 0x23c8]
push 1
call dword [sym.imp.CRYPT32.dll_CertCreateCertificateContext]
mov esi, eax
cmp esi, ebx
je 0x36611b0a
push esi
lea ecx, [ebp - 0x74]
call fcn.36610dca
push esi
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x23c8]
push eax
push ebx
push 3
call fcn.3661d52c
push dword [ebp - 0x23c0]
push dword [ebp - 0x23c8]
push 1
call dword [sym.imp.CRYPT32.dll_CertCreateCertificateContext]
mov edi, eax
cmp edi, ebx
je 0x36611b79
push edi
lea ecx, [ebp - 0x74]
call fcn.36610dec
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push ebx
push dword [ebp + 8]
call esi
push ebx
push 2
push edi
push dword [ebp - 0x2444]
mov dword [ebp - 0x23b4], eax
call dword [sym.imp.CRYPT32.dll_CertAddCertificateContextToStore]
xor eax, eax
cmp dword [ebp - 0x23b4], ebx
sete al
push eax
push dword [ebp + 8]
call esi
push edi
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
lea ecx, [ebp - 0x23c8]
mov byte [ebp - 4], 9
call fcn.3661aef4
mov edi, 0x10000
mov dword [ebp + 8], ebx
mov ecx, dword [ebp + 8]
xor eax, eax
inc eax
shl eax, cl
mov ecx, dword [ebp + 0xc]
test ecx, eax
je 0x36612472
mov dword [ebp - 0x2430], ebx
mov dword [ebp - 0x242c], ebx
mov dword [ebp - 0x2428], ebx
mov dword [ebp - 0x2424], ebx
mov dword [ebp - 0x2404], ebx
mov dword [ebp - 0x2400], ebx
mov dword [ebp - 0x23fc], ebx
mov dword [ebp - 0x23f8], ebx
mov dword [ebp - 0x23c8], ebx
mov dword [ebp - 0x23c4], ebx
mov dword [ebp - 0x23c0], ebx
mov dword [ebp - 0x23bc], ebx
cmp dword [ebp + 8], ebx
mov byte [ebp - 4], 0x10
jne 0x36611c2d
push ebx
lea eax, [ebp - 0x48]
mov dword [ebp - 0x24e0], eax
lea eax, [ebp - 0x24e4]
push eax
push edi
push ebx
push 1
push dword [ebp - 0x240c]
mov dword [ebp - 0x24e4], 0x14
call dword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov ecx, dword [ebp - 0x2464]
mov dword [ecx], eax
mov dword [ebp - 0x23ac], ebx
cmp dword [ebp + 8], 1
jne 0x36611dd6
mov dword [ebp - 0x2454], ebx
mov dword [ebp - 0x2450], ebx
mov dword [ebp - 0x244c], ebx
mov dword [ebp - 0x2448], ebx
push ebx
lea eax, [ebp - 0x24d0]
push eax
lea eax, [ebp - 0x245c]
push eax
push ebx
push 0x4000000
push dword [ebp - 0x24cc]
mov byte [ebp - 4], 0x11
push 1
call fcn.3661e674
mov esi, eax
cmp esi, ebx
jl 0x3661271e
mov eax, dword [ebp - 0x24d0]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x24ec], eax
mov eax, dword [ebp - 0x245c]
mov dword [ebp - 0x24e8], eax
lea eax, [ebp - 0x2454]
push eax
push ebx
push 0x17
call fcn.3661d52c
mov eax, dword [ebp - 0x244c]
mov dword [ebp - 0x2438], eax
mov eax, dword [ebp - 0x2454]
mov dword [ebp - 0x2434], eax
lea eax, [ebp - 0x2438]
push eax
push ebx
push ebx
push 0x10001
push 5
call dword [sym.imp.CRYPT32.dll_CertOpenStore]
cmp eax, ebx
mov dword [ebp - 0x2440], eax
je 0x3661272f
mov edi, dword [sym.imp.CRYPT32.dll_CertEnumCertificatesInStore]
push ebx
push eax
mov dword [ebp - 0x23ac], ebx
call edi
cmp eax, ebx
mov dword [ebp - 0x23ac], eax
je 0x36611d5f
mov esi, dword [sym.imp.CRYPT32.dll_CertAddCertificateContextToStore]
mov eax, dword [eax + 0xc]
lea ecx, [ebp - 0x24ec]
push ecx
add eax, 0x30
push eax
push 1
call dword [sym.imp.CRYPT32.dll_CertCompareCertificateName]
test eax, eax
je 0x36611d36
lea eax, [ebp - 0x23f4]
push eax
push 2
push dword [ebp - 0x23ac]
push dword [ebp - 0x23d4]
jmp 0x36611d45
push ebx
push 2
push dword [ebp - 0x23ac]
push dword [ebp - 0x240c]
call esi
push dword [ebp - 0x23ac]
push dword [ebp - 0x2440]
call edi
cmp eax, ebx
mov dword [ebp - 0x23ac], eax
jne 0x36611d05
cmp dword [ebp - 0x23f4], ebx
je 0x3661272f
push dword [ebp - 0x23f4]
call dword [sym.imp.CRYPT32.dll_CertDuplicateCertificateContext]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x23ac], eax
lea ecx, [ebp - 0x2458]
push ecx
push eax
push esi
push dword [ebp - 0x240c]
mov dword [ebp - 0x2458], 1
call dword [sym.imp.CRYPT32.dll_CertGetIssuerCertificateFromStore]
cmp eax, ebx
mov dword [ebp - 0x23ac], eax
je 0x36611dc1
cmp dword [ebp - 0x2458], ebx
jne 0x36611d81
push esi
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov esi, dword [ebp - 0x23ac]
jmp 0x36611d79
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x2454]
mov dword [eax + 0x18], esi
mov byte [ebp - 4], 0x10
call fcn.3661aef4
cmp dword [ebp + 8], ebx
jne 0x36611df3
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov edi, 0x5dc
mov dword [ebp - 0x23b4], ebx
mov esi, 0x36601c50
jmp 0x36611e0d
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov edi, 0x9c4
mov dword [ebp - 0x23b4], 2
mov esi, 0x36601e9c
push eax
push ecx
lea ecx, [ebp - 0x24bc]
call fcn.3661b245
mov ecx, dword [ebp - 0x23d0]
lea eax, [ebp - 0x24bc]
push eax
mov eax, dword [ebp + 0x10]
push esi
push dword [eax + 8]
call fcn.3660c80a
mov esi, eax
cmp esi, ebx
jl 0x3661275f
cmp dword [ebp + 8], ebx
jne 0x36611e85
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x23f0]
push eax
push ebx
push 0x16
call fcn.3661d52c
lea eax, [ebp - 0x23ac]
push eax
push 2
push dword [ebp - 0x23e8]
push dword [ebp - 0x23f0]
push 1
push dword [ebp - 0x23d4]
call dword [sym.imp.CRYPT32.dll_CertAddEncodedCertificateToStore]
cmp eax, ebx
jne 0x36611e97
mov esi, 0x80004005
jmp 0x3661275f
mov eax, dword [ebp - 0x23f4]
mov dword [ebp - 0x23ac], eax
mov dword [ebp - 0x23f4], ebx
mov eax, dword [ebp - 0x241c]
mov dword [ebp - 0x249c], eax
lea eax, [ebp - 0x249c]
push eax
push ebx
push 2
push dword [ebp - 0x23ac]
mov dword [ebp - 0x2498], 0x36601d78
mov dword [ebp - 0x2494], 5
mov dword [ebp - 0x2490], ebx
mov dword [ebp - 0x248c], ebx
mov dword [ebp - 0x2488], ebx
mov dword [ebp - 0x2484], edi
call dword [sym.imp.CRYPT32.dll_CertSetCertificateContextProperty]
cmp eax, ebx
je 0x36611e7b
cmp dword [ebp + 8], ebx
je 0x36611f03
push dword [ebp - 0x23ac]
call fcn.36610bf7
mov esi, eax
cmp esi, ebx
jl 0x3661275f
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x23ac]
imul eax, eax, 0xc
mov ecx, dword [ebp + 0x10]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [ebp - 0x23b4]
lea edx, [ebp - 0x23f0]
lea eax, [eax*4 + 0x3663a028]
push edx
push dword [eax]
mov dword [ebp - 0x23ac], ebx
push dword [ecx + 8]
mov ecx, dword [ebp - 0x23d0]
mov dword [ebp - 0x24d8], eax
call fcn.3660c857
test eax, eax
jl 0x36612736
mov ecx, dword [ebp - 0x23e8]
cmp ecx, ebx
push 0xc
jne 0x36611f89
call dword [sym.imp.MSVCRT.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x23b0], eax
je 0x3661275a
lea esi, [ebp - 0x2510]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x23b4], 0xc
jmp 0x3661205b
mov edx, dword [ebp - 0x23f0]
pop eax
sub eax, dword [edx]
add ecx, eax
push ecx
mov dword [ebp - 0x23cc], eax
call dword [sym.imp.MSVCRT.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x23b0], eax
je 0x3661275a
cmp dword [ebp - 0x23cc], ebx
jne 0x36611fed
mov eax, dword [ebp - 0x23e8]
lea ecx, [ebp - 0x23f0]
mov dword [ebp - 0x23b4], eax
call fcn.3661afb4
mov edi, dword [ebp - 0x23b0]
mov esi, eax
mov eax, dword [ebp - 0x23b4]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x36612041
cmp dword [ebp - 0x23cc], 4
jne 0x36611e7b
lea ecx, [ebp - 0x23f0]
call fcn.3661afb4
mov ecx, dword [eax]
mov edx, dword [ebp - 0x23b0]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x23e8]
mov esi, dword [ebp - 0x23f0]
add ecx, 0xfffffff8
mov eax, ecx
shr ecx, 2
add esi, 8
lea edi, [edx + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, edx
rep movsb byte es:[edi], byte [esi]
mov dword [eax + 8], 0xa400
mov eax, dword [ebp - 0x23cc]
mov ecx, dword [ebp - 0x23e8]
add ecx, eax
mov eax, dword [ebp - 0x23b0]
mov dword [ebp - 0x23b4], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebx
jne 0x36612074
mov edi, dword [ebp + 8]
neg edi
sbb edi, edi
mov eax, 0x3e8
and edi, eax
add edi, eax
jmp 0x3661208c
xor edi, edi
add eax, 0xc
cmp ecx, ebx
jbe 0x3661208b
mov edx, dword [eax]
cmp edi, edx
ja 0x36612085
mov edi, edx
add eax, 0x14
dec ecx
jne 0x3661207d
inc edi
cmp dword [ebp + 8], ebx
jne 0x36612168
push 0x200
lea ecx, [ebp - 0x23a8]
call fcn.36624b63
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2404]
push eax
push ebx
push 0x10
mov byte [ebp - 4], 0x12
call fcn.3661d52c
cmp dword [ebp - 0x23fc], ebx
je 0x3661273d
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x23f0]
push eax
push ebx
push 0x12
call fcn.3661d52c
mov esi, eax
cmp esi, ebx
jl 0x36612742
cmp dword [ebp - 0x24d4], 1
jne 0x3661211f
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x23f0]
push eax
lea ecx, [ebp - 0x23a8]
call fcn.366214e0
test eax, eax
lea ecx, [ebp - 0x23a8]
jl 0x36612753
lea eax, [ebp - 0x23f0]
push eax
call fcn.366259b8
lea eax, [ebp - 0x23ac]
push eax
push 2
push dword [ebp - 0x23fc]
push dword [ebp - 0x2404]
push 1
push dword [ebp - 0x23d4]
call dword [sym.imp.CRYPT32.dll_CertAddEncodedCertificateToStore]
push dword [ebp - 0x23ac]
call dword [sym.imp.CRYPT32.dll_CertDuplicateCertificateContext]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x23a8]
mov byte [ebp - 4], 0x10
call fcn.36624606
jmp 0x366121ec
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x2404]
push eax
push ebx
push 0x11
call fcn.3661d52c
cmp dword [ebp - 0x23fc], ebx
je 0x36611e7b
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x23f0]
push eax
push ebx
push 0x14
call fcn.3661d52c
mov esi, eax
cmp esi, ebx
jl 0x3661275f
lea eax, [ebp - 0x23ac]
push eax
push 2
push dword [ebp - 0x23fc]
push dword [ebp - 0x2404]
push 1
push dword [ebp - 0x23d4]
call dword [sym.imp.CRYPT32.dll_CertAddEncodedCertificateToStore]
push dword [ebp - 0x23ac]
call fcn.36610bf7
mov esi, eax
cmp esi, ebx
jl 0x3661275f
push dword [ebp - 0x23ac]
call dword [sym.imp.CRYPT32.dll_CertDuplicateCertificateContext]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x241c]
mov dword [ebp - 0x249c], eax
lea eax, [ebp - 0x249c]
push eax
push ebx
push 2
push dword [ebp - 0x23ac]
mov dword [ebp - 0x2498], 0x36601d78
mov dword [ebp - 0x2494], 5
mov dword [ebp - 0x2490], ebx
mov dword [ebp - 0x248c], ebx
mov dword [ebp - 0x2488], ebx
mov dword [ebp - 0x2484], edi
call dword [sym.imp.CRYPT32.dll_CertSetCertificateContextProperty]
push dword [ebp - 0x23ac]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, dword [ebp - 0x23b0]
mov ecx, dword [ebp - 0x23b4]
mov dword [ebp - 0x23ac], ebx
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x23e8]
lea eax, [eax + ecx + 0x14]
push eax
inc esi
mov dword [ebp - 0x24dc], eax
call dword [sym.imp.MSVCRT.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x2410], eax
je 0x3661275a
mov dword [eax + 4], esi
imul esi, esi, 0x14
lea ecx, [eax + 0xc]
lea esi, [esi + eax + 0xc]
mov dword [eax], 0xc
mov dword [eax + 8], 0xa400
mov dword [ebp - 0x23dc], esi
sub esi, eax
mov dword [ecx], edi
mov dword [ecx + 8], esi
mov eax, dword [ebp - 0x23e8]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x23e8]
mov dword [ebp - 0x23e0], ecx
lea ecx, [ebp - 0x23f0]
mov dword [ebp - 0x23b4], eax
call fcn.3661afb4
mov edi, dword [ebp - 0x23dc]
mov esi, eax
mov eax, dword [ebp - 0x23b4]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 0x23e0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov ecx, dword [ebp - 0x23e8]
add dword [ebp - 0x23dc], ecx
add eax, 0x14
mov dword [ebp - 0x23e0], eax
mov eax, dword [ebp - 0x23b0]
cmp dword [eax + 4], ebx
lea edx, [eax + 0xc]
mov dword [ebp - 0x23b4], ebx
mov dword [ebp - 0x2460], edx
jbe 0x366123ff
mov eax, dword [ebp - 0x23e0]
mov edi, dword [ebp - 0x23dc]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
cmp ecx, ebx
jbe 0x36612380
mov dword [eax + 4], ecx
mov ecx, edi
sub ecx, dword [ebp - 0x2410]
mov dword [eax + 8], ecx
mov esi, dword [edx + 8]
mov ecx, dword [eax + 4]
add esi, dword [ebp - 0x23b0]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp - 0x2460]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x23dc]
add edi, dword [eax + 4]
mov dword [ebp - 0x23dc], edi
jmp 0x36612386
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
jbe 0x366123cc
mov dword [eax + 0xc], ecx
mov ecx, edi
sub ecx, dword [ebp - 0x2410]
mov dword [eax + 0x10], ecx
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + 0xc]
add esi, dword [ebp - 0x23b0]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp - 0x2460]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x23dc]
add edi, dword [eax + 0xc]
mov dword [ebp - 0x23dc], edi
jmp 0x366123d2
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
inc dword [ebp - 0x23b4]
mov ecx, dword [ebp - 0x23b0]
mov esi, dword [ebp - 0x23b4]
add edx, 0x14
add eax, 0x14
cmp esi, dword [ecx + 4]
mov dword [ebp - 0x2460], edx
jb 0x36612336
mov dword [ebp - 0x23e0], eax
push dword [ebp - 0x24dc]
lea ecx, [ebp - 0x2430]
push dword [ebp - 0x2410]
call fcn.3661b245
mov ecx, dword [ebp - 0x23d0]
lea eax, [ebp - 0x2430]
push eax
mov eax, dword [ebp - 0x24d8]
push dword [eax]
mov eax, dword [ebp + 0x10]
push dword [eax + 8]
call fcn.3660c80a
lea ecx, [ebp - 0x23c8]
mov esi, eax
mov byte [ebp - 4], 0xf
call fcn.3661aef4
lea ecx, [ebp - 0x2404]
mov byte [ebp - 4], 0xe
call fcn.3661aef4
lea ecx, [ebp - 0x2430]
mov byte [ebp - 4], 9
call fcn.3661aef4
cmp esi, ebx
jl 0x366124f4
mov edi, 0x10000
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x36611b90
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
push 3
lea eax, [ebp - 0x2438]
push eax
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x2438], ebx
mov dword [ebp - 0x2434], ebx
call fcn.36610d43
or dword [ebp - 0x14], 1
mov esi, dword [ebp + 0x10]
push 2
pop eax
or dword [ebp - 0x14], eax
mov dword [ebp - 0x70], eax
mov eax, dword [esi + 8]
push 0x80000002
push 0x36602594
push eax
mov eax, dword [ebp - 0x23d0]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov ecx, dword [eax]
call fcn.36620862
push dword [esi + 8]
lea ecx, [ebp - 0x74]
push dword [ebp - 0x23d0]
call fcn.3661108b
xor esi, esi
cmp dword [ebp - 0x23d0], ebx
je 0x36612508
lea eax, [ebp - 0x23d0]
push eax
call fcn.3661a303
cmp dword [ebp - 0x241c], ebx
mov edi, dword [sym.imp.MSVCRT.dll_free]
je 0x3661251f
push dword [ebp - 0x241c]
call edi
pop ecx
cmp dword [ebp - 0x23b0], ebx
je 0x36612530
push dword [ebp - 0x23b0]
call edi
pop ecx
cmp dword [ebp - 0x2410], ebx
je 0x36612541
push dword [ebp - 0x2410]
call edi
pop ecx
cmp dword [ebp - 0x243c], ebx
je 0x36612552
push dword [ebp - 0x243c]
call edi
pop ecx
cmp dword [ebp - 0x2408], ebx
je 0x36612566
push dword [ebp - 0x2408]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x2418], ebx
je 0x3661257a
push dword [ebp - 0x2418]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x2420], ebx
je 0x3661258e
push dword [ebp - 0x2420]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x23d8], ebx
je 0x366125a2
push dword [ebp - 0x23d8]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x23b8], ebx
je 0x366125b7
push ebx
push dword [ebp - 0x23b8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp dword [ebp - 0x23ac], ebx
je 0x366125cb
push dword [ebp - 0x23ac]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
cmp dword [ebp - 0x23f4], ebx
je 0x366125df
push dword [ebp - 0x23f4]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
cmp dword [ebp - 0x2414], ebx
je 0x366125f3
push dword [ebp - 0x2414]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
cmp dword [ebp - 0x240c], ebx
mov edi, dword [sym.imp.CRYPT32.dll_CertCloseStore]
je 0x3661260a
push ebx
push dword [ebp - 0x240c]
call edi
cmp dword [ebp - 0x23d4], ebx
je 0x3661261b
push ebx
push dword [ebp - 0x23d4]
call edi
cmp dword [ebp - 0x2444], ebx
je 0x3661262c
push ebx
push dword [ebp - 0x2444]
call edi
cmp dword [ebp - 0x2440], ebx
je 0x3661263d
push ebx
push dword [ebp - 0x2440]
call edi
cmp dword [ebp - 0x245c], ebx
je 0x36612652
push dword [ebp - 0x245c]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
cmp esi, ebx
jge 0x36612675
mov edi, dword [ebp - 0x2464]
mov dword [ebp + 0x14], 6
push dword [edi]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov dword [edi], ebx
add edi, 4
dec dword [ebp + 0x14]
jne 0x36612663
lea ecx, [ebp - 0x24f8]
mov byte [ebp - 4], 8
call fcn.3660c410
lea ecx, [ebp - 0x2504]
mov byte [ebp - 4], 7
call fcn.3660c410
lea ecx, [ebp - 0x24cc]
mov byte [ebp - 4], 6
call fcn.3660c410
lea ecx, [ebp - 0x2480]
mov byte [ebp - 4], 5
call fcn.3660c410
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 4
call fcn.36623500
lea ecx, [ebp - 0x74]
call fcn.36610d15
lea ecx, [ebp - 0x2474]
mov byte [ebp - 4], 2
call fcn.3661aef4
lea ecx, [ebp - 0x24bc]
mov byte [ebp - 4], 1
call fcn.3661aef4
lea ecx, [ebp - 0x24ac]
mov byte [ebp - 4], bl
call fcn.3661aef4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x23f0]
call fcn.3661aef4
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.3662acac
leave
ret 0x14
lea ecx, [ebp - 0x2454]
mov byte [ebp - 4], 0x10
call fcn.3661aef4
jmp 0x3661275f
mov esi, 0x80004005
jmp 0x3661271e
mov esi, 0x80090016
jmp 0x3661275f
mov esi, 0x80004005
lea ecx, [ebp - 0x23a8]
mov byte [ebp - 4], 0x10
call fcn.36624606
jmp 0x3661275f
mov esi, 0x80004005
jmp 0x36612748
mov esi, 0x8007000e
lea ecx, [ebp - 0x23c8]
mov byte [ebp - 4], 0xf
call fcn.3661aef4
lea ecx, [ebp - 0x2404]
mov byte [ebp - 4], 0xe
call fcn.3661aef4
lea ecx, [ebp - 0x2430]
mov byte [ebp - 4], 9
call fcn.3661aef4
jmp 0x366124f4