Function at 0x140022d00
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
vmovaps xmmword [rsp + 0x50], xmm7
vmovaps xmmword [rsp + 0x40], xmm6
mov rax, qword [0x1400c1548]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov r12, qword [0x1400c1650]
mov eax, dword [r12 + 0x3f5c]
cmp eax, dword [r12 + 0x3f58]
je 0x14002388b
movsxd rbx, dword [r12 + 0x5fb0]
mov rsi, r12
test rbx, rbx
je 0x140022d92
mov rdi, qword [r12 + 0x5fb8]
shl rbx, 5
jmp 0x140022d7a
add rdi, 0x20
add rbx, 0xffffffffffffffe0
je 0x140022d8b
cmp dword [rdi + 4], 2
jne 0x140022d70
mov rcx, r12
mov rdx, rdi
call qword [rdi + 0x10]
jmp 0x140022d70
mov rsi, qword [0x1400c1650]
cmp dword [rsi + 0x3fd0], 2
jl 0x140022dae
nop dword [rax + rax]
call fcn.140023aa0
cmp dword [rsi + 0x3fd0], 1
jg 0x140022da0
mov rax, qword [r12 + 0xc0]
test rax, rax
je 0x140022e46
vmovdqu xmm0, xmmword [r12 + 0x5f48]
vpxor xmm0, xmm0, xmmword [r12 + 0x5f58]
vptest xmm0, xmm0
je 0x140022e46
lea rdi, [r12 + 0x5f48]
test byte [r12 + 0x604c], 0x40
je 0x140022e30
vmovss xmm0, dword [r12 + 0x5f4c]
vmovss xmm1, dword [r12 + 0x5f50]
vcvtss2sd xmm3, xmm1, xmm1
vcvtss2sd xmm2, xmm0, xmm0
movzx edx, byte [r12 + 0x5f48]
lea rcx, str._io__Calling_io.SetPlatformImeDataFn__:_WantVisible:__d__InputPos___.2f__.2f__n
vmovq r8, xmm2
vmovq r9, xmm3
call fcn.14000f1c0
mov rax, qword [r12 + 0xc0]
mov rcx, qword [0x1400c1650]
mov rcx, qword [rcx + 0x4b10]
mov rcx, qword [rcx]
mov rdx, rdi
call rax
mov byte [r12 + 0x3f65], 0
mov rax, qword [r12 + 0x4000]
test rax, rax
je 0x140022e6c
cmp byte [rax + 0xc0], 0
jne 0x140022e6c
mov byte [rax + 0xbe], 0
call fcn.140023aa0
mov rdi, qword [0x1400c1650]
cmp qword [rdi + 0x4d10], 0
je 0x140023208
vmovss xmm0, dword [0x14006aa50]
vucomiss xmm0, dword [rdi + 0x4d28]
ja 0x140023208
cmp qword [rdi + 0x4d20], 0
jne 0x140022f7a
mov r8d, 0xffffffff
mov bl, 0x23
lea rdx, [0x140073c82]
lea rbp, [0x140069980]
mov eax, 0xffffffff
jmp 0x140022ee8
movzx ebx, bl
movzx esi, al
shr eax, 8
xor esi, ebx
xor eax, dword [rbp + rsi*4]
inc rdx
mov ebx, ecx
test cl, cl
je 0x140022f01
movzx ecx, byte [rdx - 1]
cmp bl, 0x23
jne 0x140022ed0
cmp cl, 0x23
jne 0x140022ed0
cmp byte [rdx], 0x23
cmove eax, r8d
mov cl, 0x23
jmp 0x140022ed0
not eax
mov r8, qword [rdi + 0x3fe8]
movsxd rcx, dword [rdi + 0x3fe0]
test rcx, rcx
je 0x140022f56
mov rdx, r8
mov rsi, rcx
mov rbp, rcx
jmp 0x140022f38
mov rsi, rbp
test rbp, rbp
je 0x140022f5b
shr rbp, 1
mov rbx, rbp
shl rbx, 4
cmp dword [rdx + rbx], eax
jae 0x140022f30
not rbp
add rbp, rsi
add rdx, rbx
add rdx, 0x10
jmp 0x140022f30
xor ecx, ecx
mov rdx, r8
shl rcx, 4
add r8, rcx
cmp rdx, r8
je 0x140022f71
cmp dword [rdx], eax
jne 0x140022f71
mov rax, qword [rdx + 8]
jmp 0x140022f73
xor eax, eax
mov qword [rdi + 0x4d20], rax
mov rax, qword [rdi + 0x4b10]
mov rax, qword [rax]
mov ecx, dword [rdi + 0x4a00]
mov edx, ecx
or edx, 0x10
vmovsd xmm0, qword [rax + 0x10]
vbroadcastss xmm1, dword [0x14006ac20]
vmulps xmm0, xmm0, xmm1
mov dword [rdi + 0x4a00], edx
vmovq rdx, xmm0
vmovdqa xmm0, xmmword [0x14006acb0]
vpinsrq xmm0, xmm0, rdx, 0
vmovdqu xmmword [rdi + 0x4a40], xmm0
vxorps xmm6, xmm6, xmm6
vmovups xmmword [rdi + 0x4a50], xmm6
or ecx, 0x11
vmovsd xmm0, qword [rax + 8]
vmovsd xmm1, qword [rax + 0x10]
vbroadcastss xmm2, dword [0x1400690ac]
vfmadd213ps xmm2, xmm1, xmm0
vmovq rax, xmm2
vmovdqa xmm0, xmmword [0x14006acc0]
vpinsrq xmm0, xmm0, rax, 0
mov dword [rdi + 0x4a00], ecx
vmovdqu xmmword [rdi + 0x4a10], xmm0
mov dword [rdi + 0x4a04], 1
lea rcx, [rdi + 0x4a88]
mov rax, qword [rdi + 0x38f0]
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x2c], eax
shr rax, 0x20
mov dword [rsp + 0x30], eax
vmovsd xmm0, qword [rdi + 0x38f0]
vaddps xmm7, xmm0, xmm0
lea rdx, [rsp + 0x28]
call fcn.14000f810
vmovlps qword [rdi + 0x38f0], xmm7
lea rcx, str.NavWindowingList
xor edx, edx
mov r8d, 0x31347
call fcn.14001e470
mov r14d, dword [rdi + 0x3fb0]
test r14d, r14d
jle 0x140023181
lea r13, str.Missing_Text
lea rbx, [rsp + 0x28]
jmp 0x1400230ca
mov rax, qword [0x1400c1650]
mov ecx, 0x5ff8
add rax, rcx
mov rcx, qword [rax]
test rcx, rcx
cmove rcx, r13
vmovlps qword [rsp + 0x28], xmm6
cmp qword [rdi + 0x4d10], r15
sete dl
xor r8d, r8d
mov r9, rbx
call fcn.14004b190
nop word [rax + rax]
cmp rbp, 1
jle 0x140023181
mov rbp, r14
dec r14
mov rax, qword [rdi + 0x3fb8]
mov ecx, r14d
mov r15, qword [rax + rcx*8]
cmp byte [r15 + 0xbf], 0
je 0x1400230c0
cmp qword [r15 + 0x388], r15
jne 0x1400230c0
mov eax, dword [r15 + 0x14]
test eax, 0x20000
jne 0x1400230c0
mov rcx, qword [r15 + 8]
cmp rcx, 0xffffffffffffffff
je 0x14002313d
mov rdx, rcx
jmp 0x14002311f
cmp byte [rdx + 1], 0x23
je 0x140023134
inc rdx
cmp rdx, 0xffffffffffffffff
je 0x14002312d
movzx esi, byte [rdx]
cmp esi, 0x23
je 0x140023110
test esi, esi
jne 0x140023116
jmp 0x140023134
mov rdx, 0xffffffffffffffff
cmp rcx, rdx
jne 0x14002309f
test eax, 0x4000000
jne 0x140023086
test eax, 0x400
je 0x14002315f
lea rdx, str.MainMenuBar
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x140023170
mov rax, qword [0x1400c1650]
mov ecx, 0x6000
jmp 0x140023092
mov rax, qword [0x1400c1650]
mov ecx, 0x5ff0
jmp 0x140023092
call fcn.140023aa0
mov rax, qword [0x1400c1650]
mov edx, dword [rax + 0x4a88]
test edx, edx
jle 0x140023208
mov rcx, qword [rax + 0x4a90]
dec edx
lea rdx, [rdx + rdx*2]
movsxd rbx, dword [rcx + rdx*4]
lea rbp, [rbx + rbx*2]
lea rsi, [0x140069e20]
cmp dword [rsi + rbp*4], 8
jne 0x140023202
mov ebp, dword [rsi + rbp*4 + 8]
mov esi, 0x4fd379b
bt rsi, rbx
jb 0x1400231f3
mov esi, 0x1b02c864
bt rsi, rbx
jae 0x140023202
vmovss xmm0, dword [rcx + rdx*4 + 4]
vmovss dword [rax + rbp + 0x38e8], xmm0
vmovss xmm0, dword [rcx + rdx*4 + 8]
vmovss dword [rax + rbp + 0x38ec], xmm0
jmp 0x140023202
vmovss xmm0, dword [rcx + rdx*4 + 4]
vmovss dword [rax + rbp + 0x38e8], xmm0
dec dword [rax + 0x4a88]
cmp qword [rdi + 0x4b18], 0
je 0x140023238
mov rax, qword [0x1400c1650]
cmp byte [rax + 0x4bc1], 0
je 0x140023238
cmp dword [rax + 0x4c10], 0
jne 0x140023238
cmp dword [rax + 0x4c90], 0
je 0x140023304
cmp byte [r12 + 0x4d4c], 0
je 0x14002358e
movzx eax, byte [r12 + 0x4d9a]
mov ecx, dword [r12 + 0x4d74]
inc ecx
cmp ecx, dword [r12 + 0x3f58]
jge 0x1400232ee
test byte [r12 + 0x4d50], 0x20
jne 0x140023428
movsxd rdx, dword [r12 + 0x4d58]
mov rcx, qword [0x1400c1650]
cmp byte [rcx + rdx + 0xe48], 0
je 0x1400232fd
lea ebp, [rdx + 0x8f]
cmp ebp, 0x9a
jae 0x1400233b1
lea ebp, [rdx + 0x28f]
test ebp, 0xf800
je 0x1400233ff
cmp edx, 0x1d70
jle 0x1400233e6
cmp edx, 0x7d71
je 0x140023903
cmp edx, 0x3d71
je 0x14002390d
cmp edx, 0x1d71
jne 0x1400233ff
mov ebx, 0x297
jmp 0x140023401
xor ebp, ebp
test al, al
je 0x14002341f
jmp 0x140023428
xor ebp, ebp
jmp 0x140023417
mov ecx, dword [rdi + 0x4bc4]
test cl, 0xf
je 0x140023238
and ecx, 0x80
jne 0x140023238
mov rdx, qword [rax + 0x4b18]
movsxd rbp, dword [rax + 0x4b68]
shl rbp, 4
vmovss xmm1, dword [rdx + rbp + 0x3c4]
vmovss xmm5, dword [rdx + rbp + 0x3cc]
mov ebx, dword [rax + 0x4bd0]
mov edi, dword [rax + 0x4bc4]
test ebx, ebx
je 0x1400238d2
vmovss xmm0, dword [rdx + rbp + 0x3c0]
vmovss xmm4, dword [rdx + rbp + 0x3c8]
cmp ebx, 1
jne 0x140023929
mov ecx, edi
and ecx, 5
je 0x140023929
vbroadcastss xmm0, dword [0x140069800]
vmovss xmm2, dword [rdx + 0x58]
vxorps xmm2, xmm2, xmm0
mov esi, 1
test dil, 4
je 0x1400238f2
vfmsub231ss xmm1, xmm5, dword [0x14006aaf8]
mov esi, 3
jmp 0x14002399f
mov bpl, 1
cmp edx, 0x1d70
jle 0x1400238b5
cmp edx, 0x1d71
je 0x1400232a2
cmp edx, 0x7d71
je 0x1400232a2
cmp edx, 0x3d71
je 0x1400232a2
jmp 0x140023417
cmp edx, 0x571
je 0x140023917
mov ebx, 0x296
cmp edx, 0xd71
je 0x140023401
mov ebx, ebp
add ebx, 0xfffffe00
lea rdx, [rbx + rbx*2]
cmp byte [rcx + rdx*4 + 0x40e4], 0
sete bpl
xor bpl, 1
test al, al
jne 0x140023428
test bpl, bpl
je 0x140023550
mov rdi, qword [0x1400c1650]
mov byte [rdi + 0x4d4c], 0
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [rdi + 0x4d78], ymm0
mov byte [rdi + 0x4d98], 0
vxorps xmm6, xmm6, xmm6
vmovups xmmword [rdi + 0x4d60], xmm6
movabs rax, 0xffffffff00000000
mov qword [rdi + 0x4d70], rax
mov word [rdi + 0x4d99], 0
movabs rax, 0x7f7fffff00000000
mov qword [rdi + 0x4dc4], rax
mov qword [rdi + 0x4dcc], 0
mov dword [rdi + 0x4dd4], 0xffffffff
mov rcx, qword [rdi + 0x4de8]
test rcx, rcx
je 0x14002353d
mov qword [rdi + 0x4de0], 0
mov eax, dword [rdi + 0x3f58]
movsx rdx, word [rdi + 0x60f0]
cmp dword [rdi + rdx*8 + 0x60f4], eax
jne 0x1400234d3
movzx eax, word [rdi + rdx*8 + 0x60fa]
inc eax
jmp 0x140023514
inc edx
movsxd rdx, edx
imul rbp, rdx, 0x2aaaaaab
mov rbx, rbp
shr rbx, 0x3f
shr rbp, 0x20
add ebp, ebx
add ebp, ebp
lea ebp, [rbp + rbp*2]
sub edx, ebp
mov word [rdi + 0x60f0], dx
movsxd rdx, edx
mov dword [rdi + rdx*8 + 0x60f4], eax
mov dword [rdi + rdx*8 + 0x60f8], 0
mov ax, 1
mov word [rdi + rdx*8 + 0x60fa], ax
inc dword [rdi + 0x60ec]
mov rdx, qword [0x1400c1660]
vzeroupper
call qword [0x14007b358]
mov qword [rdi + 0x4de8], 0
vmovups xmmword [rdi + 0x4df0], xmm6
cmp byte [r12 + 0x4d4c], 0
je 0x14002358e
mov eax, dword [r12 + 0x4d54]
cmp eax, dword [r12 + 0x3f58]
jge 0x14002358e
test byte [r12 + 0x4d50], 1
jne 0x14002358e
mov byte [r12 + 0x4d4d], 1
lea rcx, [0x1400757b0]
vzeroupper
call fcn.140023cd0
mov byte [r12 + 0x4d4d], 0
mov byte [r12 + 0x3f64], 0
mov eax, dword [r12 + 0x3f58]
mov dword [r12 + 0x3f5c], eax
vzeroupper
call fcn.140017dc0
lea rdi, [r12 + 0x3fc0]
xor r15d, r15d
mov rcx, rdi
xor edx, edx
call fcn.140023d40
mov ebx, dword [r12 + 0x3fa0]
mov eax, dword [r12 + 0x3fc4]
cmp eax, ebx
jge 0x14002374d
movsxd rcx, ebx
shl rcx, 3
mov rdx, qword [0x1400c1660]
call qword [0x14007b350]
mov r14, rax
mov rax, qword [0x1400c1650]
test rax, rax
je 0x140023670
mov ecx, dword [rax + 0x3f58]
movsx rdx, word [rax + 0x60f0]
cmp dword [rax + rdx*8 + 0x60f4], ecx
jne 0x140023621
mov ecx, dword [rax + rdx*8 + 0x60f8]
inc ecx
jmp 0x140023662
inc edx
movsxd rdx, edx
imul rbp, rdx, 0x2aaaaaab
mov rsi, rbp
shr rsi, 0x3f
shr rbp, 0x20
add ebp, esi
add ebp, ebp
lea ebp, [rbp + rbp*2]
sub edx, ebp
mov word [rax + 0x60f0], dx
movsxd rdx, edx
mov dword [rax + rdx*8 + 0x60f4], ecx
mov dword [rax + rdx*8 + 0x60f8], 0
mov cx, 1
mov word [rax + rdx*8 + 0x60f8], cx
inc dword [rax + 0x60e8]
mov rdx, qword [r12 + 0x3fc8]
test rdx, rdx
je 0x140023733
movsxd r8, dword [r12 + 0x3fc0]
shl r8, 3
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r12 + 0x3fc8]
test rcx, rcx
je 0x140023726
mov rax, qword [0x1400c1650]
test rax, rax
je 0x140023726
mov r8d, dword [rax + 0x3f58]
movsx rbp, word [rax + 0x60f0]
cmp dword [rax + rbp*8 + 0x60f4], r8d
jne 0x1400236d7
movzx edx, word [rax + rbp*8 + 0x60fa]
inc edx
jmp 0x140023718
inc ebp
movsxd rbp, ebp
imul rsi, rbp, 0x2aaaaaab
mov rdx, rsi
shr rdx, 0x3f
shr rsi, 0x20
add esi, edx
add esi, esi
lea edx, [rsi + rsi*2]
sub ebp, edx
mov word [rax + 0x60f0], bp
movsxd rbp, ebp
mov dword [rax + rbp*8 + 0x60f4], r8d
mov dword [rax + rbp*8 + 0x60f8], 0
mov dx, 1
mov word [rax + rbp*8 + 0x60fa], dx
inc dword [rax + 0x60ec]
mov rdx, qword [0x1400c1660]
call qword [0x14007b358]
mov qword [r12 + 0x3fc8], r14
mov dword [r12 + 0x3fc4], ebx
mov eax, ebx
mov ebx, dword [r12 + 0x3fa0]
mov rbp, qword [r12 + 0x3fa8]
test ebx, ebx
je 0x1400237af
movsxd rbx, ebx
shl rbx, 3
xor esi, esi
jmp 0x140023781
mov rcx, rdi
call fcn.140023ee0
add rsi, 8
cmp rbx, rsi
je 0x140023797
mov rdx, qword [rbp + rsi]
cmp byte [rdx + 0xbe], 0
je 0x140023770
test byte [rdx + 0x17], 1
je 0x140023770
jmp 0x140023778
mov r15d, dword [r12 + 0x3fa0]
mov eax, dword [r12 + 0x3fc4]
mov rbp, qword [r12 + 0x3fa8]
mov ecx, dword [r12 + 0x3fc0]
mov dword [r12 + 0x3fc0], r15d
mov dword [r12 + 0x3fa0], ecx
mov ecx, dword [r12 + 0x3fa4]
mov dword [r12 + 0x3fc4], ecx
mov dword [r12 + 0x3fa4], eax
mov rax, qword [r12 + 0x3fc8]
mov qword [r12 + 0x3fc8], rbp
mov qword [r12 + 0x3fa8], rax
mov eax, dword [r12 + 0x3ff0]
mov dword [r12 + 0xe4], eax
mov rax, qword [r12 + 0x38]
mov byte [rax + 0x18], 0
mov rax, qword [r12 + 0xe40]
mov qword [r12 + 0x3808], rax
mov byte [r12 + 0x38d0], 0
vpxor xmm0, xmm0, xmm0
vmovq qword [r12 + 0xe50], xmm0
lea rcx, [r12 + 0x38d8]
xor edx, edx
call fcn.14000c910
movsxd rbx, dword [r12 + 0x5fb0]
test rbx, rbx
je 0x14002388b
mov rdi, qword [r12 + 0x5fb8]
shl rbx, 5
jmp 0x14002387a
add rdi, 0x20
add rbx, 0xffffffffffffffe0
je 0x14002388b
cmp dword [rdi + 4], 3
jne 0x140023870
mov rcx, r12
mov rdx, rdi
call qword [rdi + 0x10]
jmp 0x140023870
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140067310
vmovaps xmm6, xmmword [rsp + 0x40]
vmovaps xmm7, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp edx, 0x571
je 0x1400232a2
cmp edx, 0xd71
je 0x1400232a2
jmp 0x140023417
test dil, 5
je 0x140023238
vmovss xmm0, dword [rdx + 0x58]
vaddss xmm2, xmm0, dword [rdx + 0x40]
xor esi, esi
test dil, 4
jne 0x140023991
vmovaps xmm3, xmm1
vmovaps xmm0, xmm2
vmovaps xmm1, xmm5
jmp 0x1400239bf
mov ebx, 0x299
jmp 0x140023401
mov ebx, 0x298
jmp 0x140023401
movzx edx, byte [rcx + 0x59]
lea ebx, [rdx + rdx*2]
add ebx, 0x296
jmp 0x140023401
mov ecx, edi
and ecx, 0xa
cmp ebx, 2
jne 0x140023959
test ecx, ecx
je 0x140023959
vmovss xmm1, dword [rdx + 0x5c]
vaddss xmm3, xmm1, dword [rdx + 0x44]
mov esi, 2
test dil, 8
je 0x140023987
vfmsub231ss xmm4, xmm0, dword [0x14006aaf8]
xor esi, esi
jmp 0x1400239b7
cmp ebx, 3
jne 0x140023238
test ecx, ecx
je 0x140023238
vbroadcastss xmm1, dword [0x140069800]
vmovss xmm2, dword [rdx + 0x5c]
vxorps xmm3, xmm2, xmm1
mov esi, 3
test dil, 8
jne 0x1400239a9
vmovaps xmm2, xmm0
vmovaps xmm0, xmm4
jmp 0x1400239bb
vfmsub231ss xmm5, xmm1, dword [0x14006aaf8]
mov esi, 2
vmovaps xmm3, xmm5
vmovaps xmm0, xmm2
jmp 0x1400239bf
vfmsub231ss xmm0, xmm4, dword [0x14006aaf8]
mov esi, 1
vmovaps xmm2, xmm4
vmovaps xmm1, xmm3
lea rcx, [rdx + rbp]
add rcx, 0x3c0
vmovss dword [rcx], xmm2
vmovss dword [rcx + 4], xmm3
vmovss dword [rcx + 8], xmm0
vmovss dword [rcx + 0xc], xmm1
mov rcx, qword [0x1400c1650]
mov rdx, qword [rcx + 0x4b18]
mov rdx, qword [rdx + 0x3a0]
movsxd rcx, dword [rcx + 0x4b68]
mov dword [rdx + rcx*8 + 0x3e0], 0x7f7fffff
mov rcx, qword [0x1400c1650]
mov rdx, qword [rcx + 0x4b18]
mov rdx, qword [rdx + 0x3a0]
movsxd rcx, dword [rcx + 0x4b68]
mov dword [rdx + rcx*8 + 0x3e4], 0x7f7fffff
mov ecx, dword [rax + 0x4bc8]
mov eax, dword [rax + 0x4bd0]
mov rdx, qword [0x1400c1650]
mov word [rdx + 0x4bc1], 0x100
mov byte [rdx + 0x4bc0], 0
movzx ebx, byte [rdx + 0x4b7d]
mov byte [rdx + 0x4b7c], bl
mov dword [rdx + 0x4bd0], eax
mov dword [rdx + 0x4bd8], esi
or edi, 0x80
mov dword [rdx + 0x4bc4], edi
mov dword [rdx + 0x4bc8], ecx
jmp 0x140023238