Function at 0x12758b1
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
cmp dword [ebp + 8], ebx
je 0x1275acd
cmp dword [ebp + 0x10], ebx
je 0x1275acd
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x1275acd
cmp dword [ecx + 0x20], ebx
jne 0x12758f8
mov dword [ebp - 4], 0x80049e51
jmp 0x1275ad4
mov edx, dword [eax]
push 4
mov dword [ebp - 0x10], edx
mov dword [eax], ebx
mov eax, dword [ebp + 8]
mov edx, 0x1021e20
pop edi
mov si, word [eax]
cmp si, word [edx]
jne 0x127592e
cmp si, bx
je 0x127592a
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x127592e
add eax, edi
add edx, edi
cmp si, bx
jne 0x127590a
xor eax, eax
jmp 0x1275933
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x127593f
cmp dword [ecx + 8], 1
push 0x10
jmp 0x12759bb
mov eax, dword [ebp + 8]
mov edx, 0x1021dc8
mov si, word [eax]
cmp si, word [edx]
jne 0x127596b
cmp si, bx
je 0x1275967
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x127596b
add eax, edi
add edx, edi
cmp si, bx
jne 0x1275947
xor eax, eax
jmp 0x1275970
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x127597c
cmp dword [ecx + 8], 2
push 0x18
jmp 0x12759bb
mov eax, dword [ebp + 8]
mov edx, 0x1021d70
mov si, word [eax]
cmp si, word [edx]
jne 0x12759a8
cmp si, bx
je 0x12759a4
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x12759a8
add eax, edi
add edx, edi
cmp si, bx
jne 0x1275984
xor eax, eax
jmp 0x12759ad
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1275ac4
cmp dword [ecx + 8], 3
push 0x20
pop esi
je 0x12759ca
mov dword [ebp - 4], 0x80049e2e
jmp 0x1275ad4
mov eax, dword [ebp + 0xc]
lea edi, [esi + eax]
push edi
lea eax, [ebp - 8]
push eax
push ebx
push ebx
push 1
push ebx
push dword [ecx + 0x20]
mov ebx, dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
mov dword [ebp - 8], edi
call ebx
test eax, eax
jne 0x1275a08
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1275a00
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 4], eax
jmp 0x1275ad4
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
je 0x1275ad4
cmp dword [ebp - 0x10], eax
jae 0x1275a2b
mov dword [ebp - 4], 0x80049e19
jmp 0x1275ad4
push eax
mov dword [ebp + 0x14], eax
mov dword [ebp - 8], edi
call fcn.010324da
mov edi, eax
pop ecx
mov dword [ebp - 0xc], edi
test edi, edi
jne 0x1275a4d
mov dword [ebp - 4], 0x8007000e
jmp 0x1275ad4
push dword [ebp + 0x14]
push 0
push edi
call sub.msvcrt.dll_memset
push dword [ebp + 0xc]
lea eax, [edi + esi]
push dword [ebp + 0x10]
push eax
call sub.msvcrt.dll_memcpy
push 0
call dword [sym.imp.msvcrt.dll_time]
push eax
call dword [sym.imp.msvcrt.dll_srand]
and dword [ebp + 8], 0
add esp, 0x20
test esi, esi
jbe 0x1275a95
call dword [sym.imp.msvcrt.dll_rand]
mov ecx, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [ecx + edi], al
cmp dword [ebp + 8], esi
jb 0x1275a81
push dword [ebp + 0x14]
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x14]
push edi
push 0
push 1
push 0
push dword [eax + 0x20]
call ebx
test eax, eax
je 0x12759ec
push dword [ebp - 8]
push edi
push dword [ebp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x1275ad4
mov dword [ebp - 4], 0x80049e5b
jmp 0x1275ad4
mov dword [ebp - 4], 0x80070057
push dword [ebp - 0xc]
call fcn.010324e9
mov eax, dword [ebp - 4]
pop ecx
pop edi
pop esi
pop ebx
leave
ret 0x14