Function at 0x547420
Capabilities:
Create new key via cryptacquirecontext
Encrypt or decrypt via wincrypt

Disassembly:
push rbp
sub rsp, 0xf0
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 + 0x100], rcx
mov qword [rbp + 0x108], rdx
nop
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x54748c
lea rcx, [rbp + 0xc4]
lea rdx, [rbp + 0xe4]
lea r8, [rbp + 0xd0]
call fcn.00536410
mov eax, 0x58
sub eax, dword [rbp + 0xe4]
cmp eax, 0x100
jge 0x5474b3
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
call fcn.00541d40
mov eax, dword [rbp + 0xdc]
sub eax, 0x2a5
mov dword [rbp + 0xe0], eax
mov byte [rbp + 0x8f], 0
mov dword [rbp + 0xe4], 0
mov eax, dword [rbp + 0xc8]
sub eax, 0x2e6
mov dword [rbp + 0xdc], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x54750e
mov eax, dword [rbp + 0xe0]
add eax, 0x20e
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xc0]
cmp dword [rbp + 0xcc], eax
jne 0x547534
mov eax, dword [rbp + 0xd8]
add eax, 0xf5
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xc4]
sub eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 3
jne 0x5474d6
nop
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x54759d
lea rcx, [rbp + 0xc4]
lea rdx, [rbp + 0xe4]
lea r8, [rbp + 0xd0]
call fcn.005360e0
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x5475be
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
call fcn.00543050
mov eax, dword [rbp + 0xdc]
imul eax, eax, 0x2b1
mov dword [rbp + 0xe0], eax
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
call fcn.0053d680
test eax, eax
jne 0x547626
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
call fcn.00543050
mov eax, dword [rbp + 0xdc]
sub eax, 0x27d
mov dword [rbp + 0xe0], eax
mov byte [rbp + 0x8f], 1
mov eax, dword [rbp + 0xc0]
add eax, 0x1e5
mov dword [rbp + 0xd4], eax
jmp 0x54907d
nop
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1cd
mov dword [rbp + 0xd4], eax
lea rcx, [rbp + 0x58]
call fcn.0040e5d0
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x547681
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc4], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0xe4]
add eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
add ecx, dword [rbp + 0xd8]
cmp eax, ecx
jge 0x5476c0
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc4], eax
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1d48]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1ce0]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1cd0]
call fcn.0040fe40
lea rcx, [rbp + 0x40]
mov edx, 3
call fcn.0042be80
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0x40]
call fcn.0040fe40
lea rcx, [0x00549718]
lea rdx, [0x00549728]
mov r8d, 1
call fcn.004102c0
cmp eax, 0x61
jge 0x54774e
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc4], eax
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0042be80
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0x38]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
lea rdx, [0x0054974c]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
lea rcx, [rbp + 0x58]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1d9
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x23d
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x282
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x2a6
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2eb
mov dword [rbp + 0xdc], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x274
mov dword [rbp + 0xe0], eax
lea rcx, [rbp + 0x90]
xor edx, edx
xor r8, r8
mov r9d, 1
mov dword [rsp + 0x20], 0xf0000000
call sub.advapi32.dll_CryptAcquireContextA
test eax, eax
je 0x54906a
nop
mov dword [rbp + 0xd0], 0
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2cb
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x547881
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1d2
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd0]
sub eax, dword [rbp + 0xcc]
mov ecx, dword [rbp + 0xd8]
sub ecx, dword [rbp + 0xd4]
cmp eax, ecx
jle 0x5478af
mov eax, 0xba
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xd8]
cmp eax, ecx
jge 0x5478d7
mov eax, dword [rbp + 0xe4]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xe4]
mov dword [rbp + 0xc4], eax
add dword [rbp + 0xd0], 1
cmp dword [rbp + 0xd0], 3
jne 0x547849
nop
mov dword [rbp + 0xc4], 0
cmp dword [rbp + 0xc4], 1
jge 0x5479a2
add dword [rbp + 0xc4], 1
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x54793c
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1d0
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd0]
sub eax, dword [rbp + 0xcc]
mov ecx, dword [rbp + 0xd8]
sub ecx, dword [rbp + 0xd4]
cmp eax, ecx
jle 0x547964
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2e2
mov dword [rbp + 0xdc], eax
cmp dword [rbp + 0xc4], 1
jl 0x54790f
nop
mov eax, dword [rbp + 0xdc]
sub eax, 0x293
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xdc]
imul eax, eax, 0x2d7
mov dword [rbp + 0xe0], eax
mov rax, qword [rbp + 0x100]
mov rcx, qword [rax]
call fcn.0053d680
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x100]
mov rdx, qword [rdx]
mov rdx, qword [rdx + 8]
mov r8d, eax
xor r9, r9
mov dword [rsp + 0x20], 0
lea rax, [rbp + 0x98]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_CryptImportKey
test eax, eax
je 0x548df6
mov eax, dword [rbp + 0xdc]
sub eax, 0x28e
mov dword [rbp + 0xe0], eax
nop
lea rcx, [rbp + 0xa0]
xor edx, edx
xor r8, r8
mov r9d, 0x18
mov dword [rsp + 0x20], 0xf0000000
call sub.advapi32.dll_CryptAcquireContextA
test eax, eax
je 0x548d23
mov dword [rbp + 0xe4], 0
mov eax, dword [rbp + 0xdc]
sub eax, 0x28d
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xc0]
sub eax, dword [rbp + 0xe0]
cmp dword [rbp + 0xd8], eax
jne 0x547a8f
mov eax, 0x114
sub eax, dword [rbp + 0xd8]
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xd0]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xc8]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 2
jne 0x547a57
nop
mov dword [rbp + 0xc4], 0
cmp dword [rbp + 0xc4], 1
jge 0x547b62
add dword [rbp + 0xc4], 1
mov eax, dword [rbp + 0xd8]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x547b12
mov eax, 0x18a
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xe4]
sub eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
sub ecx, dword [rbp + 0xd8]
cmp eax, ecx
jle 0x547b3a
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xe4], eax
mov eax, dword [rbp + 0xd0]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
cmp dword [rbp + 0xc4], 1
jl 0x547ae5
nop
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x547b92
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
lea r9, [rbp + 0xd0]
call fcn.005432c0
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x547bba
lea rcx, [rbp + 0xdc]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc4]
call fcn.00541a90
nop
mov eax, dword [rbp + 0xe0]
add eax, 0x251
mov dword [rbp + 0xc0], eax
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
call fcn.0053d680
mov rcx, qword [rbp + 0x108]
mov rcx, qword [rcx]
mov edx, eax
sub edx, 0x80
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xe0]
add eax, 0x1e7
mov dword [rbp + 0xc0], eax
mov ecx, pe_nt_image_headers64
call fcn.00409020
mov qword [rbp + 0xa8], rax
nop
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
mov rdx, qword [rbp + 0xa8]
mov r8d, 0x80
call fcn.0053e540
mov eax, dword [rbp + 0xe0]
add eax, 0x252
mov dword [rbp + 0xc0], eax
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
call fcn.0053d680
mov rcx, qword [rbp + 0x108]
mov rcx, qword [rcx]
mov edx, eax
sub edx, 0x84
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xc0]
add eax, 0x1fa
mov dword [rbp + 0xd4], eax
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
lea rdx, [rbp + 0x60]
mov r8d, 4
call fcn.0053e540
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xe4]
jle 0x547cc7
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xe4]
lea r8, [rbp + 0xd0]
call fcn.005471b0
mov eax, 0x53
sub eax, dword [rbp + 0xc4]
cmp eax, 0xec
jge 0x547ce0
call fcn.00541150
mov eax, 0x17d
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
mov dword [rbp + 0x78], 0x80
mov dword [rbp + 0xe4], 0
mov eax, dword [rbp + 0xdc]
sub eax, 0x287
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xd4]
sub eax, dword [rbp + 0xe0]
cmp dword [rbp + 0xcc], eax
jne 0x547d3b
mov eax, dword [rbp + 0xd8]
add eax, 0x12e
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x547d69
mov eax, dword [rbp + 0xc4]
sub eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x318
mov dword [rbp + 0xdc], eax
mov eax, dword [rbp + 0xd4]
sub eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jge 0x547da1
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1df
mov dword [rbp + 0xd4], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 3
jne 0x547d03
nop
mov eax, dword [rbp + 0xe0]
add eax, 0x224
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x268
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x26d
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x271
mov dword [rbp + 0xe0], eax
mov rcx, qword [rbp + 0x98]
xor edx, edx
or r8d, 0xffffffff
xor r9, r9
mov rax, qword [rbp + 0xa8]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x78]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_CryptDecrypt
test eax, eax
je 0x548bf1
mov dword [rbp + 0xc4], 0
cmp dword [rbp + 0xc4], 1
jge 0x547eee
add dword [rbp + 0xc4], 1
mov eax, dword [rbp + 0xd4]
sub eax, dword [rbp + 0xdc]
cmp eax, dword [rbp + 0xc8]
jge 0x547e74
mov eax, dword [rbp + 0xe0]
add eax, 0x1fe
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xc0]
cmp dword [rbp + 0xcc], eax
jne 0x547e9a
mov eax, dword [rbp + 0xd8]
add eax, 0x126
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x547ec2
mov eax, dword [rbp + 0xd0]
mov dword [rbp + 0xe4], eax
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
cmp dword [rbp + 0xc4], 1
jl 0x547e47
nop
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x547f10
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
call fcn.00541d40
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0xa8]
mov r8d, dword [rbp + 0x78]
xor r9, r9
mov dword [rsp + 0x20], 0
lea rax, [rbp + 0xb0]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_CryptImportKey
test eax, eax
je 0x548bf1
mov dword [rbp + 0xc4], 0
cmp dword [rbp + 0xc4], 1
jge 0x547fe8
add dword [rbp + 0xc4], 1
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xdc]
cmp eax, dword [rbp + 0xc8]
jle 0x547f8a
mov eax, dword [rbp + 0xe0]
add eax, 0x20d
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xc0]
cmp dword [rbp + 0xcc], eax
jne 0x547fb0
mov eax, 0x114
sub eax, dword [rbp + 0xd8]
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xd0]
mov dword [rbp + 0xe4], eax
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
cmp dword [rbp + 0xc4], 1
jl 0x547f5d
nop
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x548011
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc4]
call fcn.00541a90
mov dword [rbp + 0xd0], 0
mov eax, dword [rbp + 0xc0]
sub eax, dword [rbp + 0xdc]
cmp eax, dword [rbp + 0xc8]
jge 0x548041
mov eax, dword [rbp + 0xc0]
add eax, 0x220
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd0]
sub eax, dword [rbp + 0xcc]
mov ecx, dword [rbp + 0xd8]
sub ecx, dword [rbp + 0xd4]
cmp eax, ecx
jle 0x54806f
mov eax, 0xe7
sub eax, dword [rbp + 0xd8]
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
add ecx, dword [rbp + 0xd8]
cmp eax, ecx
jge 0x548097
mov eax, dword [rbp + 0xe4]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xc4]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
add dword [rbp + 0xc8], eax
add dword [rbp + 0xd0], 1
cmp dword [rbp + 0xd0], 3
jne 0x54801b
nop
nop
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
call fcn.00543e70
mov dword [rbp + 0xd0], 0
mov eax, dword [rbp + 0xdc]
sub eax, 0x293
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xc0]
sub eax, dword [rbp + 0xe0]
cmp dword [rbp + 0xd8], eax
jne 0x548128
mov eax, 0x15a
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xe4]
add eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
add ecx, dword [rbp + 0xd8]
cmp eax, ecx
jge 0x548157
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xe4]
add dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x2a8
mov dword [rbp + 0xe0], eax
add dword [rbp + 0xd0], 1
cmp dword [rbp + 0xd0], 3
jne 0x5480f0
nop
mov ecx, dword [rbp + 0x60]
add ecx, 0x100000
movsxd rcx, ecx
call fcn.00409020
mov qword [rbp + 0xb8], rax
nop
mov rcx, qword [0x00538bc0]
mov dl, 1
call fcn.0053b0a0
mov qword [rbp + 0xe8], rax
mov eax, dword [rbp + 0xe0]
add eax, 0x223
mov dword [rbp + 0xc0], eax
nop
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
call fcn.0053d680
sub eax, 0x84
movsxd rax, eax
mov qword [rbp + 0x68], rax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2db
mov dword [rbp + 0xdc], eax
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
xor edx, edx
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1d1
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x215
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x25a
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x25e
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x283
mov dword [rbp + 0xc0], eax
jmp 0x5486e8
mov eax, 0x5b
sub eax, dword [rbp + 0xe4]
cmp eax, 0xfe
jge 0x54829a
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
call fcn.00543e70
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc4]
lea r9, [rbp + 0xe4]
call fcn.005432c0
cmp qword [rbp + 0x68], 0x100000
jle 0x548318
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x5482e6
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
call fcn.00541d40
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2e2
mov dword [rbp + 0xdc], eax
mov eax, dword [rbp + 0x60]
add eax, 0x100000
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2d9
mov dword [rbp + 0xdc], eax
jmp 0x548371
mov eax, 0x5e
sub eax, dword [rbp + 0xe4]
cmp eax, 0x11a
jge 0x548346
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
call fcn.00543e70
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
call fcn.00543050
mov eax, dword [rbp + 0x68]
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x281
mov dword [rbp + 0xc0], eax
mov eax, 0x144
sub eax, dword [rbp + 0xd8]
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0x78]
sub qword [rbp + 0x68], rax
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xd8]
cmp eax, ecx
jge 0x5483c0
lea rcx, [rbp + 0xe4]
lea rdx, [rbp + 0xd0]
lea r8, [rbp + 0xcc]
call fcn.00538290
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x5483ef
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
lea r9, [rbp + 0xd0]
call fcn.005432c0
mov eax, 0x55
sub eax, dword [rbp + 0xc4]
cmp eax, 0xe6
jge 0x54841d
lea rcx, [rbp + 0xdc]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc8]
call fcn.00541440
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
mov rdx, qword [rbp + 0xb8]
mov r8d, dword [rbp + 0x78]
call fcn.0053e540
mov eax, dword [rbp + 0xdc]
sub eax, 0x2a4
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x23b
mov dword [rbp + 0xc0], eax
mov rcx, qword [rbp + 0xb0]
xor edx, edx
or r8d, 0xffffffff
xor r9, r9
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x78]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_CryptDecrypt
test eax, eax
je 0x5486f3
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x5484b5
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xe4]
lea r8, [rbp + 0xd0]
call fcn.00546eb0
mov eax, 0x57
sub eax, dword [rbp + 0xc4]
cmp eax, 0xdf
jge 0x5484e3
lea rcx, [rbp + 0xdc]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc4]
call fcn.00541a90
lea rcx, [0x0054975c]
lea rdx, [0x0054977c]
mov r8d, 1
call fcn.004102c0
cmp eax, 0x15
je 0x548514
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1ef
mov dword [rbp + 0xd4], eax
mov rcx, qword [rbp + 0xe8]
mov rdx, qword [rbp + 0xb8]
mov r8d, dword [rbp + 0x78]
call fcn.0053ee00
mov dword [rbp + 0xe4], 0
mov eax, dword [rbp + 0xdc]
sub eax, 0x2a7
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xd8]
add eax, dword [rbp + 0xc0]
cmp eax, dword [rbp + 0xe0]
jle 0x54856d
mov eax, 0x16f
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xe4]
sub eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
sub ecx, dword [rbp + 0xd8]
cmp eax, ecx
jle 0x54859c
mov eax, dword [rbp + 0xd0]
imul eax, dword [rbp + 0xcc]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xc4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xc4]
add dword [rbp + 0xc8], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 3
jne 0x548535
nop
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x5485f8
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc4]
call fcn.00541a90
mov dword [rbp + 0xe4], 0
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x548628
mov eax, dword [rbp + 0xc0]
add eax, 0x1fe
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd8]
add eax, dword [rbp + 0xd4]
cmp dword [rbp + 0xd0], eax
jne 0x548648
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xc4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x330
mov dword [rbp + 0xc8], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 3
jne 0x548602
nop
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1a7
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x20c
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xe0]
sub eax, 0x251
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x275
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xdc]
imul eax, eax, 0x2b9
mov dword [rbp + 0xe0], eax
cmp qword [rbp + 0x68], 0
jg 0x54826c
nop
cmp qword [rbp + 0x68], 0
jne 0x5489d9
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2fd
mov dword [rbp + 0xdc], eax
mov rcx, qword [rbp + 0xe8]
xor edx, edx
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xdc]
sub eax, 0x294
mov dword [rbp + 0xe0], eax
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
call fcn.0053bfc0
mov eax, dword [rbp + 0xe0]
add eax, 0x25c
mov dword [rbp + 0xc0], eax
mov rcx, qword [rbp + 0xe8]
call fcn.0053d680
test eax, eax
jle 0x5487fa
mov eax, dword [rbp + 0xe0]
add eax, 0x253
mov dword [rbp + 0xc0], eax
mov rcx, qword [rbp + 0xe8]
call fcn.0053d680
mov rcx, qword [rbp + 0x108]
mov rcx, qword [rcx]
mov rdx, qword [rbp + 0xe8]
mov r8d, eax
call fcn.0053f550
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x20a
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x22e
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x273
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xdc]
imul eax, eax, 0x2b7
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2fc
mov dword [rbp + 0xdc], eax
mov dword [rbp + 0xd0], 0
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2d3
mov dword [rbp + 0xdc], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x54883c
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1ba
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe4]
sub eax, dword [rbp + 0xcc]
mov ecx, dword [rbp + 0xd8]
sub ecx, dword [rbp + 0xd4]
cmp eax, ecx
jle 0x54886a
mov eax, dword [rbp + 0xd8]
add eax, 0xa2
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xe4], eax
mov eax, dword [rbp + 0xe4]
mov dword [rbp + 0xc4], eax
add dword [rbp + 0xd0], 1
cmp dword [rbp + 0xd0], 3
jne 0x548804
nop
mov dword [rbp + 0xe4], 0
cmp dword [rbp + 0xe4], 1
jge 0x548933
add dword [rbp + 0xe4], 1
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x5488db
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1d4
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd8]
add eax, dword [rbp + 0xd4]
cmp dword [rbp + 0xd0], eax
jne 0x5488fb
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xc4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xc4]
add dword [rbp + 0xc8], eax
cmp dword [rbp + 0xe4], 1
jl 0x5488ae
nop
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x54896a
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xd0]
lea r8, [rbp + 0xcc]
call fcn.005471b0
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x548999
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
lea r8, [rbp + 0xc4]
lea r9, [rbp + 0xe4]
call fcn.005432c0
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
call fcn.00541d40
mov rax, qword [rbp + 0x108]
mov rcx, qword [rax]
xor edx, edx
xor r8, r8
call fcn.0053d0f0
mov eax, dword [rbp + 0xe0]
add eax, 0x247
mov dword [rbp + 0xc0], eax
mov byte [rbp + 0x8f], 1
nop
mov rcx, qword [rbp + 0xe8]
call fcn.0040b1e0
mov dword [rbp + 0xe4], 0
mov eax, dword [rbp + 0xdc]
sub eax, 0x292
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xd8]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x548a28
mov eax, dword [rbp + 0xd4]
imul eax, eax, 0x199
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xe4]
sub eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
sub ecx, dword [rbp + 0xd4]
cmp eax, ecx
jle 0x548a56
mov eax, dword [rbp + 0xd8]
add eax, 0x80
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 3
jne 0x5489f0
nop
mov dword [rbp + 0xc4], 0
mov eax, dword [rbp + 0xe0]
sub eax, dword [rbp + 0xdc]
cmp dword [rbp + 0xd8], eax
jne 0x548ab3
mov eax, dword [rbp + 0xd4]
imul eax, eax, 0x192
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xe4]
sub eax, dword [rbp + 0xd0]
mov ecx, dword [rbp + 0xcc]
sub ecx, dword [rbp + 0xd8]
cmp eax, ecx
jle 0x548adb
mov eax, dword [rbp + 0xd0]
mov dword [rbp + 0xe4], eax
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
add dword [rbp + 0xc4], 1
cmp dword [rbp + 0xc4], 2
jne 0x548a8d
nop
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x548b33
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
call fcn.00544160
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
call fcn.00543050
nop
lea rcx, [rbp + 0xdc]
lea rdx, [rbp + 0xc8]
call fcn.00541d40
mov eax, dword [rbp + 0xe0]
sub eax, 0x259
mov dword [rbp + 0xc0], eax
mov rcx, qword [rbp + 0xb8]
call fcn.00409050
nop
mov eax, dword [rbp + 0xe0]
add eax, 0x235
mov dword [rbp + 0xc0], eax
mov eax, 0x155
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1ba
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xc0]
add eax, 0x1fe
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xc0]
add eax, 0x223
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x247
mov dword [rbp + 0xc0], eax
mov rcx, qword [rbp + 0xb0]
call sub.advapi32.dll_CryptDestroyKey
nop
mov rcx, qword [rbp + 0xa8]
call fcn.00409050
mov dword [rbp + 0xc4], 0
cmp dword [rbp + 0xc4], 1
jge 0x548ca8
add dword [rbp + 0xc4], 1
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x548c42
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1db
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd0]
sub eax, dword [rbp + 0xcc]
mov ecx, dword [rbp + 0xd8]
sub ecx, dword [rbp + 0xd4]
cmp eax, ecx
jle 0x548c6a
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xc8]
imul eax, eax, 0x2cd
mov dword [rbp + 0xdc], eax
cmp dword [rbp + 0xc4], 1
jl 0x548c15
nop
mov eax, 0x161
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xcc], eax
mov eax, 0x165
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
nop
mov eax, dword [rbp + 0xdc]
sub eax, 0x293
mov dword [rbp + 0xe0], eax
mov rcx, qword [rbp + 0xa0]
xor edx, edx
call sub.advapi32.dll_CryptReleaseContext
mov eax, 0x5b
sub eax, dword [rbp + 0xe4]
cmp eax, 0xff
jge 0x548d23
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
lea r9, [rbp + 0xd0]
call fcn.005432c0
nop
mov eax, dword [rbp + 0xe0]
add eax, 0x20f
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1e6
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xc0]
add eax, 0x20b
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x22f
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xe0]
add eax, 0x233
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x278
mov dword [rbp + 0xc0], eax
mov rcx, qword [rbp + 0x98]
call sub.advapi32.dll_CryptDestroyKey
mov eax, 0x17b
sub eax, dword [rbp + 0xd4]
mov dword [rbp + 0xd8], eax
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1bf
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xc0]
add eax, 0x204
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xe0]
sub eax, 0x248
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xdc]
sub eax, 0x28d
mov dword [rbp + 0xe0], eax
nop
mov dword [rbp + 0xc4], 0
cmp dword [rbp + 0xc4], 1
jge 0x548eb5
add dword [rbp + 0xc4], 1
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0xdc]
jle 0x548e3b
mov eax, dword [rbp + 0xc0]
add eax, 0x1fd
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd4]
add eax, dword [rbp + 0xc0]
cmp dword [rbp + 0xcc], eax
jne 0x548e61
mov eax, dword [rbp + 0xd8]
add eax, 0x105
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xc4]
add eax, dword [rbp + 0xe4]
mov ecx, dword [rbp + 0xd0]
add ecx, dword [rbp + 0xcc]
cmp eax, ecx
jge 0x548e89
mov eax, dword [rbp + 0xcc]
mov dword [rbp + 0xe4], eax
mov eax, dword [rbp + 0xe4]
imul eax, dword [rbp + 0xd0]
mov dword [rbp + 0xc8], eax
mov eax, dword [rbp + 0xe4]
sub dword [rbp + 0xc8], eax
cmp dword [rbp + 0xc4], 1
jl 0x548e0e
nop
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x548ee5
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc4]
lea r8, [rbp + 0xe4]
lea r9, [rbp + 0xd0]
call fcn.005432c0
mov eax, dword [rbp + 0xc8]
cmp eax, dword [rbp + 0xc4]
jle 0x548f06
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc8]
call fcn.00541d40
mov eax, dword [rbp + 0xdc]
sub eax, 0x2a8
mov dword [rbp + 0xe0], eax
mov eax, dword [rbp + 0xc0]
add eax, 0x20d
mov dword [rbp + 0xd4], eax
mov rcx, qword [rbp + 0x90]
xor edx, edx
call sub.advapi32.dll_CryptReleaseContext
mov eax, dword [rbp + 0xdc]
imul eax, eax, 0x2b7
mov dword [rbp + 0xe0], eax
jmp 0x54906a
mov eax, dword [rbp + 0xc0]
imul eax, eax, 0x1d5
mov dword [rbp + 0xd4], eax
nop
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0040e6b0
lea rcx, [rbp + 0x58]
call fcn.0040e5d0
movzx rax, byte [rbp + 0x8f]
lea rsp, [rbp + 0xf0]
pop rbp
ret