Function at 0x542000
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push rbp
sub rsp, 0xb0
mov rbp, rsp
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0xc0], rcx
mov qword [rbp + 0xc8], rdx
mov rcx, qword [rbp + 0xc8]
call fcn.0040e780
nop
mov eax, 0x57
sub eax, dword [rbp + 0x84]
cmp eax, 0xee
jge 0x542063
call fcn.0053fee0
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1e0
mov dword [rbp + 0x90], eax
nop
mov dword [rbp + 0x94], 0
mov eax, dword [rbp + 0x9c]
add eax, 0x269
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xac]
cmp dword [rbp + 0x8c], eax
jne 0x5420b8
mov eax, dword [rbp + 0x88]
add eax, 0x110
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
mov eax, dword [rbp + 0x84]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x98]
add eax, dword [rbp + 0x84]
mov dword [rbp + 0x9c], eax
add dword [rbp + 0x94], 1
cmp dword [rbp + 0x94], 3
jne 0x542080
nop
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
lea rcx, [rbp + 0x9c]
lea rdx, [rbp + 0x98]
call fcn.00540410
mov eax, dword [rbp + 0x9c]
sub eax, 0x267
mov dword [rbp + 0xac], eax
lea rcx, [rbp + 0x60]
call fcn.0040e5d0
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, dword [rbp + 0x98]
imul eax, eax, 0x32f
mov dword [rbp + 0x9c], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0x9c]
imul eax, eax, 0x2f3
mov dword [rbp + 0xa8], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1d48]
call fcn.0040fe40
mov eax, dword [rbp + 0x9c]
sub eax, 0x296
mov dword [rbp + 0xa8], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, dword [rbp + 0xa8]
add eax, 0x23a
mov dword [rbp + 0xac], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1ce0]
call fcn.0040fe40
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1de
mov dword [rbp + 0x90], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1cd0]
call fcn.0040fe40
mov eax, dword [rbp + 0x90]
imul eax, eax, 0x182
mov dword [rbp + 0x88], eax
lea rcx, [rbp + 0x40]
mov edx, 3
call fcn.0042be80
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x40]
call fcn.0040fe40
mov eax, 0x186
sub eax, dword [rbp + 0x90]
mov dword [rbp + 0x88], eax
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0042be80
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x38]
call fcn.0040fe40
mov eax, 0x14a
sub eax, dword [rbp + 0x90]
mov dword [rbp + 0x88], eax
lea rcx, [rbp + 0x60]
lea rdx, [0x00543044]
call fcn.0040fe40
mov eax, dword [rbp + 0x88]
add eax, 0xce
mov dword [rbp + 0x8c], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x5422c9
mov eax, dword [rbp + 0x94]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, 0x57
sub eax, dword [rbp + 0x84]
cmp eax, 0xfe
jge 0x5422f9
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
lea rcx, [rbp + 0x60]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
mov dword [rbp + 0x84], 0
cmp dword [rbp + 0x84], 1
jge 0x5423cc
add dword [rbp + 0x84], 1
mov eax, dword [rbp + 0xac]
add eax, dword [rbp + 0xa8]
cmp eax, dword [rbp + 0x98]
jle 0x542365
mov eax, dword [rbp + 0xa8]
add eax, 0x1f7
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0xac]
cmp dword [rbp + 0x8c], eax
jne 0x54238b
mov eax, dword [rbp + 0x88]
add eax, 0xfe
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x5423b3
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x94], eax
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
cmp dword [rbp + 0x84], 1
jl 0x542338
nop
mov dword [rbp + 0x84], 0
cmp dword [rbp + 0x84], 1
jge 0x542477
add dword [rbp + 0x84], 1
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0xa8]
cmp eax, dword [rbp + 0x9c]
jle 0x542411
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1b4
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0x94]
sub eax, dword [rbp + 0x8c]
mov ecx, dword [rbp + 0x88]
sub ecx, dword [rbp + 0x90]
cmp eax, ecx
jle 0x542439
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x94]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x94]
sub dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x98]
imul eax, eax, 0x2e6
mov dword [rbp + 0x9c], eax
cmp dword [rbp + 0x84], 1
jl 0x5423e4
nop
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
lea rcx, [rbp + 0x78]
xor edx, edx
xor r8, r8
mov r9d, 1
mov dword [rsp + 0x20], 0xf0000000
call sub.advapi32.dll_CryptAcquireContextA
test eax, eax
je 0x542c8b
nop
mov eax, 0x5c
sub eax, dword [rbp + 0x84]
cmp eax, 0x102
jge 0x5424c3
call fcn.00541150
mov eax, dword [rbp + 0xa8]
add eax, 0x249
mov dword [rbp + 0xac], eax
mov rcx, qword [rbp + 0x78]
mov edx, 0x8003
xor r8, r8
xor r9, r9
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_CryptCreateHash
test eax, eax
je 0x542933
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x542553
lea rcx, [rbp + 0x84]
lea rdx, [rbp + 0x8c]
lea r8, [rbp + 0x88]
lea r9, [rbp + 0x90]
lea rax, [rbp + 0xac]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
call fcn.00536bb0
mov eax, 0x1b7
sub eax, dword [rbp + 0xac]
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0xa8]
imul eax, eax, 0x1fb
mov dword [rbp + 0xac], eax
nop
mov dword [rbp + 0x84], 0
cmp dword [rbp + 0x84], 1
jge 0x54262a
add dword [rbp + 0x84], 1
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0x9c]
cmp eax, dword [rbp + 0x98]
jle 0x5425bc
mov eax, dword [rbp + 0xa8]
add eax, 0x21d
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0xac]
cmp dword [rbp + 0x8c], eax
jne 0x5425e2
mov eax, dword [rbp + 0x88]
add eax, 0x104
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x98]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x54260a
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x94], eax
mov eax, dword [rbp + 0x94]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
cmp dword [rbp + 0x84], 1
jl 0x54258f
nop
mov dword [rbp + 0x94], 0
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0xa8]
cmp eax, dword [rbp + 0x9c]
jle 0x54265b
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1da
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0x88]
sub eax, dword [rbp + 0xac]
test eax, eax
jge 0x54267d
mov eax, dword [rbp + 0x88]
add eax, 0xc1
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
mov eax, dword [rbp + 0x84]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
add dword [rbp + 0x94], 1
cmp dword [rbp + 0x94], 3
jne 0x542635
nop
mov eax, dword [rbp + 0x98]
cmp eax, dword [rbp + 0x84]
jle 0x5426ec
lea rcx, [rbp + 0x98]
lea rdx, [rbp + 0x84]
lea r8, [rbp + 0x94]
lea r9, [rbp + 0x8c]
call fcn.00540d90
mov dword [rbp + 0x5c], 0
cmp qword [rbp + 0xc8], 0
je 0x54270a
mov rax, qword [rbp + 0xc8]
mov eax, dword [rax - 4]
mov dword [rbp + 0x5c], eax
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0xc8]
mov r8d, dword [rbp + 0x5c]
xor r9, r9
call sub.advapi32.dll_CryptHashData
test eax, eax
je 0x5428de
mov eax, dword [rbp + 0x98]
imul eax, eax, 0x330
mov dword [rbp + 0x98], eax
mov dword [rbp + 0x84], 0
cmp dword [rbp + 0x84], 1
jge 0x5427ce
add dword [rbp + 0x84], 1
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0xa8]
cmp eax, dword [rbp + 0x9c]
jle 0x54277e
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1ef
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0x94]
sub eax, dword [rbp + 0x8c]
mov ecx, dword [rbp + 0x88]
sub ecx, dword [rbp + 0xac]
cmp eax, ecx
jle 0x5427a6
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x94], eax
mov eax, dword [rbp + 0x94]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x94]
sub dword [rbp + 0x98], eax
cmp dword [rbp + 0x84], 1
jl 0x542751
nop
mov eax, dword [rbp + 0x98]
cmp eax, dword [rbp + 0x84]
jle 0x5427e2
call fcn.00541150
mov eax, dword [rbp + 0xa8]
add eax, 0x208
mov dword [rbp + 0xac], eax
mov rcx, qword [rbp + 0xa0]
mov edx, 2
xor r8, r8
lea r9, [rbp + 0x74]
mov dword [rsp + 0x20], 0
call sub.advapi32.dll_CryptGetHashParam
test eax, eax
je 0x5428de
mov eax, dword [rbp + 0x98]
imul eax, eax, 0x2c0
mov dword [rbp + 0x9c], eax
lea rcx, [rbp + 0x68]
mov rdx, qword [0x00541fc8]
mov r8d, 1
mov r9d, dword [rbp + 0x74]
call fcn.00411b50
call fcn.00541150
mov eax, dword [rbp + 0xa8]
add eax, 0x21b
mov dword [rbp + 0xac], eax
mov rcx, qword [rbp + 0xa0]
mov edx, 2
mov r8, qword [rbp + 0x68]
lea r9, [rbp + 0x74]
mov dword [rsp + 0x20], 0
call sub.advapi32.dll_CryptGetHashParam
test eax, eax
je 0x5428de
mov eax, dword [rbp + 0xa8]
add eax, 0x212
mov dword [rbp + 0xac], eax
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x50], rax
cmp qword [rbp + 0x50], 0
je 0x5428b4
mov rax, qword [rbp + 0x50]
mov rax, qword [rax - 8]
mov qword [rbp + 0x50], rax
mov rcx, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x50]
lea r8, [rax - 1]
call fcn.005416d0
mov eax, dword [rbp + 0x9c]
sub eax, 0x2aa
mov dword [rbp + 0xa8], eax
nop
mov eax, dword [rbp + 0xa8]
add eax, 0x236
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xa8]
add eax, 0x235
mov dword [rbp + 0xac], eax
mov rcx, qword [rbp + 0xa0]
call sub.advapi32.dll_CryptDestroyHash
mov eax, dword [rbp + 0x98]
imul eax, eax, 0x2ed
mov dword [rbp + 0x9c], eax
mov eax, dword [rbp + 0x9c]
sub eax, 0x275
mov dword [rbp + 0xa8], eax
nop
mov dword [rbp + 0x94], 0
sub dword [rbp + 0x9c], 0x2db
mov eax, dword [rbp + 0x90]
add eax, dword [rbp + 0xa8]
cmp eax, dword [rbp + 0x9c]
jle 0x54296e
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1c3
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0x8c]
sub eax, dword [rbp + 0x88]
test eax, eax
jle 0x542990
mov eax, dword [rbp + 0x88]
add eax, 0xca
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
mov eax, dword [rbp + 0x84]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
add dword [rbp + 0x94], 1
cmp dword [rbp + 0x94], 3
jne 0x54293e
nop
mov dword [rbp + 0x94], 0
cmp dword [rbp + 0x94], 1
jge 0x542a6e
add dword [rbp + 0x94], 1
mov eax, dword [rbp + 0x9c]
sub eax, 0x279
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
sub eax, dword [rbp + 0x9c]
cmp dword [rbp + 0x88], eax
jne 0x542a1a
mov eax, 0x180
sub eax, dword [rbp + 0x90]
mov dword [rbp + 0x88], eax
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x88]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x542a42
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
mov eax, dword [rbp + 0x84]
imul eax, dword [rbp + 0x8c]
mov dword [rbp + 0x98], eax
cmp dword [rbp + 0x94], 1
jl 0x5429db
nop
mov dword [rbp + 0x84], 0
cmp dword [rbp + 0x84], 1
jge 0x542aed
add dword [rbp + 0x84], 1
cmp dword [rbp + 0x88], 0
jne 0x542aa4
mov eax, dword [rbp + 0x90]
imul eax, eax, 0x17a
mov dword [rbp + 0x88], eax
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x542acc
mov eax, dword [rbp + 0x88]
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x94]
mov dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x94]
sub dword [rbp + 0x98], eax
cmp dword [rbp + 0x84], 1
jl 0x542a82
nop
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x542b24
lea rcx, [rbp + 0x84]
lea rdx, [rbp + 0x94]
lea r8, [rbp + 0x8c]
call fcn.005360e0
mov rcx, qword [rbp + 0x78]
xor edx, edx
call sub.advapi32.dll_CryptReleaseContext
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x542b65
lea rcx, [rbp + 0x98]
lea rdx, [rbp + 0x84]
lea r8, [rbp + 0x94]
call fcn.00536410
lea rcx, [rbp + 0x98]
lea rdx, [rbp + 0x98]
lea r8, [rbp + 0x84]
lea r9, [rbp + 0x94]
call fcn.00540d90
call fcn.00541150
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1c9
mov dword [rbp + 0x90], eax
mov dword [rbp + 0x94], 0
mov eax, dword [rbp + 0x9c]
sub eax, 0x2b2
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xac]
sub eax, dword [rbp + 0xa8]
cmp dword [rbp + 0x88], eax
jne 0x542bdf
mov eax, 0x159
sub eax, dword [rbp + 0x90]
mov dword [rbp + 0x88], eax
mov eax, dword [rbp + 0x84]
add eax, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x8c]
add ecx, dword [rbp + 0x88]
cmp eax, ecx
jge 0x542c07
mov eax, dword [rbp + 0x8c]
mov dword [rbp + 0x84], eax
mov eax, dword [rbp + 0x84]
mov dword [rbp + 0x98], eax
mov eax, dword [rbp + 0x84]
add dword [rbp + 0x98], eax
add dword [rbp + 0x94], 1
cmp dword [rbp + 0x94], 3
jne 0x542ba7
nop
call fcn.00541150
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1cf
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0xac]
imul eax, eax, 0x1d3
mov dword [rbp + 0x90], eax
mov eax, dword [rbp + 0xa8]
add eax, 0x1f7
mov dword [rbp + 0xac], eax
jmp 0x542c8b
mov eax, dword [rbp + 0x98]
cmp eax, dword [rbp + 0x84]
jle 0x542cb3
lea rcx, [rbp + 0x98]
lea rdx, [rbp + 0x84]
lea r8, [rbp + 0x94]
call fcn.00541440
call fcn.00541150
nop
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0040e6b0
lea rcx, [rbp + 0x60]
call fcn.0040e5d0
lea rcx, [rbp + 0x68]
mov rdx, qword [0x00541fc8]
call fcn.00411d20
lea rcx, [rbp + 0xc8]
call fcn.0040e620
mov rax, qword [rbp + 0xc0]
lea rsp, [rbp + 0xb0]
pop rbp
ret