Function at 0x14004f6c0
Capabilities:
Authenticate hmac
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2f8
vmovaps xmmword [rsp + 0x2e0], xmm15
vmovaps xmmword [rsp + 0x2d0], xmm14
vmovaps xmmword [rsp + 0x2c0], xmm13
vmovaps xmmword [rsp + 0x2b0], xmm12
vmovaps xmmword [rsp + 0x2a0], xmm11
vmovaps xmmword [rsp + 0x290], xmm10
vmovaps xmmword [rsp + 0x280], xmm9
vmovaps xmmword [rsp + 0x270], xmm8
vmovaps xmmword [rsp + 0x260], xmm7
vmovaps xmmword [rsp + 0x250], xmm6
mov ebp, r8d
mov qword [rsp + 0x168], rdx
mov r14, rcx
mov rbx, qword [0x140221790]
movzx r9d, byte [rcx]
test r9b, r9b
je 0x14004f7ad
lea rcx, [r14 + 2]
mov edx, 0xffffffff
lea r8, [0x1401260e0]
mov eax, 0xffffffff
jmp 0x14004f78d
movzx r9d, r9b
movzx r11d, al
shr eax, 8
xor r11d, r9d
xor eax, dword [r8 + r11*4]
inc rcx
mov r9d, r10d
test r10b, r10b
je 0x14004f7a9
movzx r10d, byte [rcx - 1]
cmp r9b, 0x23
jne 0x14004f770
cmp r10b, 0x23
jne 0x14004f770
cmp byte [rcx], 0x23
cmove eax, edx
mov r10b, 0x23
jmp 0x14004f770
not eax
jmp 0x14004f7af
xor eax, eax
mov rcx, qword [rbx + 0x3ee0]
movsxd r8, dword [rbx + 0x3ed8]
test r8, r8
je 0x14004f7f7
mov rdx, rcx
mov r10, r8
mov r9, r8
jmp 0x14004f7d8
mov r10, r9
test r9, r9
je 0x14004f7fd
shr r9, 1
mov r11, r9
shl r11, 4
cmp dword [rdx + r11], eax
jae 0x14004f7d0
not r9
add r9, r10
add rdx, r11
add rdx, 0x10
jmp 0x14004f7d0
xor r8d, r8d
mov rdx, rcx
shl r8, 4
add rcx, r8
cmp rdx, rcx
je 0x14004f824
cmp dword [rdx], eax
jne 0x14004f824
mov rdi, qword [rdx + 8]
xor ecx, ecx
mov dword [rsp + 0x74], 0
test rdi, rdi
jne 0x14004f9ff
lea r15, [rbx + 0x3ed8]
test rbx, rbx
je 0x14004f836
inc dword [rbx + 0xf4]
mov rdx, qword [0x1402217a0]
mov ecx, 0x3e8
call qword [0x1402034d8]
mov rdi, rax
mov rcx, rax
mov rdx, rbx
mov r8, r14
call fcn.140046a00
mov qword [rsp + 0xb0], rdi
mov dword [rdi + 0x14], ebp
mov edx, dword [rdi + 0x10]
mov rcx, r15
mov r8, rdi
call fcn.140040380
test ebp, 0x100
jne 0x14004f8f3
movsxd rax, dword [rdi + 0x294]
cmp rax, 0xffffffffffffffff
je 0x14004f8af
mov rcx, qword [0x140221790]
mov rdx, qword [rcx + 0x5c38]
test rdx, rdx
je 0x14004f8f3
add rdx, rax
mov eax, dword [rbx + 0x5c38]
mov ecx, edx
sub ecx, eax
mov dword [rdi + 0x294], ecx
jmp 0x14004f8f5
mov rax, qword [0x140221790]
mov rcx, qword [rax + 0x5c38]
test rcx, rcx
je 0x14004f8f3
mov r8d, dword [rdi + 0x10]
add rcx, 4
mov rdx, rcx
jmp 0x14004f8e6
movsxd r9, dword [rdx - 4]
add rdx, r9
movsxd r9, dword [rax + 0x5c30]
add r9, rcx
cmp rdx, r9
je 0x14004f8f3
cmp dword [rdx], r8d
jne 0x14004f8d0
cmp byte [rdx + 0xe], 0
jne 0x14004f8d0
jmp 0x14004f89d
xor edx, edx
mov rcx, rdi
call fcn.14005e3b0
test ebp, 0x2000
jne 0x14004f92b
mov eax, dword [rbx + 0x3e98]
cmp eax, dword [rbx + 0x3e9c]
jne 0x14004f9dc
lea esi, [rax + 1]
test eax, eax
je 0x14004f944
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14004f949
lea rcx, [rbx + 0x3e98]
lea rdx, [rsp + 0xb0]
call fcn.14005f0d0
jmp 0x14004f9ef
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x14004f9dc
movsxd rcx, esi
shl rcx, 3
mov rax, qword [0x140221790]
test rax, rax
je 0x14004f96f
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rbx + 0x3ea0]
test rdx, rdx
je 0x14004f9c9
movsxd r8, dword [rbx + 0x3e98]
shl r8, 3
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x3ea0]
test rcx, rcx
je 0x14004f9bc
mov rax, qword [0x140221790]
test rax, rax
je 0x14004f9bc
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rbx + 0x3ea0], r15
mov dword [rbx + 0x3e9c], esi
mov eax, dword [rbx + 0x3e98]
mov rcx, qword [rbx + 0x3ea0]
cdqe
mov qword [rcx + rax*8], rdi
inc dword [rbx + 0x3e98]
mov rdi, qword [rsp + 0xb0]
mov cl, 1
mov al, 1
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x5c], ecx
mov eax, ebp
not eax
mov esi, ebp
or esi, 6
test eax, 0xc0200
cmovne esi, ebp
mov r9d, dword [rbx + 0x3e50]
cmp dword [rbx + 0x3ec8], 0
je 0x14004fa28
xor eax, eax
jmp 0x14004fa2f
movzx eax, byte [rbx + 0x3e5d]
mov r10d, dword [rdi + 0x260]
mov byte [rdi + 0xbe], al
lea eax, [r9 - 1]
test esi, 0x4000000
jne 0x14004fa70
lea rcx, [rdi + 0xbc]
mov qword [rsp + 0x110], rcx
cmp r10d, eax
setl byte [rdi + 0xbc]
jl 0x14004fabd
mov dword [rsp + 0x84], 0
jmp 0x14004fad0
cmp r10d, eax
setl al
movsxd rcx, dword [rbx + 0x48b0]
mov rdx, qword [rbx + 0x48a8]
imul rcx, rcx, 0x38
mov r8d, dword [rdi + 0xcc]
cmp r8d, dword [rdx + rcx]
setne r8b
cmp rdi, qword [rdx + rcx + 8]
setne cl
or cl, r8b
or cl, al
lea rax, [rdi + 0xbc]
mov qword [rsp + 0x110], rax
mov byte [rdi + 0xbc], cl
test cl, cl
je 0x14004fa63
or dword [rdi + 0xdc], 0x80808
mov al, 1
mov dword [rsp + 0x84], eax
cmp r10d, r9d
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x108], r9
mov dword [rsp + 0x78], r10d
jne 0x14004faef
mov esi, dword [rdi + 0x14]
jmp 0x14004fd1c
mov r12, qword [0x140221790]
mov eax, esi
shr eax, 0x18
mov ecx, esi
and ecx, 0x14000000
cmp ecx, 0x4000000
setne bl
and bl, al
movzx eax, byte [rdi + 0xbf]
cmp al, bl
sete cl
test bl, bl
jne 0x14004fb5c
mov edx, dword [rsp + 0x74]
xor dl, 1
and cl, dl
jne 0x14004fb5c
mov ebp, esi
mov eax, dword [r12 + 0x3ea8]
cmp eax, dword [r12 + 0x3eac]
jne 0x14004fcaa
lea esi, [rax + 1]
test eax, eax
je 0x14004fc07
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14004fc0c
mov ecx, ebx
xor cl, 1
or cl, byte [rsp + 0x74]
jne 0x14004fcd4
cmp al, bl
je 0x14004fcd4
movsx eax, word [rdi + 0xca]
lea edx, [rax + 1]
mov ecx, dword [r12 + 0x3ea8]
cmp edx, ecx
jge 0x14004fbba
cdqe
inc rax
nop
mov rcx, qword [r12 + 0x3eb0]
mov rcx, qword [rcx + rax*8]
dec word [rcx + 0xca]
inc rax
movsxd rcx, dword [r12 + 0x3ea8]
cmp rax, rcx
jl 0x14004fb90
movzx eax, word [rdi + 0xca]
movsxd r9, ecx
mov rdx, qword [r12 + 0x3eb0]
movsx r8, ax
lea rcx, [rdx + r8*8]
lea rdx, [rdx + r8*8]
add rdx, 8
not r8
add r8, r9
shl r8, 3
call sub.VCRUNTIME140.dll_memmove
dec dword [r12 + 0x3ea8]
mov word [rdi + 0xca], 0xffff
mov r9, qword [rsp + 0x108]
mov r10d, dword [rsp + 0x78]
jmp 0x14004fcd4
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x14004fcaa
movsxd rcx, esi
shl rcx, 3
inc dword [r12 + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [r12 + 0x3eb0]
test rdx, rdx
je 0x14004fc85
movsxd r8, dword [r12 + 0x3ea8]
shl r8, 3
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r12 + 0x3eb0]
test rcx, rcx
je 0x14004fc78
mov rax, qword [0x140221790]
test rax, rax
je 0x14004fc78
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [r12 + 0x3eb0], r15
mov dword [r12 + 0x3eac], esi
mov eax, dword [r12 + 0x3ea8]
mov r9, qword [rsp + 0x108]
mov r10d, dword [rsp + 0x78]
mov rcx, qword [r12 + 0x3eb0]
cdqe
mov qword [rcx + rax*8], rdi
mov eax, dword [r12 + 0x3ea8]
lea ecx, [rax + 1]
mov dword [r12 + 0x3ea8], ecx
mov word [rdi + 0xca], ax
mov esi, ebp
mov byte [rdi + 0xbf], bl
mov dword [rdi + 0x14], esi
mov dword [rdi + 0x260], r9d
mov rbx, qword [rsp + 0x40]
vmovsd xmm0, qword [rbx + 0x3e48]
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [rdi + 0x264], xmm0
mov word [rdi + 0xc6], 0
mov eax, dword [rbx + 0x3ee8]
lea ecx, [rax + 1]
mov dword [rbx + 0x3ee8], ecx
mov word [rdi + 0xc8], ax
movsxd rax, dword [rbx + 0x3ec8]
test rax, rax
je 0x14004fd46
mov rcx, qword [rbx + 0x3ed0]
imul rdx, rax, 0x58
mov rcx, qword [rdx + rcx - 0x58]
cmp r10d, r9d
jne 0x14004fd4d
mov r12, qword [rdi + 0x368]
jmp 0x14004fd5a
xor ecx, ecx
cmp r10d, r9d
je 0x14004fd3d
xor r12d, r12d
test esi, 0x5000000
cmovne r12, rcx
mov qword [rsp + 0x48], rcx
cmp dword [rdi + 0xf0], 0
jne 0x14004fe2d
cmp dword [rdi + 0xf4], 0
je 0x14004fd83
mov r15, qword [rdi + 0xf8]
xor eax, eax
jmp 0x14004fe18
mov rax, qword [0x140221790]
test rax, rax
je 0x14004fd95
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
mov ecx, 0x20
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rdi + 0xf8]
test rdx, rdx
je 0x14004fdf4
movsxd r8, dword [rdi + 0xf0]
shl r8, 2
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0xf8]
test rcx, rcx
je 0x14004fde7
mov rax, qword [0x140221790]
test rax, rax
je 0x14004fde7
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rdi + 0xf8], r15
mov dword [rdi + 0xf4], 8
mov eax, dword [rdi + 0xf0]
mov r9, qword [rsp + 0x108]
mov r10d, dword [rsp + 0x78]
cdqe
mov ecx, dword [rdi + 0x10]
mov dword [r15 + rax*4], ecx
inc dword [rdi + 0xf0]
mov eax, dword [rbx + 0x3ec8]
mov qword [rsp + 0x88], r12
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x130], r14
mov qword [rbx + 0x3ef8], rdi
vmovups ymm0, ymmword [rbx + 0x4794]
vmovups ymm1, ymmword [rbx + 0x47b0]
vmovups ymmword [rsp + 0x22c], ymm1
vmovups ymmword [rsp + 0x210], ymm0
movzx ebp, word [rdi + 0xf0]
movzx r12d, word [rbx + 0x4840]
movzx r13d, word [rbx + 0x4850]
movzx r14d, word [rbx + 0x4860]
movzx r8d, word [rbx + 0x4870]
movzx r11d, word [rbx + 0x4890]
movzx r15d, word [rbx + 0x4880]
movzx ecx, word [rbx + 0x48b0]
mov word [rsp + 0x80], cx
movzx ecx, word [rbx + 0x5bc0]
mov word [rsp + 0x160], cx
cmp eax, dword [rbx + 0x3ecc]
jne 0x14004ffc2
lea esi, [rax + 1]
test eax, eax
je 0x14004fedf
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14004fee4
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x14004ffc2
mov word [rsp + 0xfc], r11w
mov word [rsp + 0x100], r8w
movsxd rax, esi
imul rcx, rax, 0x58
mov rax, qword [0x140221790]
test rax, rax
je 0x14004ff1c
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
vzeroupper
call qword [0x1402034d8]
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rbx + 0x3ed0]
test rdx, rdx
je 0x14004ff90
movsxd rcx, dword [rbx + 0x3ec8]
imul r8, rcx, 0x58
mov qword [rsp + 0x128], rax
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x3ed0]
test rcx, rcx
je 0x14004ff76
mov rax, qword [0x140221790]
test rax, rax
je 0x14004ff76
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov rbx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x128]
mov qword [rbx + 0x3ed0], rax
mov dword [rbx + 0x3ecc], esi
mov eax, dword [rbx + 0x3ec8]
mov r9, qword [rsp + 0x108]
mov r10d, dword [rsp + 0x78]
movzx r8d, word [rsp + 0x100]
movzx r11d, word [rsp + 0xfc]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rdx + 0x3ed0]
cdqe
imul rax, rax, 0x58
mov qword [rcx + rax], rdi
vmovdqu ymm0, ymmword [rsp + 0x210]
vmovups ymm1, ymmword [rsp + 0x22c]
vmovdqu ymmword [rcx + rax + 8], ymm0
vmovups ymmword [rcx + rax + 0x24], ymm1
mov word [rcx + rax + 0x44], bp
mov word [rcx + rax + 0x46], r12w
mov r12, rdx
mov word [rcx + rax + 0x48], r13w
mov word [rcx + rax + 0x4a], r14w
mov word [rcx + rax + 0x4c], r8w
mov word [rcx + rax + 0x4e], r11w
mov word [rcx + rax + 0x50], r15w
movzx edx, word [rsp + 0x80]
mov word [rcx + rax + 0x52], dx
movzx edx, word [rsp + 0x160]
mov word [rcx + rax + 0x54], dx
inc dword [r12 + 0x3ec8]
mov esi, dword [rsp + 0x58]
test esi, 0x10000000
je 0x140050058
inc dword [r12 + 0x48c0]
cmp r10d, r9d
mov rcx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
jne 0x140050079
mov r13d, esi
and r13d, 0x4000000
jmp 0x14005011b
mov qword [rdi + 0x368], rcx
vmovq xmm0, rdi
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rdi + 0x378], ymm0
mov eax, esi
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x1400500b3
test rcx, rcx
je 0x1400500b3
mov rax, qword [rcx + 0x378]
mov qword [rdi + 0x378], rax
mov r13d, esi
and r13d, 0x4000000
je 0x1400500d2
test rcx, rcx
je 0x1400500d2
mov rax, qword [rcx + 0x380]
mov qword [rdi + 0x380], rax
test esi, 0x8000000
jne 0x1400500f6
mov eax, esi
and eax, 0x5000000
je 0x1400500f6
test rcx, rcx
je 0x1400500f6
mov rax, qword [rcx + 0x388]
mov qword [rdi + 0x388], rax
test byte [rdi + 0x16], 0x80
je 0x140050114
mov rax, rdi
nop
mov rax, qword [rax + 0x368]
mov qword [rdi + 0x390], rax
test byte [rax + 0x16], 0x80
jne 0x140050100
mov qword [rdi + 0x370], rbx
mov ecx, dword [rdi + 0x10]
vzeroupper
call fcn.140057f90
mov eax, dword [r12 + 0x4774]
mov dword [rdi + 0x3d8], eax
mov qword [r12 + 0x3ef8], 0
test r13d, r13d
je 0x140050270
movsxd rax, dword [r12 + 0x48b0]
mov rcx, qword [r12 + 0x48a8]
imul rax, rax, 0x38
lea rsi, [rcx + rax]
mov qword [rcx + rax + 8], rdi
mov edx, dword [rbx + 0x158]
mov dword [rcx + rax + 0x18], edx
mov eax, dword [r12 + 0x48b0]
cmp eax, dword [r12 + 0x48b4]
jne 0x14005023a
lea ebx, [rax + 1]
test eax, eax
je 0x14005019a
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14005019f
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x14005023a
movsxd rax, ebx
imul rcx, rax, 0x38
mov rax, qword [0x140221790]
test rax, rax
je 0x1400501c5
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [r12 + 0x48b8]
test rdx, rdx
je 0x140050222
movsxd rax, dword [r12 + 0x48b0]
imul r8, rax, 0x38
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r12 + 0x48b8]
test rcx, rcx
je 0x140050215
mov rax, qword [0x140221790]
test rax, rax
je 0x140050215
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [r12 + 0x48b8], r15
mov dword [r12 + 0x48b4], ebx
mov eax, dword [r12 + 0x48b0]
mov rcx, qword [r12 + 0x48b8]
cdqe
imul rax, rax, 0x38
vmovdqu ymm0, ymmword [rsi]
vmovups ymm1, ymmword [rsi + 0x18]
vmovups ymmword [rcx + rax + 0x18], ymm1
vmovdqu ymmword [rcx + rax], ymm0
inc dword [r12 + 0x48b0]
mov eax, dword [rsi]
mov dword [rdi + 0xcc], eax
mov esi, dword [rsp + 0x58]
test byte [r12 + 0x47d0], 1
jne 0x140050285
mov dword [rsp + 0x48], 0
jmp 0x140050304
mov eax, dword [rdi + 0xdc]
movsx ecx, al
mov r8d, dword [r12 + 0x47d4]
test ecx, r8d
setne cl
je 0x1400502ed
vmovsd xmm0, qword [r12 + 0x47e8]
vmulps xmm0, xmm0, xmm0
vmovshdup xmm1, xmm0
vaddss xmm0, xmm1, xmm0
vucomiss xmm0, dword [0x140125f74]
jbe 0x1400502ed
mov rcx, qword [r12 + 0x47e0]
mov qword [rdi + 0xe0], rcx
mov rcx, qword [r12 + 0x47e8]
mov qword [rdi + 0xe8], rcx
and eax, 0xfffffff1
mov dword [rdi + 0xdc], eax
mov al, 1
mov dword [rsp + 0x48], eax
jmp 0x140050304
mov dword [rsp + 0x48], ecx
lea rdx, [r12 + 0x47e0]
mov rcx, rdi
vzeroupper
call fcn.140048d50
test byte [r12 + 0x47d0], 2
mov r10, qword [rsp + 0x108]
jne 0x140050320
xor ebx, ebx
xor ebp, ebp
jmp 0x14005043f
mov eax, dword [rdi + 0xdc]
mov ecx, eax
shr ecx, 8
movsx edx, cl
mov ecx, dword [r12 + 0x47d8]
test edx, ecx
je 0x140050430
vpxor xmm0, xmm0, xmm0
vucomiss xmm0, dword [r12 + 0x47f0]
setb bpl
vucomiss xmm0, dword [r12 + 0x47f4]
setb bl
and eax, 0xfffff1ff
mov dword [rdi + 0xdc], eax
vxorps xmm3, xmm3, xmm3
vucomiss xmm3, dword [r12 + 0x47f0]
vmovss xmm1, dword [rdi + 0x30]
vmovss xmm0, dword [rdi + 0x34]
setae al
add al, al
mov byte [rdi + 0xd0], al
vucomiss xmm3, dword [r12 + 0x47f4]
setae al
add al, al
mov byte [rdi + 0xd1], al
vmovss xmm2, dword [r12 + 0x47f0]
vucomiss xmm3, xmm2
jae 0x1400503bd
vroundss xmm2, xmm2, xmm2, 0xb
vmovss dword [rdi + 0x30], xmm2
jmp 0x1400503c8
mov byte [rdi + 0xd3], 0
vmovaps xmm2, xmm1
vmovss xmm3, dword [r12 + 0x47f4]
vxorps xmm4, xmm4, xmm4
vucomiss xmm4, xmm3
jae 0x1400503ef
vroundss xmm3, xmm3, xmm3, 0xb
vmovss dword [rdi + 0x34], xmm3
vucomiss xmm1, xmm2
je 0x140050400
jmp 0x140050406
mov byte [rdi + 0xd3], 0
vmovaps xmm3, xmm0
vucomiss xmm1, xmm2
jne 0x140050406
vucomiss xmm0, xmm3
je 0x14005043f
test byte [rdi + 0x15], 1
jne 0x14005043f
mov rax, qword [0x140221790]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x14005043f
vmovd xmm0, dword [rax + 0x1c]
vmovd dword [rax + 0x5c0c], xmm0
jmp 0x14005043f
xor ebx, ebx
mov ebp, 0
test ecx, ecx
je 0x14005035d
test byte [r12 + 0x47d0], 0x80
je 0x140050492
vmovss xmm1, dword [r12 + 0x4800]
vpxor xmm0, xmm0, xmm0
vucomiss xmm0, xmm1
ja 0x140050470
vmovss dword [rdi + 0x94], xmm1
mov dword [rdi + 0x9c], 0
vmovss xmm1, dword [r12 + 0x4804]
vucomiss xmm0, xmm1
ja 0x140050492
vmovss dword [rdi + 0x98], xmm1
mov dword [rdi + 0xa0], 0
test byte [r12 + 0x47d0], 4
jne 0x1400504ae
cmp dword [rsp + 0x78], r10d
je 0x1400504ba
mov qword [rdi + 0x48], 0
jmp 0x1400504ba
mov rax, qword [r12 + 0x47f8]
mov qword [rdi + 0x48], rax
mov eax, dword [r12 + 0x47d0]
test al, 8
je 0x14005050c
mov r8d, dword [r12 + 0x47dc]
movzx ecx, byte [r12 + 0x4808]
mov edx, dword [rdi + 0xdc]
test r8d, r8d
je 0x1400504f2
mov r9d, edx
shr r9d, 0x10
movsx r9d, r9b
test r9d, r8d
je 0x14005050c
and edx, 0xfff1ffff
mov dword [rdi + 0xdc], edx
mov byte [rdi + 0xb9], cl
mov eax, dword [r12 + 0x47d0]
test al, 0x20
je 0x140050525
mov rcx, rdi
xor edx, edx
vzeroupper
call fcn.140048740
mov r10, qword [rsp + 0x108]
mov rax, qword [rsp + 0x110]
cmp byte [rax], 0
je 0x14005053c
and dword [rdi + 0xdc], 0xfff7f7f7
cmp dword [rsp + 0x78], r10d
jne 0x140050575
mov r14, qword [0x140221790]
mov qword [r14 + 0x3ef8], rdi
movsxd rax, dword [rdi + 0x1b0]
cmp rax, 0xffffffffffffffff
je 0x140050851
imul rax, rax, 0x238
add rax, qword [r14 + 0x4b80]
jmp 0x140050853
movzx eax, byte [rdi + 0xd9]
mov byte [rsp + 0x80], al
mov byte [rdi + 0xb6], 1
cmp qword [rsp + 0x168], 0
setne byte [rdi + 0xc0]
vmovaps xmm0, xmmword [0x140125f80]
vmovups xmmword [rdi + 0x238], xmm0
mov eax, dword [rdi + 0xf4]
test eax, eax
jg 0x14005065f
mov ecx, eax
neg ecx
shr ecx, 1
mov edx, eax
sub edx, ecx
cmp edx, 2
mov ecx, 1
cmovge ecx, edx
test eax, eax
mov esi, 8
cmovne esi, ecx
lea rcx, [rsi*4]
mov rax, qword [0x140221790]
test rax, rax
je 0x1400505f1
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
vzeroupper
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rdi + 0xf8]
test rdx, rdx
je 0x14005064e
movsxd r8, dword [rdi + 0xf0]
shl r8, 2
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0xf8]
test rcx, rcx
je 0x140050641
mov rax, qword [0x140221790]
test rax, rax
je 0x140050641
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rdi + 0xf8], r15
mov dword [rdi + 0xf4], esi
mov esi, dword [rsp + 0x58]
mov dword [rdi + 0xf0], 1
mov rcx, qword [rdi + 0x298]
vzeroupper
call fcn.140060dc0
mov dword [rdi + 0x1b0], 0xffffffff
cmp byte [rdi + 0x3e4], 0
je 0x140050693
mov rcx, rdi
call fcn.140047c30
cmp qword [r12 + 0x4a70], 0
je 0x14005075a
movzx eax, byte [rdi + 0x16]
and al, 8
shr al, 3
or al, byte [rsp + 0x74]
jne 0x14005075a
mov r15, qword [rdi + 8]
mov rcx, qword [rsp + 0x130]
mov rdx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x14005075a
movsxd rsi, dword [rdi + 0x78]
mov rcx, qword [rsp + 0x130]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov r12, rax
inc r12
cmp r12, rsi
jbe 0x14005073c
test r15, r15
je 0x140050704
mov rax, qword [0x140221790]
test rax, rax
je 0x140050704
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
mov rcx, r15
call qword [0x1402034e0]
mov rax, qword [0x140221790]
test rax, rax
je 0x140050726
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
mov rcx, r12
call qword [0x1402034d8]
mov r15, rax
mov rsi, r12
mov rcx, r15
mov rdx, qword [rsp + 0x130]
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
mov qword [rdi + 8], r15
mov dword [rdi + 0x78], esi
mov esi, dword [rsp + 0x58]
lea r12, [rdi + 0x40]
lea rdx, [rdi + 0x38]
mov rcx, rdi
mov qword [rsp + 0x160], rdx
mov r8, r12
call fcn.140057ae0
movzx eax, byte [rdi + 0xd8]
test al, al
jle 0x140050788
dec al
mov byte [rdi + 0xd8], al
movzx eax, byte [rdi + 0xd9]
test al, al
jle 0x14005079b
dec al
mov byte [rdi + 0xd9], al
movzx eax, byte [rdi + 0xda]
test al, al
jle 0x1400507ae
dec al
mov byte [rdi + 0xda], al
cmp byte [rsp + 0x74], 0
je 0x1400507c2
mov eax, ebp
and al, bl
jne 0x1400507c2
mov byte [rdi + 0xd9], 1
test esi, 0x6000000
setne al
and al, byte [rsp + 0x84]
cmp al, 1
jne 0x140050818
mov byte [rdi + 0xd9], 1
test sil, 0x40
je 0x140050818
test bpl, bpl
jne 0x1400507f6
mov dword [rdi + 0x30], 0
mov dword [rdi + 0x28], 0
test bl, bl
jne 0x140050808
mov dword [rdi + 0x34], 0
mov dword [rdi + 0x2c], 0
vxorps xmm0, xmm0, xmm0
mov rax, qword [rsp + 0x160]
vmovups xmmword [rax], xmm0
mov r14, qword [0x140221790]
mov rax, qword [r14 + 0x48d0]
mov r15, qword [rax]
mov qword [rdi + 0x18], r15
mov qword [r14 + 0x3ef8], rdi
movsxd rax, dword [rdi + 0x1b0]
cmp rax, 0xffffffffffffffff
je 0x1400508a4
imul rax, rax, 0x238
add rax, qword [r14 + 0x4b80]
jmp 0x1400508a6
xor eax, eax
mov rbp, qword [rsp + 0x88]
mov qword [r14 + 0x4b58], rax
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rcx + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140050889
vmulss xmm0, xmm0, dword [rcx + 0x290]
vmovss dword [r14 + 0x3c38], xmm0
vmovss dword [r14 + 0x3c20], xmm0
test rax, rax
je 0x1400508ef
xor eax, eax
jmp 0x1400508fa
xor eax, eax
mov qword [r14 + 0x4b58], rax
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rcx + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x1400508d4
vmulss xmm0, xmm0, dword [rcx + 0x290]
vmovss dword [r14 + 0x3c38], xmm0
vmovss dword [r14 + 0x3c20], xmm0
test rax, rax
je 0x140050905
xor eax, eax
jmp 0x140050910
cmp qword [rdi + 0x1a8], 0
sete al
mov byte [rdi + 0x160], al
jmp 0x1400535a8
cmp qword [rdi + 0x1a8], 0
sete al
mov byte [rdi + 0x160], al
test esi, 0x1000000
jne 0x14005095c
test esi, 0x8000000
mov eax, 0x3808
mov ecx, 0x37e4
cmovne rax, rcx
test esi, 0x6000000
cmove rax, rcx
mov rcx, qword [rsp + 0x40]
vmovss xmm0, dword [rcx + rax]
vmovss dword [rdi + 0x5c], xmm0
mov rax, qword [rcx + 0x37d8]
mov qword [rdi + 0x50], rax
vmovd xmm0, eax
jmp 0x1400509b4
mov rax, qword [rsp + 0x40]
vmovss xmm2, dword [rax + 0x3800]
vmovss dword [rdi + 0x5c], xmm2
mov rax, qword [rax + 0x37d8]
mov qword [rdi + 0x50], rax
vmovd xmm0, eax
test esi, 0x4010000
jne 0x1400509b4
vxorps xmm1, xmm1, xmm1
vucomiss xmm2, xmm1
jne 0x1400509b4
test esi, 0x400
je 0x1400509a4
mov rax, qword [rsp + 0x40]
vmovss xmm1, dword [rax + 0x37dc]
mov dword [rdi + 0x50], 0
vmovss dword [rdi + 0x54], xmm1
vpxor xmm0, xmm0, xmm0
mov rax, qword [rsp + 0x40]
vmaxss xmm0, xmm0, dword [rax + 0x381c]
vmaxss xmm0, xmm0, dword [rax + 0x4834]
vmovss dword [rdi + 0x164], xmm0
vmovss xmm0, dword [rax + 0x4838]
vmovss dword [rdi + 0x168], xmm0
test sil, 0x21
je 0x1400509fe
mov byte [rdi + 0xb9], 0
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x110], eax
jmp 0x140050b36
vmovss xmm0, dword [rdi + 0x24]
mov esi, dword [rdi + 0x14]
vxorps xmm2, xmm2, xmm2
test sil, 1
jne 0x140050a48
mov rax, qword [rdi]
vmovss xmm1, dword [rdi + 0x290]
vmulss xmm1, xmm1, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140050a37
vmulss xmm1, xmm1, dword [rcx + 0x290]
vmovss xmm2, dword [rax + 0x3810]
vfmadd132ss xmm2, xmm1, dword [0x140121544]
vaddss xmm0, xmm2, xmm0
vmovss xmm1, dword [rdi + 0x30]
vaddss xmm1, xmm1, dword [rdi + 0x20]
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0xb0], rax
vmovss dword [rsp + 0xb8], xmm1
vmovss dword [rsp + 0xbc], xmm0
mov rax, qword [rsp + 0x40]
cmp qword [rax + 0x3f00], rdi
jne 0x140050ad0
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x3f44], 0
jne 0x140050ad0
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x3f48], 0
jne 0x140050ad0
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0xb0]
mov r8b, 1
call fcn.140048390
test al, al
je 0x140050ad0
mov rax, qword [rsp + 0x40]
cmp word [rax + 0x3752], 2
jne 0x140050ad0
mov byte [rdi + 0xba], 1
cmp byte [rdi + 0xba], 0
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x110], eax
je 0x140050b32
movzx eax, byte [rdi + 0xb9]
mov ecx, eax
xor cl, 1
mov byte [rdi + 0xb9], cl
test al, al
movzx eax, byte [rsp + 0x5c]
mov ecx, 1
cmove ecx, eax
mov dword [rsp + 0x110], ecx
test esi, 0x100
jne 0x140050b32
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [r14 + 0x5c0c]
jb 0x140050b32
vmovss xmm0, dword [r14 + 0x1c]
vmovss dword [r14 + 0x5c0c], xmm0
mov esi, dword [rsp + 0x58]
mov byte [rdi + 0xba], 0
vmovss xmm7, dword [rdi + 0xac]
vmovss xmm10, dword [rdi + 0xb0]
mov dword [rdi + 0x60], 0
mov dword [rdi + 0x68], 0
mov eax, dword [rdi + 0x14]
vxorps xmm1, xmm1, xmm1
vxorps xmm0, xmm0, xmm0
test al, 1
jne 0x140050ba2
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm2, xmm0, dword [rcx + 0x3c24]
mov rdx, qword [rdi + 0x368]
test rdx, rdx
je 0x140050b91
vmulss xmm2, xmm2, dword [rdx + 0x290]
vmovss xmm0, dword [rcx + 0x3810]
vfmadd132ss xmm0, xmm2, dword [0x140121544]
test eax, 0x400
je 0x140050bed
mov rax, qword [rdi]
vmovss xmm1, dword [rdi + 0x168]
vmovss xmm2, dword [rdi + 0x290]
vmulss xmm2, xmm2, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140050bd8
vmulss xmm2, xmm2, dword [rcx + 0x290]
vaddss xmm2, xmm2, xmm1
vmovss xmm1, dword [rax + 0x3810]
vfmadd132ss xmm1, xmm2, dword [0x140121544]
vaddss xmm0, xmm1, xmm0
vmovss dword [rdi + 0x64], xmm0
mov dword [rdi + 0x6c], 0
mov qword [rdi + 0xac], 0
lea rcx, [rsp + 0x138]
mov rdx, rdi
mov r8, r12
call fcn.140057bf0
test sil, 0x40
je 0x140050c2e
cmp byte [rdi + 0xb9], 0
je 0x140050ce7
cmp byte [rdi + 0xd0], 0
mov r12, qword [rsp + 0x40]
jle 0x140050c6d
test bpl, bpl
mov rbp, qword [rsp + 0x88]
jne 0x140050c82
cmp byte [rdi + 0xd3], 0
vmovss xmm0, dword [rsp + 0x138]
je 0x140050c60
vmaxss xmm0, xmm0, dword [rdi + 0x30]
vmovss dword [rdi + 0x30], xmm0
mov al, 1
mov dword [rsp + 0x5c], eax
jmp 0x140050c82
cmp byte [rdi + 0xd1], 0
mov rbp, qword [rsp + 0x88]
jle 0x140050d28
test bl, bl
jne 0x140050cb4
cmp byte [rdi + 0xd1], 0
jle 0x140050cb4
cmp byte [rdi + 0xd3], 0
vmovss xmm0, dword [rsp + 0x13c]
je 0x140050ca6
vmaxss xmm0, xmm0, dword [rdi + 0x34]
vmovss dword [rdi + 0x34], xmm0
mov al, 1
mov dword [rsp + 0x110], eax
cmp byte [rdi + 0xb9], 0
jne 0x140050d28
test byte [rdi + 0x15], 1
jne 0x140050d28
mov rax, qword [0x140221790]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x140050d28
vmovss xmm0, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm0
jmp 0x140050d28
test bpl, bpl
mov r12, qword [rsp + 0x40]
jne 0x140050d05
vmovss xmm0, dword [rsp + 0x138]
vmovss dword [rdi + 0x30], xmm0
mov al, 1
mov dword [rsp + 0x5c], eax
test bl, bl
mov rbp, qword [rsp + 0x88]
jne 0x140050d28
vmovss xmm0, dword [rsp + 0x13c]
vmovss dword [rdi + 0x34], xmm0
mov al, 1
mov dword [rsp + 0x110], eax
mov ebx, esi
and ebx, 0x1000000
lea r8, [rdi + 0x30]
lea rcx, [rsp + 0xb0]
mov rdx, rdi
call fcn.140057d90
mov rax, qword [rsp + 0xb0]
mov qword [rdi + 0x30], rax
cmp byte [rdi + 0xb9], 0
je 0x140050da6
test ebx, ebx
jne 0x140050da6
vxorps xmm0, xmm0, xmm0
test byte [rdi + 0x14], 1
mov r8d, dword [rsp + 0x48]
jne 0x140050db6
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm1, xmm0, dword [rcx + 0x3c24]
mov rdx, qword [rdi + 0x368]
test rdx, rdx
je 0x140050d93
vmulss xmm1, xmm1, dword [rdx + 0x290]
vmovss xmm0, dword [rcx + 0x3810]
vfmadd132ss xmm0, xmm1, dword [0x140121544]
jmp 0x140050db6
mov rcx, rax
shr rcx, 0x20
vmovd xmm0, ecx
mov r8d, dword [rsp + 0x48]
mov dword [rdi + 0x28], eax
vmovd dword [rdi + 0x2c], xmm0
cmp byte [rsp + 0x84], 0
je 0x140050e03
mov dword [rdi + 0xd4], 0xffffffff
mov eax, esi
and eax, 0xc000000
cmp eax, 0x4000000
setne al
or al, r8b
jne 0x140050e03
mov rax, qword [r12 + 0x48b8]
movsxd rcx, dword [r12 + 0x48b0]
imul rcx, rcx, 0x38
mov rax, qword [rcx + rax - 0x14]
mov qword [rdi + 0x20], rax
mov r14d, esi
and r14d, 0x3000000
test esi, 0x1000000
je 0x140050f25
movzx eax, word [rbp + 0x190]
mov word [rdi + 0xc6], ax
mov eax, dword [rbp + 0x190]
cmp eax, dword [rbp + 0x194]
jne 0x140050eef
lea esi, [rax + 1]
test eax, eax
je 0x140050e4d
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x140050e52
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x140050eef
movsxd rcx, esi
shl rcx, 3
mov rax, qword [0x140221790]
test rax, rax
je 0x140050e78
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034d8]
mov r12, rax
mov rdx, qword [rbp + 0x198]
test rdx, rdx
je 0x140050ed2
movsxd r8, dword [rbp + 0x190]
shl r8, 3
mov rcx, r12
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbp + 0x198]
test rcx, rcx
je 0x140050ec5
mov rax, qword [0x140221790]
test rax, rax
je 0x140050ec5
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rbp + 0x198], r12
mov dword [rbp + 0x194], esi
mov eax, dword [rbp + 0x190]
mov r12, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x48]
test r13d, r13d
setne cl
mov rdx, qword [rbp + 0x198]
cdqe
mov qword [rdx + rax*8], rdi
inc dword [rbp + 0x190]
or cl, r8b
mov esi, dword [rsp + 0x58]
jne 0x140050f25
cmp r14d, 0x3000000
je 0x140050f25
mov rax, qword [rbp + 0x100]
mov qword [rdi + 0x20], rax
vmovss xmm0, dword [rdi + 0xe0]
vmovss xmm1, dword [0x140125e10]
vucomiss xmm1, xmm0
movabs rax, 0x7f7fffff7f7fffff
je 0x140050f52
cmp byte [rdi + 0xd9], 0
je 0x140051210
test esi, 0x10000000
jne 0x140050f86
test r13d, r13d
sete al
or al, r8b
jne 0x140050f6f
cmp byte [rsp + 0x80], 0
jg 0x140050f86
test esi, 0x2000000
sete al
or al, r8b
jne 0x140050fa7
cmp r14d, 0x3000000
je 0x140050fa7
lea rcx, [rsp + 0xb0]
mov rdx, rdi
call fcn.140058070
mov r8d, dword [rsp + 0x48]
mov rax, qword [rsp + 0xb0]
mov qword [rdi + 0x20], rax
vmovsd xmm1, qword [r15 + 4]
vmovsd xmm0, qword [r15 + 0xc]
vaddps xmm2, xmm0, xmm1
vmovlhps xmm1, xmm1, xmm2
vmovups xmmword [rsp + 0x200], xmm1
vmovsd xmm1, qword [r15 + 0x14]
vmovsd xmm2, qword [r15 + 0x1c]
vaddps xmm2, xmm2, xmm1
vmovsd xmm3, qword [r12 + 0x388c]
vmovsd xmm4, qword [r12 + 0x3894]
vmaxps xmm3, xmm3, xmm4
vsubps xmm9, xmm2, xmm3
vaddps xmm8, xmm3, xmm1
test r8b, r8b
jne 0x1400510ad
test ebx, ebx
jne 0x1400510ad
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x1400510ad
vmovshdup xmm0, xmm0
vucomiss xmm0, xmm1
jbe 0x1400510ad
mov rax, qword [0x140221790]
vmovss xmm0, dword [rdi + 0x28]
vmovss xmm1, dword [rdi + 0x2c]
cmp byte [rax + 0x7f], 0
je 0x140051076
test byte [rdi + 0x14], 1
jne 0x140051076
mov rax, qword [rdi]
vmovss xmm1, dword [rdi + 0x290]
vmulss xmm2, xmm1, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140051065
vmulss xmm2, xmm2, dword [rcx + 0x290]
vmovss xmm1, dword [rax + 0x3810]
vfmadd132ss xmm1, xmm2, dword [0x140121544]
vinsertps xmm0, xmm0, xmm1, 0x10
vsubps xmm0, xmm8, xmm0
lea rax, [rdi + 0x20]
mov qword [rsp + 0x128], rax
vmovsd xmm1, qword [rdi + 0x20]
vcmpltps xmm2, xmm1, xmm0
vminps xmm1, xmm9, xmm1
vblendvps xmm0, xmm1, xmm0, xmm2
vroundps xmm0, xmm0, 0xb
vmovlps qword [rdi + 0x20], xmm0
jmp 0x1400510d1
lea rax, [rdi + 0x20]
mov qword [rsp + 0x128], rax
vmovsd xmm0, qword [rdi + 0x20]
vroundps xmm0, xmm0, 0xb
vmovlps qword [rdi + 0x20], xmm0
test esi, 0x1000000
jne 0x1400510f3
mov eax, esi
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1400510e9
lea rax, [r12 + 0x3804]
jmp 0x1400510fb
lea rax, [r12 + 0x37e0]
jmp 0x1400510fb
lea rax, [r12 + 0x37fc]
mov ecx, esi
shr ecx, 0xc
and ecx, 1
mov edx, dword [rsp + 0x84]
xor dl, 1
or dl, cl
mov ecx, edx
xor cl, 1
xor r8d, r8d
test r14d, r14d
sete r8b
test r13d, r13d
setne r15b
vmovss xmm0, dword [rax]
vmovss dword [rdi + 0x58], xmm0
movzx eax, cl
cmovne r8d, eax
test dl, dl
cmovne r8d, eax
mov dword [rsp + 0x80], r8d
vxorps xmm1, xmm1, xmm1
vmovaps xmmword [rsp + 0x1c0], xmm1
cmp byte [r12 + 0x7e], 1
mov eax, 2
sbb eax, 0
mov dword [rsp + 0xfc], eax
vaddss xmm13, xmm0, dword [0x140120e00]
vmovss xmm14, dword [r12 + 0x3c20]
cmp byte [rdi + 0xb9], 0
je 0x14005119b
lea rax, [rdi + 0xc1]
mov qword [rsp + 0x100], rax
mov byte [rdi + 0xc1], 0xff
jmp 0x140051439
mov r8d, dword [rdi + 0x14]
test r8b, 0x42
jne 0x1400511bb
cmp byte [rdi + 0xd0], 0
jg 0x1400511bb
cmp byte [rdi + 0xd1], 0
jle 0x140053897
lea rax, [rdi + 0xc1]
mov qword [rsp + 0x100], rax
mov byte [rdi + 0xc1], 0xff
mov ebx, dword [rsp + 0x110]
vxorps xmm1, xmm1, xmm1
cmp byte [rsp + 0x74], 0
jne 0x1400511fb
vmovsd xmm0, qword [rdi + 0x38]
vmovsd xmm2, qword [rdi + 0x50]
vbroadcastss xmm1, dword [0x140121544]
vfmadd213ps xmm1, xmm2, xmm0
cmp byte [rsp + 0x5c], 0
je 0x1400512d9
vmovss xmm3, dword [rdi + 0x30]
jmp 0x1400512e9
and byte [rdi + 0xdc], 0xf1
vinsertps xmm0, xmm0, dword [rdi + 0xe4], 0x10
mov qword [rdi + 0xe0], rax
vmovsd xmm1, qword [rdi + 0x20]
vmovsd xmm2, qword [rdi + 0x28]
vmovsd xmm3, qword [rdi + 0xe8]
vfnmadd213ps xmm3, xmm2, xmm0
vroundps xmm0, xmm3, 0xb
vmovlps qword [rdi + 0x20], xmm0
vsubps xmm0, xmm0, xmm1
vxorps xmm1, xmm1, xmm1
vcmpeqps xmm2, xmm0, xmm1
vmovshdup xmm3, xmm0
vcmpeqps xmm1, xmm3, xmm1
vandps xmm1, xmm2, xmm1
vmovd eax, xmm1
test al, 1
jne 0x140050fa7
test byte [rdi + 0x15], 1
jne 0x140051298
mov rax, qword [0x140221790]
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, dword [rax + 0x5c0c]
jb 0x140051298
vmovss xmm1, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm1
vmovsd xmm1, qword [rdi + 0x100]
vmovsd xmm2, qword [rdi + 0x120]
vaddps xmm1, xmm1, xmm0
vmovlps qword [rdi + 0x100], xmm1
vmovddup xmm1, xmm0
vaddps xmm0, xmm2, xmm0
vmovlps qword [rdi + 0x120], xmm0
vaddps xmm0, xmm1, xmmword [rdi + 0x110]
vmovups xmmword [rdi + 0x110], xmm0
jmp 0x140050fa7
vaddss xmm0, xmm7, dword [rdi + 0x200]
vsubss xmm3, xmm0, dword [rdi + 0x1f8]
vmovss xmm0, dword [rdi + 0x6c]
test bl, bl
je 0x14005131d
vmovss xmm2, dword [rdi + 0x34]
vaddss xmm4, xmm0, dword [rdi + 0x64]
vsubss xmm2, xmm2, xmm4
test esi, 0x4000
je 0x140051335
mov byte [rdi + 0xb5], 1
test si, si
js 0x14005136d
lea rcx, [rdi + 0xb5]
jmp 0x14005135f
vaddss xmm2, xmm10, dword [rdi + 0x204]
vsubss xmm2, xmm2, dword [rdi + 0x1fc]
test esi, 0x4000
jne 0x140051308
vmovshdup xmm4, xmm1
vucomiss xmm4, xmm2
seta cl
test sil, 8
sete al
and al, cl
lea rcx, [rdi + 0xb5]
mov byte [rdi + 0xb5], al
test si, si
js 0x140051378
test al, al
je 0x140051385
vmovss xmm4, dword [r12 + 0x3844]
mov al, 1
jmp 0x14005138b
mov byte [rdi + 0xb4], 1
mov al, 1
jmp 0x1400513e9
mov byte [rdi + 0xb4], 1
test al, al
je 0x1400513bf
jmp 0x1400513e9
vxorps xmm4, xmm4, xmm4
xor eax, eax
vsubss xmm3, xmm3, xmm4
vucomiss xmm1, xmm3
jbe 0x1400513fd
mov edx, esi
and edx, 8
jne 0x1400513fd
mov r8d, esi
and r8d, 0x800
mov edx, r8d
shr edx, 0xb
mov byte [rdi + 0xb4], dl
vxorps xmm3, xmm3, xmm3
test r8d, r8d
je 0x140051408
test al, al
jne 0x1400513e1
lea rdx, [rdi + 0xb4]
vmovshdup xmm1, xmm1
vucomiss xmm1, xmm2
seta r8b
test sil, 8
sete al
and al, r8b
mov byte [rcx], al
movzx edx, byte [rdx]
test dl, dl
je 0x140053839
vmovss xmm3, dword [r12 + 0x3844]
test al, al
jne 0x14005140c
vxorps xmm1, xmm1, xmm1
jmp 0x140051416
mov byte [rdi + 0xb4], 0
vxorps xmm3, xmm3, xmm3
test al, al
je 0x1400513f7
vmovss xmm1, dword [r12 + 0x3844]
vmovss dword [rdi + 0xac], xmm1
vmovss dword [rdi + 0xb0], xmm3
vaddss xmm1, xmm1, dword [rdi + 0x68]
vmovss dword [rdi + 0x68], xmm1
vaddss xmm0, xmm0, xmm3
vmovss dword [rdi + 0x6c], xmm0
cmp r14d, 0x3000000
sete al
test esi, 0x1000000
sete bl
or bl, r15b
lea rcx, [rbp + 0x238]
or bl, al
lea rax, [rsp + 0x200]
cmove rax, rcx
vmovups xmm0, xmmword [rax]
vmovaps xmmword [rsp + 0x150], xmm0
vmovss xmm4, dword [rdi + 0x20]
vmovss xmm1, dword [rdi + 0x24]
vmovsd xmm0, qword [rdi + 0x28]
vmovsd xmm3, qword [rdi + 0x20]
vaddps xmm2, xmm0, xmm3
vxorps xmm5, xmm5, xmm5
test byte [rdi + 0x14], 1
mov r14d, dword [rsp + 0x80]
jne 0x1400514d3
mov rax, qword [rdi]
vmovss xmm5, dword [rdi + 0x290]
vmulss xmm6, xmm5, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x1400514c2
vmulss xmm6, xmm6, dword [rcx + 0x290]
vmovss xmm5, dword [rax + 0x3810]
vfmadd132ss xmm5, xmm6, dword [0x140121544]
mov ecx, esi
and ecx, 0x401
lea rax, [r12 + 0x3818]
lea rdx, [rdi + 0x5c]
cmp ecx, 1
cmove rax, rdx
vaddss xmm5, xmm5, xmm1
vaddss xmm4, xmm4, dword [rdi + 0x30]
mov rcx, qword [rdi + 0x20]
mov qword [rsp + 0x90], rcx
vmovss dword [rsp + 0x98], xmm4
vmovss dword [rsp + 0x9c], xmm5
vmovddup xmm4, qword [rsp + 0x150]
vmaxps xmm3, xmm3, xmm4
vmovlps qword [rdi + 0x1e8], xmm3
lea r12, [rsp + 0x158]
vmovsd xmm3, qword [rsp + 0x158]
vminps xmm3, xmm2, xmm3
vmovlps qword [rdi + 0x1f0], xmm3
vmovd xmm3, ecx
vaddss xmm5, xmm0, xmm3
vmovsd xmm6, qword [rdi + 0x60]
vinsertps xmm1, xmm3, xmm1, 0x10
vaddps xmm1, xmm6, xmm1
vmovsd xmm3, qword [rdi + 0x68]
vblendps xmm2, xmm2, xmm5, 1
vsubps xmm2, xmm2, xmm3
vmovlhps xmm3, xmm1, xmm2
vmovups xmmword [rdi + 0x1f8], xmm3
vmovss xmm5, dword [rdi + 0x50]
vmulss xmm5, xmm5, dword [0x140120e58]
vmovss xmm6, dword [rdi + 0x5c]
vroundss xmm5, xmm5, xmm5, 0xb
vmaxss xmm5, xmm5, xmm6
vbroadcastss xmm15, dword [0x140120e58]
vaddps xmm3, xmm15, xmm3
vinsertps xmm7, xmm5, dword [rax], 0x10
vinsertps xmm5, xmm5, xmm6, 0x36
vpermilps xmm5, xmm5, 0xc4
vaddps xmm6, xmm3, xmm7
vsubps xmm3, xmm3, xmm5
vblendps xmm3, xmm3, xmm6, 3
vroundps xmm3, xmm3, 0xb
vmovddup xmm5, qword [rsp + 0x158]
vcmpltps xmm6, xmm3, xmm4
vminps xmm3, xmm5, xmm3
vblendvps xmm3, xmm3, xmm4, xmm6
vmovups xmmword [rdi + 0x208], xmm3
test sil, 0x40
jne 0x140051610
vxorps xmm3, xmm3, xmm3
vucomiss xmm0, xmm3
jbe 0x140051610
mov eax, esi
and eax, 0x2000000
jne 0x140051610
vmulss xmm0, xmm0, dword [0x140125fe8]
mov rsi, qword [rsp + 0x40]
jmp 0x140051625
mov rsi, qword [rsp + 0x40]
vmovss xmm0, dword [rsi + 0x3c20]
vmulss xmm0, xmm0, dword [0x140125fec]
vroundss xmm0, xmm0, xmm0, 0xb
vmovss dword [rdi + 0x268], xmm0
vmovsd xmm0, qword [rdi + 0x38]
vmovsd xmm3, qword [rdi + 0x50]
vbroadcastss xmm4, dword [0x140121544]
vfmadd213ps xmm4, xmm3, xmm0
vsubps xmm0, xmm4, xmm2
vaddps xmm0, xmm0, xmm1
vxorps xmm6, xmm6, xmm6
vmaxps xmm0, xmm0, xmm6
vmovlps qword [rdi + 0x8c], xmm0
lea r13, [rsp + 0xb0]
mov rcx, r13
mov rdx, rdi
call fcn.1400582f0
mov rax, qword [rsp + 0xb0]
mov qword [rdi + 0x84], rax
movabs rax, 0x7f7fffff7f7fffff
mov qword [rdi + 0x94], rax
vmovlps qword [rdi + 0x70], xmm6
mov rcx, qword [rdi + 0x298]
mov rax, qword [rsi + 0x3c18]
mov rax, qword [rax + 0x40]
mov rdx, qword [rax + 8]
call fcn.140061a20
mov rax, qword [0x140221790]
mov rcx, qword [rax + 0x3ef8]
mov byte [rcx + 0xb8], 1
mov rsi, qword [rax + 0x3ef8]
mov rcx, qword [rsi + 0x298]
mov dword [rsp + 0x48], 0
lea rdx, [rsp + 0x150]
mov r8, r12
xor r9d, r9d
call fcn.1400618c0
mov rax, qword [rsi + 0x298]
mov rcx, qword [rax + 0x60]
movsxd rax, dword [rax + 0x58]
shl rax, 4
vmovups xmm0, xmmword [rax + rcx - 0x10]
vmovups xmmword [rsi + 0x238], xmm0
test bl, bl
mov esi, dword [rsp + 0x58]
jne 0x1400517cf
mov eax, dword [rbp + 0x190]
cmp eax, 2
jl 0x140051784
add eax, 0xfffffffe
mov rcx, qword [rbp + 0x198]
mov rcx, qword [rcx + rax*8]
test rcx, rcx
je 0x140051784
vmovss xmm0, dword [rcx + 0x24]
vaddss xmm2, xmm0, dword [rcx + 0x2c]
vmovss xmm1, dword [rdi + 0x24]
xor eax, eax
vucomiss xmm2, xmm1
jbe 0x140051786
vaddss xmm1, xmm1, dword [rdi + 0x2c]
vucomiss xmm1, xmm0
jbe 0x140051786
vmovss xmm0, dword [rcx + 0x20]
vaddss xmm2, xmm0, dword [rcx + 0x28]
vmovss xmm1, dword [rdi + 0x20]
vucomiss xmm1, xmm2
jae 0x140051786
vaddss xmm1, xmm1, dword [rdi + 0x28]
vucomiss xmm1, xmm0
seta al
jmp 0x140051786
xor eax, eax
mov rcx, qword [rdi + 0x298]
mov rdx, qword [rcx + 8]
movsxd rcx, dword [rcx]
imul rcx, rcx, 0x38
cmp dword [rcx + rdx - 0x18], 0
jne 0x1400517c7
mov dword [rsp + 0x48], 0
mov rcx, qword [rbp + 0x298]
cmp dword [rcx + 0x20], 0
je 0x1400517cf
test al, al
jne 0x1400517cf
mov qword [rdi + 0x298], rcx
mov al, 1
mov dword [rsp + 0x48], eax
jmp 0x1400517cf
mov dword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx + 0x4a60]
test rax, rax
jne 0x1400517e7
mov rax, qword [rcx + 0x48d8]
mov bpl, 1
test r14b, 1
jne 0x14005180b
test rax, rax
je 0x140051809
mov rcx, qword [rdi + 0x388]
cmp rcx, qword [rax + 0x388]
sete bpl
jmp 0x14005180b
xor ebp, ebp
mov r12, qword [0x140221790]
mov ebx, dword [rdi + 0x14]
mov byte [rdi + 0xbb], 0
vmovss xmm6, dword [rdi + 0x58]
vmovss xmm12, dword [rdi + 0x5c]
cmp byte [rdi + 0xb9], 0
je 0x14005195a
vmovss xmm7, dword [r12 + 0x3818]
vmovss dword [r12 + 0x3818], xmm12
mov eax, 0xc
test bpl, bpl
je 0x14005185e
cmp byte [r12 + 0x4916], 1
sbb rax, 0
shl rax, 4
vmovss xmm0, dword [r12 + 0x37d0]
vmulss xmm0, xmm0, dword [r12 + rax + 0x38c4]
vmovss xmm1, dword [0x140120e00]
vminss xmm2, xmm1, dword [r12 + rax + 0x38b8]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm4, dword [0x140120e58]
vmovss xmm5, dword [0x140122d94]
vfmadd213ss xmm2, xmm5, xmm4
vcvttss2si ecx, xmm2
vminss xmm1, xmm1, dword [r12 + rax + 0x38bc]
vmaxss xmm1, xmm1, xmm3
vfmadd213ss xmm1, xmm5, xmm4
vcvttss2si edx, xmm1
shl edx, 8
vmovss xmm1, dword [r12 + rax + 0x38c0]
vinsertps xmm0, xmm1, xmm0, 0x10
vbroadcastss xmm1, dword [0x140120e00]
vminps xmm0, xmm0, xmm1
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x140122d94]
vfmadd213ps xmm1, xmm0, xmm15
vcvttps2dq xmm0, xmm1
vpsllvd xmm0, xmm0, xmmword [0x140125e80]
or edx, ecx
vmovd eax, xmm0
vpextrd r8d, xmm0, 1
or eax, edx
or r8d, eax
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
vmovss dword [rsp + 0x20], xmm6
mov r9b, 1
call fcn.140043260
vmovss dword [r12 + 0x3818], xmm7
mov r12, qword [rsp + 0x40]
mov r13, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x88]
mov ebx, dword [rsp + 0x48]
jmp 0x1400528a4
test bl, bl
js 0x140051afc
xor ecx, ecx
test ebx, 0x1000000
sete cl
xor rcx, 3
test ebx, 0x6000000
mov eax, 4
cmove rax, rcx
shl rax, 4
vmovss xmm2, dword [0x140120e00]
vminss xmm1, xmm2, dword [r12 + rax + 0x38b8]
vxorps xmm0, xmm0, xmm0
vmaxss xmm4, xmm1, xmm0
vmovss xmm3, dword [0x140120e58]
vmovss xmm1, dword [0x140122d94]
vfmadd213ss xmm4, xmm1, xmm3
vcvttss2si edx, xmm4
vmovsd xmm4, qword [r12 + rax + 0x38bc]
vbroadcastss xmm5, dword [0x140120e00]
vminps xmm4, xmm4, xmm5
vxorps xmm5, xmm5, xmm5
vmaxps xmm4, xmm4, xmm5
vbroadcastss xmm5, dword [0x140122d94]
vfmadd213ps xmm5, xmm4, xmm15
vcvttps2dq xmm4, xmm5
vpsllvd xmm4, xmm4, xmmword [0x140125ff0]
vmovd r8d, xmm4
vpextrd ecx, xmm4, 1
or r8d, edx
or ecx, r8d
test byte [r12 + 0x47d0], 0x40
jne 0x140051a30
vmovss xmm4, dword [r12 + 0x37d0]
vmulss xmm4, xmm4, dword [r12 + rax + 0x38c4]
vminss xmm2, xmm4, xmm2
vmaxss xmm2, xmm2, xmm0
vfmadd213ss xmm1, xmm2, xmm3
jmp 0x140051a55
vmovss xmm2, dword [r12 + 0x4830]
vminss xmm2, xmm2, dword [0x140120e00]
and ecx, 0xffffff
vmaxss xmm2, xmm2, xmm0
vfmadd213ss xmm1, xmm2, dword [0x140120e58]
vcvttss2si r9d, xmm1
shl r9d, 0x18
or r9d, ecx
mov rcx, qword [rdi + 0x298]
xor edx, edx
mov eax, 0xc0
vmovss xmm1, dword [rdi + 0x20]
vmovss xmm2, dword [rdi + 0x24]
vmovsd xmm3, qword [rdi + 0x28]
vmovsd xmm4, qword [rdi + 0x20]
vaddps xmm3, xmm3, xmm4
vmovlps qword [rsp + 0xb0], xmm3
test bl, 1
cmovne eax, edx
jne 0x140051ad0
mov rdx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm3, xmm0, dword [rdx + 0x3c24]
mov r8, qword [rdi + 0x368]
test r8, r8
je 0x140051abf
vmulss xmm3, xmm3, dword [r8 + 0x290]
vmovss xmm0, dword [rdx + 0x3810]
vfmadd132ss xmm0, xmm3, dword [0x140121544]
vaddss xmm0, xmm0, xmm2
vmovss dword [rsp + 0x60], xmm1
vmovss dword [rsp + 0x64], xmm0
mov dword [rsp + 0x28], eax
vmovss dword [rsp + 0x20], xmm6
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0xb0]
call fcn.140064140
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [r12 + 0x38ac]
jae 0x140051c74
mov eax, ebx
and eax, 0x5000000
cmp eax, 0x1000000
je 0x140051c74
vucomiss xmm0, dword [r12 + 0x3c14]
jae 0x140051c74
mov rax, qword [0x140221790]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x3c14]
vmovss xmm2, dword [0x140120e00]
vminss xmm3, xmm2, dword [rax + 0x3c08]
vmaxss xmm3, xmm3, xmm0
vmovss xmm4, dword [0x140120e58]
vmovss xmm5, dword [0x140122d94]
vfmadd213ss xmm3, xmm5, xmm4
vcvttss2si ecx, xmm3
vminss xmm2, xmm2, dword [rax + 0x3c0c]
vmaxss xmm0, xmm2, xmm0
vfmadd213ss xmm0, xmm5, xmm4
vcvttss2si edx, xmm0
shl edx, 8
or edx, ecx
vmovss xmm0, dword [rax + 0x3c10]
vinsertps xmm0, xmm0, xmm1, 0x10
vbroadcastss xmm1, dword [0x140120e00]
vminps xmm0, xmm0, xmm1
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x140122d94]
vfmadd213ps xmm1, xmm0, xmm15
vcvttps2dq xmm0, xmm1
vpsllvd xmm0, xmm0, xmmword [0x140125e80]
vmovd ecx, xmm0
or ecx, edx
vpextrd r15d, xmm0, 1
vmovss xmm9, dword [rax + 0x38ac]
or r15d, ecx
vmovss xmm10, dword [rax + 0x38b0]
vmovss xmm7, dword [rax + 0x38b4]
vmovaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm8, xmm0
vmovaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmulss xmm1, xmm8, xmm10
vmulss xmm0, xmm10, xmm0
vmovss dword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0xb4], xmm1
mov rcx, qword [rdi + 0x298]
vmovss xmm0, dword [rdi + 0x58]
vmovsd xmm1, qword [rdi + 0x20]
vmovsd xmm2, qword [rdi + 0x28]
vaddps xmm1, xmm2, xmm1
vmovlps qword [rsp + 0x60], xmm1
vmovss dword [rsp + 0x38], xmm0
mov qword [rsp + 0x28], r13
vmovss dword [rsp + 0x20], xmm9
mov dword [rsp + 0x30], 0x200
lea r8, [rsp + 0x60]
mov rdx, qword [rsp + 0x128]
mov r9d, r15d
call fcn.1400661b0
test bl, 1
jne 0x140051d65
mov rax, qword [0x140221790]
movzx ecx, bpl
shl rcx, 4
vmovss xmm0, dword [rax + 0x37d0]
vmulss xmm0, xmm0, dword [rcx + rax + 0x3964]
vmovss xmm1, dword [0x140120e00]
vminss xmm2, xmm1, dword [rcx + rax + 0x3958]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm4, dword [0x140120e58]
vmovss xmm5, dword [0x140122d94]
vfmadd213ss xmm2, xmm5, xmm4
vcvttss2si edx, xmm2
vminss xmm1, xmm1, dword [rcx + rax + 0x395c]
vmaxss xmm1, xmm1, xmm3
vfmadd213ss xmm1, xmm5, xmm4
vcvttss2si r9d, xmm1
lea r8, [rsp + 0x98]
shl r9d, 8
or r9d, edx
vmovss xmm1, dword [rcx + rax + 0x3960]
vinsertps xmm0, xmm1, xmm0, 0x10
vbroadcastss xmm1, dword [0x140120e00]
vminps xmm0, xmm0, xmm1
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x140122d94]
vfmadd213ps xmm1, xmm0, xmm15
vcvttps2dq xmm0, xmm1
vpsllvd xmm0, xmm0, xmmword [0x140125e80]
vmovd eax, xmm0
or eax, r9d
vpextrd r9d, xmm0, 1
or r9d, eax
mov rcx, qword [rdi + 0x298]
vmovss dword [rsp + 0x20], xmm6
mov dword [rsp + 0x28], 0x30
lea rdx, [rsp + 0x90]
call fcn.140064140
test ebx, 0x400
je 0x140052089
mov eax, dword [rdi + 0x14]
vxorps xmm1, xmm1, xmm1
vxorps xmm0, xmm0, xmm0
test al, 1
jne 0x140051db8
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm2, xmm0, dword [rcx + 0x3c24]
mov rdx, qword [rdi + 0x368]
test rdx, rdx
je 0x140051da7
vmulss xmm2, xmm2, dword [rdx + 0x290]
vmovss xmm0, dword [rcx + 0x3810]
vfmadd132ss xmm0, xmm2, dword [0x140121544]
vmovss xmm2, dword [rdi + 0x24]
test eax, 0x400
je 0x140051e08
mov rax, qword [rdi]
vmovss xmm1, dword [rdi + 0x168]
vmovss xmm3, dword [rdi + 0x290]
vmulss xmm3, xmm3, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140051df3
vmulss xmm3, xmm3, dword [rcx + 0x290]
vaddss xmm3, xmm3, xmm1
vmovss xmm1, dword [rax + 0x3810]
vfmadd132ss xmm1, xmm3, dword [0x140121544]
vmovss dword [rsp + 0xf8], xmm14
vmovaps xmm14, xmm13
vaddss xmm3, xmm0, xmm2
vmovss xmm7, dword [rdi + 0x20]
vmaxss xmm0, xmm3, xmm2
vmovss xmm4, dword [rdi + 0x30]
vinsertps xmm1, xmm4, xmm1, 0x10
vinsertps xmm3, xmm7, xmm3, 0x10
vaddps xmm1, xmm1, xmm3
vmovsd xmm3, qword [rdi + 0x28]
vinsertps xmm2, xmm7, xmm2, 0x10
vaddps xmm2, xmm3, xmm2
vminps xmm11, xmm1, xmm2
vmovshdup xmm8, xmm11
mov rcx, qword [rdi + 0x298]
vxorps xmm13, xmm13, xmm13
vxorps xmm1, xmm1, xmm1
test bl, 1
je 0x140051e69
vmovaps xmm1, xmm6
mov rax, qword [0x140221790]
vmovss xmm2, dword [rax + 0x37d0]
vmulss xmm2, xmm2, dword [rax + 0x3994]
vmovss xmm4, dword [0x140120e00]
vminss xmm3, xmm4, dword [rax + 0x3988]
vmaxss xmm3, xmm13, xmm3
vmovss xmm5, dword [0x140120e58]
vmovss xmm9, dword [0x140122d94]
vfmadd213ss xmm3, xmm9, xmm5
vcvttss2si edx, xmm3
vminss xmm3, xmm4, dword [rax + 0x398c]
vmaxss xmm3, xmm13, xmm3
vfmadd213ss xmm3, xmm9, xmm5
vcvttss2si r8d, xmm3
shl r8d, 8
vmovss xmm3, dword [rax + 0x3990]
vinsertps xmm2, xmm3, xmm2, 0x10
vbroadcastss xmm9, dword [0x140120e00]
vminps xmm2, xmm9, xmm2
vxorps xmm3, xmm3, xmm3
vmaxps xmm2, xmm2, xmm3
vbroadcastss xmm10, dword [0x140122d94]
vfmadd213ps xmm2, xmm10, xmm15
vcvttps2dq xmm2, xmm2
vpsllvd xmm2, xmm2, xmmword [0x140125e80]
or r8d, edx
vmovd eax, xmm2
vpextrd r9d, xmm2, 1
or eax, r8d
or r9d, eax
vsubss xmm2, xmm11, xmm12
vmovss dword [rsp + 0xb0], xmm2
vmovss dword [rsp + 0xb4], xmm8
vaddss xmm2, xmm12, xmm7
vmovss dword [rsp + 0x60], xmm2
vmovss dword [rsp + 0x64], xmm0
vmovss dword [rsp + 0x20], xmm1
mov dword [rsp + 0x28], 0x30
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0xb0]
call fcn.140064140
vmovss xmm0, dword [r12 + 0x3818]
vucomiss xmm13, xmm0
vmovaps xmm13, xmm14
vmovss xmm14, dword [rsp + 0xf8]
jae 0x140052089
vmovss xmm1, dword [rdi + 0x2c]
vaddss xmm1, xmm1, dword [rdi + 0x24]
vucomiss xmm8, xmm1
jae 0x140052089
mov rax, qword [0x140221790]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x3914]
vmovaps xmmword [rsp + 0x110], xmm1
vmovss xmm4, dword [0x140120e00]
vminss xmm2, xmm4, dword [rax + 0x3908]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm5, dword [0x140120e58]
vmovaps xmm1, xmm13
vmovaps xmm13, xmm14
vmovss xmm14, dword [0x140122d94]
vfmadd213ss xmm2, xmm14, xmm5
vcvttss2si edx, xmm2
vminss xmm2, xmm4, dword [rax + 0x390c]
vmaxss xmm2, xmm2, xmm3
vfmadd213ss xmm2, xmm14, xmm5
vmovaps xmm14, xmm13
vmovaps xmm13, xmm1
vcvttss2si r8d, xmm2
mov rcx, qword [rdi + 0x298]
shl r8d, 8
or r8d, edx
vmovss xmm2, dword [rax + 0x3910]
vinsertps xmm1, xmm2, dword [rsp + 0x110], 0x10
vminps xmm1, xmm9, xmm1
vxorps xmm2, xmm2, xmm2
vmaxps xmm1, xmm1, xmm2
vfmadd213ps xmm10, xmm1, xmm15
vcvttps2dq xmm1, xmm10
vpsllvd xmm1, xmm1, xmmword [0x140125e80]
vmovd eax, xmm1
or eax, r8d
vpextrd r9d, xmm1, 1
or r9d, eax
vmovlps qword [rsp + 0xb0], xmm11
vmovss dword [rsp + 0x60], xmm7
vmovss dword [rsp + 0x64], xmm8
vmovss dword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0xb0]
call fcn.140063ea0
cmp byte [rdi + 0xb4], 0
je 0x140052099
xor ecx, ecx
call fcn.14007f030
cmp byte [rdi + 0xb5], 0
mov r12, qword [rsp + 0x40]
je 0x1400520b1
mov ecx, 1
call fcn.14007f030
test bl, 2
jne 0x140052382
vfmadd231ss xmm13, xmm14, dword [0x140125f30]
vmulss xmm0, xmm14, dword [0x140125f90]
vmaxss xmm0, xmm13, xmm0
vroundss xmm0, xmm0, xmm0, 0xb
vaddss xmm1, xmm12, xmm6
mov eax, dword [rsp + 0xfc]
vinsertps xmm7, xmm12, xmm0, 0x10
vinsertps xmm8, xmm0, xmm12, 0x10
vbroadcastss xmm10, xmm1
lea r14, [0x140126d84]
xor ebp, ebp
mov qword [rsp + 0x110], rax
jmp 0x140052199
mov r12, qword [rsp + 0x40]
vfmadd213ps xmm13, xmm12, xmm11
mov rcx, qword [rsi + 0x80]
cdqe
vmovlps qword [rcx + rax*8], xmm13
inc dword [rsi + 0x78]
mov rcx, qword [rdi + 0x298]
mov r9d, dword [r14 - 4]
mov eax, dword [r14]
vfmadd213ps xmm12, xmm10, xmm11
vmovlps qword [rsp + 0xb0], xmm12
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0xb0]
vmovaps xmm2, xmm6
call fcn.140063400
mov r15, qword [rdi + 0x298]
mov r8d, dword [r15 + 0x78]
mov rdx, qword [r15 + 0x80]
mov rcx, r15
mov r9d, r13d
call fcn.1400628e0
mov dword [r15 + 0x78], 0
mov rax, qword [rsp + 0x110]
inc rbp
add r14, 0x18
cmp rax, rbp
je 0x140052382
mov r13d, dword [rsp + rbp*4 + 0x1c0]
cmp r13d, 0x1000000
jb 0x140052189
mov r12, qword [rdi + 0x298]
test bpl, 1
sete sil
vmovsd xmm13, qword [rdi + 0x20]
vmovsd xmm11, qword [rdi + 0x28]
vmovsd xmm14, qword [r14 - 0x14]
vmovsd xmm12, qword [r14 - 0xc]
mov eax, dword [r12 + 0x78]
cmp eax, dword [r12 + 0x7c]
jne 0x14005228a
lea ebx, [rax + 1]
test eax, eax
je 0x1400521f3
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1400521f8
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x14005228a
movsxd rcx, ebx
shl rcx, 3
mov rax, qword [0x140221790]
test rax, rax
je 0x14005221e
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [r12 + 0x80]
test rdx, rdx
je 0x140052278
movsxd r8, dword [r12 + 0x78]
shl r8, 3
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r12 + 0x80]
test rcx, rcx
je 0x14005226b
mov rax, qword [0x140221790]
test rax, rax
je 0x14005226b
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [r12 + 0x80], r15
mov dword [r12 + 0x7c], ebx
mov eax, dword [r12 + 0x78]
vfmadd213ps xmm11, xmm14, xmm13
vmovd xmm0, esi
vpbroadcastb xmm0, xmm0
vpslld xmm0, xmm0, 0x1f
vblendvps xmm13, xmm8, xmm7, xmm0
vpermilps xmm0, xmm13, 0xe1
vfmadd213ps xmm0, xmm12, xmm11
mov rcx, qword [r12 + 0x80]
cdqe
vmovlps qword [rcx + rax*8], xmm0
inc dword [r12 + 0x78]
mov rsi, qword [rdi + 0x298]
mov eax, dword [rsi + 0x78]
cmp eax, dword [rsi + 0x7c]
jne 0x140052110
lea ebx, [rax + 1]
test eax, eax
mov r12, qword [rsp + 0x40]
je 0x1400522ee
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1400522f3
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x140052115
movsxd rcx, ebx
shl rcx, 3
mov rax, qword [0x140221790]
test rax, rax
je 0x140052319
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rsi + 0x80]
test rdx, rdx
je 0x140052370
movsxd r8, dword [rsi + 0x78]
shl r8, 3
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x140052363
mov rax, qword [0x140221790]
test rax, rax
je 0x140052363
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rsi + 0x80], r15
mov dword [rsi + 0x7c], ebx
mov eax, dword [rsi + 0x78]
jmp 0x140052115
mov rbx, qword [0x140221790]
vmovss xmm6, dword [rdi + 0x58]
vmovss xmm8, dword [rdi + 0x5c]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm8
jae 0x14005249b
test byte [rdi + 0x14], 0x80
jne 0x14005249b
vmovss xmm0, dword [rbx + 0x37d0]
vmulss xmm0, xmm0, dword [rbx + 0x3914]
vmovss xmm1, dword [0x140120e00]
vminss xmm2, xmm1, dword [rbx + 0x3908]
mov rcx, qword [rdi + 0x298]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm4, dword [0x140120e58]
vmovss xmm5, dword [0x140122d94]
vfmadd213ss xmm2, xmm5, xmm4
vcvttss2si eax, xmm2
vminss xmm1, xmm1, dword [rbx + 0x390c]
vmaxss xmm1, xmm1, xmm3
vfmadd213ss xmm1, xmm5, xmm4
vcvttss2si edx, xmm1
shl edx, 8
or edx, eax
vmovss xmm1, dword [rbx + 0x3910]
vinsertps xmm0, xmm1, xmm0, 0x10
vbroadcastss xmm1, dword [0x140120e00]
vminps xmm0, xmm0, xmm1
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x140122d94]
vfmadd213ps xmm1, xmm0, xmm15
vcvttps2dq xmm0, xmm1
vpsllvd xmm0, xmm0, xmmword [0x140125e80]
vmovd eax, xmm0
or eax, edx
vpextrd r9d, xmm0, 1
or r9d, eax
vmovsd xmm0, qword [rdi + 0x20]
vmovsd xmm1, qword [rdi + 0x28]
vaddps xmm0, xmm1, xmm0
vmovlps qword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0x30], xmm8
vmovss dword [rsp + 0x20], xmm6
mov dword [rsp + 0x28], 0
lea r8, [rsp + 0xb0]
mov rdx, qword [rsp + 0x128]
call fcn.140064050
mov rax, qword [rsp + 0x100]
movsx edx, byte [rax]
cmp edx, 0xffffffff
mov r13, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x88]
je 0x140052729
movsx rcx, dl
lea rax, [rcx + rcx*8]
lea rsi, [rax + rax*2]
lea r14, [0x140126dd0]
lea rax, [r14 + rcx]
add rax, rsi
vxorps xmm10, xmm10, xmm10
vxorps xmm2, xmm2, xmm2
vxorps xmm1, xmm1, xmm1
vxorps xmm4, xmm4, xmm4
vxorps xmm0, xmm0, xmm0
cmp edx, 3
ja case.default.0x140052527
vmovss xmm1, dword [rdi + 0x20]
vmovss xmm3, dword [0x140121574]
vaddss xmm0, xmm1, xmm3
vaddss xmm0, xmm0, dword [rdi + 0x28]
vmovss xmm2, dword [rdi + 0x24]
vaddss xmm3, xmm2, xmm3
vaddss xmm4, xmm3, dword [rdi + 0x2c]
mov edx, edx
lea r8, [0x14005458c]
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
vsubss xmm0, xmm4, xmm6
vaddss xmm4, xmm2, xmm6
vmovaps xmm2, xmm0
vmovaps xmm0, xmm1
jmp case.default.0x140052527
vsubss xmm1, xmm4, xmm6
vaddss xmm4, xmm2, xmm6
vmovaps xmm2, xmm1
vmovaps xmm1, xmm0
jmp case.default.0x140052527
vsubss xmm3, xmm0, xmm6
vaddss xmm0, xmm1, xmm6
vmovaps xmm1, xmm3
vmovaps xmm4, xmm2
jmp case.default.0x140052527
vsubss xmm3, xmm0, xmm6
vaddss xmm0, xmm1, xmm6
vmovaps xmm2, xmm4
vmovaps xmm1, xmm3
add rsi, rcx
vmovss xmm7, dword [r14 + rsi + 0x18]
vaddss xmm3, xmm7, dword [0x140126000]
mov rcx, qword [rdi + 0x298]
vsubss xmm11, xmm2, xmm4
vsubss xmm12, xmm1, xmm0
vmovss xmm9, dword [0x140120e58]
vaddss xmm13, xmm9, xmm4
vfmadd231ss xmm13, xmm6, dword [rax + 4]
vmovss xmm1, dword [r14 + rsi + 0xc]
vfmadd132ss xmm1, xmm13, xmm11
vaddss xmm14, xmm9, xmm0
vfmadd231ss xmm14, xmm6, dword [rax]
vmovss xmm0, dword [r14 + rsi + 8]
vfmadd132ss xmm0, xmm14, xmm12
vmovss dword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0xb4], xmm1
vmovss dword [rsp + 0x20], xmm7
mov dword [rsp + 0x28], 0
lea rdx, [rsp + 0xb0]
vmovaps xmm2, xmm6
call fcn.1400634d0
mov rcx, qword [rdi + 0x298]
vaddss xmm0, xmm7, dword [0x140126004]
vfmadd231ss xmm13, xmm11, dword [r14 + rsi + 0x14]
vfmadd231ss xmm14, xmm12, dword [r14 + rsi + 0x10]
vmovss dword [rsp + 0xb0], xmm14
vmovss dword [rsp + 0xb4], xmm13
vmovss dword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], 0
lea rdx, [rsp + 0xb0]
vmovaps xmm2, xmm6
vmovaps xmm3, xmm7
call fcn.1400634d0
vmaxss xmm0, xmm8, dword [0x140121544]
mov rax, qword [0x140221790]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x3a94]
vmovss xmm2, dword [0x140120e00]
vminss xmm3, xmm2, dword [rax + 0x3a88]
mov r12, qword [rdi + 0x298]
vmaxss xmm3, xmm10, xmm3
vmovss xmm4, dword [0x140122d94]
vfmadd213ss xmm3, xmm4, xmm9
vcvttss2si ecx, xmm3
vminss xmm2, xmm2, dword [rax + 0x3a8c]
vmaxss xmm2, xmm10, xmm2
vfmadd213ss xmm2, xmm4, xmm9
vcvttss2si edx, xmm2
shl edx, 8
vmovss xmm2, dword [rax + 0x3a90]
vinsertps xmm1, xmm2, xmm1, 0x10
vbroadcastss xmm2, dword [0x140120e00]
vminps xmm1, xmm1, xmm2
vxorps xmm2, xmm2, xmm2
vmaxps xmm1, xmm1, xmm2
vbroadcastss xmm2, dword [0x140122d94]
vfmadd213ps xmm2, xmm1, xmm15
vcvttps2dq xmm1, xmm2
vpsllvd xmm1, xmm1, xmmword [0x140125e80]
or edx, ecx
vmovd eax, xmm1
vpextrd r9d, xmm1, 1
or eax, edx
or r9d, eax
mov r8d, dword [r12 + 0x78]
mov rdx, qword [r12 + 0x80]
vmovss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], 0
mov rcx, r12
call fcn.140061d40
mov dword [r12 + 0x78], 0
mov r12, qword [rsp + 0x40]
vmovss xmm0, dword [rbx + 0x3818]
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
mov esi, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x80]
mov ebx, dword [rsp + 0x48]
jae 0x1400528a4
test byte [rdi + 0x14], 1
jne 0x1400528a4
vmovss xmm1, dword [rdi + 0x24]
mov rax, qword [rdi]
vmovss xmm2, dword [rdi + 0x290]
vmulss xmm2, xmm2, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140052785
vmulss xmm2, xmm2, dword [rcx + 0x290]
vaddss xmm1, xmm1, dword [0x140121574]
vmovss xmm3, dword [rax + 0x3810]
vaddss xmm1, xmm1, xmm2
vfmadd231ss xmm1, xmm3, dword [0x140121544]
mov rax, qword [0x140221790]
vmovss xmm2, dword [rax + 0x37d0]
vmulss xmm2, xmm2, dword [rax + 0x3914]
vmovss xmm3, dword [0x140120e00]
vminss xmm4, xmm3, dword [rax + 0x3908]
vxorps xmm5, xmm5, xmm5
vmaxss xmm4, xmm4, xmm5
vmovss xmm6, dword [0x140120e58]
vmovss xmm7, dword [0x140122d94]
vfmadd213ss xmm4, xmm7, xmm6
vcvttss2si edx, xmm4
vminss xmm3, xmm3, dword [rax + 0x390c]
vmaxss xmm3, xmm3, xmm5
vfmadd213ss xmm3, xmm7, xmm6
vcvttss2si r8d, xmm3
mov rcx, qword [rdi + 0x298]
shl r8d, 8
or r8d, edx
vmovss xmm3, dword [rax + 0x3910]
vinsertps xmm2, xmm3, xmm2, 0x10
vbroadcastss xmm3, dword [0x140120e00]
vminps xmm2, xmm2, xmm3
vxorps xmm3, xmm3, xmm3
vmaxps xmm2, xmm2, xmm3
vbroadcastss xmm3, dword [0x140122d94]
vfmadd213ps xmm3, xmm2, xmm15
vcvttps2dq xmm2, xmm3
vpsllvd xmm2, xmm2, xmmword [0x140125e80]
vmovd eax, xmm2
or eax, r8d
vpextrd r9d, xmm2, 1
or r9d, eax
vmovss xmm2, dword [rdi + 0x20]
vsubss xmm3, xmm2, xmm8
vaddss xmm3, xmm3, dword [rdi + 0x28]
vmovss dword [rsp + 0xb0], xmm3
vmovss dword [rsp + 0xb4], xmm1
vaddss xmm2, xmm8, xmm2
vmovss dword [rsp + 0x60], xmm2
vmovss dword [rsp + 0x64], xmm1
vmovss dword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0xb0]
call fcn.140063ea0
test bl, bl
je 0x1400528b6
lea rax, [rdi + 0x2a0]
mov qword [rdi + 0x298], rax
vmovss xmm0, dword [rdi + 0x48]
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
vmovaps xmm4, xmm0
jne 0x140052907
mov eax, esi
and eax, 0x808
vmovss xmm2, dword [rdi + 0x28]
vmovss xmm3, dword [rdi + 0x50]
vmovss xmm4, dword [rdi + 0x60]
vaddss xmm3, xmm3, xmm3
vsubss xmm2, xmm2, xmm3
vaddss xmm3, xmm4, dword [rdi + 0x68]
vsubss xmm2, xmm2, xmm3
cmp eax, 0x800
jne 0x140052903
mov rax, qword [rsp + 0x160]
vmovss xmm1, dword [rax]
vmaxss xmm4, xmm1, xmm2
vmovss xmm2, dword [rdi + 0x4c]
vxorps xmm5, xmm5, xmm5
vucomiss xmm5, xmm2
je 0x140052926
vmovss xmm3, dword [rdi + 0x54]
vmovss xmm1, dword [rdi + 0x64]
vmovaps xmm5, xmm2
jmp 0x140052955
vmovss xmm6, dword [rdi + 0x2c]
vmovss xmm3, dword [rdi + 0x54]
vmovss xmm1, dword [rdi + 0x64]
vaddss xmm7, xmm3, xmm3
vsubss xmm6, xmm6, xmm7
vaddss xmm7, xmm1, dword [rdi + 0x6c]
vsubss xmm6, xmm6, xmm7
test sil, 8
jne 0x140052951
vmovss xmm5, dword [rdi + 0x3c]
vmaxss xmm5, xmm5, xmm6
vinsertps xmm6, xmm4, xmm5, 0x10
vxorps xmm9, xmm9, xmm9
vucomiss xmm0, xmm9
vmovss xmm11, dword [rdi + 0x50]
vmovsd xmm4, qword [rdi + 0x84]
vmovshdup xmm12, xmm4
vmovsd xmm7, qword [rdi + 0x1f8]
vinsertps xmm5, xmm11, xmm3, 0x10
vbroadcastss xmm8, dword [rdi + 0x5c]
vmaxps xmm8, xmm8, xmm5
vsubps xmm7, xmm7, xmm4
vaddps xmm7, xmm8, xmm7
vroundps xmm7, xmm7, 0xb
vaddps xmm6, xmm6, xmm7
vmovlhps xmm6, xmm7, xmm6
vmovups xmmword [rdi + 0x218], xmm6
vmovups xmm6, xmmword [rdi + 0x218]
vmovups xmmword [rdi + 0x228], xmm6
vmovss xmm7, dword [rdi + 0x20]
vmovss xmm8, dword [rdi + 0x24]
vmovss xmm6, dword [rdi + 0x60]
vaddss xmm10, xmm11, xmm6
vsubss xmm10, xmm10, xmm4
vaddss xmm13, xmm10, xmm7
vmovss dword [rdi + 0x248], xmm13
vsubss xmm12, xmm3, xmm12
vaddss xmm14, xmm8, xmm1
vaddss xmm12, xmm12, xmm14
vmovss dword [rdi + 0x24c], xmm12
jne 0x140052a10
vmovss xmm0, dword [rdi + 0x28]
vaddss xmm11, xmm11, xmm11
vsubss xmm0, xmm0, xmm11
vaddss xmm11, xmm6, dword [rdi + 0x68]
vsubss xmm0, xmm0, xmm11
vucomiss xmm2, xmm9
vaddss xmm0, xmm13, xmm0
vmovss dword [rdi + 0x250], xmm0
jne 0x140052a39
vmovss xmm0, dword [rdi + 0x2c]
vaddss xmm2, xmm3, xmm3
vsubss xmm0, xmm0, xmm2
vaddss xmm2, xmm1, dword [rdi + 0x6c]
vsubss xmm2, xmm0, xmm2
vaddss xmm0, xmm12, xmm2
vmovss dword [rdi + 0x254], xmm0
vmovss dword [rdi + 0x144], xmm10
vinsertps xmm0, xmm7, xmm8, 0x10
vcvtps2pd xmm0, xmm0
vcvtps2pd xmm2, xmm5
vcvtps2pd xmm3, xmm4
vsubpd xmm2, xmm2, xmm3
vinsertps xmm1, xmm6, xmm1, 0x10
vcvtps2pd xmm1, xmm1
vaddpd xmm0, xmm0, xmm1
vaddpd xmm0, xmm2, xmm0
vcvtpd2ps xmm1, xmm0
vxorpd xmm2, xmm2, xmm2
vcvtps2pd xmm3, xmm1
vsubpd xmm0, xmm0, xmm3
vcvtpd2ps xmm0, xmm0
vunpcklpd xmm0, xmm2, xmm0
vmovupd xmmword [rdi + 0x148], xmm0
vmovlpd qword [rdi + 0x110], xmm1
mov rax, qword [rdi + 0x110]
mov qword [rdi + 0x100], rax
mov qword [rdi + 0x108], rax
mov qword [rdi + 0x118], rax
mov qword [rdi + 0x120], rax
mov dword [rdi + 0x158], 0
vmovupd xmmword [rdi + 0x128], xmm2
vmovupd xmmword [rdi + 0x132], xmm2
movzx eax, word [rdi + 0x15e]
mov word [rdi + 0x15c], ax
mov dword [rdi + 0x15e], 0x10000
vxorpd xmm0, xmm0, xmm0
vucomiss xmm0, dword [rdi + 0x90]
setb byte [rdi + 0x162]
mov byte [rdi + 0x163], 0
lea rcx, [rdi + 0x16c]
vmovss xmm1, dword [r12 + 0x381c]
mov r8d, dword [rsp + 0x84]
call fcn.140092de0
mov qword [rdi + 0x188], 0
cmp dword [rdi + 0x194], 0
jns 0x140052bbd
mov rax, qword [0x140221790]
test rax, rax
je 0x140052b50
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
xor ecx, ecx
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rdi + 0x198]
test rdx, rdx
je 0x140052bac
movsxd r8, dword [rdi + 0x190]
shl r8, 3
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x198]
test rcx, rcx
je 0x140052b9f
mov rax, qword [0x140221790]
test rax, rax
je 0x140052b9f
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rdi + 0x198], r15
mov dword [rdi + 0x194], 0
mov dword [rdi + 0x190], 0
lea rax, [rdi + 0x270]
mov qword [rdi + 0x1a0], rax
mov qword [rdi + 0x1a8], 0
mov dword [rdi + 0x1b4], 1
test rbp, rbp
je 0x140052bf7
mov eax, dword [rbp + 0x1b4]
jmp 0x140052bfc
mov eax, 1
mov dword [rdi + 0x1b8], eax
vmovss xmm0, dword [rdi + 0x268]
vmovss dword [rdi + 0x1bc], xmm0
mov dword [rdi + 0x1c0], 0xbf800000
cmp dword [rdi + 0x1cc], 0
jns 0x140052ca4
mov rax, qword [0x140221790]
test rax, rax
je 0x140052c37
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
xor ecx, ecx
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rdi + 0x1d0]
test rdx, rdx
je 0x140052c93
movsxd r8, dword [rdi + 0x1c8]
shl r8, 2
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x1d0]
test rcx, rcx
je 0x140052c86
mov rax, qword [0x140221790]
test rax, rax
je 0x140052c86
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rdi + 0x1d0], r15
mov dword [rdi + 0x1cc], 0
mov dword [rdi + 0x1c8], 0
cmp dword [rdi + 0x1dc], 0
jns 0x140052d36
mov rax, qword [0x140221790]
test rax, rax
je 0x140052cc9
inc dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
xor ecx, ecx
call qword [0x1402034d8]
mov r15, rax
mov rdx, qword [rdi + 0x1e0]
test rdx, rdx
je 0x140052d25
movsxd r8, dword [rdi + 0x1d8]
shl r8, 2
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x1e0]
test rcx, rcx
je 0x140052d18
mov rax, qword [0x140221790]
test rax, rax
je 0x140052d18
dec dword [rax + 0xf4]
mov rdx, qword [0x1402217a0]
call qword [0x1402034e0]
mov qword [rdi + 0x1e0], r15
mov dword [rdi + 0x1dc], 0
mov dword [rdi + 0x1d8], 0
movzx eax, byte [rdi + 0xd0]
test al, al
jle 0x140052d53
dec al
mov byte [rdi + 0xd0], al
movzx eax, byte [rdi + 0xd1]
test al, al
jle 0x140052d66
dec al
mov byte [rdi + 0xd1], al
test r14b, 1
je 0x140052d8d
mov rcx, rdi
mov edx, 2
call fcn.140048740
cmp rdi, qword [r12 + 0x48d8]
jne 0x140052d8d
mov rcx, rdi
xor edx, edx
call fcn.140056810
test sil, 1
jne 0x1400533bd
vmovss xmm0, dword [rsp + 0x98]
vmovss xmm1, dword [rdi + 0x5c]
mov rbx, qword [0x140221790]
mov r14d, dword [rdi + 0x14]
test r14b, 0x20
jne 0x140052dc2
cmp dword [rbx + 0x37f8], 0xffffffff
setne al
jmp 0x140052dc4
xor eax, eax
vmovss xmm6, dword [rsp + 0x9c]
vmovss xmm7, dword [rsp + 0x94]
vsubss xmm8, xmm0, xmm1
vaddss xmm10, xmm1, dword [rsp + 0x90]
mov r15d, dword [rbx + 0x4778]
mov ecx, r15d
or ecx, 0x10
mov dword [rbx + 0x4778], ecx
mov dword [rdi + 0x158], 1
vmovss xmm11, dword [rbx + 0x380c]
vmovss xmm13, dword [rbx + 0x3c20]
vxorps xmm0, xmm0, xmm0
vmovlps qword [rsp + 0xa8], xmm0
vmovlps qword [rsp + 0xa0], xmm0
vmovaps xmm12, xmm11
cmp qword [rsp + 0x168], 0
je 0x140052e56
vaddss xmm12, xmm13, xmm11
vaddss xmm0, xmm11, xmm12
vsubss xmm0, xmm8, xmm0
vmovss dword [rsp + 0xa8], xmm0
vmovss dword [rsp + 0xac], xmm7
test al, al
je 0x140052f4e
mov eax, dword [rbx + 0x37f8]
test eax, eax
je 0x140052e8f
cmp eax, 1
jne 0x140052ea6
vaddss xmm12, xmm12, xmm13
vaddss xmm0, xmm11, xmm12
vsubss xmm0, xmm8, xmm0
vmovss dword [rsp + 0xa0], xmm0
vmovss dword [rsp + 0xa4], xmm7
jmp 0x140052ea6
vmovss dword [rsp + 0xa0], xmm10
vmovss dword [rsp + 0xa4], xmm7
vaddss xmm11, xmm13, xmm11
mov rax, qword [rdi + 0xf8]
movsxd rcx, dword [rdi + 0xf0]
mov eax, dword [rax + rcx*4 - 4]
not eax
mov r8b, 0x23
lea rcx, [0x140127a44]
lea rdx, [0x1401260e0]
mov ebp, eax
jmp 0x140052eed
movzx r8d, r8b
movzx r10d, bpl
shr ebp, 8
xor r10d, r8d
xor ebp, dword [rdx + r10*4]
inc rcx
mov r8d, r9d
test r9b, r9b
je 0x140052f09
movzx r9d, byte [rcx - 1]
cmp r8b, 0x23
jne 0x140052ed0
cmp r9b, 0x23
jne 0x140052ed0
cmp byte [rcx], 0x23
cmove ebp, eax
mov r9b, 0x23
jmp 0x140052ed0
not ebp
mov rax, qword [rdi]
cmp dword [rax + 0x3f40], ebp
jne 0x140052f2c
lea r8, str.COLLAPSE
mov ecx, ebp
mov edx, 0xb
xor r9d, r9d
call fcn.1400475b0
lea rdx, [rsp + 0xa0]
mov ecx, ebp
call fcn.14007ee50
test al, al
je 0x140052f46
mov byte [rdi + 0xba], 1
mov rbp, qword [rsp + 0x88]
cmp qword [rsp + 0x168], 0
je 0x140053012
mov rax, qword [rdi + 0xf8]
movsxd rcx, dword [rdi + 0xf0]
mov eax, dword [rax + rcx*4 - 4]
not eax
mov r8b, 0x23
lea rcx, [0x140127a4e]
lea rdx, [0x1401260e0]
mov ebp, eax
jmp 0x140052fad
movzx r8d, r8b
movzx r10d, bpl
shr ebp, 8
xor r10d, r8d
xor ebp, dword [rdx + r10*4]
inc rcx
mov r8d, r9d
test r9b, r9b
je 0x140052fc9
movzx r9d, byte [rcx - 1]
cmp r8b, 0x23
jne 0x140052f90
cmp r9b, 0x23
jne 0x140052f90
cmp byte [rcx], 0x23
cmove ebp, eax
mov r9b, 0x23
jmp 0x140052f90
not ebp
mov rax, qword [rdi]
cmp dword [rax + 0x3f40], ebp
jne 0x140052fec
lea r8, str.CLOSE
mov ecx, ebp
mov edx, 0xb
xor r9d, r9d
call fcn.1400475b0
lea rdx, [rsp + 0xa8]
mov ecx, ebp
call fcn.14007ebc0
test al, al
mov rbp, qword [rsp + 0x88]
je 0x140053012
mov rax, qword [rsp + 0x168]
mov byte [rax], 0
mov dword [rdi + 0x158], 0
mov dword [rbx + 0x4778], r15d
vxorps xmm14, xmm14, xmm14
test r14d, 0x100000
je 0x140053039
vmulss xmm14, xmm13, dword [0x140126008]
mov rax, qword [0x140221790]
cmp r13, 0xffffffffffffffff
je 0x14005306d
mov rdx, r13
jmp 0x14005305f
cmp byte [rdx + 1], 0x23
je 0x14005307e
inc rdx
cmp rdx, 0xffffffffffffffff
je 0x140053077
movzx ecx, byte [rdx]
cmp ecx, 0x23
je 0x140053050
test ecx, ecx
jne 0x140053056
jmp 0x14005307e
vmovss xmm2, dword [rax + 0x3c20]
jmp 0x1400530e4
mov rdx, 0xffffffffffffffff
vmovss xmm2, dword [rax + 0x3c20]
cmp rdx, r13
je 0x1400530e4
mov rcx, qword [rax + 0x3c18]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x20], 0xbf800000
lea rdx, [rsp + 0xb0]
vmovss xmm3, dword [0x140125e10]
call fcn.140072ac0
vmovss xmm0, dword [rsp + 0xb0]
vmovss xmm2, dword [rsp + 0xb4]
vaddss xmm0, xmm0, dword [0x140125ea8]
vroundss xmm0, xmm0, xmm0, 0xb
jmp 0x1400530e8
vxorps xmm0, xmm0, xmm0
vaddss xmm0, xmm14, xmm0
vmovss dword [rsp + 0x1a8], xmm0
vmovss dword [rsp + 0x1ac], xmm2
vmovss xmm1, dword [rbx + 0x380c]
vucomiss xmm11, xmm1
jbe 0x140053114
vaddss xmm11, xmm11, dword [rbx + 0x3824]
vucomiss xmm12, xmm1
jbe 0x140053122
vaddss xmm12, xmm12, dword [rbx + 0x3824]
vmovss xmm1, dword [rbx + 0x37f0]
vxorps xmm2, xmm2, xmm2
vucomiss xmm2, xmm1
jae 0x140053196
vucomiss xmm1, dword [0x140120e00]
jae 0x140053196
vaddss xmm2, xmm1, dword [0x1401215a0]
vbroadcastss xmm3, dword [0x140121540]
vandps xmm2, xmm2, xmm3
vmovss xmm3, dword [0x140120e00]
vfmadd132ss xmm2, xmm3, dword [0x140121e00]
vminss xmm2, xmm2, xmm3
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vaddss xmm3, xmm10, xmm0
vaddss xmm4, xmm11, xmm12
vaddss xmm3, xmm3, xmm4
vsubss xmm3, xmm8, xmm3
vmaxss xmm4, xmm11, xmm12
vminss xmm3, xmm4, xmm3
vmulss xmm2, xmm2, xmm3
vmaxss xmm11, xmm11, xmm2
vmaxss xmm12, xmm12, xmm2
vsubss xmm3, xmm8, xmm12
vaddss xmm2, xmm11, xmm10
vmovss dword [rsp + 0xb0], xmm2
vmovss dword [rsp + 0xb4], xmm7
vmovss dword [rsp + 0xb8], xmm3
vmovss dword [rsp + 0xbc], xmm6
vaddss xmm4, xmm3, dword [rbx + 0x3824]
vminss xmm8, xmm8, xmm4
vmovss dword [rsp + 0x60], xmm2
vmovss dword [rsp + 0x64], xmm7
vmovss dword [rsp + 0x68], xmm8
vmovss dword [rsp + 0x6c], xmm6
test r14d, 0x100000
je 0x140053305
vaddss xmm0, xmm2, xmm0
vsubss xmm4, xmm3, xmm0
vfmadd213ss xmm1, xmm4, xmm0
vminss xmm0, xmm3, xmm1
vcmpltss xmm1, xmm1, xmm2
vblendvps xmm9, xmm0, xmm2, xmm1
vucomiss xmm9, xmm2
jbe 0x140053305
vaddss xmm0, xmm7, xmm6
mov rax, qword [0x140221790]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x38c4]
vmovss xmm6, dword [0x140120e58]
vmovss xmm2, dword [0x140120e00]
vminss xmm3, xmm2, dword [rax + 0x38b8]
vxorps xmm4, xmm4, xmm4
vmaxss xmm3, xmm3, xmm4
vmovss xmm5, dword [0x140122d94]
vfmadd213ss xmm3, xmm5, xmm6
vcvttss2si ecx, xmm3
vminss xmm2, xmm2, dword [rax + 0x38bc]
vmaxss xmm2, xmm2, xmm4
vfmadd213ss xmm2, xmm5, xmm6
vcvttss2si edx, xmm2
vmulss xmm0, xmm0, xmm6
shl edx, 8
or edx, ecx
vmovss xmm2, dword [rax + 0x38c0]
vinsertps xmm1, xmm2, xmm1, 0x10
vbroadcastss xmm2, dword [0x140120e00]
vminps xmm1, xmm1, xmm2
vxorps xmm2, xmm2, xmm2
vmaxps xmm1, xmm1, xmm2
vbroadcastss xmm2, dword [0x140122d94]
vfmadd213ps xmm2, xmm1, xmm15
vcvttps2dq xmm1, xmm2
vpsllvd xmm1, xmm1, xmmword [0x140125e80]
vmovd eax, xmm1
or eax, edx
vpextrd r8d, xmm1, 1
or r8d, eax
vmovd edx, xmm9
vmovd eax, xmm0
shl rax, 0x20
or rdx, rax
mov rcx, qword [rdi + 0x298]
call fcn.1400730c0
vmulss xmm0, xmm14, xmm6
vroundss xmm0, xmm0, xmm0, 0xb
vsubss xmm0, xmm9, xmm0
vminss xmm0, xmm8, xmm0
vmovss dword [rsp + 0x68], xmm0
cmp r13, 0xffffffffffffffff
je 0x1400533bd
add rbx, 0x37f0
lea r8, [rsp + 0xb8]
mov r14, r13
jmp 0x140053340
cmp byte [r14 + 1], 0x23
je 0x140053356
inc r14
cmp r14, 0xffffffffffffffff
je 0x14005334f
movzx eax, byte [r14]
cmp eax, 0x23
je 0x140053330
test eax, eax
jne 0x140053337
jmp 0x140053356
mov r14, 0xffffffffffffffff
cmp r14d, r13d
je 0x1400533bd
mov rsi, qword [0x140221790]
mov rax, qword [rsi + 0x3ef8]
mov rcx, qword [rax + 0x298]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x1a8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea rdx, [rsp + 0xb0]
mov r9, r13
call fcn.1400427a0
cmp byte [rsi + 0x5ca0], 0
je 0x1400533bd
lea rcx, [rsp + 0xb0]
mov rdx, r13
mov r8, r14
call fcn.140042400
mov dword [rdi + 0x258], 0
mov r14, qword [0x140221790]
vmovss xmm0, dword [rsp + 0x90]
vmovss xmm1, dword [r14 + 0x3834]
vsubss xmm2, xmm0, xmm1
vmovss xmm0, dword [r14 + 0xe08]
vucomiss xmm2, xmm0
jbe 0x1400533f7
xor eax, eax
jmp 0x140053443
vmovss xmm2, dword [rsp + 0x94]
vmovss xmm3, dword [r14 + 0x3838]
vsubss xmm2, xmm2, xmm3
vaddss xmm1, xmm1, dword [rsp + 0x98]
vaddss xmm3, xmm3, dword [rsp + 0x9c]
vmovss xmm4, dword [r14 + 0xe0c]
vcmpltps xmm0, xmm0, xmm1
vcmpleps xmm1, xmm2, xmm4
vandps xmm0, xmm1, xmm0
vucomiss xmm3, xmm4
vmovd ecx, xmm0
seta al
and al, cl
movzx eax, al
mov ecx, dword [r12 + 0x4778]
mov edx, dword [rdi + 0x7c]
mov dword [r14 + 0x4794], edx
mov dword [r14 + 0x4798], ecx
mov dword [r14 + 0x479c], eax
vmovups xmm0, xmmword [rsp + 0x90]
vmovups xmmword [r14 + 0x47b0], xmm0
vmovups xmm0, xmmword [rsp + 0x90]
vmovups xmmword [r14 + 0x47a0], xmm0
mov eax, dword [r12 + 0x477c]
test eax, eax
je 0x1400535a8
cmp dword [rdi + 0x10], eax
je 0x1400534a8
cmp dword [rdi + 0x7c], eax
jne 0x1400535a8
lea rax, [r14 + 0x4794]
vmovups ymm0, ymmword [rax]
vmovups ymm1, ymmword [rax + 0x1c]
vmovups ymmword [rsp + 0xcc], ymm1
vmovups ymmword [rsp + 0xb0], ymm0
mov dword [r14 + 0x477c], 0
mov rax, qword [r14 + 0x48d0]
mov rcx, qword [rax]
lea r8, str.Foreground
mov edx, 1
vzeroupper
call fcn.140048580
mov rbx, rax
vmovups xmm0, xmmword [rsp + 0xbc]
vmovaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x68]
vmovaps xmm0, xmmword [rsp + 0x60]
vaddps xmm0, xmm0, xmmword [0x140126010]
vmovaps xmmword [rsp + 0x60], xmm0
mov rax, qword [r14 + 0xe08]
vmovq xmm1, rax
mov qword [rsp + 0xa8], rax
vcmpltps xmm2, xmm1, xmm0
vpermilpd xmm3, xmm0, 1
vminps xmm1, xmm3, xmm1
vblendvps xmm0, xmm1, xmm0, xmm2
vmovlps qword [rsp + 0xa0], xmm0
mov dword [rsp + 0x30], 0x3f800000
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea rdx, [rsp + 0x60]
mov rcx, rbx
mov r9d, 0xff00ff00
call fcn.140064050
mov dword [rsp + 0x20], 0x3f800000
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0xa0]
mov rcx, rbx
mov r9d, 0xff00ff00
call fcn.140063ea0
mov r14, qword [0x140221790]
lea rdx, [rdi + 0x208]
lea r8, [rdi + 0x210]
mov rax, qword [r14 + 0x3ef8]
mov byte [rax + 0xb8], 1
mov rsi, qword [r14 + 0x3ef8]
mov rcx, qword [rsi + 0x298]
mov r9b, 1
vzeroupper
call fcn.1400618c0
mov rax, qword [rsi + 0x298]
mov rcx, qword [rax + 0x60]
movsxd rax, dword [rax + 0x58]
shl rax, 4
vmovups xmm0, xmmword [rax + rcx - 0x10]
vmovups xmmword [rsi + 0x238], xmm0
inc word [rdi + 0xc2]
mov byte [rdi + 0xb8], 0
mov dword [r12 + 0x47d0], 0
mov eax, dword [rsp + 0x78]
cmp eax, dword [rsp + 0x108]
je 0x14005371d
mov eax, dword [rsp + 0x58]
test eax, 0x1000000
je 0x140053685
test al, 0x40
jne 0x14005364e
cmp byte [rdi + 0xd0], 0
jg 0x14005364e
cmp byte [rdi + 0xd1], 0
jle 0x140053807
test rbp, rbp
je 0x140053685
cmp byte [rbp + 0xb9], 0
jne 0x140053665
cmp byte [rbp + 0xd8], 0
jle 0x140053675
mov byte [rdi + 0xd8], 1
cmp byte [rbp + 0xb9], 0
jne 0x14005367e
cmp byte [rbp + 0xd9], 0
jle 0x140053685
mov byte [rdi + 0xd9], 1
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [r12 + 0x37d0]
jae 0x1400536bb
mov al, 1
cmp byte [rdi + 0xd8], 0
mov cl, 1
jg 0x1400536c6
mov al, 1
cmp byte [rdi + 0xd9], 0
jg 0x1400536c6
cmp byte [rdi + 0xda], 0
setg cl
xor eax, eax
jmp 0x1400536c6
mov byte [rdi + 0xd8], 1
mov al, 1
mov cl, 1
mov byte [rdi + 0xbd], cl
movzx ecx, byte [rdi + 0xdb]
test cl, cl
jle 0x1400536e6
dec cl
mov byte [rdi + 0xdb], cl
or dword [rdi + 0x14], 0xc0200
cmp byte [rdi + 0xb9], 0
jne 0x1400536ff
cmp byte [rdi + 0xb6], 0
setne cl
not al
test al, cl
jne 0x140053715
cmp byte [rdi + 0xd0], 0
jg 0x140053715
cmp byte [rdi + 0xd1], 0
jle 0x1400537f8
xor eax, eax
mov byte [rdi + 0xbb], al
cmp byte [rdi + 0xbe], 0
je 0x140053732
cmp byte [rdi + 0xbb], 0
sete al
jmp 0x14005378a
cmp byte [r12 + 0x84], 0
setne al
test byte [rsp + 0x74], al
jne 0x140053762
cmp byte [r12 + 0x85], 0
je 0x140053726
movsx eax, byte [r12 + 0x5d12]
cmp dword [r12 + 0x3ec8], eax
jne 0x140053726
movzx eax, byte [rdi + 0xd0]
test al, al
jle 0x140053775
inc al
mov byte [rdi + 0xd0], al
movzx eax, byte [rdi + 0xd1]
test al, al
jle 0x140053788
inc al
mov byte [rdi + 0xd1], al
xor eax, eax
vmovaps xmm6, xmmword [rsp + 0x250]
vmovaps xmm7, xmmword [rsp + 0x260]
vmovaps xmm8, xmmword [rsp + 0x270]
vmovaps xmm9, xmmword [rsp + 0x280]
vmovaps xmm10, xmmword [rsp + 0x290]
vmovaps xmm11, xmmword [rsp + 0x2a0]
vmovaps xmm12, xmmword [rsp + 0x2b0]
vmovaps xmm13, xmmword [rsp + 0x2c0]
vmovaps xmm14, xmmword [rsp + 0x2d0]
vmovaps xmm15, xmmword [rsp + 0x2e0]
add rsp, 0x2f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rdi + 0xd9], 0
setle al
jmp 0x140053717
test eax, 0x800000
je 0x14005384a
cmp byte [r12 + 0x4918], 0
je 0x14005384a
mov rax, qword [r12 + 0x48d8]
test rax, rax
je 0x14005384a
mov rax, qword [rax + 0x390]
cmp rax, qword [rdi + 0x390]
sete al
jmp 0x14005384c
vxorps xmm3, xmm3, xmm3
test al, al
jne 0x14005140c
jmp 0x1400513f7
xor eax, eax
cmp byte [r12 + 0x5ca0], 0
jne 0x14005364e
test al, al
jne 0x14005364e
vmovss xmm0, dword [rdi + 0x1e8]
vucomiss xmm0, dword [rdi + 0x1f0]
jae 0x14005388b
vmovss xmm0, dword [rdi + 0x1ec]
vucomiss xmm0, dword [rdi + 0x1f4]
jb 0x14005364e
mov byte [rdi + 0xd8], 1
jmp 0x14005364e
cmp byte [rdi + 0xb7], 0
je 0x1400511bb
mov rdx, qword [0x140221790]
movzx eax, byte [rdx + 0x7e]
vmovss xmm0, dword [rdx + 0x3c20]
vmovss xmm1, dword [0x140125f30]
vfmadd213ss xmm1, xmm0, xmm13
vmulss xmm0, xmm0, dword [0x140125f94]
vmaxss xmm0, xmm0, xmm1
vroundss xmm0, xmm0, xmm0, 0xb
vmulss xmm0, xmm0, dword [0x140121748]
vxorps xmm6, xmm6, xmm6
mov byte [rsp + 0x7f], al
test al, al
je 0x1400538f2
vmovss xmm6, dword [0x140121550]
vroundss xmm0, xmm0, xmm0, 0xb
vmovaps xmmword [rsp + 0x180], xmm0
cmp byte [rdx + 0x7f], 0
sete al
or r8b, al
vmovshdup xmm11, xmm8
test r8b, 1
jne 0x140053951
mov rax, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x14005393d
vmulss xmm0, xmm0, dword [rcx + 0x290]
vmovss xmm1, dword [rax + 0x3810]
vsubss xmm0, xmm11, xmm0
vaddss xmm1, xmm1, xmm1
vsubss xmm11, xmm0, xmm1
vmovss dword [rsp + 0x140], xmm7
mov dword [rsp + 0x14c], r8d
mov qword [rsp + 0x48], rdx
mov byte [rsp + 0x57], r15b
vmovss dword [rsp + 0x144], xmm10
vmovss dword [rsp + 0xf8], xmm14
vmovss dword [rsp + 0x148], xmm13
mov dword [rdi + 0x158], 1
lea rcx, str.RESIZE
call fcn.1400594c0
mov eax, dword [rsp + 0xfc]
mov qword [rsp + 0x100], rax
vmovaps xmm0, xmmword [0x140125fa0]
vmovaps xmmword [rsp + 0x1b0], xmm11
vinsertps xmm0, xmm0, xmm11, 0x10
vmovaps xmmword [rsp + 0x190], xmm0
vbroadcastss xmm0, dword [0x140121de8]
vbroadcastss xmm12, dword [rsp + 0x180]
vxorps xmm0, xmm12, xmm0
vmovaps xmmword [rsp + 0x1f0], xmm0
vbroadcastss xmm14, xmm6
vblendps xmm0, xmm8, xmmword [0x140125fb0], 0xe
vmovaps xmmword [rsp + 0x1e0], xmm0
vbroadcastss xmm10, dword [0x140125e10]
lea r12, [0x140126d78]
xor r13d, r13d
vmovss xmm13, dword [0x140120e00]
vxorps xmm7, xmm7, xmm7
xor eax, eax
mov qword [rsp + 0x1a0], rax
vmovaps xmmword [rsp + 0x170], xmm10
vmovaps xmmword [rsp + 0x1d0], xmm10
jmp 0x140053b35
xor edx, edx
test cl, cl
sete dl
xor rdx, 0x1f
test al, al
mov rax, qword [0x140221790]
mov ecx, 0x20
cmovne rdx, rcx
shl rdx, 4
vmovss xmm0, dword [rax + 0x37d0]
vmulss xmm0, xmm0, dword [rax + rdx + 0x38c4]
vminss xmm1, xmm13, dword [rax + rdx + 0x38b8]
vxorps xmm2, xmm2, xmm2
vmaxss xmm1, xmm1, xmm2
vmovss xmm3, dword [0x140120e58]
vmovss xmm4, dword [0x140122d94]
vfmadd213ss xmm1, xmm4, xmm3
vcvttss2si ecx, xmm1
vminss xmm1, xmm13, dword [rax + rdx + 0x38bc]
vxorps xmm7, xmm7, xmm7
vmaxss xmm1, xmm1, xmm2
vfmadd213ss xmm1, xmm4, xmm3
vcvttss2si r8d, xmm1
shl r8d, 8
or r8d, ecx
vmovss xmm1, dword [rax + rdx + 0x38c0]
vinsertps xmm0, xmm1, xmm0, 0x10
vbroadcastss xmm1, dword [0x140120e00]
vminps xmm0, xmm0, xmm1
vmaxps xmm0, xmm0, xmmword [0x140121e30]
vbroadcastss xmm1, dword [0x140122d94]
vbroadcastss xmm2, dword [0x140120e58]
vfmadd231ps xmm2, xmm0, xmm1
vcvttps2dq xmm0, xmm2
vpsllvd xmm0, xmm0, xmmword [0x140125e80]
vmovd eax, xmm0
or eax, r8d
vpextrd ecx, xmm0, 1
or ecx, eax
mov dword [rsp + r13*4 + 0x1c0], ecx
inc r13
add r12, 0x18
cmp qword [rsp + 0x100], r13
je 0x140053e28
vmovsd xmm15, qword [r12 - 8]
vmovsd xmm11, qword [r12]
vmovsd xmm1, qword [rdi + 0x20]
vmovsd xmm0, qword [rdi + 0x28]
vfmadd213ps xmm0, xmm15, xmm1
vmulps xmm6, xmm11, xmm14
vsubps xmm1, xmm0, xmm6
vfmadd231ps xmm0, xmm11, xmm12
vmovlhps xmm2, xmm1, xmm0
vmovups xmmword [rsp + 0xb0], xmm2
vucomiss xmm1, xmm0
jbe 0x140053b84
vmovss dword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0xb8], xmm1
vmovshdup xmm1, xmm1
vmovshdup xmm0, xmm0
vucomiss xmm1, xmm0
jbe 0x140053ba4
vmovss dword [rsp + 0xb4], xmm0
vmovss dword [rsp + 0xbc], xmm1
mov ecx, r13d
shr ecx, 8
mov eax, r13d
shr eax, 0x10
mov rdx, qword [rdi + 0xf8]
movsxd r8, dword [rdi + 0xf0]
mov edx, dword [rdx + r8*4 - 4]
not edx
mov r8d, edx
shr r8d, 8
xor edx, r13d
mov r9d, r13d
shr r9d, 0x18
movzx edx, dl
lea r10, [0x1401260e0]
xor r8d, dword [r10 + rdx*4]
mov edx, r8d
shr edx, 8
xor r8d, ecx
movzx ecx, r8b
xor edx, dword [r10 + rcx*4]
mov r15d, edx
shr r15d, 8
xor edx, eax
movzx eax, dl
xor r15d, dword [r10 + rax*4]
movzx eax, r15b
shr r15d, 8
xor eax, r9d
xor r15d, dword [r10 + rax*4]
mov rax, qword [rdi]
not r15d
cmp dword [rax + 0x3f40], r15d
jne 0x140053c36
mov ecx, r15d
mov edx, 4
mov r8, r13
xor r9d, r9d
call fcn.1400475b0
lea rbx, [rsp + 0xb0]
mov rcx, rbx
mov edx, r15d
xor r8d, r8d
mov r9d, 8
call fcn.140056dc0
mov dword [rsp + 0x20], 0x40800
mov rcx, rbx
mov edx, r15d
lea r8, [rsp + 0x90]
lea r9, [rsp + 0xa8]
call fcn.14007e0c0
movzx eax, byte [rsp + 0xa8]
movzx ecx, byte [rsp + 0x90]
or cl, al
je 0x140053dfa
mov ecx, r13d
and ecx, 1
mov edx, 6
sub edx, ecx
mov r8, qword [rsp + 0x48]
mov dword [r8 + 0x4a98], edx
test al, al
je 0x140053dfa
cmp word [r8 + 0x3752], 2
jne 0x140053cfa
test r13, r13
jne 0x140053cfa
lea rcx, [rsp + 0x60]
mov rdx, rdi
lea r8, [rsp + 0x138]
call fcn.140057d90
vmovsd xmm0, qword [rsp + 0x60]
vmovaps xmmword [rsp + 0x170], xmm0
xor ecx, ecx
xor edx, edx
call fcn.140047d70
mov al, 1
mov qword [rsp + 0x1a0], rax
jmp 0x140053dfa
vmovshdup xmm0, xmm15
vucomiss xmm0, xmm13
setne al
vucomiss xmm0, xmm7
setne cl
or cl, byte [rsp + 0x14c]
and cl, al
vucomiss xmm15, xmm13
sete al
vcmpeqps xmm10, xmm15, xmmword [0x140121e30]
vmovaps xmm0, xmmword [rsp + 0x1d0]
vblendvps xmm0, xmm0, xmm9, xmm10
vfmsub132ps xmm11, xmm6, xmmword [rsp + 0x1f0]
vfmadd213ps xmm11, xmm15, xmm6
vmovsd xmm1, qword [r8 + 0xe08]
vmovsd xmm2, qword [r8 + 0x3f6c]
vsubps xmm1, xmm1, xmm2
vaddps xmm1, xmm11, xmm1
vmovd xmm2, eax
vpinsrb xmm2, xmm2, ecx, 4
vpslld xmm2, xmm2, 0x1f
vmovaps xmm3, xmmword [rsp + 0x190]
vblendvps xmm2, xmm3, xmmword [rsp + 0x1e0], xmm2
vcmpltps xmm3, xmm1, xmm2
vminps xmm0, xmm0, xmm1
vblendvps xmm0, xmm0, xmm2, xmm3
vmovsd xmm1, qword [rdi + 0x20]
vmovsd xmm2, qword [rdi + 0x28]
vsubps xmm6, xmm1, xmm0
vfmadd213ps xmm6, xmm15, xmm0
vaddps xmm1, xmm2, xmm1
vsubps xmm0, xmm0, xmm1
vsubps xmm11, xmm1, xmm6
vfmadd231ps xmm11, xmm15, xmm0
vmovlps qword [rsp + 0x60], xmm11
lea rcx, [rsp + 0x150]
mov rdx, rdi
lea r8, [rsp + 0x60]
call fcn.140057d90
vmovsd xmm0, qword [rsp + 0x150]
vmovaps xmmword [rsp + 0x170], xmm0
vsubps xmm0, xmm11, xmm0
vbroadcastss xmm1, dword [0x140121de8]
vblendvps xmm0, xmm1, xmm0, xmm10
vaddps xmm10, xmm0, xmm6
movzx eax, byte [rsp + 0xa8]
movzx ecx, byte [rsp + 0x90]
test r13, r13
je 0x140053a44
test al, al
jne 0x140053a44
test cl, cl
je 0x140053b20
jmp 0x140053a44
cmp byte [rsp + 0x7f], 0
je 0x14005423c
vmovaps xmm0, xmmword [rsp + 0x180]
vblendps xmm12, xmm0, xmmword [0x140125fc0], 0xe
vblendps xmm13, xmm0, xmmword [0x140125fd0], 0xe
mov dword [rsp + 0x190], 0xffffffff
lea r12, [0x140126de0]
xor r13d, r13d
vxorps xmm15, xmm15, xmm15
lea rbx, [rsp + 0xb0]
vmovss xmm14, dword [0x140121550]
vmovss xmm7, dword [rsp + 0x140]
jmp 0x140053f9a
vinsertps xmm0, xmm1, xmm0, 0x10
xor ecx, ecx
cmp r13, 2
setae cl
mov rdx, qword [rdi + 0x20]
mov qword [rsp + 0x90], rdx
vaddss xmm1, xmm14, dword [r9 + rcx*4 + 0xe08]
sete r8b
vsubss xmm1, xmm1, dword [r9 + rcx*4 + 0x3f6c]
vmovss dword [rsp + rcx*4 + 0x90], xmm1
vmovd xmm1, eax
vpinsrb xmm1, xmm1, r8d, 4
vpslld xmm1, xmm1, 0x1f
vbroadcastss xmm2, dword [0x140125e10]
vblendvps xmm1, xmm2, xmm9, xmm1
vmovsd xmm2, qword [rsp + 0x90]
vcmpltps xmm3, xmm2, xmm0
vminps xmm1, xmm1, xmm2
vblendvps xmm0, xmm1, xmm0, xmm3
vmovq xmm1, rdx
vmovsd xmm2, qword [r12 - 8]
vmovsd xmm3, qword [r12]
vminps xmm6, xmm2, xmm3
vsubps xmm10, xmm1, xmm0
vfmadd213ps xmm10, xmm6, xmm0
vmovsd xmm2, qword [rdi + 0x28]
vaddps xmm1, xmm2, xmm1
vsubps xmm0, xmm0, xmm1
vsubps xmm11, xmm1, xmm10
vfmadd231ps xmm11, xmm6, xmm0
vmovlps qword [rsp + 0x60], xmm11
lea rcx, [rsp + 0x150]
mov rdx, rdi
lea r8, [rsp + 0x60]
call fcn.140057d90
mov r9, qword [rsp + 0x48]
vcmpeqps xmm0, xmm15, xmm6
vmovsd xmm1, qword [rsp + 0x150]
vmovaps xmmword [rsp + 0x170], xmm1
vsubps xmm1, xmm11, xmm1
vbroadcastss xmm2, dword [0x140121de8]
vblendvps xmm0, xmm2, xmm1, xmm0
vaddps xmm10, xmm10, xmm0
mov eax, r13d
mov dword [rsp + 0x190], r13d
inc r13
add r12, 0x1c
cmp r13, 4
je 0x140054255
cmp r13d, 3
ja case.default.0x140053fc5
vmovss xmm0, dword [rdi + 0x20]
vmovss xmm1, dword [rdi + 0x24]
vaddss xmm3, xmm1, dword [rdi + 0x2c]
vaddss xmm2, xmm0, dword [rdi + 0x28]
mov eax, r13d
lea rcx, [0x14005457c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
vsubss xmm2, xmm3, dword [rsp + 0x180]
vinsertps xmm1, xmm1, xmm0, 0x10
vaddps xmm1, xmm12, xmm1
vaddss xmm0, xmm0, dword [0x140125eb8]
vmovss dword [rsp + 0xb0], xmm0
vmovlps qword [rsp + 0xb4], xmm1
vmovss dword [rsp + 0xbc], xmm2
jmp 0x1400540ae
vmovaps xmmword [rsp + 0xb0], xmm15
jmp 0x1400540ae
vsubss xmm0, xmm3, dword [rsp + 0x180]
vinsertps xmm1, xmm1, xmm2, 0x10
vaddps xmm1, xmm12, xmm1
vaddss xmm2, xmm2, dword [0x140125eb8]
vmovss dword [rsp + 0xb0], xmm2
vmovlps qword [rsp + 0xb4], xmm1
vmovss dword [rsp + 0xbc], xmm0
jmp 0x1400540ae
vaddss xmm3, xmm14, xmm1
vsubss xmm2, xmm2, dword [rsp + 0x180]
vinsertps xmm0, xmm0, xmm1, 0x10
vaddps xmm0, xmm13, xmm0
vmovlps qword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0xb8], xmm2
vmovss dword [rsp + 0xbc], xmm3
jmp 0x1400540ae
vaddss xmm1, xmm14, xmm3
vsubss xmm2, xmm2, dword [rsp + 0x180]
vinsertps xmm0, xmm0, xmm3, 0x10
vaddps xmm0, xmm13, xmm0
vmovlps qword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0xb8], xmm2
vmovss dword [rsp + 0xbc], xmm1
lea r8, [r13 + 4]
mov ecx, r8d
shr ecx, 8
mov eax, r8d
shr eax, 0x10
mov rdx, qword [rdi + 0xf8]
movsxd r9, dword [rdi + 0xf0]
mov edx, dword [rdx + r9*4 - 4]
not edx
mov r9d, edx
shr r9d, 8
xor edx, r8d
mov r10d, r8d
shr r10d, 0x18
movzx edx, dl
lea r11, [0x1401260e0]
xor r9d, dword [r11 + rdx*4]
mov edx, r9d
shr edx, 8
xor r9d, ecx
movzx ecx, r9b
xor edx, dword [r11 + rcx*4]
mov r15d, edx
shr r15d, 8
xor edx, eax
movzx eax, dl
xor r15d, dword [r11 + rax*4]
movzx eax, r15b
shr r15d, 8
xor eax, r10d
xor r15d, dword [r11 + rax*4]
mov rax, qword [rdi]
not r15d
cmp dword [rax + 0x3f40], r15d
jne 0x140054141
mov ecx, r15d
mov edx, 4
xor r9d, r9d
call fcn.1400475b0
mov rcx, rbx
mov edx, r15d
xor r8d, r8d
mov r9d, 8
call fcn.140056dc0
mov dword [rsp + 0x20], 0x40800
mov rcx, rbx
mov edx, r15d
lea r8, [rsp + 0xa8]
lea r9, [rsp + 0xa0]
call fcn.14007e0c0
cmp byte [rsp + 0xa8], 0
je 0x1400541c6
mov r9, qword [rsp + 0x48]
vmovss xmm0, dword [0x140125fe0]
vucomiss xmm0, dword [r9 + 0x3f50]
movzx eax, byte [rsp + 0xa0]
jb 0x1400541aa
test al, al
je 0x140053f89
cmp r13, 2
mov ecx, 0
adc ecx, 3
mov dword [r9 + 0x4a98], ecx
test al, al
jne 0x1400541ec
jmp 0x140053f89
cmp byte [rsp + 0xa0], 0
mov r9, qword [rsp + 0x48]
je 0x140053f89
cmp r13, 2
mov eax, 0
adc eax, 3
mov dword [r9 + 0x4a98], eax
cmp r13d, 3
je 0x140054212
vmovss xmm0, dword [0x140125e50]
cmp r13d, 2
jne 0x14005421b
vmovss xmm0, dword [0x140125e50]
test byte [rsp + 0x14c], 1
jne 0x14005421b
vmovaps xmm0, xmmword [rsp + 0x1b0]
test r13, r13
sete al
vmovaps xmm1, xmm8
cmp r13, 1
je 0x140053e88
vmovss xmm1, dword [0x140125e50]
jmp 0x140053e88
mov dword [rsp + 0x190], 0xffffffff
mov r9, qword [rsp + 0x48]
vmovss xmm7, dword [rsp + 0x140]
vmovaps xmm9, xmm10
mov rax, qword [0x140221790]
mov rcx, qword [rax + 0x3ef8]
dec dword [rcx + 0xf0]
mov dword [rdi + 0x158], 0
mov rcx, qword [r9 + 0x4a60]
test rcx, rcx
je 0x140054311
cmp qword [rcx + 0x378], rdi
mov r12, qword [rsp + 0x40]
vmovss xmm13, dword [rsp + 0x148]
vmovss xmm14, dword [rsp + 0xf8]
mov ebx, dword [rsp + 0x110]
vmovss xmm10, dword [rsp + 0x144]
movzx r15d, byte [rsp + 0x57]
jne 0x140054496
mov ecx, dword [r9 + 0x490c]
cmp ecx, 3
je 0x140054343
vxorps xmm0, xmm0, xmm0
cmp ecx, 2
vmovaps xmm3, xmmword [rsp + 0x1b0]
jne 0x140054377
cmp byte [r9 + 0xe25], 0
je 0x140054377
vmovss xmm0, dword [rax + 0x2e78]
lea rcx, [rax + 0x2e58]
vsubss xmm0, xmm0, dword [rax + 0x2e68]
add rax, 0x2e48
jmp 0x140054369
mov r12, qword [rsp + 0x40]
vmovss xmm13, dword [rsp + 0x148]
vmovss xmm14, dword [rsp + 0xf8]
mov ebx, dword [rsp + 0x110]
vmovss xmm10, dword [rsp + 0x144]
movzx r15d, byte [rsp + 0x57]
jmp 0x140054496
vmovss xmm0, dword [rax + 0x3558]
lea rcx, [rax + 0x3538]
vsubss xmm0, xmm0, dword [rax + 0x3548]
add rax, 0x3528
vmovaps xmm3, xmmword [rsp + 0x1b0]
vmovss xmm1, dword [rcx]
vsubss xmm1, xmm1, dword [rax]
vinsertps xmm0, xmm1, xmm0, 0x10
vxorps xmm1, xmm1, xmm1
vmovshdup xmm2, xmm0
vcmpneqps xmm2, xmm2, xmm1
vcmpneqps xmm1, xmm0, xmm1
vorps xmm1, xmm1, xmm2
vmovd eax, xmm1
test al, 1
je 0x140054496
vmovss xmm1, dword [r9 + 0x18]
vmovss xmm2, dword [r9 + 0x70]
vmulss xmm1, xmm1, dword [0x140125fe4]
vminss xmm2, xmm2, dword [r9 + 0x74]
vmulss xmm1, xmm1, xmm2
vbroadcastss xmm1, xmm1
vmovsd xmm2, qword [r9 + 0x4a8c]
vfmadd213ps xmm0, xmm1, xmm2
vmovlps qword [r9 + 0x4a8c], xmm0
vmovsd xmm1, qword [rdi + 0x20]
vmovsd xmm2, qword [rdi + 0x28]
vaddps xmm1, xmm1, xmm2
vinsertps xmm2, xmm8, xmm3, 0x10
vsubps xmm1, xmm2, xmm1
vmaxps xmm0, xmm0, xmm1
vmovlps qword [r9 + 0x4a8c], xmm0
mov byte [r9 + 0x4a80], 0
mov byte [r9 + 0x4917], 1
vmovss xmm1, dword [0x140120e00]
mov ecx, 0x20
call fcn.140041ae0
mov r9, qword [rsp + 0x48]
mov dword [rsp + 0x1c0], eax
vmovsd xmm0, qword [r9 + 0x4a8c]
vcvttps2dq xmm0, xmm0
vpextrd eax, xmm0, 1
vmovd ecx, xmm0
or ecx, eax
vmovaps xmm1, xmmword [rsp + 0x170]
je 0x14005449f
vcvtdq2ps xmm6, xmm0
vmovsd xmm0, qword [rdi + 0x30]
vaddps xmm0, xmm0, xmm6
vmovlps qword [rsp + 0x60], xmm0
lea rcx, [rsp + 0xb0]
lea r8, [rsp + 0x60]
mov rdx, rdi
mov r13, r9
call fcn.140057d90
vmovsd xmm1, qword [rsp + 0xb0]
vmovsd xmm0, qword [r13 + 0x4a8c]
vsubps xmm0, xmm0, xmm6
vmovlps qword [r13 + 0x4a8c], xmm0
jmp 0x14005449f
vmovaps xmm1, xmmword [rsp + 0x170]
vucomiss xmm1, dword [0x140125e10]
je 0x1400544d6
vmovlps qword [rdi + 0x30], xmm1
test byte [rdi + 0x15], 1
jne 0x1400544d6
mov rax, qword [0x140221790]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x1400544d6
vmovss xmm0, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm0
vucomiss xmm9, dword [0x140125e10]
je 0x140054523
vmovshdup xmm0, xmm9
vroundss xmm0, xmm0, xmm0, 0xb
vroundss xmm1, xmm9, xmm9, 0xb
vmovss dword [rdi + 0x20], xmm1
vmovss dword [rdi + 0x24], xmm0
test byte [rdi + 0x15], 1
jne 0x140054523
mov rax, qword [0x140221790]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x140054523
vmovss xmm0, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm0
mov rax, qword [rdi + 0x30]
test byte [rsp + 0x1a0], 1
movzx ebx, bl
mov ecx, 1
cmovne ebx, ecx
mov qword [rdi + 0x28], rax
mov eax, dword [rsp + 0x5c]
movzx eax, al
cmovne eax, ecx
lea rcx, [rdi + 0xc1]
mov qword [rsp + 0x100], rcx
mov ecx, dword [rsp + 0x190]
mov byte [rdi + 0xc1], cl
cmp byte [rdi + 0xb9], 0
jne 0x140051439
mov dword [rsp + 0x5c], eax
jmp 0x1400511d8