Function at 0x480c70
Capabilities:
Create new key via cryptacquirecontext
Decode data using base64 via winapi
Encrypt data using aes via winapi
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
sub esp, 0x558
push ebx
push ebp
push esi
push edi
push 0x3ff
mov edi, eax
lea eax, [esp + 0x16d]
push 0
push eax
mov esi, ecx
mov byte [esp + 0x174], 0
call fcn.0049a020
add esp, 0xc
test edi, edi
je 0x480cc2
mov ecx, dword [edi]
test ecx, ecx
je 0x480cc2
xor eax, eax
lea esp, [esp]
mov cl, byte [ecx]
mov byte [esp + eax + 0x168], cl
mov ecx, dword [edi + eax*4 + 4]
inc eax
test ecx, ecx
jne 0x480cb0
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 8]
xor ebp, ebp
mov dword [esp + 0x14], ecx
test edi, edi
je 0x480cd4
mov ecx, edi
push 4
lea edx, [esp + 0x38]
push edx
lea eax, [esi + 0x14]
push ecx
push eax
mov dword [esp + 0x3c], eax
call dword [sym.imp.SHLWAPI.dll_HashData]
cmp dword [esi], 0x4034b50
jne 0x480ef4
mov eax, dword [esp + 0x34]
cmp eax, dword [esi + 4]
jne 0x480ef4
mov ebx, dword [esi + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 4
push 0x1000
push ebx
push 0
mov dword [esp + 0x2c], ebx
call esi
mov ecx, dword [esp + 0x56c]
mov dword [ecx], eax
test eax, eax
je 0x480ef4
mov dword [esp + 0x18], ebp
test edi, edi
je 0x480f01
push str.advapi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.CryptDecrypt
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 4
push 0x1000
push edi
push 0
mov ebx, eax
call esi
push 0xf0000000
push 0x18
push 0
push 0
lea edx, [esp + 0x30]
push edx
mov esi, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
push 0
push 0
push 0x8004
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
lea eax, [esp + 0x168]
lea ebp, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x480da1
push 0
sub eax, ebp
push eax
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x170]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x30]
push ecx
push 0x1000000
push edx
push 0x6610
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov edx, dword [esp + 0x2c]
push edi
push edx
push esi
call fcn.004926e0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
lea eax, [esp + 0x18]
push eax
push esi
push 0
push 1
push 0
push ecx
call ebx
mov ebx, dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
push 0
push 0
lea edx, [esp + 0x2c]
push edx
push 0
push 1
push 0
push esi
call ebx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x480e5e
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x56c]
mov edx, dword [ecx]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualFree]
push 0x8000
push eax
push edx
call ebx
push 0x8000
push edi
push esi
call ebx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x558
ret
push 4
push 0x1000
push eax
push 0
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 0
push 0
mov ebp, eax
lea eax, [esp + 0x2c]
push eax
push ebp
push 1
push 0
push esi
call ebx
push 0x8000
push edi
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualFree]
call esi
mov ecx, dword [esp + 0x30]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov edx, dword [esp + 0x20]
push 0
push edx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x18]
push ecx
mov edi, ebp
call fcn.00415a90
add esp, 8
test eax, eax
je 0x480f4f
mov eax, dword [esp + 0x14]
call fcn.00415a10
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x56c]
mov ecx, dword [eax]
push 0x8000
push edx
push ecx
call esi
mov edx, dword [esp + 0x18]
push 0x8000
push edx
push ebp
call esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x558
ret
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00415a90
add esp, 8
test eax, eax
je 0x480f47
mov eax, dword [esp + 0x14]
call fcn.00415a10
mov edx, dword [esp + 0x56c]
mov eax, dword [edx]
push 0x8000
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x558
ret
mov esi, dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x480f53
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x56c]
mov edx, dword [ecx]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
push edx
lea ebx, [esp + 0x3c]
mov eax, edi
call fcn.00415990
add esp, 4
test eax, eax
je 0x480fba
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x56c]
mov edx, dword [ecx]
push 0x8000
push eax
push edx
call esi
mov eax, edi
call fcn.00415a10
test ebp, ebp
je 0x480ef4
mov eax, dword [esp + 0x18]
push 0x8000
push eax
push ebp
call esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x558
ret
mov eax, edi
call fcn.00415a10
test ebp, ebp
je 0x480fd2
mov ecx, dword [esp + 0x18]
push 0x8000
push ecx
push ebp
call esi
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x558
ret