Function at 0x140032c40
Capabilities:
Hash data with md5

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xb0], rbx
mov rax, qword [0x14012a4f8]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r14, rdx
mov rbp, rcx
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x30], 0
lea rdx, [rsp + 0x49]
add rcx, 0x5a
mov edi, 2
nop word [rax + rax]
movzx eax, byte [rcx - 2]
mov byte [rdx - 1], al
movzx eax, byte [rcx - 1]
mov byte [rdx], al
movzx eax, byte [rcx]
mov byte [rdx + 1], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 2], al
add rcx, 4
add rdx, 4
sub rdi, 1
jne 0x140032ca0
mov eax, dword [rbp + 0x58]
shr eax, 3
and eax, 0x3f
cmp eax, 0x38
jae 0x140032ce1
mov r8d, 0x38
sub r8d, eax
jmp 0x140032cea
mov r8d, 0x78
sub r8d, eax
lea rdx, [0x14012bf50]
mov rcx, rbp
call fcn.140032f70
mov r8d, 8
lea rdx, [rsp + 0x48]
mov rcx, rbp
call fcn.140032f70
lea r12, [rbp + 8]
lea rcx, [r12 + 1]
lea rdx, [rbp + 0x62]
mov edi, 4
nop
movzx eax, byte [rdx - 2]
mov byte [rcx - 1], al
movzx eax, byte [rdx - 1]
mov byte [rcx], al
movzx eax, byte [rdx]
mov byte [rcx + 1], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 2], al
add rdx, 4
add rcx, 4
sub rdi, 1
jne 0x140032d20
lea rcx, [0x14012bdf0]
mov rax, qword [0x14012bdf0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r14], rax
mov dword [rsp + 0x30], 1
lea r13d, [rdi + 0x10]
lea r15, [0x1400fc6b0]
nop word [rax + rax]
lea rcx, [0x14012bdf0]
mov rax, qword [0x14012bdf0]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
movzx eax, byte [r12]
test al, al
jne 0x140032e91
lea rcx, [0x14012bdf0]
mov rax, qword [0x14012bdf0]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x28], rdi
test r15, 0xffffffffffff0000
jne 0x140032df3
movzx esi, r15w
xor edx, edx
mov ecx, esi
call fcn.140020620
test rax, rax
je 0x140032e18
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.1400335b0
mov rdi, qword [rsp + 0x28]
jmp 0x140032e18
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r15
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.140033420
mov rdi, qword [rsp + 0x28]
lea rsi, [rdi - 0x18]
add rbx, 0xffffffffffffffe8
cmp rsi, rbx
je 0x140032e75
cmp dword [rbx + 0x10], 0
jl 0x140032e63
mov rax, qword [rbx]
cmp qword [rsi], rax
jne 0x140032e63
mov rcx, rsi
call fcn.140033520
mov rdi, rax
or ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x140032e58
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x20], rax
jmp 0x140032e75
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.140033420
nop
or eax, 0xffffffff
lock xadd dword [rsi + 0x10], eax
dec eax
test eax, eax
jg 0x140032ec1
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
jmp 0x140032ec1
cmp al, 0xf
ja 0x140032eac
movzx r8d, al
lea rdx, [0x1400fc6b8]
lea rcx, [rsp + 0x20]
call fcn.140033b20
jmp 0x140032ec1
movzx r8d, al
lea rdx, [0x1400fc6c0]
lea rcx, [rsp + 0x20]
call fcn.140033b20
mov rdi, qword [rsp + 0x20]
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
mov rcx, r14
call fcn.140033680
nop
lea rdx, [rdi - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140032ef1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
inc r12
sub r13, 1
jne 0x140032d80
xor eax, eax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], rax
mov dword [rbp + 0x5c], eax
mov dword [rbp + 0x58], eax
mov dword [rbp + 0x60], 0x67452301
mov dword [rbp + 0x64], 0xefcdab89
mov dword [rbp + 0x68], 0x98badcfe
mov dword [rbp + 0x6c], 0x10325476
mov rax, r14
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400ad2c0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret