Function at 0x1d3af9c60
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
movaps xmmword [rsp + 0xb0], xmm6
mov edi, dword [rsp + 0x138]
mov rbp, rcx
mov ecx, 0x4df78
mov dword [rsp + 0x118], edx
mov ebx, r8d
mov dword [rsp + 0x128], r9d
call sub.msvcrt.dll_malloc
mov r13d, dword [rsp + 0x118]
imul r13d, dword [rsp + 0x128]
mov r12, rax
mov rax, qword [rsp + 0x130]
mov qword [rax], 0
test r12, r12
je 0x1d3afa35f
lea r15d, [r13 + 1]
mov eax, 0x40
mov qword [rsp + 0x78], 0
imul r15d, ebx
mov dword [rsp + 0x78], 1
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x70], 0
cmp r15d, eax
cmovl r15d, eax
add r15d, 0x39
movsxd r15, r15d
mov rcx, r15
mov qword [rsp + 0x68], r15
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1d3afa44a
mov dword [rsp + 0x5c], 0x29
mov esi, 0x29
xor edx, edx
nop dword [rax]
lea r14, [rdx + 1]
mov rax, qword [rsp + 0x70]
cmp r14, r15
jbe 0x1d3af9d85
mov eax, dword [rsp + 0x78]
test eax, eax
je 0x1d3af9d96
nop
add r15, r15
mov eax, pe_nt_image_headers64
cmp r15, rax
cmovb r15, rax
cmp r14, r15
ja 0x1d3af9d50
mov rcx, qword [rsp + 0x70]
mov rdx, r15
call sub.msvcrt.dll_realloc
test rax, rax
je 0x1d3af9d92
mov qword [rsp + 0x70], rax
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x68], r15
movzx ecx, byte [rsp + 0x5c]
mov byte [rax + rdx], cl
mov qword [rsp + 0x60], r14
mov esi, dword [rsp + 0x5c]
sub esi, 1
mov dword [rsp + 0x5c], esi
je 0x1d3af9db0
mov rdx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x68]
jmp 0x1d3af9d38
mov eax, 0xa
lea r8, [rsp + 0x60]
lea rdx, [0x1d3af1160]
mov rcx, r12
cmp edi, eax
cmova rdi, rax
lea rax, [0x1d3bdb360]
mov r9d, dword [rax + rdi*4]
or r9d, 0x1000
call fcn.1d3af8ba0
test ebx, ebx
jle 0x1d3afa43d
lea rax, [r12 + 0x392aa]
movsxd r15, r13d
movdqa xmm6, xmmword [0x1d3bdbc30]
lea r14, [rsp + 0x80]
mov qword [rsp + 0x40], rax
lea eax, [rbx - 1]
lea rdi, [rsp + 0x5c]
mov dword [rsp + 0x48], eax
nop dword [rax]
cmp qword [r12], 0
mov qword [r12 + 0x88], rdi
mov qword [rsp + 0x80], 1
mov qword [r12 + 0x98], r14
mov qword [r12 + 0x90], 0
mov qword [r12 + 0xa0], 0
mov qword [r12 + 0xb0], rdi
mov dword [r12 + 0xa8], 0
movups xmmword [r12 + 0xb8], xmm6
je 0x1d3afa380
mov r9d, dword [r12 + 0x84]
test r9d, r9d
jne 0x1d3afa380
mov eax, dword [r12 + 0x80]
test eax, eax
jne 0x1d3afa380
mov r11d, dword [r12 + 0x74]
test r11d, r11d
jne 0x1d3af9fde
mov r10d, dword [r12 + 0x78]
test r10d, r10d
jne 0x1d3afa3d8
mov eax, dword [r12 + 0x10]
mov dword [rsp + 0x38], r9d
mov rcx, r12
and eax, 0xb4fff
cmp eax, 0x4001
je 0x1d3afa3e8
call fcn.1d3af4e10
mov r9d, dword [rsp + 0x38]
test eax, eax
je 0x1d3af9fe6
test dword [r12 + 0x10], 0x3000
je 0x1d3af9f12
mov r8, qword [r12 + 0xb0]
mov ecx, dword [r12 + 0x20]
mov rdx, rdi
mov dword [rsp + 0x38], r9d
sub r8, rdi
call fcn.1d3af6c20
mov r9d, dword [rsp + 0x38]
mov dword [r12 + 0x20], eax
mov rdx, qword [r12 + 0x98]
test rdx, rdx
je 0x1d3af9f32
mov rax, qword [r12 + 0xb0]
sub rax, qword [r12 + 0x88]
mov qword [rdx], rax
mov rax, qword [r12 + 0xa0]
test rax, rax
je 0x1d3af9fc6
mov rcx, qword [r12 + 0xc0]
mov r8, qword [rax]
mov dword [rsp + 0x4c], r9d
mov eax, dword [r12 + 0x74]
mov edx, dword [r12 + 0x70]
sub r8, rcx
cmp r8, rax
cmova r8, rax
add rcx, qword [r12 + 0x90]
add rdx, qword [rsp + 0x40]
mov qword [rsp + 0x38], r8
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x38]
mov eax, dword [r12 + 0x70]
mov r9d, dword [rsp + 0x4c]
add eax, r8d
movd xmm0, eax
mov eax, dword [r12 + 0x74]
sub eax, r8d
add r8, qword [r12 + 0xc0]
movd xmm2, eax
mov rax, qword [r12 + 0xa0]
mov qword [r12 + 0xc0], r8
punpckldq xmm0, xmm2
movq qword [r12 + 0x70], xmm0
mov qword [rax], r8
mov r8d, dword [r12 + 0x78]
test r8d, r8d
je 0x1d3af9fde
mov ecx, dword [r12 + 0x74]
xor r9d, r9d
test ecx, ecx
sete r9b
mov dword [r12 + 0x84], r9d
mov edx, dword [rsp + 0x140]
mov qword [rsp + 0x80], r15
test edx, edx
je 0x1d3afa398
mov edx, dword [rsp + 0x48]
xor r9d, r9d
mov r8, r14
mov rcx, r12
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
sub edx, esi
add esi, 1
imul edx, r13d
movsxd rdx, edx
add rdx, rbp
call fcn.1d3af84f0
cmp esi, ebx
jne 0x1d3af9e18
mov dword [rsp + 0x28], 4
xor r9d, r9d
xor edx, edx
mov r8, r14
mov qword [rsp + 0x20], 0
mov rcx, r12
mov qword [rsp + 0x80], 0
call fcn.1d3af84f0
cmp eax, 1
jne 0x1d3afa40e
mov rax, qword [rsp + 0x60]
xor edi, edi
lea rcx, [0x1d3bdaaac]
movzx esi, byte [rsp + 0x118]
mov qword [rsp + 0x90], rdi
movzx edi, bh
mov ebp, 8
movabs r14, 0xa1a0a0d474e5089
lea rdx, [rax - 0x29]
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x98], rbp
movabs r15, 0x524448490d000000
mov r11, rdx
mov qword [rsp + 0x80], r14
mov qword [rax], rdx
movabs rax, 0x4144490000000000
mov qword [rsp + 0xa0], rax
movzx eax, word [rsp + 0x118]
mov qword [rsp + 0x88], r15
rol ax, 8
mov byte [rsp + 0xa8], 0x54
mov word [rsp + 0x92], ax
mov eax, ebx
rol ax, 8
mov word [rsp + 0x96], ax
movsxd rax, dword [rsp + 0x128]
movzx r8d, byte [rcx + rax]
mov eax, dword [rsp + 0x118]
lea rcx, [0x1d3bdabe0]
movzx eax, ah
mov byte [rsp + 0x99], r8b
xor al, 0xc4
mov eax, eax
mov eax, dword [rcx + rax*4]
xor eax, 0x75a723
xor esi, eax
shr eax, 8
movzx esi, sil
xor eax, dword [rcx + rsi*4]
movzx r9d, al
shr eax, 8
xor eax, dword [rcx + r9*4]
movzx r9d, al
shr eax, 8
xor eax, dword [rcx + r9*4]
mov r9d, edi
xor r9d, eax
shr eax, 8
movzx r9d, r9b
xor eax, dword [rcx + r9*4]
xor ebx, eax
shr eax, 8
movzx ebx, bl
xor eax, dword [rcx + rbx*4]
mov rbx, rdx
mov r9d, eax
shr eax, 8
xor r9d, 8
movzx r9d, r9b
xor eax, dword [rcx + r9*4]
xor r8d, eax
shr eax, 8
movzx r8d, r8b
xor eax, dword [rcx + r8*4]
movzx r8d, al
shr eax, 8
xor eax, dword [rcx + r8*4]
movzx r8d, al
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov ecx, r8d
not ecx
movzx eax, ch
mov r8d, ecx
mov r9d, ecx
movzx ecx, cl
shl r8d, 8
mov r10d, eax
movzx eax, dl
shr r9d, 0x18
movzx edx, dh
shr r8d, 0x18
shl rax, 8
shr rbx, 0x10
or rax, rdx
movzx edx, bl
shr r11, 0x18
shl rax, 8
or rax, rdx
movzx edx, r11b
shl rax, 8
or rax, rdx
movzx edx, r10b
shl rax, 8
or rax, rcx
shl rax, 8
or rax, rdx
movzx edx, r8b
shl rax, 8
or rax, rdx
movzx edx, r9b
shl rax, 8
or rax, rdx
mov qword [rsp + 0x9d], rax
mov rax, qword [rsp + 0x70]
mov qword [rax], r14
mov qword [rax + 8], r15
movdqa xmm1, xmmword [rsp + 0x90]
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
movups xmmword [rax + 0x10], xmm1
mov rdx, qword [rsp + 0xa0]
lea rsi, [rdi + 0x10]
mov qword [rax + 0x20], rdx
movzx edx, byte [rsp + 0xa8]
mov byte [rax + 0x28], dl
cmp rsi, rbx
jbe 0x1d3afa430
mov eax, dword [rsp + 0x78]
test eax, eax
je 0x1d3afa3ff
nop dword [rax]
add rbx, rbx
mov eax, pe_nt_image_headers64
cmp rbx, rax
cmovb rbx, rax
cmp rsi, rbx
ja 0x1d3afa298
mov rcx, qword [rsp + 0x70]
mov rdx, rbx
call sub.msvcrt.dll_realloc
test rax, rax
je 0x1d3afa3ff
mov qword [rsp + 0x70], rax
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x68], rbx
movabs rbx, 0x826042ae444e4549
xor ecx, ecx
mov qword [rax + rdx], rcx
xor ecx, ecx
mov qword [rax + rdx + 8], rbx
mov rax, qword [rsp + 0x130]
mov r11, qword [rsp + 0x70]
mov qword [rsp + 0x60], rsi
mov rax, qword [rax]
lea rdx, [r11 + 0x25]
lea r8, [rax + 4]
call fcn.1d3af6d90
mov edx, eax
shr edx, 0x18
mov byte [r11 + rdi], dl
mov edx, eax
mov rcx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x70]
shl edx, 8
shr edx, 0x18
mov byte [r8 + rcx - 0xf], dl
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x60]
mov byte [rcx + rdx - 0xe], ah
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x60]
mov byte [rcx + rdx - 0xd], al
mov rax, qword [rsp + 0x130]
mov rcx, r12
add qword [rax], 0x39
call sub.msvcrt.dll_free
mov r12, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0xb0]
mov rax, r12
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [r12 + 0x84], 0xfffffffe
jmp 0x1d3af9fe6
mov edx, esi
mov dword [rsp + 0x28], 0
xor r9d, r9d
mov r8, r14
imul edx, r13d
mov rcx, r12
add esi, 1
mov qword [rsp + 0x20], 0
movsxd rdx, edx
add rdx, rbp
call fcn.1d3af84f0
cmp ebx, esi
jne 0x1d3af9e18
jmp 0x1d3afa037
mov r9d, 1
jmp 0x1d3af9fde
call fcn.1d3af4540
mov r9d, dword [rsp + 0x38]
test eax, eax
jne 0x1d3af9ee0
jmp 0x1d3af9fe6
mov rax, qword [rsp + 0x130]
mov qword [rax], 0
mov rcx, r12
xor r12d, r12d
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x70]
call sub.msvcrt.dll_free
jmp 0x1d3afa35f
mov rax, qword [rsp + 0x70]
mov rdx, rdi
jmp 0x1d3afa2d1
lea r14, [rsp + 0x80]
jmp 0x1d3afa037
mov rcx, r12
xor r12d, r12d
call sub.msvcrt.dll_free
jmp 0x1d3afa35f