Function at 0x14003c710
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r13, rcx
mov r8, rdx
mov rcx, rdx
mov r9d, dword [r13]
lea rdx, str._s___d_
call fcn.1400a10f0
test al, al
je 0x14003ca45
movsxd rdx, dword [r13]
mov ecx, edx
sub ecx, 1
js 0x14003ca30
mov rax, qword [0x140218048]
movsxd r12, ecx
mov ecx, ecx
lea rsi, [0x1401aac20]
sub rdx, rcx
shl r12, 3
lea rdi, str.Window
mov rbx, qword [rax + 0x4008]
lea rbp, [rdx*8 - 0x10]
mov eax, dword [rbx + 0x100]
jmp 0x14003c7de
mov r15, qword [rbx + 0x108]
cdqe
mov rdx, rdi
mov dword [r15 + rax*4], r14d
mov rax, qword [r13 + 8]
add dword [rbx + 0x100], 1
mov rcx, qword [rax + r12]
sub r12, 8
call fcn.14003bef0
mov rax, qword [0x140218048]
mov rbx, qword [rax + 0x4008]
mov eax, dword [rbx + 0x100]
sub eax, 1
mov dword [rbx + 0x100], eax
cmp r12, rbp
je 0x14003ca30
mov r8, qword [rbx + 0x108]
movsxd rcx, eax
mov rdx, qword [r13 + 8]
mov r8d, dword [r8 + rcx*4 - 4]
mov rdx, qword [rdx + r12]
not r8d
mov r9, rdx
mov r10, rdx
shr r9, 0x10
mov ecx, r8d
xor r8d, edx
shr r10, 0x38
movzx r8d, r8b
shr ecx, 8
xor ecx, dword [rsi + r8*4]
mov r8d, ecx
xor cl, dh
movzx ecx, cl
shr r8d, 8
xor r8d, dword [rsi + rcx*4]
mov ecx, r8d
xor r8d, r9d
mov r9d, edx
shr r9d, 0x18
movzx r8d, r8b
shr ecx, 8
xor ecx, dword [rsi + r8*4]
mov r8d, ecx
xor ecx, r9d
mov r9, rdx
shr r9, 0x20
movzx ecx, cl
shr r8d, 8
xor r8d, dword [rsi + rcx*4]
mov ecx, r8d
xor r8d, r9d
mov r9, rdx
shr r9, 0x28
movzx r8d, r8b
shr ecx, 8
xor ecx, dword [rsi + r8*4]
mov r8d, ecx
xor ecx, r9d
mov r9, rdx
shr r8d, 8
movzx ecx, cl
shr r9, 0x30
xor r8d, dword [rsi + rcx*4]
mov ecx, r8d
xor r8d, r9d
movzx r8d, r8b
shr ecx, 8
xor ecx, dword [rsi + r8*4]
mov r14d, ecx
xor ecx, r10d
movzx ecx, cl
shr r14d, 8
xor r14d, dword [rsi + rcx*4]
mov rcx, qword [rbx]
not r14d
cmp r14d, dword [rcx + 0x4054]
je 0x14003ca00
cmp dword [rbx + 0x104], eax
jne 0x14003c790
test eax, eax
je 0x14003ca20
mov r9d, eax
lea edx, [rax + 1]
shr r9d, 0x1f
add r9d, eax
sar r9d, 1
add r9d, eax
cmp r9d, edx
cmovl r9d, edx
cmp r9d, eax
jle 0x14003c790
nop dword [rax + rax]
movsxd rcx, r9d
mov dword [rsp + 0x2c], r9d
mov rdx, qword [0x1402180c8]
shl rcx, 2
call qword [case.0x1400092c2.1]
mov r9d, dword [rsp + 0x2c]
mov r15, rax
mov rax, qword [0x140218048]
test rax, rax
je 0x14003c9ab
movsx ecx, word [rax + 0x6048]
mov r10d, dword [rax + 0x3f60]
lea r8, [rax + 0x6040]
movsx r11, cx
cmp r10d, dword [rax + r11*8 + 0x604c]
je 0x14003ca56
add ecx, 1
movsxd rdx, ecx
mov r11d, ecx
imul rdx, rdx, 0x2aaaaaab
sar r11d, 0x1f
shr rdx, 0x20
sub edx, r11d
lea r11d, [rdx + rdx*2]
mov edx, ecx
add r11d, r11d
sub edx, r11d
mov word [rax + 0x6048], dx
movsxd rdx, edx
lea r11, [rdx*8]
mov dword [rax + rdx*8 + 0x604c], r10d
mov dword [r8 + r11 + 0x10], 0
lea rcx, [r8 + r11 + 0xc]
add word [rcx + 4], 1
add dword [rax + 0x6040], 1
mov rdx, qword [rbx + 0x108]
test rdx, rdx
je 0x14003c9e0
movsxd r8, dword [rbx + 0x100]
mov rcx, r15
mov dword [rsp + 0x2c], r9d
shl r8, 2
call fcn.1400de8e0
mov rcx, qword [rbx + 0x108]
call fcn.140009220
mov r9d, dword [rsp + 0x2c]
mov qword [rbx + 0x108], r15
mov eax, dword [rbx + 0x100]
mov dword [rbx + 0x104], r9d
jmp 0x14003c797
mov r8, rdx
xor r9d, r9d
mov edx, 0xc
mov ecx, r14d
call fcn.140029860
mov eax, dword [rbx + 0x100]
jmp 0x14003c8bc
mov r9d, 8
jmp 0x14003c8f8
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400a1240
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [r8 + r11*8 + 0xc]
jmp 0x14003c99f