Function at 0x549dd0
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using aes via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push rbp
sub rsp, 0xc0
mov rbp, rsp
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xd8], rdx
mov qword [rbp + 0xe0], r8
mov rcx, qword [rbp + 0xe0]
call fcn.0040e780
nop
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x31f
mov dword [rbp + 0xb4], eax
mov byte [rbp + 0x67], 0
mov eax, dword [rbp + 0xb4]
sub eax, 0x29c
mov dword [rbp + 0xb8], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
call fcn.0053d680
cmp eax, 0x80
jle 0x54b8db
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xb4]
imul eax, eax, 0x2af
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x549e9f
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1b6
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x549ecd
mov eax, dword [rbp + 0xb0]
add eax, 0x9e
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x62
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 3
jne 0x549e67
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xa4]
jle 0x549f2d
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1f0
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb0]
sub eax, dword [rbp + 0xac]
test eax, eax
jge 0x549f4f
mov eax, dword [rbp + 0xb0]
add eax, 0xb7
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x3b
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 2
jne 0x549f07
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xb8]
sub eax, dword [rbp + 0xb4]
cmp dword [rbp + 0xb0], eax
jne 0x549fc2
mov eax, 0x18d
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x549fea
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 2
jne 0x549f9c
nop
mov eax, 0x59
sub eax, dword [rbp + 0xbc]
cmp eax, 0xf3
jge 0x54a058
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00541a90
lea rcx, [rbp + 0x58]
call fcn.0040e5d0
mov eax, dword [rbp + 0xb0]
add eax, 0x10f
mov dword [rbp + 0xa8], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, dword [rbp + 0xb0]
add eax, 0xf3
mov dword [rbp + 0xa8], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
test eax, eax
jle 0x54a0c1
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1d48]
call fcn.0040fe40
mov eax, dword [rbp + 0xa4]
cmp eax, dword [rbp + 0xbc]
jle 0x54a0f1
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, 0x51
sub eax, dword [rbp + 0xa4]
cmp eax, 0xe4
jge 0x54a121
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1ce0]
call fcn.0040fe40
mov eax, dword [rbp + 0xa4]
add eax, dword [rbp + 0xa4]
mov dword [rbp + 0xb4], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1cd0]
call fcn.0040fe40
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2f3
mov dword [rbp + 0xb4], eax
lea rcx, [rbp + 0x40]
mov edx, 3
call fcn.0042be80
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0x40]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
imul eax, eax, 0x2b7
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0042be80
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0x38]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
sub eax, 0x27b
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x58]
lea rdx, [0x0054c1a4]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
add eax, 0x23f
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0xb8]
add eax, 0x203
mov dword [rbp + 0xac], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1a7
mov dword [rbp + 0xac], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, 0x58
sub eax, dword [rbp + 0xbc]
cmp eax, 0x101
jge 0x54a26c
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
lea r9, [rbp + 0xa8]
call fcn.005432c0
mov eax, 0x55
sub eax, dword [rbp + 0xbc]
cmp eax, 0xe5
jge 0x54a29a
lea rcx, [rbp + 0xb4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xa4]
call fcn.00541440
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x190
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1f5
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
add eax, 0x219
mov dword [rbp + 0xac], eax
add dword [rbp + 0xb8], 0x25e
mov eax, dword [rbp + 0xb4]
sub eax, 0x282
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x68]
xor edx, edx
xor r8, r8
mov r9d, 0x18
mov dword [rsp + 0x20], 0xf0000000
call sub.advapi32.dll_CryptAcquireContextA
test eax, eax
je 0x54b8b6
nop
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1eb
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb4]
add eax, 0x250
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x274
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
imul eax, eax, 0x299
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2dd
mov dword [rbp + 0xb4], eax
mov rcx, qword [rbp + 0x68]
mov edx, 0x8003
xor r8, r8
xor r9, r9
lea rax, [rbp + 0x70]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_CryptCreateHash
test eax, eax
je 0x54b86c
nop
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xbc]
lea r8, [rbp + 0xbc]
call fcn.00543e70
lea rcx, [rbp + 0xb4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xa4]
lea r9, [rbp + 0xbc]
call fcn.005432c0
mov eax, 0x5a
sub eax, dword [rbp + 0xa4]
cmp eax, 0xe9
jge 0x54a3fc
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00543e70
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
mov dword [rbp + 0x54], 0
cmp qword [rbp + 0xe0], 0
je 0x54a426
mov rax, qword [rbp + 0xe0]
mov eax, dword [rax - 4]
mov dword [rbp + 0x54], eax
mov rcx, qword [rbp + 0x70]
mov rdx, qword [rbp + 0xe0]
mov r8d, dword [rbp + 0x54]
xor r9, r9
call sub.advapi32.dll_CryptHashData
test eax, eax
je 0x54b7af
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00544160
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x32b
mov dword [rbp + 0xa4], eax
mov rcx, qword [rbp + 0x68]
mov edx, 0x6610
mov r8, qword [rbp + 0x70]
xor r9, r9
lea rax, [rbp + 0x78]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_CryptDeriveKey
test eax, eax
je 0x54b7af
nop
lea rcx, [rbp + 0x80]
xor edx, edx
xor r8, r8
mov r9d, 1
mov dword [rsp + 0x20], 0xf0000000
call sub.advapi32.dll_CryptAcquireContextA
test eax, eax
je 0x54b48e
nop
mov dword [rbp + 0xa8], 0
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2e8
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54a510
mov eax, 0x1af
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
test eax, eax
jle 0x54a52f
mov eax, dword [rbp + 0xb0]
add eax, 0x76
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xa8], 1
cmp dword [rbp + 0xa8], 4
jne 0x54a4d8
nop
mov dword [rbp + 0xa8], 0
mov eax, dword [rbp + 0xb4]
sub eax, 0x285
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb8]
sub eax, dword [rbp + 0xb4]
cmp dword [rbp + 0xb0], eax
jne 0x54a59a
mov eax, 0x14c
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xbc]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54a5c5
mov eax, dword [rbp + 0xb0]
add eax, 0x33
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x58
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xa8], 1
cmp dword [rbp + 0xa8], 3
jne 0x54a562
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xb4]
jle 0x54a625
mov eax, dword [rbp + 0xb8]
add eax, 0x1c6
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb0]
sub eax, dword [rbp + 0xac]
test eax, eax
jge 0x54a647
mov eax, dword [rbp + 0xb0]
add eax, 0xad
mov dword [rbp + 0xa8], eax
add dword [rbp + 0xa8], 0x51
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 3
jne 0x54a5ff
nop
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54a70e
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54a6be
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1a4
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54a6e6
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54a691
nop
mov rcx, qword [rbp + 0xd8]
call fcn.0053d680
mov rcx, qword [rbp + 0x80]
mov rdx, qword [rbp + 0xd8]
mov rdx, qword [rdx + 8]
mov r8d, eax
xor r9, r9
mov dword [rsp + 0x20], 0
lea rax, [rbp + 0x88]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_CryptImportKey
test eax, eax
je 0x54b3c1
mov eax, dword [rbp + 0xb4]
sub eax, 0x27b
mov dword [rbp + 0xb8], eax
nop
mov ecx, 0x80
call fcn.00409020
mov qword [rbp + 0x90], rax
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2d7
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54a7bc
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x19e
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xb0]
sub eax, dword [rbp + 0xac]
test eax, eax
jge 0x54a7db
mov eax, dword [rbp + 0xb0]
add eax, 0x65
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x29
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x2e
mov dword [rbp + 0xa8], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 3
jne 0x54a784
nop
mov eax, 0x173
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1b8
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
add eax, 0x1dc
mov dword [rbp + 0xac], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
call fcn.0053d680
mov rcx, qword [rbp + 0xd0]
mov rcx, qword [rcx]
mov edx, eax
sub edx, 0x80
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xb4]
add eax, 0x225
mov dword [rbp + 0xb8], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
mov rdx, qword [rbp + 0x90]
mov r8d, 0x80
call fcn.0053e540
mov dword [rbp + 0xa8], 0
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2dd
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54a8de
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1c4
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb0]
sub eax, dword [rbp + 0xac]
test eax, eax
jge 0x54a900
mov eax, dword [rbp + 0xb0]
add eax, 0x8b
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x4f
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x54
mov dword [rbp + 0xbc], eax
add dword [rbp + 0xa8], 1
cmp dword [rbp + 0xa8], 3
jne 0x54a8a6
nop
mov eax, 0x159
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x19d
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1c2
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1c6
mov dword [rbp + 0xac], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
call fcn.0053d680
mov rcx, qword [rbp + 0xd0]
mov rcx, qword [rcx]
mov edx, eax
sub edx, 0x80
call fcn.0053dc90
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xb4]
sub eax, 0x28b
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb0]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54a9e3
mov eax, 0x172
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54aa0e
mov eax, dword [rbp + 0xb0]
add eax, 0x79
mov dword [rbp + 0xa8], eax
add dword [rbp + 0xa8], 0x5e
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 2
jne 0x54a9ab
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xb4]
jle 0x54aa66
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1ec
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb0]
sub eax, dword [rbp + 0xac]
test eax, eax
jge 0x54aa80
add dword [rbp + 0xa8], 0xb3
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 3
jne 0x54aa40
nop
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54ab64
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54ab0b
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1a9
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54ab33
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54aade
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xb0]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54ab95
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1a7
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
add ecx, dword [rbp + 0xac]
cmp eax, ecx
jge 0x54abc3
mov eax, dword [rbp + 0xb0]
add eax, 0x8e
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 2
jne 0x54ab6f
nop
mov rcx, qword [rbp + 0x80]
mov edx, 0x8003
xor r8, r8
xor r9, r9
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_CryptCreateHash
test eax, eax
je 0x54b335
mov eax, dword [rbp + 0xb4]
imul eax, eax, 0x2b4
mov dword [rbp + 0xb8], eax
nop
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
call fcn.0053d680
mov rcx, qword [rbp + 0x98]
mov rdx, qword [rbp + 0xd0]
mov rdx, qword [rdx]
mov rdx, qword [rdx + 8]
mov r8d, eax
xor r9, r9
call sub.advapi32.dll_CryptHashData
test eax, eax
je 0x54b10e
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xac]
sub eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xa4]
jge 0x54aca9
mov eax, dword [rbp + 0xb4]
add eax, 0x222
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp dword [rbp + 0xa8], eax
jne 0x54accf
mov eax, dword [rbp + 0xb0]
add eax, 0x12a
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, dword [rbp + 0xbc]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54acf7
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 3
jne 0x54ac83
nop
mov eax, 0x58
sub eax, dword [rbp + 0xbc]
cmp eax, 0x100
jge 0x54ad52
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
call fcn.00541d40
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x305
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x34b
mov dword [rbp + 0xa4], eax
mov rcx, qword [rbp + 0x98]
mov rdx, qword [rbp + 0x90]
mov r8d, 0x80
mov r9, qword [rbp + 0x88]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
call sub.advapi32.dll_CryptVerifySignatureW
test eax, eax
je 0x54b10e
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x306
mov dword [rbp + 0xb4], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
call fcn.0053d680
mov dword [rbp + 0x60], eax
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54ae89
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54ae24
mov eax, dword [rbp + 0xb8]
add eax, 0x1e0
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp dword [rbp + 0xa8], eax
jne 0x54ae4a
mov eax, dword [rbp + 0xb0]
add eax, 0xe8
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xbc]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54adf7
nop
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54af2e
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xb0]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54aece
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x17e
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54aef6
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54aea1
nop
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54afce
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xb0]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54af73
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x19b
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54afa2
mov eax, dword [rbp + 0xa8]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54af46
nop
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1c4
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
add eax, 0x208
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x24d
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x271
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x295
mov dword [rbp + 0xb8], eax
mov rcx, qword [rbp + 0x78]
xor edx, edx
or r8d, 0xffffffff
xor r9, r9
mov rax, qword [rbp + 0xd0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x60]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_CryptDecrypt
test eax, eax
je 0x54b10e
mov eax, dword [rbp + 0xb4]
sub eax, 0x25b
mov dword [rbp + 0xb8], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
mov edx, dword [rbp + 0x60]
call fcn.0053dc90
mov eax, dword [rbp + 0xb4]
imul eax, eax, 0x2ae
mov dword [rbp + 0xb4], eax
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
xor edx, edx
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xa4]
cmp eax, dword [rbp + 0xa4]
jle 0x54b0d1
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.005471b0
mov eax, 0x52
sub eax, dword [rbp + 0xa4]
cmp eax, 0xd8
jge 0x54b0f8
lea rcx, [rbp + 0xb4]
lea rdx, [rbp + 0xa4]
call fcn.00541d40
mov byte [rbp + 0x67], 1
mov eax, dword [rbp + 0xb4]
add eax, 0x25a
mov dword [rbp + 0xb8], eax
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xb4]
sub eax, 0x26f
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb8]
sub eax, dword [rbp + 0xb4]
cmp dword [rbp + 0xb0], eax
jne 0x54b151
mov eax, 0x156
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xbc]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54b179
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 3
jne 0x54b119
nop
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54b24c
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54b1f1
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1b0
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54b219
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xa8]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54b1c4
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54b27d
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x189
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54b2a8
mov eax, dword [rbp + 0xb0]
add eax, 0x70
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
add dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 2
jne 0x54b257
nop
mov eax, dword [rbp + 0xa4]
cmp eax, dword [rbp + 0xa4]
jle 0x54b317
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
lea r9, [rbp + 0xa8]
call fcn.005432c0
mov rcx, qword [rbp + 0x98]
call sub.advapi32.dll_CryptDestroyHash
mov eax, dword [rbp + 0xb4]
sub eax, 0x25f
mov dword [rbp + 0xb8], eax
nop
mov rcx, qword [rbp + 0x90]
call fcn.00409050
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2f6
mov dword [rbp + 0xb4], eax
nop
mov eax, 0x56
sub eax, dword [rbp + 0xbc]
cmp eax, 0xf8
jge 0x54b383
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00543e70
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xa4], eax
mov rcx, qword [rbp + 0x88]
call sub.advapi32.dll_CryptDestroyKey
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00543e70
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xa4], eax
nop
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1ab
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
add eax, 0x210
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x254
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x279
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x2bd
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1d3
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1f8
mov dword [rbp + 0xac], eax
add dword [rbp + 0xb8], 0x23c
mov eax, dword [rbp + 0xb4]
sub eax, 0x261
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x285
mov dword [rbp + 0xb8], eax
mov rcx, qword [rbp + 0x80]
xor edx, edx
call sub.advapi32.dll_CryptReleaseContext
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2bc
mov dword [rbp + 0xb4], eax
nop
mov dword [rbp + 0xa4], 0
cmp dword [rbp + 0xa4], 1
jge 0x54b548
add dword [rbp + 0xa4], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54b4d3
mov eax, dword [rbp + 0xb8]
add eax, 0x1ff
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp dword [rbp + 0xa8], eax
jne 0x54b4f9
mov eax, dword [rbp + 0xb0]
add eax, 0x107
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, dword [rbp + 0xbc]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54b528
mov eax, dword [rbp + 0xbc]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xa4], 1
jl 0x54b4a6
nop
mov dword [rbp + 0xbc], 0
cmp dword [rbp + 0xbc], 1
jge 0x54b5f2
add dword [rbp + 0xbc], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54b58d
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x19d
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54b5bb
mov eax, dword [rbp + 0xb0]
add eax, 0x84
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x28
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x6c
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
cmp dword [rbp + 0xbc], 1
jl 0x54b560
nop
mov dword [rbp + 0xbc], 0
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xb4]
jle 0x54b623
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1db
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xac]
cmp dword [rbp + 0xa8], eax
jne 0x54b649
mov eax, dword [rbp + 0xb0]
add eax, 0xc2
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x26
mov dword [rbp + 0xa8], eax
add dword [rbp + 0xa8], 0x4a
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 2
jne 0x54b5fd
nop
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xbc]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xb0]
cmp eax, ecx
jge 0x54b6b9
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xa8]
lea r8, [rbp + 0xb0]
lea r9, [rbp + 0xb0]
call fcn.00537d10
mov dword [rbp + 0xbc], 0
cmp dword [rbp + 0xbc], 1
jge 0x54b758
add dword [rbp + 0xbc], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xb8]
cmp eax, dword [rbp + 0xb4]
jle 0x54b6fd
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1b8
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xbc]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x54b725
mov eax, dword [rbp + 0xb0]
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
imul eax, dword [rbp + 0xb0]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa4]
imul eax, dword [rbp + 0xa8]
mov dword [rbp + 0xa4], eax
cmp dword [rbp + 0xbc], 1
jl 0x54b6d0
nop
mov eax, dword [rbp + 0xa4]
cmp eax, dword [rbp + 0xbc]
jle 0x54b781
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00543e70
mov rcx, qword [rbp + 0x78]
call sub.advapi32.dll_CryptDestroyKey
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
call fcn.00543050
mov eax, dword [rbp + 0xb4]
sub eax, 0x25a
mov dword [rbp + 0xb8], eax
nop
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xa4], eax
mov eax, 0x57
sub eax, dword [rbp + 0xbc]
cmp eax, 0xfd
jge 0x54b7e3
lea rcx, [rbp + 0xb4]
lea rdx, [rbp + 0xa4]
call fcn.00541d40
lea rcx, [rbp + 0xa4]
lea rdx, [rbp + 0xa4]
lea r8, [rbp + 0xbc]
call fcn.00546eb0
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xa4], eax
mov rcx, qword [rbp + 0x70]
call sub.advapi32.dll_CryptDestroyHash
mov eax, 0x18c
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0xb0], eax
mov eax, dword [rbp + 0xb8]
add eax, 0x1f0
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb8]
add eax, 0x235
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xb4]
add eax, 0x239
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
sub eax, 0x27e
mov dword [rbp + 0xb8], eax
nop
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2b9
mov dword [rbp + 0xb4], eax
mov rcx, qword [rbp + 0x68]
xor edx, edx
call sub.advapi32.dll_CryptReleaseContext
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2b0
mov dword [rbp + 0xb4], eax
jmp 0x54b8b6
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x2f9
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xa4]
imul eax, eax, 0x31d
mov dword [rbp + 0xb4], eax
nop
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0040e6b0
lea rcx, [rbp + 0x58]
call fcn.0040e5d0
lea rcx, [rbp + 0xe0]
call fcn.0040e620
movzx rax, byte [rbp + 0x67]
lea rsp, [rbp + 0xc0]
pop rbp
ret