Function at 0x40a61c
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], esp
push 0xf0000000
push 1
push 0x489c95
push 0x489c95
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a6a9
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x40a709
mov dword [ebp - 0x30], esp
push 0
push 1
push 0x489c95
push 0x489c95
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a6ed
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x40a704
mov eax, 0x489c95
jmp 0x40acbf
jmp 0x40ac8e
mov dword [ebp - 0x30], esp
lea eax, [ebp - 0xc]
push eax
push 0
push dword [ebp - 8]
push dword [ebp + 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a73a
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x40a785
mov dword [ebp - 0x30], esp
mov eax, 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a776
push 6
call fcn.00457db0
add esp, 4
mov eax, 0x489c95
jmp 0x40acbf
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x40a7a1
push eax
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.00457da4
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x40a7b2
push ebx
call fcn.00457daa
add esp, 4
pop eax
mov dword [ebp - 0x10], eax
push 0x80000005
push 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
jne 0x40a7cb
mov eax, 0x483968
push eax
push 1
mov ebx, 0x194
call fcn.00458120
add esp, 0x10
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x30], esp
push 0
push dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40a7f6
add eax, 8
push eax
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a816
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x40a884
mov dword [ebp - 0x30], esp
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a846
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x30], esp
mov eax, 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a875
push 6
call fcn.00457db0
add esp, 4
mov eax, 0x489c95
jmp 0x40acbf
push 0x80000301
push 0
push dword [ebp + 0x10]
push 1
mov ebx, 0x1bc
call fcn.0045a560
add esp, 0x10
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40a8b7
push ebx
call fcn.00457daa
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], esp
push 0
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40a8d7
add eax, 8
push eax
push 2
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a8fc
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x40a96a
mov dword [ebp - 0x30], esp
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a92c
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x30], esp
mov eax, 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40a95b
push 6
call fcn.00457db0
add esp, 4
mov eax, 0x489c95
jmp 0x40acbf
push 0x80000004
push 0
push str.0123456789ABCDEF
push 1
mov ebx, 0x198
call fcn.0045a3a0
add esp, 0x10
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40a99f
push ebx
call fcn.00457daa
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
fild dword [ebp + 0x10]
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fmul qword [0x48a022]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
call fcn.0040110a
push 0x80000301
push 0
push eax
push 1
mov ebx, 0x1bc
call fcn.0045a560
add esp, 0x10
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40a9ee
push ebx
call fcn.00457daa
add esp, 4
pop eax
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fsub qword [0x489dee]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
call fcn.0040110a
push eax
lea eax, [ebp - 0x28]
mov ebx, eax
mov ecx, 0
pop edx
push edx
push ecx
push ebx
mov dword [ebx], ecx
cmp ecx, edx
jg 0x40ac39
mov ebx, dword [ebp - 0x18]
call fcn.0040260d
push ebx
push ecx
fild dword [ebp - 0x28]
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fadd qword [0x489dee]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
call fcn.0040110a
dec eax
jns 0x40aa59
push 4
call fcn.00457db0
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40aa6c
push 1
call fcn.00457db0
add esp, 4
add ebx, eax
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x40]
mov al, byte [ebx]
and eax, 0xff
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x24]
call fcn.0040260d
push ebx
push ecx
fild dword [ebp - 0x28]
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fmul qword [0x48a022]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fadd qword [0x489dee]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x44]
call fcn.0040110a
dec eax
jns 0x40aabe
push 4
call fcn.00457db0
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40aad1
push 1
call fcn.00457db0
add esp, 4
add ebx, eax
mov dword [ebp - 0x48], ebx
mov ebx, dword [ebp - 0x20]
call fcn.0040260d
push ebx
push ecx
push 0x80000301
push 0
push 4
push 0x80000301
push 0
push dword [ebp - 0x2c]
push 2
mov ebx, 0x9fc
call fcn.0045b630
add esp, 0x1c
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fstp qword [ebp - 0x54]
fld qword [ebp - 0x54]
fadd qword [0x489dee]
fstp qword [ebp - 0x5c]
fld qword [ebp - 0x5c]
call fcn.0040110a
dec eax
jns 0x40ab35
push 4
call fcn.00457db0
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40ab48
push 1
call fcn.00457db0
add esp, 4
add ebx, eax
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp - 0x60]
mov al, byte [ebx]
mov ebx, dword [ebp - 0x48]
mov byte [ebx], al
mov ebx, dword [ebp - 0x24]
call fcn.0040260d
push ebx
push ecx
fild dword [ebp - 0x28]
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fmul qword [0x48a022]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fadd qword [0x48a022]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x44]
call fcn.0040110a
dec eax
jns 0x40ab97
push 4
call fcn.00457db0
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40abaa
push 1
call fcn.00457db0
add esp, 4
add ebx, eax
mov dword [ebp - 0x48], ebx
mov ebx, dword [ebp - 0x20]
call fcn.0040260d
push ebx
push ecx
push 0x80000301
push 0
push 0xf
push 0x80000301
push 0
push dword [ebp - 0x2c]
push 2
mov ebx, 0xc4
call fcn.0045b640
add esp, 0x1c
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fstp qword [ebp - 0x54]
fld qword [ebp - 0x54]
fadd qword [0x489dee]
fstp qword [ebp - 0x5c]
fld qword [ebp - 0x5c]
call fcn.0040110a
dec eax
jns 0x40ac0e
push 4
call fcn.00457db0
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40ac21
push 1
call fcn.00457db0
add esp, 4
add ebx, eax
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp - 0x60]
mov al, byte [ebx]
mov ebx, dword [ebp - 0x48]
mov byte [ebx], al
pop ebx
pop ecx
pop edx
inc ecx
jmp 0x40aa18
add esp, 0xc
mov dword [ebp - 0x30], esp
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40ac5f
push 6
call fcn.00457db0
add esp, 4
mov dword [ebp - 0x30], esp
mov eax, 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x30], esp
je 0x40ac8e
push 6
call fcn.00457db0
add esp, 4
push 0x80000005
push 0
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x40aca1
mov eax, 0x483968
push eax
push 1
mov ebx, 0x168
call fcn.00459af0
add esp, 0x10
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
jmp 0x40acbf
push eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x40acd0
push ebx
call fcn.00457daa
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40ace0
push ebx
call fcn.00457daa
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40acf0
push ebx
call fcn.00457daa
add esp, 4
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40ad00
push ebx
call fcn.00457daa
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 0xc