Function at 0x100e5cc0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101f0655
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x102289dc]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov edx, dword [ebx]
mov dword [ebp - 0x58], edx
mov dword [ebp - 4], ecx
test edx, edx
je 0x100e5d29
push edx
lea ecx, [ebp - 0x58]
call fcn.100dea20
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x100e5d23
push dword [ebp - 0x58]
push dword [ebx + 8]
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x50]
add esp, 0xc
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 4], 1
cmp edx, eax
jne 0x100e5d4b
inc eax
lea ecx, [ebp - 0x58]
push eax
call fcn.100dea20
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x100e5d5b
mov edx, dword [ebp - 0x58]
lea eax, [edx + 1]
mov dword [ebp - 0x58], eax
mov byte [ecx + edx], 0x80
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x14], ecx
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
lea esi, [ebx + 8]
neg esi
and esi, 0x3f
add esi, ebx
cmp esi, edi
jbe 0x100e5d81
push esi
lea ecx, [ebp - 0x58]
call fcn.100dea20
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x14], ecx
xor eax, eax
test ecx, ecx
cmove esi, eax
mov dword [ebp - 0x58], esi
cmp esi, ebx
jbe 0x100e5da8
sub esi, ebx
push esi
push eax
lea eax, [ecx + ebx]
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0x50]
add esp, 0xc
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x14], ecx
xorps xmm0, xmm0
movlpd qword [ebp - 0x4c], xmm0
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, esi
mov eax, dword [eax]
shl eax, 3
call fcn.101e8c60
mov byte [ebp - 0xd], al
cmp dword [ebp - 0x58], edi
jne 0x100e5de7
lea ecx, [edi + 1]
push ecx
lea ecx, [ebp - 0x58]
call fcn.100dea20
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x14], edx
test edx, edx
je 0x100e5dff
jmp 0x100e5dea
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x58]
lea eax, [ecx + 1]
mov dword [ebp - 0x58], eax
mov al, byte [ebp - 0xd]
mov byte [ecx + edx], al
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x14], edx
add esi, 8
adc ebx, 0
jne 0x100e5e11
cmp esi, 0x40
jae 0x100e5e11
mov edi, dword [ebp - 0x54]
jmp 0x100e5db6
cmp dword [ebp - 0x58], 0
mov ebx, 0x67452301
mov ecx, 0xefcdab89
mov dword [ebp - 0x1c], ebx
mov eax, 0x98badcfe
mov dword [ebp - 0x38], ecx
mov edi, 0x10325476
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x34], 0
ja 0x100e5ee3
mov ecx, dword [ebp + 0xc]
mov eax, ebx
mov edx, dword [ebp - 0x38]
shr eax, 8
mov byte [ecx + 1], al
mov eax, ebx
shr eax, 0x10
mov byte [ecx + 2], al
mov eax, edx
shr eax, 8
mov byte [ecx + 5], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 4], dl
mov byte [ecx + 6], al
shr edx, 0x18
mov byte [ecx + 7], dl
mov edx, dword [ebp - 0x20]
mov eax, edx
shr eax, 8
mov byte [ecx + 9], al
mov eax, edx
mov byte [ecx + 8], dl
shr eax, 0x10
shr edx, 0x18
mov byte [ecx + 0xa], al
mov byte [ecx + 0xb], dl
mov edx, dword [ebp - 0x3c]
mov eax, edx
shr eax, 8
mov byte [ecx + 0xd], al
mov eax, edx
mov byte [ecx], bl
mov byte [ecx + 0xc], dl
shr ebx, 0x18
shr eax, 0x10
shr edx, 0x18
mov byte [ecx + 3], bl
mov byte [ecx + 0xe], al
mov byte [ecx + 0xf], dl
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], 2
test ecx, ecx
je 0x100e5ec8
push ecx
call fcn.100de900
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x30], ebx
mov esi, ecx
mov ebx, edi
mov dword [ebp - 0x28], 5
xor edi, edi
mov dword [ebp - 0x24], 1
mov ecx, eax
mov dword [ebp + 8], edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x2c], edi
jmp 0x100e5f0a
mov ecx, dword [ebp - 0x18]
cmp edi, 0x10
jae 0x100e5f1d
mov eax, esi
and ecx, esi
not eax
and eax, ebx
or eax, ecx
mov ecx, edi
jmp 0x100e5f4d
mov eax, ebx
cmp edi, 0x20
jae 0x100e5f33
not eax
and eax, ecx
mov ecx, ebx
and ecx, esi
or eax, ecx
mov ecx, dword [ebp - 0x24]
jmp 0x100e5f4a
cmp edi, 0x30
jae 0x100e5f41
xor eax, ecx
mov ecx, dword [ebp - 0x28]
xor eax, esi
jmp 0x100e5f4a
not eax
or eax, esi
xor eax, ecx
mov ecx, dword [ebp - 0x2c]
and ecx, 0xf
mov edi, dword [ebp - 0x34]
lea ecx, [edi + ecx*4]
cmp ecx, dword [ebp - 0x58]
ja 0x100e6037
movzx edi, byte [edx + ecx]
lea edx, [ecx + 1]
cmp edx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x48], edi
ja 0x100e6037
movzx edi, byte [edx + ecx + 1]
lea edx, [ecx + 2]
cmp edx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x44], edi
ja 0x100e6037
movzx edi, byte [edx + ecx + 2]
add ecx, 3
mov dword [ebp - 0x40], edi
mov edi, dword [ebp + 8]
cmp ecx, dword [ebp - 0x58]
ja 0x100e6037
movzx edx, byte [edx + ecx]
mov ecx, dword [edi*4 + 0x10206da8]
add dword [ebp - 0x28], 3
add dword [ebp - 0x2c], 7
shl edx, 8
or edx, dword [ebp - 0x40]
shl edx, 8
or edx, dword [ebp - 0x44]
shl edx, 8
or edx, dword [ebp - 0x48]
add ecx, edx
mov edx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x30], ebx
mov ecx, dword [edi*4 + 0x10206ea8]
inc edi
mov ebx, dword [ebp - 0x18]
rol eax, cl
mov dword [ebp - 0x18], esi
add esi, eax
mov eax, dword [ebp - 0x24]
add eax, 5
mov dword [ebp + 8], edi
mov dword [ebp - 0x24], eax
cmp eax, 0x141
jb 0x100e5f07
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x3c]
add ecx, esi
mov edx, dword [ebp - 0x30]
add edi, ebx
add dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
add eax, 0x40
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x58]
jb 0x100e5ee0
jmp 0x100e5e42
push str.i___size__
push 0xad
push str.C:Projectslibjxllib_jxl_base_padded_bytes.h
push str._s:_d:_JXL_ASSERT:__s_n
call fcn.100def30
add esp, 0x10
call fcn.100def20
int3