Function at 0x533470
Capabilities:
Hash data using sha256
Hash data using sha512

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
sub eax, 0x13e
cmp eax, 7
ja case.default.0x533494
jmp dword [eax*4 + 0x648c58]
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x78
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x74], 0x14
mov dword [ebx + 0x70], 0
mov dword [esp + eax + 0x10], 0
add eax, 4
cmp eax, 0x20
jb 0x5334c8
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x5334f3
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x20
ja 0x533b40
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x14
mov edi, 0x6a09e667
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
lea esi, [esp + 0x10]
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x533526
mov edi, dword [eax + 0x648ea0]
mov ecx, dword [esi + eax]
xor ecx, dword [ebx + eax]
xor ecx, edi
mov dword [ebx + eax], ecx
add eax, 4
cmp eax, 0x20
jne 0x533520
xor esi, esi
test edx, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
je 0x533b45
mov ecx, dword [esp + 0x7c]
lea edi, [ebx + 0x70]
lea ebp, [ebx + 0x30]
mov dword [esp + 0xc], dbg.blake2s_transform
mov dword [esp + 8], 0x40
mov eax, ebx
mov dword [esp + 4], edi
mov dword [esp], ebp
call dbg.blake2_write
mov ecx, 0x40
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0xc], dbg.blake2s_transform
mov dword [esp + 8], 0x40
mov dword [esp + 4], edi
mov dword [esp], ebp
mov eax, ebx
mov edx, 0x7435a0
call dbg.blake2_write
add esp, 0x5c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x78
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x74], 0x10
mov dword [ebx + 0x70], 0
mov dword [esp + eax + 0x10], 0
add eax, 4
cmp eax, 0x20
jb 0x533609
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x533634
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x20
ja 0x533b40
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x10
mov edi, 0x6a09e667
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
lea esi, [esp + 0x10]
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x533666
mov edi, dword [eax + 0x648ea0]
mov ecx, dword [esi + eax]
xor ecx, dword [ebx + eax]
xor ecx, edi
mov dword [ebx + eax], ecx
add eax, 4
cmp eax, 0x20
jne 0x533660
jmp 0x533539
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
lea esi, [esp + 0x10]
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0xe8
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, 0x10
mov edi, esi
mov dword [ebx + 0xe4], 0x40
mov dword [ebx + 0xe0], 0
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5336e0
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x40
ja 0x533b40
lea esi, [esi]
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x40
mov edi, 0xf3bcc908
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
mov ecx, 0x6a09e667
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x53371c
mov edi, dword [eax + 0x648ec0]
mov ecx, dword [eax + 0x648ec4]
xor edi, dword [esi + eax]
xor ecx, dword [esi + eax + 4]
mov dword [ebx + eax], edi
mov dword [ebx + eax + 4], ecx
add eax, 8
cmp eax, 0x40
jne 0x533710
lea eax, [esp + 0x50]
mov dword [esi], 0
mov dword [esi + 4], 0
add esi, 8
cmp esi, eax
jne 0x533732
xor esi, esi
test edx, edx
je 0x533b45
mov ecx, dword [esp + 0x7c]
lea edi, [ebx + 0xe0]
lea ebp, [ebx + 0x60]
mov dword [esp + 0xc], dbg.blake2b_transform
mov dword [esp + 8], pe_nt_image_headers32
mov eax, ebx
mov dword [esp + 4], edi
mov dword [esp], ebp
call dbg.blake2_write
mov ecx, pe_nt_image_headers32
mov dword [esp + 0xc], dbg.blake2b_transform
sub ecx, dword [esp + 0x7c]
mov dword [esp + 8], pe_nt_image_headers32
jmp 0x5335c4
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
lea esi, [esp + 0x10]
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0xe8
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, 0x10
mov edi, esi
mov dword [ebx + 0xe4], 0x30
mov dword [ebx + 0xe0], 0
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x533800
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x40
ja 0x533b40
lea esi, [esi]
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x30
mov edi, 0xf3bcc908
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
mov ecx, 0x6a09e667
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x53383c
mov edi, dword [eax + 0x648ec0]
mov ecx, dword [eax + 0x648ec4]
xor edi, dword [esi + eax]
xor ecx, dword [esi + eax + 4]
mov dword [ebx + eax], edi
mov dword [ebx + eax + 4], ecx
add eax, 8
cmp eax, 0x40
jne 0x533830
lea eax, [esp + 0x50]
mov dword [esi], 0
mov dword [esi + 4], 0
add esi, 8
cmp esi, eax
jne 0x533852
jmp 0x53374a
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
lea esi, [esp + 0x10]
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0xe8
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, 0x10
mov edi, esi
mov dword [ebx + 0xe4], 0x20
mov dword [ebx + 0xe0], 0
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5338d0
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x40
ja 0x533b40
lea esi, [esi]
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x20
mov edi, 0xf3bcc908
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
mov ecx, 0x6a09e667
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x53390c
mov edi, dword [eax + 0x648ec0]
mov ecx, dword [eax + 0x648ec4]
xor edi, dword [esi + eax]
xor ecx, dword [esi + eax + 4]
mov dword [ebx + eax], edi
mov dword [ebx + eax + 4], ecx
add eax, 8
cmp eax, 0x40
jne 0x533900
lea eax, [esp + 0x50]
mov dword [esi], 0
mov dword [esi + 4], 0
add esi, 8
cmp esi, eax
jne 0x533922
jmp 0x53374a
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x78
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x74], 0x20
mov dword [ebx + 0x70], 0
mov dword [esp + eax + 0x10], 0
add eax, 4
cmp eax, 0x20
jb 0x533968
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x533993
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x20
ja 0x533b40
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x20
mov edi, 0x6a09e667
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
lea esi, [esp + 0x10]
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x5339c6
mov edi, dword [eax + 0x648ea0]
mov ecx, dword [esi + eax]
xor ecx, dword [ebx + eax]
xor ecx, edi
mov dword [ebx + eax], ecx
add eax, 4
cmp eax, 0x20
jne 0x5339c0
jmp 0x533539
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
lea esi, [esp + 0x10]
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0xe8
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, 0x10
mov edi, esi
mov dword [ebx + 0xe4], 0x14
mov dword [ebx + 0xe0], 0
mov ebp, dword [esp + 0x7c]
test ebp, ebp
rep stosd dword es:[edi], eax
je 0x533a40
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x40
ja 0x533b40
lea esi, [esi]
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x14
mov edi, 0xf3bcc908
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
mov ecx, 0x6a09e667
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x533a7c
mov edi, dword [eax + 0x648ec0]
mov ecx, dword [eax + 0x648ec4]
xor edi, dword [esi + eax]
xor ecx, dword [esi + eax + 4]
mov dword [ebx + eax], edi
mov dword [ebx + eax + 4], ecx
add eax, 8
cmp eax, 0x40
jne 0x533a70
lea eax, [esp + 0x50]
mov dword [esi], 0
mov dword [esi + 4], 0
add esi, 8
cmp esi, eax
jne 0x533a92
jmp 0x53374a
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x78
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x74], 0x1c
mov dword [ebx + 0x70], 0
mov dword [esp + eax + 0x10], 0
add eax, 4
cmp eax, 0x20
jb 0x533ad8
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x533afb
test edx, edx
je 0x533b40
cmp dword [esp + 0x7c], 0x20
ja 0x533b40
movzx eax, byte [esp + 0x7c]
mov byte [esp + 0x10], 0x1c
mov edi, 0x6a09e667
mov byte [esp + 0x12], 1
mov byte [esp + 0x13], 1
lea esi, [esp + 0x10]
mov byte [esp + 0x11], al
xor eax, eax
jmp 0x533b26
mov edi, dword [eax + 0x648ea0]
mov ecx, dword [esi + eax]
xor ecx, dword [ebx + eax]
xor ecx, edi
mov dword [ebx + eax], ecx
add eax, 4
cmp eax, 0x20
jne 0x533b20
jmp 0x533539
mov esi, 0x2c
add esp, 0x5c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 5
jmp 0x533b45