Function at 0x180010f90
Capabilities:
Hash data with md5

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0xe0
mov rax, qword [0x180055010]
xor rax, rsp
mov qword [rsp + 0xb0], rax
movzx eax, word [rcx + 0x2f8]
mov rdi, rcx
test al, 8
jne 0x18001129e
bt ax, 0xc
jae 0x18001129e
mov rdx, qword [rcx + 0x10]
lea rcx, [rsp + 0x50]
mov qword [r11 + 0x10], rbx
add rdx, 0x198
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
xor r13d, r13d
mov dword [r11 - 0x4c], 0x67452301
mov dword [r11 - 0x48], 0xefcdab89
mov dword [r11 - 0x44], 0x98badcfe
mov dword [r11 - 0x40], 0x10325476
lea r8d, [r13 + 0x20]
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x58], r13d
call fcn.1800293e0
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x50]
call fcn.180029490
movzx eax, byte [rsp + 0x29]
lea rcx, [0x180057eb8]
movzx ebp, byte [rsp + 0x28]
mov ebx, r13d
shl ebp, 8
or ebp, eax
mov dword [rsp + 0x20], ebx
movzx eax, byte [rsp + 0x2a]
shl ebp, 8
or ebp, eax
movzx eax, byte [rsp + 0x2b]
shl ebp, 8
or ebp, eax
mov eax, 0xba2e8ba3
mul ebp
shr edx, 3
imul eax, edx, 0xb
sub ebp, eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r12, [0x180000000]
mov eax, ebp
imul r14, rax, 0x158
mov r15d, dword [r14 + r12 + 0x56ff0]
imul rsi, r15, 0x70
lea eax, [r15 + 1]
mov dword [r14 + r12 + 0x56ff0], eax
add rsi, r14
cmp dword [0x180056fb8], r13d
mov rax, qword [rdi + 0x10]
movups xmm0, xmmword [rax + 0x3b9]
movups xmmword [rsi + r12 + 0x57021], xmm0
movups xmm1, xmmword [rax + 0x3c9]
movups xmmword [rsi + r12 + 0x57031], xmm1
movups xmm0, xmmword [rax + 0x3d9]
movups xmmword [rsi + r12 + 0x57041], xmm0
mov rax, qword [rdi + 0x10]
movups xmm0, xmmword [rax + 0x198]
movups xmmword [rsi + r12 + 0x57000], xmm0
movups xmm1, xmmword [rax + 0x1a8]
movups xmmword [rsi + r12 + 0x57010], xmm1
mov rax, qword [rdi + 0x10]
movzx eax, byte [rax + 0x1b8]
mov byte [rsi + r12 + 0x57020], al
mov eax, dword [rdi + 0x20c]
mov dword [rsi + r12 + 0x56ffc], eax
jne 0x180011145
lea rcx, [0x180056fc0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [0x180056fb8], 1
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x48]
cqo
idiv qword [0x180056fc0]
mov dword [rsi + r12 + 0x56ff8], eax
inc dword [r14 + r12 + 0x56ff4]
cmp dword [r14 + r12 + 0x56ff0], 3
jne 0x180011181
mov dword [r14 + r12 + 0x56ff0], r13d
test byte [rdi + 0x2f8], 0x20
mov r14, qword [rsp + 0xc8]
je 0x180011254
movzx eax, word [rdi + 0x1d2]
test ax, ax
je 0x180011254
mov word [rsi + r12 + 0x57052], ax
lea rcx, [r12 + 0x57054]
movzx r8d, word [rdi + 0x1d2]
lea rdx, [rdi + 0x1d4]
add rcx, rsi
call fcn.18002fd00
movzx edx, word [rdi + 0x1d2]
lea r8, [rsp + 0x20]
lea rcx, [rdi + 0x1d4]
call fcn.180010c80
mov ebx, dword [rsp + 0x20]
mov ecx, eax
mov eax, 0xba2e8ba3
mul ecx
shr edx, 3
imul eax, edx, 0xb
sub ecx, eax
test ebx, ebx
jne 0x18001125d
lea rax, [rcx + rcx*4]
lea r8, [rax*4]
mov edx, dword [r8 + r12 + 0x57ee0]
lea rcx, [rcx + rcx*4]
add rcx, rdx
lea eax, [rdx + 1]
mov dword [r8 + r12 + 0x57ee0], eax
mov word [r12 + rcx*4 + 0x57ee8], bp
mov word [r12 + rcx*4 + 0x57eea], r15w
inc dword [r8 + r12 + 0x57ee4]
cmp dword [r8 + r12 + 0x57ee0], 3
jne 0x18001125d
mov dword [r8 + r12 + 0x57ee0], r13d
jmp 0x18001125d
mov word [rsi + r12 + 0x57052], r13w
lea rcx, [0x180057eb8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r15, qword [rsp + 0xc0]
mov eax, ebx
mov rbx, qword [rsp + 0xf8]
mov r13, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0x108]
mov rbp, qword [rsp + 0x100]
jmp 0x1800112a0
xor eax, eax
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.18002d8d0
add rsp, 0xe0
pop rdi
ret