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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rax - 0x298]
sub rsp, 0x370
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x140098280]
xor rax, rsp
mov qword [rbp + 0x240], rax
mov r14, r8
mov rsi, rdx
mov rdi, rcx
mov r15, qword [rbp + 0x2c0]
xor ebx, ebx
mov qword [rbp + 0x1d8], rbx
mov qword [rbp + 0x1c8], rbx
mov qword [rbp + 0x1d0], rbx
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x1d8]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140015df7
lea rdx, [rsp + 0x30]
call fcn.140017450
mov r9, rax
cmp word [rax + 0x1e], bx
je 0x140016fb6
cmp dword [0x1400982d8], 2
jge 0x140016e0c
mov r8, r9
nop word [rax + rax]
mov eax, 0x1f7047dd
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movzx eax, ax
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x10
jge 0x140016fb6
jmp 0x140015dc0
lea rax, [rbp + 0x1d0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800c
mov rcx, qword [rbp + 0x1d8]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x140015e87
lea rdx, [rsp + 0x30]
call fcn.140017470
mov r9, rax
cmp word [rax + 0x1e], bx
je 0x140017179
cmp dword [0x1400982d8], 2
jge 0x140016fbf
mov r8, r9
nop word [rax + rax]
mov eax, 0x1f7047dd
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movzx eax, ax
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x10
jge 0x140017179
jmp 0x140015e50
xor r9d, r9d
mov r8d, 0x20
mov rdx, r14
mov rcx, qword [rbp + 0x1d0]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x140015f07
lea rdx, [rsp + 0x30]
call fcn.140017490
mov r9, rax
cmp word [rax + 0x1e], bx
je 0x14001733c
cmp dword [0x1400982d8], 2
jge 0x140017182
mov r8, r9
nop dword [rax + rax]
mov eax, 0x1f7047dd
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movzx eax, ax
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x10
jge 0x14001733c
jmp 0x140015ed0
lea rax, [rbp + 0x1c8]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8, qword [rbp + 0x1d0]
mov edx, 0x6610
mov rcx, qword [rbp + 0x1d8]
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x140016168
lea rdx, [rsp + 0x30]
call fcn.1400174b0
mov r9, rax
cmp word [rax + 0x20], bx
je 0x140017345
cmp dword [0x1400982d8], 2
jl 0x14001611d
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax]
xorps xmm3, xmm0
movq qword [rax], xmm3
movdqa xmm2, xmmword [0x14008c330]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 8]
xorps xmm3, xmm0
movq qword [rax + 8], xmm3
movdqa xmm2, xmmword [0x14008c350]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x10]
xorps xmm3, xmm0
movq qword [rax + 0x10], xmm3
movdqa xmm2, xmmword [0x14008c370]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x18]
xorps xmm3, xmm0
movq qword [rax + 0x18], xmm3
mov ebx, 0x10
mov eax, ebx
lea r8, [r9 + rax*2]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x8fb823ef
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x11
jge 0x140017345
jmp 0x140016130
xor r9d, r9d
mov r8, r15
mov edx, 1
mov rcx, qword [rbp + 0x1c8]
call qword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x1400163a9
lea rdx, [rsp + 0x30]
call fcn.1400174e0
mov r9, rax
cmp word [rax + 0x20], bx
je 0x14001734e
cmp dword [0x1400982d8], 2
jl 0x14001636b
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax]
xorps xmm3, xmm0
movq qword [rax], xmm3
movdqa xmm2, xmmword [0x14008c330]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 8]
xorps xmm3, xmm0
movq qword [rax + 8], xmm3
movdqa xmm2, xmmword [0x14008c350]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x10]
xorps xmm3, xmm0
movq qword [rax + 0x10], xmm3
movdqa xmm2, xmmword [0x14008c370]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x18]
xorps xmm3, xmm0
movq qword [rax + 0x18], xmm3
mov ebx, 0x10
mov eax, ebx
lea r8, [r9 + rax*2]
mov eax, 0x8fb823ef
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x11
jge 0x14001734e
jmp 0x140016371
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0xb0]
call fcn.140077e60
cmp qword [rdi + 0x18], 0xf
jbe 0x1400163c7
mov rdi, qword [rdi]
mov r8d, 0x20
mov rdx, rdi
lea rcx, [rbp + 0xb0]
call fcn.140046190
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea r15, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xb0], r15
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xac], edx
mov rcx, qword [rbp + 0xb0]
movsxd rax, dword [rcx + 4]
test byte [rbp + rax + 0xc0], 6
je 0x140016649
lea rdx, [rsp + 0x30]
call fcn.140017510
mov r9, rax
cmp word [rax + 0x20], 0
je 0x140017357
cmp dword [0x1400982d8], 2
jl 0x14001660b
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax]
xorps xmm3, xmm0
movq qword [rax], xmm3
movdqa xmm2, xmmword [0x14008c330]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 8]
xorps xmm3, xmm0
movq qword [rax + 8], xmm3
movdqa xmm2, xmmword [0x14008c350]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x10]
xorps xmm3, xmm0
movq qword [rax + 0x10], xmm3
movdqa xmm2, xmmword [0x14008c370]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x18]
xorps xmm3, xmm0
movq qword [rax + 0x18], xmm3
mov ebx, 0x10
mov eax, ebx
lea r8, [r9 + rax*2]
mov eax, 0x8fb823ef
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x11
jge 0x140017357
jmp 0x140016611
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x1f8], xmm0
mov qword [rbp + 0x208], rax
mov qword [rbp + 0x210], rbx
mov word [rbp + 0x218], 1
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax + 0xf8]
mov qword [rsp + 0x30], rcx
test rcx, rcx
sete byte [rsp + 0x38]
mov byte [rsp + 0x39], 0
movaps xmm0, xmmword [rbp + 0x210]
movdqa xmmword [rbp + 0x210], xmm0
movaps xmm1, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm1
lea r8, [rbp + 0x210]
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x1f8]
call fcn.140049220
nop
lea rcx, [rbp + 0xc0]
call fcn.140045f60
mov edi, 6
mov r14d, 2
test rax, rax
jne 0x140016713
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
mov eax, edi
cmp qword [rbp + rcx + 0xf8], 0
cmovne eax, r14d
or eax, dword [rbp + rcx + 0xc0]
and eax, 0x17
mov dword [rbp + rcx + 0xc0], eax
mov edx, dword [rbp + rcx + 0xc4]
and edx, eax
jne 0x14001739b
mov edx, dword [rbp + 0x200]
sub edx, dword [rbp + 0x1f8]
mov dword [rbp + 0x1c0], edx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x1e0], xmm0
mov qword [rbp + 0x1f0], rax
lea rcx, [rbp + 0x1e0]
call fcn.14003fd50
nop
mov r8d, dword [rbp + 0x1c0]
mov rdx, qword [rbp + 0x1f8]
mov rcx, qword [rbp + 0x1e0]
call fcn.1400777c0
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x1e0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor edx, edx
mov r8d, 1
mov rcx, qword [rbp + 0x1c8]
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x140016937
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rsp + 0x30]
call fcn.140003550
mov r10, rax
lea rdx, [rsp + 0x60]
call fcn.140017540
mov r9, rax
cmp word [rax + 0x3e], 0
je 0x140017360
cmp dword [0x1400982d8], 2
jl 0x1400168f2
movdqa xmm5, xmmword [0x14008c310]
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm6, xmmword [str.9999]
movdqa xmm7, xmmword [0x14008c3c0]
mov rcx, rax
nop dword [rax]
nop dword [rax + rax]
movd xmm2, ebx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm7
paddw xmm3, xmm2
movq xmm0, qword [rcx]
xorps xmm3, xmm0
movq qword [rcx], xmm3
lea eax, [rbx + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm7
paddw xmm3, xmm2
movq xmm0, qword [rcx + 8]
xorps xmm3, xmm0
movq qword [rcx + 8], xmm3
add ebx, 8
lea rcx, [rcx + 0x10]
cmp ebx, 0x20
jge 0x140017360
jmp 0x140016800
mov r8, r9
nop word [rax + rax]
mov eax, 0x1f7047dd
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movzx eax, ax
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x20
jge 0x140017360
jmp 0x140016900
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rbp - 0x60]
call fcn.140077e60
cmp qword [rsi + 0x18], 0xf
jbe 0x140016952
mov rsi, qword [rsi]
mov r8d, 0x20
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.14003fb40
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rsi
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x64], edx
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x50], 6
je 0x140016bc8
lea rdx, [rsp + 0x30]
call fcn.140017570
mov r9, rax
cmp word [rax + 0x20], 0
je 0x140017392
cmp dword [0x1400982d8], 2
jl 0x140016b81
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax]
xorps xmm3, xmm0
movq qword [rax], xmm3
movdqa xmm2, xmmword [0x14008c330]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 8]
xorps xmm3, xmm0
movq qword [rax + 8], xmm3
movdqa xmm2, xmmword [0x14008c350]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x10]
xorps xmm3, xmm0
movq qword [rax + 0x10], xmm3
movdqa xmm2, xmmword [0x14008c370]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x18]
xorps xmm3, xmm0
movq qword [rax + 0x18], xmm3
mov ebx, 0x10
mov eax, ebx
lea r8, [r9 + rax*2]
nop word [rax + rax]
mov eax, 0x8fb823ef
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x39
movzx eax, bx
sub ax, cx
add ax, 0x32
xor word [r8], ax
inc ebx
lea r8, [r8 + 2]
cmp ebx, 0x11
jge 0x140017392
jmp 0x140016b90
mov r8d, dword [rbp + 0x1c0]
mov rdx, qword [rbp + 0x1e0]
lea rcx, [rbp - 0x60]
call fcn.1400425b0
lea rcx, [rbp - 0x58]
call fcn.140045f60
test rax, rax
jne 0x140016c16
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx - 0x18], 0
cmovne edi, r14d
or edi, dword [rbp + rcx - 0x50]
and edi, 0x17
mov dword [rbp + rcx - 0x50], edi
mov eax, dword [rbp + rcx - 0x4c]
and eax, edi
jne 0x1400173f3
mov rcx, qword [rbp + 0x1c8]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rbp + 0x1d0]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, qword [rbp + 0x1d8]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov r8, qword [rbp + 0x1e8]
mov rcx, qword [rbp + 0x1e0]
sub r8, rcx
xor edx, edx
call fcn.140077e60
nop
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x60], rsi
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x58]
call fcn.1400409e0
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x64], edx
lea rdi, vtable.std::ios_base.0
mov qword [rbp + 0x48], rdi
lea rcx, [rbp + 0x48]
call fcn.140051734
nop
mov rcx, qword [rbp + 0x1e0]
test rcx, rcx
je 0x140016d0a
mov rdx, qword [rbp + 0x1f0]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016cf3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017449
call fcn.1400529f0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1e0], xmm0
mov qword [rbp + 0x1f0], rbx
mov rcx, qword [rbp + 0x1f8]
test rcx, rcx
je 0x140016d5c
mov rdx, qword [rbp + 0x208]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016d45
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140016e06
call fcn.1400529f0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1f8], xmm0
mov qword [rbp + 0x208], rbx
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0xb0], r15
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xac], edx
lea rcx, [rbp + 0xc0]
call fcn.1400409e0
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xb0], rax
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0xac], edx
mov qword [rbp + 0x160], rdi
lea rcx, [rbp + 0x160]
call fcn.140051734
nop
mov rcx, qword [rbp + 0x240]
xor rcx, rsp
call fcn.1400529d0
lea r11, [rsp + 0x370]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.14005ffec
nop
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmm6
movq xmm0, qword [rax]
xorps xmm2, xmm0
movq qword [rax], xmm2
movdqa xmm3, xmmword [0x14008c330]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm3, xmm0
pshufhw xmm0, xmm3, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmm6
movq xmm0, qword [rax + 8]
xorps xmm2, xmm0
movq qword [rax + 8], xmm2
movdqa xmm3, xmmword [0x14008c350]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm3, xmm0
pshufhw xmm0, xmm3, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmm6
movq xmm0, qword [rax + 0x10]
xorps xmm2, xmm0
movq qword [rax + 0x10], xmm2
movdqa xmm3, xmmword [0x14008c370]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm3, xmm0
pshufhw xmm0, xmm3, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmm6
movq xmm0, qword [rax + 0x18]
xorps xmm2, xmm0
movq qword [rax + 0x18], xmm2
mov rcx, r9
call fcn.140006f70
int3
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax]
xorps xmm3, xmm0
movq qword [rax], xmm3
movdqa xmm2, xmmword [0x14008c330]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 8]
xorps xmm3, xmm0
movq qword [rax + 8], xmm3
movdqa xmm2, xmmword [0x14008c350]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x10]
xorps xmm3, xmm0
movq qword [rax + 0x10], xmm3
movdqa xmm2, xmmword [0x14008c370]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x18]
xorps xmm3, xmm0
movq qword [rax + 0x18], xmm3
mov rcx, r9
call fcn.140006f70
int3
movdqa xmm4, xmmword [0x14008c3f0]
movdqa xmm5, xmmword [str.9999]
movdqa xmm6, xmmword [0x14008c3c0]
movdqa xmm2, xmmword [0x14008c310]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax]
xorps xmm3, xmm0
movq qword [rax], xmm3
movdqa xmm2, xmmword [0x14008c330]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 8]
xorps xmm3, xmm0
movq qword [rax + 8], xmm3
movdqa xmm2, xmmword [0x14008c350]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x10]
xorps xmm3, xmm0
movq qword [rax + 0x10], xmm3
movdqa xmm2, xmmword [0x14008c370]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movq xmm2, xmm6
paddw xmm3, xmm2
movq xmm0, qword [rax + 0x18]
xorps xmm3, xmm0
movq qword [rax + 0x18], xmm3
mov rcx, r9
call fcn.140006f70
int3
mov rcx, r9
call fcn.140006f70
int3
mov rcx, r9
call fcn.140006f70
nop
mov rcx, r9
call fcn.140006f70
nop
mov r8, r10
mov rdx, r9
lea rcx, [rbp + 0x210]
call fcn.140049540
nop
lea rcx, [rsp + 0x30]
call fcn.140003c20
lea rcx, [rbp + 0x210]
call fcn.140042f70
mov rcx, rax
call fcn.140006f70
nop
mov rcx, r9
call fcn.140006f70
nop
test dl, 4
je 0x1400173a9
lea rbx, str.ios_base::badbit_set
jmp 0x1400173be
test r14b, dl
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.140001d90
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x210]
call fcn.140003250
lea rdx, [0x140095ed8]
lea rcx, [rbp + 0x210]
call fcn.140054a1c
nop
test al, 4
je 0x140017400
lea rbx, str.ios_base::badbit_set
jmp 0x140017414
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.140001d90
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x210]
call fcn.140003250
lea rdx, [0x140095ed8]
lea rcx, [rbp + 0x210]
call fcn.140054a1c
nop
call fcn.14005ffec
int3