Function at 0x140059970
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm6
mov rsi, qword [0x140114180]
mov ecx, dword [rsi + 0x40c8]
mov dword [rsi + 0x40d0], ecx
test byte [rsi + 0x3e8d], 4
je 0x140059e58
cmp dword [rsi + 0x4cc8], 2
jl 0x140059e58
mov r13d, 1
xorps xmm6, xmm6
lea r15, [0x1400f18e0]
lea r12, str._viewport__Destroy_Platform_Window__08X__s_n
xorps xmm7, xmm7
movaps xmm8, xmmword [0x1400daa90]
movss xmm9, dword [0x1400da9c0]
lea rdi, [0x1400d97e0]
nop word cs:[rax + rax]
nop
mov rax, qword [rsi + 0x4cd0]
mov r14, qword [rax + r13*8]
lea edx, [rcx - 1]
mov rax, qword [r14 + 0x60]
test rax, rax
je 0x140059a30
cmp byte [rax + 0xff], 0
je 0x140059a40
cmp byte [rax + 0x107], 0
sete bpl
jmp 0x140059a42
xor ebp, ebp
jmp 0x140059a46
xor ebp, ebp
xor bpl, 1
mov ebx, dword [r14 + 0x6c]
cmp ebx, edx
jl 0x140059a90
test bpl, bpl
jne 0x140059a90
cmp ebx, ecx
jl 0x140059b07
movss xmm0, dword [r14 + 0x10]
ucomiss xmm7, xmm0
jae 0x140059b07
ucomiss xmm7, dword [r14 + 0x14]
jae 0x140059b07
mov bpl, byte [r14 + 0x58]
test bpl, bpl
je 0x140059b26
movss xmm1, dword [r14 + 0x108]
jmp 0x140059b93
cmp byte [r14 + 0x58], 0
je 0x140059aee
mov rbx, qword [0x140114180]
test byte [rbx + 0x62cd], 2
je 0x140059abe
mov r8, r15
test rax, rax
je 0x140059ab3
mov r8, qword [rax + 8]
mov edx, dword [r14]
mov rcx, r12
call fcn.1400302c0
mov rax, qword [rbx + 0x39b8]
test rax, rax
je 0x140059acf
mov rcx, r14
call rax
mov rax, qword [rbx + 0x3928]
test rax, rax
je 0x140059ae0
mov rcx, r14
call rax
cmp dword [r14], 0x11111111
je 0x140059aee
mov byte [r14 + 0x58], 0
mov word [r14 + 0x59], 0
mov byte [r14 + 0x5b], 0
movups xmmword [r14 + 0x38], xmm6
mov qword [r14 + 0x48], 0
add r13, 1
movsxd rax, dword [rsi + 0x4cc8]
cmp r13, rax
jge 0x140059e58
mov ecx, dword [rsi + 0x40c8]
jmp 0x140059a00
test byte [rsi + 0x62cd], 2
je 0x140059b4a
mov r8, r15
test rax, rax
je 0x140059b3b
mov r8, qword [rax + 8]
mov edx, dword [r14]
lea rcx, str._viewport__Create_Platform_Window__08X__s_n
call fcn.1400302c0
mov rcx, r14
call qword [rsi + 0x3920]
mov rax, qword [rsi + 0x39b0]
test rax, rax
je 0x140059b64
mov rcx, r14
call rax
add dword [rsi + 0x4d3c], 1
mov dword [r14 + 0x74], 0
movups xmmword [r14 + 0x108], xmm8
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x118], rax
mov byte [r14 + 0x58], 1
movd xmm0, eax
movaps xmm1, xmm9
ucomiss xmm1, dword [r14 + 8]
jne 0x140059bae
jp 0x140059bae
movss xmm1, dword [r14 + 0x10c]
ucomiss xmm1, dword [r14 + 0xc]
jne 0x140059bae
jnp 0x140059bc8
cmp byte [r14 + 0x59], 0
jne 0x140059bc8
mov rdx, qword [r14 + 8]
mov rcx, r14
call qword [rsi + 0x3938]
movss xmm0, dword [r14 + 0x10]
movss xmm1, dword [r14 + 0x110]
ucomiss xmm1, xmm0
jne 0x140059bea
jp 0x140059bea
movss xmm1, dword [r14 + 0x114]
ucomiss xmm1, dword [r14 + 0x14]
jne 0x140059bea
jnp 0x140059c04
cmp byte [r14 + 0x5a], 0
jne 0x140059c04
mov rdx, qword [r14 + 0x10]
mov rcx, r14
call qword [rsi + 0x3948]
movss xmm0, dword [r14 + 0x10]
movss xmm1, dword [r14 + 0x118]
ucomiss xmm1, xmm0
jne 0x140059c26
jp 0x140059c26
movss xmm0, dword [r14 + 0x11c]
ucomiss xmm0, dword [r14 + 0x14]
jne 0x140059c26
jnp 0x140059c3b
mov rax, qword [rsi + 0x39c0]
test rax, rax
je 0x140059c3b
mov rdx, qword [r14 + 0x10]
mov rcx, r14
call rax
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov qword [r14 + 0x108], rax
mov qword [r14 + 0x118], rcx
mov qword [r14 + 0x110], rcx
mov rax, qword [r14 + 0x60]
mov rcx, qword [rax + 0x470]
test rcx, rcx
je 0x140059c78
mov rax, qword [rcx + 0x90]
test rax, rax
je 0x140059db7
mov rdx, qword [rax + 8]
cmp rdx, 0xffffffffffffffff
je 0x140059caf
mov r15, rdx
jmp 0x140059ca1
cmp byte [r15 + 1], 0x23
je 0x140059cb6
add r15, 1
cmp r15, 0xffffffffffffffff
je 0x140059caf
movzx eax, byte [r15]
cmp al, 0x23
je 0x140059c90
test al, al
jne 0x140059c97
jmp 0x140059cb6
mov r15, 0xffffffffffffffff
mov r9d, ebp
cmp r15, rdx
je 0x140059d30
mov rax, rdx
not rax
add rax, r15
lea rcx, [rdx + 2]
mov ebp, 0xffffffff
jmp 0x140059d02
mov r12d, ebp
shr r12d, 8
movzx ebp, bpl
xor ebp, ebx
xor r12d, dword [rdi + rbp*4]
add rcx, 1
mov ebp, r12d
add rax, 0xffffffffffffffff
jae 0x140059d94
movzx ebx, byte [rcx - 2]
cmp ebx, 0x23
jne 0x140059ce0
cmp rax, 2
jb 0x140059ce0
cmp byte [rcx - 1], 0x23
jne 0x140059ce0
cmp byte [rcx], 0x23
mov r8, rsi
mov rsi, rdi
mov edi, 0xffffffff
cmove ebp, edi
mov rdi, rsi
mov rsi, r8
jmp 0x140059ce0
mov cl, byte [rdx]
test cl, cl
je 0x140059d8e
lea rax, [rdx + 2]
mov ebp, 0xffffffff
jmp 0x140059d71
movzx ecx, cl
mov r12d, ebp
shr r12d, 8
movzx ebp, bpl
xor ebp, ecx
xor r12d, dword [rdi + rbp*4]
add rax, 1
mov ecx, ebx
mov ebp, r12d
test bl, bl
je 0x140059d94
movzx ebx, byte [rax - 1]
cmp cl, 0x23
jne 0x140059d50
cmp bl, 0x23
jne 0x140059d50
cmp byte [rax], 0x23
mov ebx, 0xffffffff
cmove ebp, ebx
mov bl, 0x23
jmp 0x140059d50
mov r12d, 0xffffffff
not r12d
cmp dword [r14 + 0x74], r12d
mov ebp, r9d
je 0x140059db7
mov bl, byte [r15]
mov byte [r15], 0
mov rcx, r14
call qword [rsi + 0x3970]
mov byte [r15], bl
mov dword [r14 + 0x74], r12d
movss xmm1, dword [r14 + 0x80]
movss xmm0, dword [r14 + 0x84]
ucomiss xmm0, xmm1
jne 0x140059dd0
jnp 0x140059dea
mov rax, qword [rsi + 0x3978]
test rax, rax
je 0x140059dea
mov rcx, r14
call rax
movss xmm1, dword [r14 + 0x80]
lea r15, [0x1400f18e0]
lea r12, str._viewport__Destroy_Platform_Window__08X__s_n
movss dword [r14 + 0x84], xmm1
mov rax, qword [rsi + 0x3980]
test rax, rax
je 0x140059e12
mov rcx, r14
call rax
test bpl, bpl
jne 0x140059e47
cmp dword [rsi + 0x40c8], 2
jg 0x140059e25
or byte [r14 + 4], 0x20
mov rcx, r14
call qword [rsi + 0x3930]
mov eax, dword [rsi + 0x4d40]
cmp dword [r14 + 0x70], eax
je 0x140059e47
add eax, 1
mov dword [rsi + 0x4d40], eax
mov dword [r14 + 0x70], eax
mov word [r14 + 0x59], 0
mov byte [r14 + 0x5b], 0
jmp 0x140059b07
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret