Function at 0x140005c00
Capabilities:
Hash data with md5

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
lea r14, [rdx + 1]
mov dword [rbp - 0x54], 0xefcdab89
movzx eax, r14b
mov dword [rbp - 0x4c], 0x10325476
and al, 0x3f
mov r13d, 0x67452301
mov dword [rbp - 0x58], r13d
mov r12d, 0x98badcfe
mov dword [rbp - 0x50], r12d
mov rdi, r8
mov rsi, rdx
mov r15, rcx
mov rbx, r14
cmp al, 0x38
je 0x140005c6c
nop dword [rax + rax]
inc rbx
movzx eax, bl
and al, 0x3f
cmp al, 0x38
jne 0x140005c60
lea rcx, [rbx + 8]
call fcn.140006fa0
mov rdx, r15
mov qword [rbp + 0x58], rax
mov r8, rsi
mov rcx, rax
mov r15, rax
call sub.ntdll.dll_memcpy
mov byte [r15 + rsi], 0x80
cmp r14, rbx
jae 0x140005ca5
mov r8, rbx
lea rcx, [r14 + r15]
sub r8, r14
xor edx, edx
call sub.ntdll.dll_memset
lea eax, [rsi*8]
shr rsi, 0x1d
mov dword [rbx + r15 + 4], esi
mov dword [rbx + r15], eax
xor r15d, r15d
test rbx, rbx
je 0x140005e3d
mov r14, qword [rbp + 0x58]
lea rcx, [rbx - 1]
add r14, 8
shr rcx, 6
inc rcx
mov edi, 0xefcdab89
mov qword [rbp - 0x60], rcx
mov eax, dword [r14 - 8]
mov ebx, r12d
mov r11d, dword [rbp - 0x4c]
mov r10d, edi
mov dword [rbp - 0x40], eax
mov r9d, r15d
mov eax, dword [r14 - 4]
mov r12, r15
mov dword [rbp - 0x3c], eax
mov eax, dword [r14]
mov dword [rbp - 0x38], eax
mov eax, dword [r14 + 4]
mov dword [rbp - 0x34], eax
mov eax, dword [r14 + 8]
mov dword [rbp - 0x30], eax
mov eax, dword [r14 + 0xc]
mov dword [rbp - 0x2c], eax
mov eax, dword [r14 + 0x10]
mov dword [rbp - 0x28], eax
mov eax, dword [r14 + 0x14]
mov dword [rbp - 0x24], eax
mov eax, dword [r14 + 0x18]
mov dword [rbp - 0x20], eax
mov eax, dword [r14 + 0x1c]
mov dword [rbp - 0x1c], eax
mov eax, dword [r14 + 0x20]
mov dword [rbp - 0x18], eax
mov eax, dword [r14 + 0x24]
mov dword [rbp - 0x14], eax
mov eax, dword [r14 + 0x28]
mov dword [rbp - 0x10], eax
mov eax, dword [r14 + 0x2c]
mov dword [rbp - 0xc], eax
mov eax, dword [r14 + 0x30]
mov dword [rbp - 8], eax
mov eax, dword [r14 + 0x34]
mov dword [rbp - 4], eax
mov dword [rbp + 0x48], r13d
cmp r9d, 0x10
jae 0x140005d7e
mov eax, r10d
mov ecx, ebx
not eax
and ecx, r10d
and eax, r11d
or eax, ecx
mov ecx, r9d
jmp 0x140005dc6
mov eax, r11d
cmp r9d, 0x20
jae 0x140005da0
not eax
mov ecx, r11d
and ecx, r10d
and eax, ebx
or eax, ecx
lea ecx, [r9*4 + 1]
add ecx, r9d
jmp 0x140005dc3
cmp r9d, 0x30
jae 0x140005db8
xor eax, ebx
lea ecx, [r9*2 + 5]
xor eax, r10d
add ecx, r9d
jmp 0x140005dc3
not eax
or eax, r10d
xor eax, ebx
imul ecx, r9d, 7
and ecx, 0xf
mov edx, ecx
mov esi, r11d
mov r11d, ebx
inc r9d
mov ebx, r10d
mov r8d, dword [rbp + rdx*4 - 0x40]
lea rdx, [0x140000000]
add r8d, dword [r12 + rdx + 0xa810]
mov ecx, dword [r12 + rdx + 0xa910]
add r8d, eax
add r8d, dword [rbp + 0x48]
add r12, 4
rol r8d, cl
add r10d, r8d
mov dword [rbp + 0x48], esi
cmp r9d, 0x40
jb 0x140005d64
mov r12d, dword [rbp - 0x50]
add r13d, esi
add dword [rbp - 0x4c], r11d
add r12d, ebx
add edi, r10d
mov dword [rbp - 0x50], r12d
add r14, 0x40
sub qword [rbp - 0x60], 1
jne 0x140005ce1
mov dword [rbp - 0x54], edi
mov rdi, qword [rbp + 0x50]
mov dword [rbp - 0x58], r13d
mov rcx, qword [rbp + 0x58]
call fcn.140007150
lea r9, [rbp - 0x56]
mov ebx, 0x57
nop
movzx edx, byte [r9 - 2]
lea r10d, [r15 + r15]
movzx eax, dl
mov ecx, 0x30
shr al, 4
and dl, 0xf
cmp al, 9
cmova ecx, ebx
add cl, al
mov byte [r10 + rdi], cl
cmp dl, 9
ja 0x140005e7c
add dl, 0x30
jmp 0x140005e7e
add dl, bl
movzx r8d, byte [r9 - 1]
lea eax, [r10 + 1]
mov byte [rax + rdi], dl
movzx eax, r8b
shr al, 4
and r8b, 0xf
cmp al, 9
mov edx, 0x30
cmova edx, ebx
add dl, al
lea eax, [r10 + 2]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140005eb4
add r8b, 0x30
jmp 0x140005eb7
add r8b, bl
lea eax, [r10 + 3]
mov edx, 0x30
mov byte [rax + rdi], r8b
lea r11d, [r15 + 3]
movzx r8d, byte [r9]
movzx eax, r8b
and r8b, 0xf
shr al, 4
cmp al, 9
cmova edx, ebx
add dl, al
lea eax, [r11*2 - 2]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140005ef5
add r8b, 0x30
jmp 0x140005ef8
add r8b, bl
lea eax, [r10 + 5]
mov edx, 0x30
mov byte [rax + rdi], r8b
movzx r8d, byte [r9 + 1]
movzx eax, r8b
and r8b, 0xf
shr al, 4
cmp al, 9
cmova edx, ebx
add dl, al
lea eax, [r11 + r11]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140005f2f
add r8b, 0x30
jmp 0x140005f32
add r8b, bl
lea eax, [r10 + 7]
mov edx, 0x30
mov byte [rax + rdi], r8b
movzx r8d, byte [r9 + 2]
movzx eax, r8b
and r8b, 0xf
shr al, 4
cmp al, 9
cmova edx, ebx
add dl, al
lea eax, [r11*2 + 2]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140005f6d
add r8b, 0x30
jmp 0x140005f70
add r8b, bl
lea eax, [r10 + 9]
mov edx, 0x30
mov byte [rax + rdi], r8b
movzx r8d, byte [r9 + 3]
movzx eax, r8b
and r8b, 0xf
shr al, 4
cmp al, 9
cmova edx, ebx
add dl, al
lea eax, [r11*2 + 4]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140005fab
add r8b, 0x30
jmp 0x140005fae
add r8b, bl
lea eax, [r10 + 0xb]
mov edx, 0x30
mov byte [rax + rdi], r8b
movzx r8d, byte [r9 + 4]
movzx eax, r8b
and r8b, 0xf
shr al, 4
cmp al, 9
cmova edx, ebx
add dl, al
lea eax, [r11*2 + 6]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140005fe9
add r8b, 0x30
jmp 0x140005fec
add r8b, bl
lea eax, [r10 + 0xd]
mov edx, 0x30
mov byte [rax + rdi], r8b
movzx r8d, byte [r9 + 5]
movzx eax, r8b
and r8b, 0xf
shr al, 4
cmp al, 9
cmova edx, ebx
add dl, al
lea eax, [r11*2 + 8]
mov byte [rax + rdi], dl
cmp r8b, 9
ja 0x140006027
add r8b, 0x30
jmp 0x14000602a
add r8b, bl
add r15d, 8
lea eax, [r10 + 0xf]
add r9, 8
mov byte [rax + rdi], r8b
cmp r15d, 0x10
jb 0x140005e50
mov rbx, qword [rsp + 0xc0]
mov rax, rdi
mov byte [rdi + 0x20], 0
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret