Function at 0x407240
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x49c
mov eax, dword [0x422004]
xor eax, esp
mov dword [esp + 0x498], eax
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, ecx
push 0x84
call edi
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x407474
push 0x41d938
mov edx, 0x400
lea ecx, [esp + 0xa4]
call fcn.00407140
test esi, esi
mov ebx, 0x41b7df
cmovne ebx, esi
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4072a0
sub ecx, edx
lea esi, [ecx + 0x40]
cmp esi, 0x80
jb 0x4072bb
xor edi, edi
jmp 0x4073c8
push esi
call edi
add esp, 4
mov edi, eax
mov edx, esi
mov ecx, edi
push ebx
call fcn.00407140
lea eax, [esp + 0xa0]
mov edx, esi
push eax
mov ecx, edi
call fcn.004071b0
test edi, edi
je 0x407309
mov ecx, esi
mov eax, edi
test esi, esi
je 0x4072fb
nop word [eax + eax]
cmp byte [eax], 0
je 0x4072fb
inc eax
sub ecx, 1
jne 0x4072f0
sub esi, ecx
mov eax, ecx
neg eax
sbb eax, eax
and eax, esi
test ecx, ecx
jne 0x40730b
xor eax, eax
push eax
mov edx, edi
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0x6a09e667
mov dword [esp + 0x28], 0xbb67ae85
mov dword [esp + 0x2c], 0x3c6ef372
mov dword [esp + 0x30], 0xa54ff53a
mov dword [esp + 0x34], 0x510e527f
mov dword [esp + 0x38], 0x9b05688c
mov dword [esp + 0x3c], 0x1f83d9ab
mov dword [esp + 0x40], 0x5be0cd19
call fcn.004099a0
lea edx, [esp + 0x84]
lea ecx, [esp + 0x1c]
call fcn.00409a50
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push 0x41
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 0xc
mov edi, eax
xor esi, esi
nop dword [eax]
mov dl, byte [esp + esi + 0x80]
mov al, 9
mov cl, dl
and cl, 0xf
cmp al, cl
sbb al, al
shr dl, 4
and al, 7
add al, 0x30
add al, cl
mov byte [edi + esi*2], al
mov al, 9
cmp al, dl
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [edi + esi*2 + 1], al
inc esi
cmp esi, 0x20
jb 0x407390
mov byte [edi + 0x40], 0
mov ebx, dword [esp + 0x10]
mov esi, 0x41d960
add ebx, 4
mov edx, 0x80
mov dword [esp + 0x14], ebx
mov ecx, ebx
sub esi, ebx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x4073fa
mov al, byte [esi + ecx]
test al, al
je 0x4073fa
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x4073e1
lea eax, [ecx - 1]
test edx, edx
cmovne eax, ecx
mov ecx, 0x80
mov byte [eax], 0
mov eax, ebx
nop dword [eax]
cmp byte [eax], 0
je 0x40741b
inc eax
sub ecx, 1
jne 0x407410
test ecx, ecx
je 0x407453
mov edx, ebx
mov esi, edi
sub edx, ecx
mov eax, 0x7ffffffe
sub edx, 0xffffff80
sub esi, edx
nop
test eax, eax
je 0x407444
mov bl, byte [esi + edx]
test bl, bl
je 0x407444
mov byte [edx], bl
dec eax
inc edx
sub ecx, 1
jne 0x407430
mov ebx, dword [esp + 0x14]
lea eax, [edx - 1]
test ecx, ecx
cmovne eax, edx
mov byte [eax], 0
test edi, edi
je 0x407461
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
mov ecx, dword [esp + 0x4a4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00419265
mov esp, ebp
pop ebp
ret