Function at 0x14004fbf0
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, 0x2e8
vmovaps xmmword [rsp + 0x2d0], xmm15
vmovaps xmmword [rsp + 0x2c0], xmm14
vmovaps xmmword [rsp + 0x2b0], xmm13
vmovaps xmmword [rsp + 0x2a0], xmm12
vmovaps xmmword [rsp + 0x290], xmm11
vmovaps xmmword [rsp + 0x280], xmm10
vmovaps xmmword [rsp + 0x270], xmm9
vmovaps xmmword [rsp + 0x260], xmm8
vmovaps xmmword [rsp + 0x250], xmm7
vmovaps xmmword [rsp + 0x240], xmm6
mov ebp, r8d
mov qword [rsp + 0x160], rdx
mov r14, rcx
mov rbx, qword [0x14021e770]
movzx r9d, byte [rcx]
test r9b, r9b
je 0x14004fcdd
lea rcx, [r14 + 2]
mov edx, 0xffffffff
lea r8, [0x1401236b0]
mov eax, 0xffffffff
jmp 0x14004fcbd
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 0x14004fcd9
movzx r10d, byte [rcx - 1]
cmp r9b, 0x23
jne 0x14004fca0
cmp r10b, 0x23
jne 0x14004fca0
cmp byte [rcx], 0x23
cmove eax, edx
mov r10b, 0x23
jmp 0x14004fca0
not eax
jmp 0x14004fcdf
xor eax, eax
mov rcx, qword [rbx + 0x3ee0]
movsxd r8, dword [rbx + 0x3ed8]
test r8, r8
je 0x14004fd27
mov rdx, rcx
mov r10, r8
mov r9, r8
jmp 0x14004fd08
mov r10, r9
test r9, r9
je 0x14004fd2d
shr r9, 1
mov r11, r9
shl r11, 4
cmp dword [rdx + r11], eax
jae 0x14004fd00
not r9
add r9, r10
add rdx, r11
add rdx, 0x10
jmp 0x14004fd00
xor r8d, r8d
mov rdx, rcx
shl r8, 4
add rcx, r8
cmp rdx, rcx
je 0x14004fd54
cmp dword [rdx], eax
jne 0x14004fd54
mov rdi, qword [rdx + 8]
xor ecx, ecx
mov dword [rsp + 0x7c], 0
test rdi, rdi
jne 0x14004ff2f
lea r15, [rbx + 0x3ed8]
test rbx, rbx
je 0x14004fd66
inc dword [rbx + 0xf4]
mov rdx, qword [0x14021e780]
mov ecx, 0x3e8
call qword [0x1402004d8]
mov rdi, rax
mov rcx, rax
mov rdx, rbx
mov r8, r14
call fcn.140047030
mov qword [rsp + 0xc0], rdi
mov dword [rdi + 0x14], ebp
mov edx, dword [rdi + 0x10]
mov rcx, r15
mov r8, rdi
call fcn.140040990
test ebp, 0x100
jne 0x14004fe23
movsxd rax, dword [rdi + 0x294]
cmp rax, 0xffffffffffffffff
je 0x14004fddf
mov rcx, qword [0x14021e770]
mov rdx, qword [rcx + 0x5c38]
test rdx, rdx
je 0x14004fe23
add rdx, rax
mov eax, dword [rbx + 0x5c38]
mov ecx, edx
sub ecx, eax
mov dword [rdi + 0x294], ecx
jmp 0x14004fe25
mov rax, qword [0x14021e770]
mov rcx, qword [rax + 0x5c38]
test rcx, rcx
je 0x14004fe23
mov r8d, dword [rdi + 0x10]
add rcx, 4
mov rdx, rcx
jmp 0x14004fe16
movsxd r9, dword [rdx - 4]
add rdx, r9
movsxd r9, dword [rax + 0x5c30]
add r9, rcx
cmp rdx, r9
je 0x14004fe23
cmp dword [rdx], r8d
jne 0x14004fe00
cmp byte [rdx + 0xe], 0
jne 0x14004fe00
jmp 0x14004fdcd
xor edx, edx
mov rcx, rdi
call fcn.14005e880
test ebp, 0x2000
jne 0x14004fe5b
mov eax, dword [rbx + 0x3e98]
cmp eax, dword [rbx + 0x3e9c]
jne 0x14004ff0c
lea esi, [rax + 1]
test eax, eax
je 0x14004fe74
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14004fe79
lea rcx, [rbx + 0x3e98]
lea rdx, [rsp + 0xc0]
call fcn.14005f580
jmp 0x14004ff1f
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x14004ff0c
movsxd rcx, esi
shl rcx, 3
mov rax, qword [0x14021e770]
test rax, rax
je 0x14004fe9f
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rbx + 0x3ea0]
test rdx, rdx
je 0x14004fef9
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 0x14004feec
mov rax, qword [0x14021e770]
test rax, rax
je 0x14004feec
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
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 + 0xc0]
mov cl, 1
mov al, 1
mov dword [rsp + 0x7c], 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 0x14004ff58
xor eax, eax
jmp 0x14004ff5f
movzx eax, byte [rbx + 0x3e5d]
mov r10d, dword [rdi + 0x260]
mov byte [rdi + 0xbe], al
lea eax, [r9 - 1]
test esi, 0x4000000
jne 0x14004ffa0
lea rcx, [rdi + 0xbc]
mov qword [rsp + 0x90], rcx
cmp r10d, eax
setl byte [rdi + 0xbc]
jl 0x14004ffed
mov dword [rsp + 0x8c], 0
jmp 0x140050000
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 + 0x90], rax
mov byte [rdi + 0xbc], cl
test cl, cl
je 0x14004ff93
or dword [rdi + 0xdc], 0x80808
mov al, 1
mov dword [rsp + 0x8c], eax
cmp r10d, r9d
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x110], r9
mov dword [rsp + 0x80], r10d
jne 0x140050022
mov esi, dword [rdi + 0x14]
jmp 0x140050262
mov r12, qword [0x14021e770]
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 0x14005008f
mov edx, dword [rsp + 0x7c]
xor dl, 1
and cl, dl
jne 0x14005008f
mov ebp, esi
mov eax, dword [r12 + 0x3ea8]
cmp eax, dword [r12 + 0x3eac]
jne 0x1400501f0
lea esi, [rax + 1]
test eax, eax
je 0x14005014a
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14005014f
mov ecx, ebx
xor cl, 1
or cl, byte [rsp + 0x7c]
jne 0x14005021a
cmp al, bl
je 0x14005021a
movsx eax, word [rdi + 0xca]
lea edx, [rax + 1]
mov ecx, dword [r12 + 0x3ea8]
cmp edx, ecx
jge 0x1400500fa
cdqe
inc rax
nop word cs:[rax + rax]
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 0x1400500d0
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 + 0x110]
mov r10d, dword [rsp + 0x80]
jmp 0x14005021a
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x1400501f0
movsxd rcx, esi
shl rcx, 3
inc dword [r12 + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [r12 + 0x3eb0]
test rdx, rdx
je 0x1400501c8
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 0x1400501bb
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400501bb
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov qword [r12 + 0x3eb0], r15
mov dword [r12 + 0x3eac], esi
mov eax, dword [r12 + 0x3ea8]
mov r9, qword [rsp + 0x110]
mov r10d, dword [rsp + 0x80]
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 0x14005028c
mov rcx, qword [rbx + 0x3ed0]
imul rdx, rax, 0x58
mov rcx, qword [rdx + rcx - 0x58]
cmp r10d, r9d
jne 0x140050293
mov r12, qword [rdi + 0x368]
jmp 0x1400502a0
xor ecx, ecx
cmp r10d, r9d
je 0x140050283
xor r12d, r12d
test esi, 0x5000000
cmovne r12, rcx
mov qword [rsp + 0x48], rcx
cmp dword [rdi + 0xf0], 0
jne 0x140050376
cmp dword [rdi + 0xf4], 0
je 0x1400502c9
mov r15, qword [rdi + 0xf8]
xor eax, eax
jmp 0x140050361
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400502db
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
mov ecx, 0x20
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rdi + 0xf8]
test rdx, rdx
je 0x14005033a
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 0x14005032d
mov rax, qword [0x14021e770]
test rax, rax
je 0x14005032d
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov qword [rdi + 0xf8], r15
mov dword [rdi + 0xf4], 8
mov eax, dword [rdi + 0xf0]
mov r9, qword [rsp + 0x110]
mov r10d, dword [rsp + 0x80]
cdqe
mov ecx, dword [rdi + 0x10]
mov dword [r15 + rax*4], ecx
inc dword [rdi + 0xf0]
mov eax, dword [rbx + 0x3ec8]
mov qword [rsp + 0x98], r12
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x120], r14
mov qword [rbx + 0x3ef8], rdi
vmovups ymm0, ymmword [rbx + 0x4794]
vmovups ymm1, ymmword [rbx + 0x47b0]
vmovups ymmword [rsp + 0x21c], ymm1
vmovups ymmword [rsp + 0x200], 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 + 0x88], cx
movzx ecx, word [rbx + 0x5bc0]
mov word [rsp + 0x158], cx
cmp eax, dword [rbx + 0x3ecc]
jne 0x14005050e
lea esi, [rax + 1]
test eax, eax
je 0x140050428
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x14005042d
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x14005050e
mov word [rsp + 0x104], r11w
mov word [rsp + 0x108], r8w
movsxd rax, esi
imul rcx, rax, 0x58
mov rax, qword [0x14021e770]
test rax, rax
je 0x140050465
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
vzeroupper
call qword [0x1402004d8]
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rbx + 0x3ed0]
test rdx, rdx
je 0x1400504d9
movsxd rcx, dword [rbx + 0x3ec8]
imul r8, rcx, 0x58
mov qword [rsp + 0x118], rax
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x3ed0]
test rcx, rcx
je 0x1400504bf
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400504bf
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov rbx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x118]
mov qword [rbx + 0x3ed0], rax
mov dword [rbx + 0x3ecc], esi
mov eax, dword [rbx + 0x3ec8]
mov r9, qword [rsp + 0x110]
mov r10d, dword [rsp + 0x80]
movzx r8d, word [rsp + 0x108]
movzx r11d, word [rsp + 0x104]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rdx + 0x3ed0]
cdqe
imul rax, rax, 0x58
mov qword [rcx + rax], rdi
vmovups ymm0, ymmword [rsp + 0x200]
vmovups ymm1, ymmword [rsp + 0x21c]
vmovups 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 + 0x88]
mov word [rcx + rax + 0x52], dx
movzx edx, word [rsp + 0x158]
mov word [rcx + rax + 0x54], dx
inc dword [r12 + 0x3ec8]
mov esi, dword [rsp + 0x58]
test esi, 0x10000000
je 0x1400505a4
inc dword [r12 + 0x48c0]
cmp r10d, r9d
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x48]
jne 0x1400505c5
mov r13d, esi
and r13d, 0x4000000
jmp 0x14005067b
mov qword [rdi + 0x368], rcx
mov qword [rdi + 0x390], rdi
mov qword [rdi + 0x388], rdi
mov qword [rdi + 0x380], rdi
mov qword [rdi + 0x378], rdi
mov eax, esi
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x140050609
test rcx, rcx
je 0x140050609
mov rax, qword [rcx + 0x378]
mov qword [rdi + 0x378], rax
mov r13d, esi
and r13d, 0x4000000
je 0x140050628
test rcx, rcx
je 0x140050628
mov rax, qword [rcx + 0x380]
mov qword [rdi + 0x380], rax
test esi, 0x8000000
jne 0x14005064c
mov eax, esi
and eax, 0x5000000
je 0x14005064c
test rcx, rcx
je 0x14005064c
mov rax, qword [rcx + 0x388]
mov qword [rdi + 0x388], rax
test byte [rdi + 0x16], 0x80
je 0x140050674
mov rax, rdi
nop word cs:[rax + rax]
mov rax, qword [rax + 0x368]
mov qword [rdi + 0x390], rax
test byte [rax + 0x16], 0x80
jne 0x140050660
mov qword [rdi + 0x370], rbx
mov ecx, dword [rdi + 0x10]
vzeroupper
call fcn.140058490
mov eax, dword [r12 + 0x4774]
mov dword [rdi + 0x3d8], eax
mov qword [r12 + 0x3ef8], 0
test r13d, r13d
je 0x1400507d0
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 0x14005079a
lea ebx, [rax + 1]
test eax, eax
je 0x1400506fa
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1400506ff
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x14005079a
movsxd rax, ebx
imul rcx, rax, 0x38
mov rax, qword [0x14021e770]
test rax, rax
je 0x140050725
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [r12 + 0x48b8]
test rdx, rdx
je 0x140050782
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 0x140050775
mov rax, qword [0x14021e770]
test rax, rax
je 0x140050775
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
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
vmovups ymm0, ymmword [rsi]
vmovups ymm1, ymmword [rsi + 0x18]
vmovups ymmword [rcx + rax + 0x18], ymm1
vmovups 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 0x1400507e5
mov dword [rsp + 0x48], 0
jmp 0x140050864
mov eax, dword [rdi + 0xdc]
movsx ecx, al
mov r8d, dword [r12 + 0x47d4]
test ecx, r8d
setne cl
je 0x14005084d
vmovsd xmm0, qword [r12 + 0x47e8]
vmulps xmm0, xmm0, xmm0
vmovshdup xmm1, xmm0
vaddss xmm0, xmm1, xmm0
vucomiss xmm0, dword [0x1401234c4]
jbe 0x14005084d
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 0x140050864
mov dword [rsp + 0x48], ecx
lea rdx, [r12 + 0x47e0]
mov rcx, rdi
vzeroupper
call fcn.140049380
test byte [r12 + 0x47d0], 2
mov r10, qword [rsp + 0x110]
jne 0x140050880
xor ebx, ebx
xor ebp, ebp
jmp 0x14005099f
mov eax, dword [rdi + 0xdc]
mov ecx, eax
shr ecx, 8
movsx edx, cl
mov ecx, dword [r12 + 0x47d8]
test edx, ecx
je 0x140050990
vxorps 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 0x14005091d
vroundss xmm2, xmm2, xmm2, 0xb
vmovss dword [rdi + 0x30], xmm2
jmp 0x140050928
mov byte [rdi + 0xd3], 0
vmovaps xmm2, xmm1
vmovss xmm3, dword [r12 + 0x47f4]
vxorps xmm4, xmm4, xmm4
vucomiss xmm4, xmm3
jae 0x14005094f
vroundss xmm3, xmm3, xmm3, 0xb
vmovss dword [rdi + 0x34], xmm3
vucomiss xmm1, xmm2
je 0x140050960
jmp 0x140050966
mov byte [rdi + 0xd3], 0
vmovaps xmm3, xmm0
vucomiss xmm1, xmm2
jne 0x140050966
vucomiss xmm0, xmm3
je 0x14005099f
test byte [rdi + 0x15], 1
jne 0x14005099f
mov rax, qword [0x14021e770]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x14005099f
vmovss xmm0, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm0
jmp 0x14005099f
xor ebx, ebx
mov ebp, 0
test ecx, ecx
je 0x1400508bd
test byte [r12 + 0x47d0], 0x80
je 0x1400509f2
vmovss xmm1, dword [r12 + 0x4800]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm1
ja 0x1400509d0
vmovss dword [rdi + 0x94], xmm1
mov dword [rdi + 0x9c], 0
vmovss xmm1, dword [r12 + 0x4804]
vucomiss xmm0, xmm1
ja 0x1400509f2
vmovss dword [rdi + 0x98], xmm1
mov dword [rdi + 0xa0], 0
test byte [r12 + 0x47d0], 4
jne 0x140050a11
cmp dword [rsp + 0x80], r10d
je 0x140050a1d
mov qword [rdi + 0x48], 0
jmp 0x140050a1d
mov rax, qword [r12 + 0x47f8]
mov qword [rdi + 0x48], rax
mov eax, dword [r12 + 0x47d0]
test al, 8
je 0x140050a6f
mov r8d, dword [r12 + 0x47dc]
movzx ecx, byte [r12 + 0x4808]
mov edx, dword [rdi + 0xdc]
test r8d, r8d
je 0x140050a55
mov r9d, edx
shr r9d, 0x10
movsx r9d, r9b
test r9d, r8d
je 0x140050a6f
and edx, 0xfff1ffff
mov dword [rdi + 0xdc], edx
mov byte [rdi + 0xb9], cl
mov eax, dword [r12 + 0x47d0]
test al, 0x20
je 0x140050a88
mov rcx, rdi
xor edx, edx
vzeroupper
call fcn.140048d70
mov r10, qword [rsp + 0x110]
mov rax, qword [rsp + 0x90]
cmp byte [rax], 0
je 0x140050a9f
and dword [rdi + 0xdc], 0xfff7f7f7
cmp dword [rsp + 0x80], r10d
jne 0x140050adb
mov r14, qword [0x14021e770]
mov qword [r14 + 0x3ef8], rdi
movsxd rax, dword [rdi + 0x1b0]
cmp rax, 0xffffffffffffffff
je 0x140050db7
imul rax, rax, 0x238
add rax, qword [r14 + 0x4b80]
jmp 0x140050db9
movzx eax, byte [rdi + 0xd9]
mov byte [rsp + 0x88], al
mov byte [rdi + 0xb6], 1
cmp qword [rsp + 0x160], 0
setne byte [rdi + 0xc0]
vmovaps xmm0, xmmword [0x1401234d0]
vmovups xmmword [rdi + 0x238], xmm0
mov eax, dword [rdi + 0xf4]
test eax, eax
jg 0x140050bc5
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 [0x14021e770]
test rax, rax
je 0x140050b57
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
vzeroupper
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rdi + 0xf8]
test rdx, rdx
je 0x140050bb4
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 0x140050ba7
mov rax, qword [0x14021e770]
test rax, rax
je 0x140050ba7
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
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.140061200
mov dword [rdi + 0x1b0], 0xffffffff
cmp byte [rdi + 0x3e4], 0
je 0x140050bf9
mov rcx, rdi
call fcn.140048260
cmp qword [r12 + 0x4a70], 0
je 0x140050cc0
movzx eax, byte [rdi + 0x16]
and al, 8
shr al, 3
or al, byte [rsp + 0x7c]
jne 0x140050cc0
mov r15, qword [rdi + 8]
mov rcx, qword [rsp + 0x120]
mov rdx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x140050cc0
movsxd rsi, dword [rdi + 0x78]
mov rcx, qword [rsp + 0x120]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov r12, rax
inc r12
cmp r12, rsi
jbe 0x140050ca2
test r15, r15
je 0x140050c6a
mov rax, qword [0x14021e770]
test rax, rax
je 0x140050c6a
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
mov rcx, r15
call qword [0x1402004e0]
mov rax, qword [0x14021e770]
test rax, rax
je 0x140050c8c
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
mov rcx, r12
call qword [0x1402004d8]
mov r15, rax
mov rsi, r12
mov rcx, r15
mov rdx, qword [rsp + 0x120]
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 + 0x158], rdx
mov r8, r12
call fcn.140057ff0
movzx eax, byte [rdi + 0xd8]
test al, al
jle 0x140050cee
dec al
mov byte [rdi + 0xd8], al
movzx eax, byte [rdi + 0xd9]
test al, al
jle 0x140050d01
dec al
mov byte [rdi + 0xd9], al
movzx eax, byte [rdi + 0xda]
test al, al
jle 0x140050d14
dec al
mov byte [rdi + 0xda], al
cmp byte [rsp + 0x7c], 0
je 0x140050d28
mov eax, ebp
and al, bl
jne 0x140050d28
mov byte [rdi + 0xd9], 1
test esi, 0x6000000
setne al
and al, byte [rsp + 0x8c]
cmp al, 1
jne 0x140050d7e
mov byte [rdi + 0xd9], 1
test sil, 0x40
je 0x140050d7e
test bpl, bpl
jne 0x140050d5c
mov dword [rdi + 0x30], 0
mov dword [rdi + 0x28], 0
test bl, bl
jne 0x140050d6e
mov dword [rdi + 0x34], 0
mov dword [rdi + 0x2c], 0
vxorps xmm0, xmm0, xmm0
mov rax, qword [rsp + 0x158]
vmovups xmmword [rax], xmm0
mov r14, qword [0x14021e770]
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 0x140050e0a
imul rax, rax, 0x238
add rax, qword [r14 + 0x4b80]
jmp 0x140050e0c
xor eax, eax
mov rbp, qword [rsp + 0x98]
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 0x140050def
vmulss xmm0, xmm0, dword [rcx + 0x290]
vmovss dword [r14 + 0x3c38], xmm0
vmovss dword [r14 + 0x3c20], xmm0
test rax, rax
je 0x140050e55
xor eax, eax
jmp 0x140050e60
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 0x140050e3a
vmulss xmm0, xmm0, dword [rcx + 0x290]
vmovss dword [r14 + 0x3c38], xmm0
vmovss dword [r14 + 0x3c20], xmm0
test rax, rax
je 0x140050e6b
xor eax, eax
jmp 0x140050e76
cmp qword [rdi + 0x1a8], 0
sete al
mov byte [rdi + 0x160], al
jmp 0x140053b18
cmp qword [rdi + 0x1a8], 0
sete al
mov byte [rdi + 0x160], al
test esi, 0x1000000
jne 0x140050ec2
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 0x140050f1a
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 0x140050f1a
vxorps xmm1, xmm1, xmm1
vucomiss xmm2, xmm1
jne 0x140050f1a
test esi, 0x400
je 0x140050f0a
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 0x140050f64
mov byte [rdi + 0xb9], 0
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x90], eax
jmp 0x14005109b
vmovss xmm0, dword [rdi + 0x24]
mov esi, dword [rdi + 0x14]
vxorps xmm1, xmm1, xmm1
test sil, 1
jne 0x140050fad
mov rax, qword [rdi]
vmovss xmm1, dword [rdi + 0x290]
vmulss xmm1, xmm1, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140050f9d
vmulss xmm1, xmm1, dword [rcx + 0x290]
vmovss xmm2, dword [rax + 0x3810]
vaddss xmm1, xmm2, xmm1
vaddss xmm1, xmm2, xmm1
vaddss xmm0, xmm1, xmm0
vmovss xmm1, dword [rdi + 0x30]
vaddss xmm1, xmm1, dword [rdi + 0x20]
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0xc0], rax
vmovss dword [rsp + 0xc8], xmm1
vmovss dword [rsp + 0xcc], xmm0
mov rax, qword [rsp + 0x40]
cmp qword [rax + 0x3f00], rdi
jne 0x140051035
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x3f44], 0
jne 0x140051035
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x3f48], 0
jne 0x140051035
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0xc0]
mov r8b, 1
call fcn.1400489c0
test al, al
je 0x140051035
mov rax, qword [rsp + 0x40]
cmp word [rax + 0x3752], 2
jne 0x140051035
mov byte [rdi + 0xba], 1
cmp byte [rdi + 0xba], 0
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x90], eax
je 0x140051097
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 + 0x90], ecx
test esi, 0x100
jne 0x140051097
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [r14 + 0x5c0c]
jb 0x140051097
vmovss xmm0, dword [r14 + 0x1c]
vmovss dword [r14 + 0x5c0c], xmm0
mov esi, dword [rsp + 0x58]
mov byte [rdi + 0xba], 0
vmovss xmm6, dword [rdi + 0xac]
vmovss xmm9, 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 0x140051106
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rcx + 0x3c24]
mov rdx, qword [rdi + 0x368]
test rdx, rdx
je 0x1400510f6
vmulss xmm0, xmm0, dword [rdx + 0x290]
vmovss xmm2, dword [rcx + 0x3810]
vaddss xmm0, xmm2, xmm0
vaddss xmm0, xmm2, xmm0
test eax, 0x400
je 0x140051150
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 0x14005113c
vmulss xmm2, xmm2, dword [rcx + 0x290]
vmovss xmm3, dword [rax + 0x3810]
vaddss xmm3, xmm3, xmm3
vaddss xmm1, xmm1, xmm3
vaddss xmm1, xmm2, xmm1
vaddss xmm0, xmm1, xmm0
vmovss dword [rdi + 0x64], xmm0
mov dword [rdi + 0x6c], 0
mov qword [rdi + 0xac], 0
lea rcx, [rsp + 0x128]
mov rdx, rdi
mov r8, r12
call fcn.140058100
test sil, 0x40
je 0x140051191
cmp byte [rdi + 0xb9], 0
je 0x14005124a
cmp byte [rdi + 0xd0], 0
mov r12, qword [rsp + 0x40]
jle 0x1400511d0
test bpl, bpl
mov rbp, qword [rsp + 0x98]
jne 0x1400511e5
cmp byte [rdi + 0xd3], 0
vmovss xmm0, dword [rsp + 0x128]
je 0x1400511c3
vmaxss xmm0, xmm0, dword [rdi + 0x30]
vmovss dword [rdi + 0x30], xmm0
mov al, 1
mov dword [rsp + 0x5c], eax
jmp 0x1400511e5
cmp byte [rdi + 0xd1], 0
mov rbp, qword [rsp + 0x98]
jle 0x14005128b
test bl, bl
jne 0x140051217
cmp byte [rdi + 0xd1], 0
jle 0x140051217
cmp byte [rdi + 0xd3], 0
vmovss xmm0, dword [rsp + 0x12c]
je 0x140051209
vmaxss xmm0, xmm0, dword [rdi + 0x34]
vmovss dword [rdi + 0x34], xmm0
mov al, 1
mov dword [rsp + 0x90], eax
cmp byte [rdi + 0xb9], 0
jne 0x14005128b
test byte [rdi + 0x15], 1
jne 0x14005128b
mov rax, qword [0x14021e770]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x14005128b
vmovss xmm0, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm0
jmp 0x14005128b
test bpl, bpl
mov r12, qword [rsp + 0x40]
jne 0x140051268
vmovss xmm0, dword [rsp + 0x128]
vmovss dword [rdi + 0x30], xmm0
mov al, 1
mov dword [rsp + 0x5c], eax
test bl, bl
mov rbp, qword [rsp + 0x98]
jne 0x14005128b
vmovss xmm0, dword [rsp + 0x12c]
vmovss dword [rdi + 0x34], xmm0
mov al, 1
mov dword [rsp + 0x90], eax
mov ebx, esi
and ebx, 0x1000000
lea r8, [rdi + 0x30]
lea rcx, [rsp + 0xc0]
mov rdx, rdi
call fcn.140058290
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0x30], rax
cmp byte [rdi + 0xb9], 0
je 0x140051308
test ebx, ebx
jne 0x140051308
vxorps xmm0, xmm0, xmm0
test byte [rdi + 0x14], 1
mov r8d, dword [rsp + 0x48]
jne 0x140051318
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rcx + 0x3c24]
mov rdx, qword [rdi + 0x368]
test rdx, rdx
je 0x1400512f6
vmulss xmm0, xmm0, dword [rdx + 0x290]
vmovss xmm1, dword [rcx + 0x3810]
vaddss xmm0, xmm1, xmm0
vaddss xmm0, xmm1, xmm0
jmp 0x140051318
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 + 0x8c], 0
je 0x140051365
mov dword [rdi + 0xd4], 0xffffffff
mov eax, esi
and eax, 0xc000000
cmp eax, 0x4000000
setne al
or al, r8b
jne 0x140051365
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 0x140051487
movzx eax, word [rbp + 0x190]
mov word [rdi + 0xc6], ax
mov eax, dword [rbp + 0x190]
cmp eax, dword [rbp + 0x194]
jne 0x140051451
lea esi, [rax + 1]
test eax, eax
je 0x1400513af
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1400513b4
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x140051451
movsxd rcx, esi
shl rcx, 3
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400513da
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004d8]
mov r12, rax
mov rdx, qword [rbp + 0x198]
test rdx, rdx
je 0x140051434
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 0x140051427
mov rax, qword [0x14021e770]
test rax, rax
je 0x140051427
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
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 0x140051487
cmp r14d, 0x3000000
je 0x140051487
mov rax, qword [rbp + 0x100]
mov qword [rdi + 0x20], rax
vmovss xmm0, dword [rdi + 0xe0]
vmovss xmm1, dword [0x140123310]
vucomiss xmm1, xmm0
movabs rax, 0x7f7fffff7f7fffff
je 0x1400514b4
cmp byte [rdi + 0xd9], 0
je 0x14005176b
test esi, 0x10000000
jne 0x1400514e8
test r13d, r13d
sete al
or al, r8b
jne 0x1400514d1
cmp byte [rsp + 0x88], 0
jg 0x1400514e8
test esi, 0x2000000
sete al
or al, r8b
jne 0x140051509
cmp r14d, 0x3000000
je 0x140051509
lea rcx, [rsp + 0xc0]
mov rdx, rdi
call fcn.140058570
mov r8d, dword [rsp + 0x48]
mov rax, qword [rsp + 0xc0]
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 + 0x1f0], 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 xmm11, xmm2, xmm3
vaddps xmm8, xmm3, xmm1
test r8b, r8b
jne 0x14005160e
test ebx, ebx
jne 0x14005160e
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x14005160e
vmovshdup xmm0, xmm0
vucomiss xmm0, xmm1
jbe 0x14005160e
mov rax, qword [0x14021e770]
vmovss xmm0, dword [rdi + 0x28]
vmovss xmm1, dword [rdi + 0x2c]
cmp byte [rax + 0x7f], 0
je 0x1400515d7
test byte [rdi + 0x14], 1
jne 0x1400515d7
mov rax, qword [rdi]
vmovss xmm1, dword [rdi + 0x290]
vmulss xmm1, xmm1, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x1400515c7
vmulss xmm1, xmm1, dword [rcx + 0x290]
vmovss xmm2, dword [rax + 0x3810]
vaddss xmm1, xmm2, xmm1
vaddss xmm1, xmm2, xmm1
vinsertps xmm0, xmm0, xmm1, 0x10
vsubps xmm0, xmm8, xmm0
lea rax, [rdi + 0x20]
mov qword [rsp + 0x118], rax
vmovsd xmm1, qword [rdi + 0x20]
vcmpltps xmm2, xmm1, xmm0
vminps xmm1, xmm11, xmm1
vblendvps xmm0, xmm1, xmm0, xmm2
vroundps xmm0, xmm0, 0xb
vmovlps qword [rdi + 0x20], xmm0
jmp 0x140051632
lea rax, [rdi + 0x20]
mov qword [rsp + 0x118], rax
vmovsd xmm0, qword [rdi + 0x20]
vroundps xmm0, xmm0, 0xb
vmovlps qword [rdi + 0x20], xmm0
test esi, 0x1000000
jne 0x140051654
mov eax, esi
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x14005164a
lea rax, [r12 + 0x3804]
jmp 0x14005165c
lea rax, [r12 + 0x37e0]
jmp 0x14005165c
lea rax, [r12 + 0x37fc]
mov ecx, esi
shr ecx, 0xc
and ecx, 1
mov edx, dword [rsp + 0x8c]
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 + 0x88], r8d
vxorps xmm1, xmm1, xmm1
vmovaps xmmword [rsp + 0x1c0], xmm1
cmp byte [r12 + 0x7e], 1
mov eax, 2
sbb eax, 0
mov dword [rsp + 0x104], eax
vaddss xmm15, xmm0, dword [0x14011de30]
vmovss xmm14, dword [r12 + 0x3c20]
cmp byte [rdi + 0xb9], 0
je 0x1400516fc
lea rax, [rdi + 0xc1]
mov qword [rsp + 0x108], rax
mov byte [rdi + 0xc1], 0xff
jmp 0x140051997
mov r8d, dword [rdi + 0x14]
test r8b, 0x42
jne 0x14005171c
cmp byte [rdi + 0xd0], 0
jg 0x14005171c
cmp byte [rdi + 0xd1], 0
jle 0x140053e0a
lea rax, [rdi + 0xc1]
mov qword [rsp + 0x108], rax
mov byte [rdi + 0xc1], 0xff
mov ebx, dword [rsp + 0x90]
vxorps xmm1, xmm1, xmm1
cmp byte [rsp + 0x7c], 0
jne 0x140051756
vmovsd xmm0, qword [rdi + 0x38]
vmovsd xmm1, qword [rdi + 0x50]
vaddps xmm1, xmm1, xmm1
vaddps xmm1, xmm0, xmm1
cmp byte [rsp + 0x5c], 0
je 0x140051837
vmovss xmm3, dword [rdi + 0x30]
jmp 0x140051847
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]
vmulps xmm2, xmm3, xmm2
vsubps xmm0, xmm0, xmm2
vroundps xmm0, xmm0, 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 0x140051509
test byte [rdi + 0x15], 1
jne 0x1400517f6
mov rax, qword [0x14021e770]
vxorps xmm1, xmm1, xmm1
vucomiss xmm1, dword [rax + 0x5c0c]
jb 0x1400517f6
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 0x140051509
vaddss xmm0, xmm6, dword [rdi + 0x200]
vsubss xmm3, xmm0, dword [rdi + 0x1f8]
vmovss xmm0, dword [rdi + 0x6c]
test bl, bl
je 0x14005187b
vmovss xmm2, dword [rdi + 0x34]
vaddss xmm4, xmm0, dword [rdi + 0x64]
vsubss xmm2, xmm2, xmm4
test esi, 0x4000
je 0x140051893
mov byte [rdi + 0xb5], 1
test si, si
js 0x1400518cb
lea rcx, [rdi + 0xb5]
jmp 0x1400518bd
vaddss xmm2, xmm9, dword [rdi + 0x204]
vsubss xmm2, xmm2, dword [rdi + 0x1fc]
test esi, 0x4000
jne 0x140051866
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 0x1400518d6
test al, al
je 0x1400518e3
vmovss xmm4, dword [r12 + 0x3844]
mov al, 1
jmp 0x1400518e9
mov byte [rdi + 0xb4], 1
mov al, 1
jmp 0x140051947
mov byte [rdi + 0xb4], 1
test al, al
je 0x14005191d
jmp 0x140051947
vxorps xmm4, xmm4, xmm4
xor eax, eax
vsubss xmm3, xmm3, xmm4
vucomiss xmm1, xmm3
jbe 0x14005195b
mov edx, esi
and edx, 8
jne 0x14005195b
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 0x140051966
test al, al
jne 0x14005193f
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 0x140053dac
vmovss xmm3, dword [r12 + 0x3844]
test al, al
jne 0x14005196a
vxorps xmm1, xmm1, xmm1
jmp 0x140051974
mov byte [rdi + 0xb4], 0
vxorps xmm3, xmm3, xmm3
test al, al
je 0x140051955
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 + 0x1f0]
cmove rax, rcx
vmovups xmm0, xmmword [rax]
vmovaps xmmword [rsp + 0x140], 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 + 0x88]
jne 0x140051a30
mov rax, qword [rdi]
vmovss xmm5, dword [rdi + 0x290]
vmulss xmm5, xmm5, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140051a20
vmulss xmm5, xmm5, dword [rcx + 0x290]
vmovss xmm6, dword [rax + 0x3810]
vaddss xmm5, xmm6, xmm5
vaddss xmm5, xmm6, xmm5
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 + 0xa0], rcx
vmovss dword [rsp + 0xa8], xmm4
vmovss dword [rsp + 0xac], xmm5
vmovddup xmm4, qword [rsp + 0x140]
vmaxps xmm3, xmm3, xmm4
vmovlps qword [rdi + 0x1e8], xmm3
lea r12, [rsp + 0x148]
vmovsd xmm3, qword [rsp + 0x148]
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 [0x14011e560]
vmovss xmm6, dword [rdi + 0x5c]
vroundss xmm5, xmm5, xmm5, 0xb
vaddps xmm3, xmm3, xmmword [0x140123550]
vmaxss xmm5, xmm5, xmm6
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 + 0x148]
vcmpltps xmm6, xmm3, xmm4
vminps xmm3, xmm5, xmm3
vblendvps xmm3, xmm3, xmm4, xmm6
vmovups xmmword [rdi + 0x208], xmm3
test sil, 0x40
jne 0x140051b68
vxorps xmm3, xmm3, xmm3
vucomiss xmm0, xmm3
jbe 0x140051b68
mov eax, esi
and eax, 0x2000000
jne 0x140051b68
vmulss xmm0, xmm0, dword [0x140123560]
mov rsi, qword [rsp + 0x40]
jmp 0x140051b7d
mov rsi, qword [rsp + 0x40]
vmovss xmm0, dword [rsi + 0x3c20]
vmulss xmm0, xmm0, dword [0x140123564]
vroundss xmm0, xmm0, xmm0, 0xb
vmovss dword [rdi + 0x268], xmm0
vmovsd xmm0, qword [rdi + 0x38]
vmovsd xmm3, qword [rdi + 0x50]
vaddps xmm3, xmm3, xmm3
vaddps xmm0, xmm3, xmm0
vsubps xmm0, xmm0, xmm2
vaddps xmm0, xmm0, xmm1
vxorps xmm6, xmm6, xmm6
vmaxps xmm0, xmm0, xmm6
vmovlps qword [rdi + 0x8c], xmm0
lea r13, [rsp + 0xc0]
mov rcx, r13
mov rdx, rdi
call fcn.1400587f0
mov rax, qword [rsp + 0xc0]
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.140061e60
mov rax, qword [0x14021e770]
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 + 0x140]
mov r8, r12
xor r9d, r9d
call fcn.140061d00
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 0x140051d21
mov eax, dword [rbp + 0x190]
cmp eax, 2
jl 0x140051cd6
add eax, 0xfffffffe
mov rcx, qword [rbp + 0x198]
mov rcx, qword [rcx + rax*8]
test rcx, rcx
je 0x140051cd6
vmovss xmm0, dword [rcx + 0x24]
vaddss xmm2, xmm0, dword [rcx + 0x2c]
vmovss xmm1, dword [rdi + 0x24]
xor eax, eax
vucomiss xmm2, xmm1
jbe 0x140051cd8
vaddss xmm1, xmm1, dword [rdi + 0x2c]
vucomiss xmm1, xmm0
jbe 0x140051cd8
vmovss xmm0, dword [rcx + 0x20]
vaddss xmm2, xmm0, dword [rcx + 0x28]
vmovss xmm1, dword [rdi + 0x20]
vucomiss xmm1, xmm2
jae 0x140051cd8
vaddss xmm1, xmm1, dword [rdi + 0x28]
vucomiss xmm1, xmm0
seta al
jmp 0x140051cd8
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 0x140051d19
mov dword [rsp + 0x48], 0
mov rcx, qword [rbp + 0x298]
cmp dword [rcx + 0x20], 0
je 0x140051d21
test al, al
jne 0x140051d21
mov qword [rdi + 0x298], rcx
mov al, 1
mov dword [rsp + 0x48], eax
jmp 0x140051d21
mov dword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx + 0x4a60]
test rax, rax
jne 0x140051d39
mov rax, qword [rcx + 0x48d8]
mov bpl, 1
test r14b, 1
jne 0x140051d5d
test rax, rax
je 0x140051d5b
mov rcx, qword [rdi + 0x388]
cmp rcx, qword [rax + 0x388]
sete bpl
jmp 0x140051d5d
xor ebp, ebp
mov r12, qword [0x14021e770]
mov ebx, dword [rdi + 0x14]
mov byte [rdi + 0xbb], 0
vmovss xmm6, dword [rdi + 0x58]
vmovss xmm11, dword [rdi + 0x5c]
cmp byte [rdi + 0xb9], 0
je 0x140051eb0
vmovss xmm7, dword [r12 + 0x3818]
vmovss dword [r12 + 0x3818], xmm11
mov eax, 0xc
test bpl, bpl
je 0x140051db0
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 [0x14011de30]
vminss xmm2, xmm1, dword [r12 + rax + 0x38b8]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm4, dword [0x14011feb0]
vmulss xmm2, xmm2, xmm4
vmovss xmm5, dword [0x14011e560]
vaddss xmm2, xmm2, xmm5
vcvttss2si ecx, xmm2
vminss xmm1, xmm1, dword [r12 + rax + 0x38bc]
vmaxss xmm1, xmm1, xmm3
vmulss xmm1, xmm1, xmm4
vaddss xmm1, xmm1, xmm5
vcvttss2si edx, xmm1
shl edx, 8
or edx, ecx
vmovss xmm1, dword [r12 + rax + 0x38c0]
vinsertps xmm0, xmm1, xmm0, 0x10
vminps xmm0, xmm0, xmmword [0x14011e4c0]
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmmword [0x14011fea0]
vaddps xmm0, xmm0, xmmword [0x14011de20]
vcvttps2dq xmm0, xmm0
vpslld xmm1, xmm0, 0x18
vpslld xmm0, xmm0, 0x10
vmovd eax, xmm0
vpextrd r8d, xmm1, 1
or eax, edx
or r8d, eax
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
vmovss dword [rsp + 0x20], xmm6
mov r9b, 1
call fcn.140043880
vmovss dword [r12 + 0x3818], xmm7
mov r12, qword [rsp + 0x40]
mov r13, qword [rsp + 0x120]
mov rbp, qword [rsp + 0x98]
mov ebx, dword [rsp + 0x48]
jmp 0x140052e0a
test bl, bl
js 0x14005205c
xor ecx, ecx
test ebx, 0x1000000
sete cl
xor rcx, 3
test ebx, 0x6000000
mov eax, 4
cmove rax, rcx
shl rax, 4
vmovss xmm1, dword [0x14011de30]
vminss xmm2, xmm1, dword [r12 + rax + 0x38b8]
vxorps xmm0, xmm0, xmm0
vmaxss xmm3, xmm2, xmm0
vmovss xmm2, dword [0x14011feb0]
vmulss xmm4, xmm3, xmm2
vmovss xmm3, dword [0x14011e560]
vaddss xmm4, xmm4, xmm3
vcvttss2si edx, xmm4
vmovsd xmm4, qword [r12 + rax + 0x38bc]
vminps xmm4, xmm4, xmmword [0x14011e4c0]
vxorps xmm5, xmm5, xmm5
vmaxps xmm4, xmm4, xmm5
vmulps xmm4, xmm4, xmmword [0x14011fea0]
vaddps xmm4, xmm4, xmmword [0x14011de20]
vcvttps2dq xmm4, xmm4
vpslld xmm5, xmm4, 0x10
vpslld xmm4, xmm4, 8
vmovd r8d, xmm4
vpextrd ecx, xmm5, 1
or r8d, edx
or ecx, r8d
test byte [r12 + 0x47d0], 0x40
jne 0x140051f8a
vmovss xmm4, dword [r12 + 0x37d0]
vmulss xmm4, xmm4, dword [r12 + rax + 0x38c4]
vminss xmm1, xmm4, xmm1
vmaxss xmm1, xmm1, xmm0
vmulss xmm1, xmm1, xmm2
vaddss xmm1, xmm1, xmm3
jmp 0x140051fb6
vmovss xmm1, dword [r12 + 0x4830]
and ecx, 0xffffff
vminss xmm1, xmm1, dword [0x14011de30]
vmaxss xmm1, xmm1, xmm0
vmulss xmm1, xmm1, dword [0x14011feb0]
vaddss xmm1, xmm1, dword [0x14011e560]
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 + 0xc0], xmm3
test bl, 1
cmovne eax, edx
jne 0x140052030
mov rdx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rdx + 0x3c24]
mov r8, qword [rdi + 0x368]
test r8, r8
je 0x140052020
vmulss xmm0, xmm0, dword [r8 + 0x290]
vmovss xmm3, dword [rdx + 0x3810]
vaddss xmm0, xmm3, xmm0
vaddss xmm0, xmm3, xmm0
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 + 0xc0]
call fcn.140064570
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [r12 + 0x38ac]
jae 0x1400521d8
mov eax, ebx
and eax, 0x5000000
cmp eax, 0x1000000
je 0x1400521d8
vucomiss xmm0, dword [r12 + 0x3c14]
jae 0x1400521d8
mov rax, qword [0x14021e770]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x3c14]
vmovss xmm2, dword [0x14011de30]
vminss xmm3, xmm2, dword [rax + 0x3c08]
vmaxss xmm3, xmm3, xmm0
vmovss xmm4, dword [0x14011feb0]
vmulss xmm3, xmm3, xmm4
vmovss xmm5, dword [0x14011e560]
vaddss xmm3, xmm3, xmm5
vcvttss2si ecx, xmm3
vminss xmm2, xmm2, dword [rax + 0x3c0c]
vmaxss xmm0, xmm2, xmm0
vmulss xmm0, xmm0, xmm4
vaddss xmm0, xmm0, xmm5
vcvttss2si edx, xmm0
shl edx, 8
vmovss xmm0, dword [rax + 0x3c10]
vinsertps xmm0, xmm0, xmm1, 0x10
vminps xmm0, xmm0, xmmword [0x14011e4c0]
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmmword [0x14011fea0]
vaddps xmm0, xmm0, xmmword [0x14011de20]
or edx, ecx
vcvttps2dq xmm0, xmm0
vpslld xmm1, xmm0, 0x18
vpslld xmm0, xmm0, 0x10
vmovd ecx, xmm0
or ecx, edx
vpextrd r15d, xmm1, 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 + 0xc0], xmm0
vmovss dword [rsp + 0xc4], 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 + 0x118]
mov r9d, r15d
call fcn.1400665d0
test bl, 1
jne 0x1400522cd
mov rax, qword [0x14021e770]
movzx ecx, bpl
shl rcx, 4
vmovss xmm0, dword [rax + 0x37d0]
vmulss xmm0, xmm0, dword [rcx + rax + 0x3964]
lea r8, [rsp + 0xa8]
vmovss xmm1, dword [0x14011de30]
vminss xmm2, xmm1, dword [rcx + rax + 0x3958]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm4, dword [0x14011feb0]
vmulss xmm2, xmm2, xmm4
vmovss xmm5, dword [0x14011e560]
vaddss xmm2, xmm2, xmm5
vcvttss2si edx, xmm2
vminss xmm1, xmm1, dword [rcx + rax + 0x395c]
vmaxss xmm1, xmm1, xmm3
vmulss xmm1, xmm1, xmm4
vaddss xmm1, xmm1, xmm5
vcvttss2si r9d, xmm1
shl r9d, 8
vmovss xmm1, dword [rcx + rax + 0x3960]
vinsertps xmm0, xmm1, xmm0, 0x10
vminps xmm0, xmm0, xmmword [0x14011e4c0]
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmmword [0x14011fea0]
or r9d, edx
vaddps xmm0, xmm0, xmmword [0x14011de20]
vcvttps2dq xmm0, xmm0
vpslld xmm1, xmm0, 0x18
vpslld xmm0, xmm0, 0x10
vmovd eax, xmm0
or eax, r9d
vpextrd r9d, xmm1, 1
or r9d, eax
mov rcx, qword [rdi + 0x298]
vmovss dword [rsp + 0x20], xmm6
mov dword [rsp + 0x28], 0x30
lea rdx, [rsp + 0xa0]
call fcn.140064570
test ebx, 0x400
je 0x1400525d0
mov eax, dword [rdi + 0x14]
vxorps xmm1, xmm1, xmm1
vxorps xmm0, xmm0, xmm0
test al, 1
jne 0x14005231f
mov rcx, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rcx + 0x3c24]
mov rdx, qword [rdi + 0x368]
test rdx, rdx
je 0x14005230f
vmulss xmm0, xmm0, dword [rdx + 0x290]
vmovss xmm2, dword [rcx + 0x3810]
vaddss xmm0, xmm2, xmm0
vaddss xmm0, xmm2, xmm0
vmovss xmm2, dword [rdi + 0x24]
test eax, 0x400
je 0x14005236e
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 0x14005235a
vmulss xmm3, xmm3, dword [rcx + 0x290]
vmovss xmm4, dword [rax + 0x3810]
vaddss xmm4, xmm4, xmm4
vaddss xmm1, xmm1, xmm4
vaddss xmm1, xmm3, xmm1
vmovaps xmm10, xmm15
vmovaps xmm15, xmm14
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 xmm9, xmm1, xmm2
vmovshdup xmm8, xmm9
mov rcx, qword [rdi + 0x298]
vxorps xmm14, xmm14, xmm14
vxorps xmm1, xmm1, xmm1
test bl, 1
je 0x1400523cb
vmovaps xmm1, xmm6
mov rax, qword [0x14021e770]
vmovss xmm2, dword [rax + 0x37d0]
vmulss xmm2, xmm2, dword [rax + 0x3994]
vmovss xmm4, dword [0x14011de30]
vminss xmm3, xmm4, dword [rax + 0x3988]
vmaxss xmm3, xmm14, xmm3
vmovss xmm12, dword [0x14011feb0]
vmulss xmm3, xmm12, xmm3
vmovss xmm13, dword [0x14011e560]
vaddss xmm3, xmm13, xmm3
vcvttss2si edx, xmm3
vminss xmm3, xmm4, dword [rax + 0x398c]
vmaxss xmm3, xmm14, xmm3
vmulss xmm3, xmm12, xmm3
vaddss xmm3, xmm13, xmm3
vcvttss2si r8d, xmm3
shl r8d, 8
or r8d, edx
vmovss xmm3, dword [rax + 0x3990]
vinsertps xmm2, xmm3, xmm2, 0x10
vminps xmm2, xmm2, xmmword [0x14011e4c0]
vxorps xmm3, xmm3, xmm3
vmaxps xmm2, xmm2, xmm3
vmulps xmm2, xmm2, xmmword [0x14011fea0]
vaddps xmm2, xmm2, xmmword [0x14011de20]
vcvttps2dq xmm2, xmm2
vpslld xmm3, xmm2, 0x18
vpslld xmm2, xmm2, 0x10
vmovd eax, xmm2
vpextrd r9d, xmm3, 1
or eax, r8d
or r9d, eax
vsubss xmm2, xmm9, xmm11
vmovss dword [rsp + 0xc0], xmm2
vmovss dword [rsp + 0xc4], xmm8
vaddss xmm2, xmm11, 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 + 0xc0]
call fcn.140064570
vmovss xmm0, dword [r12 + 0x3818]
vucomiss xmm14, xmm0
vmovaps xmm14, xmm15
vmovaps xmm15, xmm10
jae 0x1400525d0
vmovss xmm1, dword [rdi + 0x2c]
vaddss xmm1, xmm1, dword [rdi + 0x24]
vucomiss xmm8, xmm1
jae 0x1400525d0
mov rax, qword [0x14021e770]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x3914]
vmovss xmm4, dword [0x14011de30]
vminss xmm2, xmm4, dword [rax + 0x3908]
vpxor xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmulss xmm2, xmm12, xmm2
vaddss xmm2, xmm13, xmm2
vcvttss2si edx, xmm2
vminss xmm2, xmm4, dword [rax + 0x390c]
vmaxss xmm2, xmm2, xmm3
vmulss xmm2, xmm12, xmm2
vaddss xmm2, xmm13, xmm2
vcvttss2si r8d, xmm2
mov rcx, qword [rdi + 0x298]
shl r8d, 8
vmovss xmm2, dword [rax + 0x3910]
vinsertps xmm1, xmm2, xmm1, 0x10
vminps xmm1, xmm1, xmmword [0x14011e4c0]
vxorps xmm2, xmm2, xmm2
vmaxps xmm1, xmm1, xmm2
vmulps xmm1, xmm1, xmmword [0x14011fea0]
vaddps xmm1, xmm1, xmmword [0x14011de20]
or r8d, edx
vcvttps2dq xmm1, xmm1
vpslld xmm2, xmm1, 0x18
vpslld xmm1, xmm1, 0x10
vmovd eax, xmm1
or eax, r8d
vpextrd r9d, xmm2, 1
or r9d, eax
vmovlps qword [rsp + 0xc0], xmm9
vmovss dword [rsp + 0x60], xmm7
vmovss dword [rsp + 0x64], xmm8
vmovss dword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0xc0]
call fcn.1400642f0
cmp byte [rdi + 0xb4], 0
je 0x1400525e0
xor ecx, ecx
call fcn.14007f340
cmp byte [rdi + 0xb5], 0
mov r12, qword [rsp + 0x40]
je 0x1400525f8
mov ecx, 1
call fcn.14007f340
test bl, 2
jne 0x1400528d1
vmulss xmm0, xmm14, dword [0x140123450]
vaddss xmm0, xmm15, xmm0
vmulss xmm1, xmm14, dword [0x1401234e0]
vmaxss xmm0, xmm1, xmm0
vroundss xmm0, xmm0, xmm0, 0xb
vaddss xmm1, xmm11, xmm6
mov eax, dword [rsp + 0x104]
vinsertps xmm7, xmm11, xmm0, 0x10
vinsertps xmm8, xmm0, xmm11, 0x10
vmovsldup xmm9, xmm1
lea r14, [0x140124354]
xor ebp, ebp
mov qword [rsp + 0x90], rax
jmp 0x1400526e1
mov r12, qword [rsp + 0x40]
vmulps xmm0, xmm10, xmm12
vaddps xmm0, xmm11, xmm0
mov rcx, qword [rsi + 0x80]
cdqe
vmovlps qword [rcx + rax*8], xmm0
inc dword [rsi + 0x78]
mov rcx, qword [rdi + 0x298]
mov r9d, dword [r14 - 4]
mov eax, dword [r14]
vmulps xmm0, xmm10, xmm9
vaddps xmm0, xmm11, xmm0
vmovlps qword [rsp + 0xc0], xmm0
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0xc0]
vmovaps xmm2, xmm6
call fcn.140063850
mov r15, qword [rdi + 0x298]
mov r8d, dword [r15 + 0x78]
mov rdx, qword [r15 + 0x80]
mov rcx, r15
mov r9d, r13d
call fcn.140062d30
mov dword [r15 + 0x78], 0
mov rax, qword [rsp + 0x90]
inc rbp
add r14, 0x18
cmp rax, rbp
je 0x1400528d1
mov r13d, dword [rsp + rbp*4 + 0x1c0]
cmp r13d, 0x1000000
jb 0x1400526d1
mov r12, qword [rdi + 0x298]
test bpl, 1
sete sil
vmovsd xmm11, qword [rdi + 0x20]
vmovsd xmm12, qword [rdi + 0x28]
vmovsd xmm13, qword [r14 - 0x14]
vmovsd xmm10, qword [r14 - 0xc]
mov eax, dword [r12 + 0x78]
cmp eax, dword [r12 + 0x7c]
jne 0x1400527d2
lea ebx, [rax + 1]
test eax, eax
je 0x14005273b
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x140052740
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x1400527d2
movsxd rcx, ebx
shl rcx, 3
mov rax, qword [0x14021e770]
test rax, rax
je 0x140052766
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [r12 + 0x80]
test rdx, rdx
je 0x1400527c0
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 0x1400527b3
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400527b3
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov qword [r12 + 0x80], r15
mov dword [r12 + 0x7c], ebx
mov eax, dword [r12 + 0x78]
vmulps xmm0, xmm13, xmm12
vaddps xmm11, xmm11, xmm0
vmovd xmm0, esi
vpshufd xmm0, xmm0, 0x50
vpslld xmm0, xmm0, 0x1f
vblendvps xmm12, xmm8, xmm7, xmm0
vpermilps xmm0, xmm12, 0xe1
vmulps xmm0, xmm10, xmm0
vaddps xmm0, xmm11, xmm0
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 0x140052650
lea ebx, [rax + 1]
test eax, eax
mov r12, qword [rsp + 0x40]
je 0x14005283d
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x140052842
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x140052655
movsxd rcx, ebx
shl rcx, 3
mov rax, qword [0x14021e770]
test rax, rax
je 0x140052868
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rsi + 0x80]
test rdx, rdx
je 0x1400528bf
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 0x1400528b2
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400528b2
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov qword [rsi + 0x80], r15
mov dword [rsi + 0x7c], ebx
mov eax, dword [rsi + 0x78]
jmp 0x140052655
mov rbx, qword [0x14021e770]
vmovss xmm6, dword [rdi + 0x58]
vmovss xmm8, dword [rdi + 0x5c]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm8
jae 0x1400529ee
test byte [rdi + 0x14], 0x80
jne 0x1400529ee
vmovss xmm0, dword [rbx + 0x37d0]
vmulss xmm0, xmm0, dword [rbx + 0x3914]
vmovss xmm1, dword [0x14011de30]
vminss xmm2, xmm1, dword [rbx + 0x3908]
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vmovss xmm4, dword [0x14011feb0]
vmulss xmm2, xmm2, xmm4
vmovss xmm5, dword [0x14011e560]
vaddss xmm2, xmm2, xmm5
vcvttss2si eax, xmm2
mov rcx, qword [rdi + 0x298]
vminss xmm1, xmm1, dword [rbx + 0x390c]
vmaxss xmm1, xmm1, xmm3
vmulss xmm1, xmm1, xmm4
vaddss xmm1, xmm1, xmm5
vcvttss2si edx, xmm1
shl edx, 8
or edx, eax
vmovss xmm1, dword [rbx + 0x3910]
vinsertps xmm0, xmm1, xmm0, 0x10
vminps xmm0, xmm0, xmmword [0x14011e4c0]
vxorps xmm1, xmm1, xmm1
vmaxps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmmword [0x14011fea0]
vaddps xmm0, xmm0, xmmword [0x14011de20]
vcvttps2dq xmm0, xmm0
vpslld xmm1, xmm0, 0x18
vpslld xmm0, xmm0, 0x10
vmovd eax, xmm0
or eax, edx
vpextrd r9d, xmm1, 1
or r9d, eax
vmovsd xmm0, qword [rdi + 0x20]
vmovsd xmm1, qword [rdi + 0x28]
vaddps xmm0, xmm1, xmm0
vmovlps qword [rsp + 0xc0], xmm0
vmovss dword [rsp + 0x30], xmm8
vmovss dword [rsp + 0x20], xmm6
mov dword [rsp + 0x28], 0
lea r8, [rsp + 0xc0]
mov rdx, qword [rsp + 0x118]
call fcn.140064490
mov rax, qword [rsp + 0x108]
movsx edx, byte [rax]
cmp edx, 0xffffffff
mov r13, qword [rsp + 0x120]
mov rbp, qword [rsp + 0x98]
je 0x140052c8c
movsx rax, dl
lea rcx, [rax + rax*8]
lea rsi, [rcx + rcx*2]
lea r14, [0x1401243a0]
lea rcx, [r14 + rax]
add rcx, rsi
vxorps xmm9, xmm9, xmm9
vxorps xmm2, xmm2, xmm2
vxorps xmm0, xmm0, xmm0
vxorps xmm4, xmm4, xmm4
vxorps xmm1, xmm1, xmm1
cmp edx, 3
ja case.default.0x140052a7a
vmovss xmm0, dword [rdi + 0x20]
vmovss xmm3, dword [0x14011e584]
vaddss xmm1, xmm0, xmm3
vaddss xmm1, xmm1, dword [rdi + 0x28]
vmovss xmm2, dword [rdi + 0x24]
vaddss xmm3, xmm2, xmm3
vaddss xmm4, xmm3, dword [rdi + 0x2c]
mov edx, edx
lea r8, [0x140054afc]
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
vsubss xmm1, xmm4, xmm6
vaddss xmm4, xmm2, xmm6
vmovaps xmm2, xmm1
vmovaps xmm1, xmm0
jmp case.default.0x140052a7a
vsubss xmm0, xmm4, xmm6
vaddss xmm4, xmm2, xmm6
vmovaps xmm2, xmm0
vmovaps xmm0, xmm1
jmp case.default.0x140052a7a
vsubss xmm3, xmm1, xmm6
vaddss xmm1, xmm0, xmm6
vmovaps xmm0, xmm3
vmovaps xmm4, xmm2
jmp case.default.0x140052a7a
vsubss xmm3, xmm1, xmm6
vaddss xmm1, xmm0, xmm6
vmovaps xmm2, xmm4
vmovaps xmm0, xmm3
add rsi, rax
vmovss xmm7, dword [r14 + rsi + 0x18]
vaddss xmm3, xmm7, dword [0x140123568]
vmulss xmm5, xmm6, dword [rcx + 4]
vmulss xmm11, xmm6, dword [rcx]
mov rcx, qword [rdi + 0x298]
vsubss xmm12, xmm2, xmm4
vmulss xmm2, xmm12, dword [r14 + rsi + 0xc]
vsubss xmm13, xmm0, xmm1
vmulss xmm0, xmm13, dword [r14 + rsi + 8]
vmovss xmm10, dword [0x14011e560]
vaddss xmm4, xmm10, xmm4
vaddss xmm14, xmm4, xmm5
vaddss xmm2, xmm14, xmm2
vaddss xmm1, xmm10, xmm1
vaddss xmm11, xmm11, xmm1
vaddss xmm0, xmm11, xmm0
vmovss dword [rsp + 0xc0], xmm0
vmovss dword [rsp + 0xc4], xmm2
vmovss dword [rsp + 0x20], xmm7
mov dword [rsp + 0x28], 0
lea rdx, [rsp + 0xc0]
vmovaps xmm2, xmm6
call fcn.140063920
mov rcx, qword [rdi + 0x298]
vaddss xmm0, xmm7, dword [0x14012356c]
vmulss xmm1, xmm12, dword [r14 + rsi + 0x14]
vmulss xmm2, xmm13, dword [r14 + rsi + 0x10]
vaddss xmm1, xmm14, xmm1
vaddss xmm2, xmm11, xmm2
vmovss dword [rsp + 0xc0], xmm2
vmovss dword [rsp + 0xc4], xmm1
vmovss dword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], 0
lea rdx, [rsp + 0xc0]
vmovaps xmm2, xmm6
vmovaps xmm3, xmm7
call fcn.140063920
vmaxss xmm0, xmm8, dword [0x14011e550]
mov rax, qword [0x14021e770]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x3a94]
vmovss xmm2, dword [0x14011de30]
vminss xmm3, xmm2, dword [rax + 0x3a88]
vmaxss xmm3, xmm9, xmm3
vmovss xmm4, dword [0x14011feb0]
vmulss xmm3, xmm3, xmm4
vaddss xmm3, xmm10, xmm3
vcvttss2si ecx, xmm3
vminss xmm2, xmm2, dword [rax + 0x3a8c]
mov r12, qword [rdi + 0x298]
vmaxss xmm2, xmm9, xmm2
vmulss xmm2, xmm2, xmm4
vaddss xmm2, xmm10, xmm2
vcvttss2si edx, xmm2
shl edx, 8
or edx, ecx
vmovss xmm2, dword [rax + 0x3a90]
vinsertps xmm1, xmm2, xmm1, 0x10
vminps xmm1, xmm1, xmmword [0x14011e4c0]
vxorps xmm2, xmm2, xmm2
vmaxps xmm1, xmm1, xmm2
vmulps xmm1, xmm1, xmmword [0x14011fea0]
vaddps xmm1, xmm1, xmmword [0x14011de20]
vcvttps2dq xmm1, xmm1
vpslld xmm2, xmm1, 0x18
vpslld xmm1, xmm1, 0x10
vmovd eax, xmm1
vpextrd r9d, xmm2, 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.140062180
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 + 0x88]
mov ebx, dword [rsp + 0x48]
jae 0x140052e0a
test byte [rdi + 0x14], 1
jne 0x140052e0a
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 0x140052ce8
vmulss xmm2, xmm2, dword [rcx + 0x290]
vmovss xmm3, dword [rax + 0x3810]
vaddss xmm3, xmm3, xmm3
vaddss xmm2, xmm2, xmm3
vaddss xmm1, xmm1, dword [0x14011e584]
vaddss xmm1, xmm1, xmm2
mov rax, qword [0x14021e770]
vmovss xmm2, dword [rax + 0x37d0]
vmulss xmm2, xmm2, dword [rax + 0x3914]
mov rcx, qword [rdi + 0x298]
vmovss xmm3, dword [0x14011de30]
vminss xmm4, xmm3, dword [rax + 0x3908]
vxorps xmm5, xmm5, xmm5
vmaxss xmm4, xmm4, xmm5
vmovss xmm6, dword [0x14011feb0]
vmulss xmm4, xmm4, xmm6
vmovss xmm7, dword [0x14011e560]
vaddss xmm4, xmm4, xmm7
vcvttss2si edx, xmm4
vminss xmm3, xmm3, dword [rax + 0x390c]
vmaxss xmm3, xmm3, xmm5
vmulss xmm3, xmm3, xmm6
vaddss xmm3, xmm3, xmm7
vcvttss2si r8d, xmm3
shl r8d, 8
vmovss xmm3, dword [rax + 0x3910]
vinsertps xmm2, xmm3, xmm2, 0x10
vminps xmm2, xmm2, xmmword [0x14011e4c0]
vxorps xmm3, xmm3, xmm3
vmaxps xmm2, xmm2, xmm3
vmulps xmm2, xmm2, xmmword [0x14011fea0]
or r8d, edx
vaddps xmm2, xmm2, xmmword [0x14011de20]
vcvttps2dq xmm2, xmm2
vpslld xmm3, xmm2, 0x18
vpslld xmm2, xmm2, 0x10
vmovd eax, xmm2
or eax, r8d
vpextrd r9d, xmm3, 1
or r9d, eax
vmovss xmm2, dword [rdi + 0x20]
vsubss xmm3, xmm2, xmm8
vaddss xmm3, xmm3, dword [rdi + 0x28]
vmovss dword [rsp + 0xc0], xmm3
vmovss dword [rsp + 0xc4], 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 + 0xc0]
call fcn.1400642f0
test bl, bl
je 0x140052e1c
lea rax, [rdi + 0x2a0]
mov qword [rdi + 0x298], rax
vmovss xmm0, dword [rdi + 0x48]
vpxor xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
vmovaps xmm4, xmm0
jne 0x140052e6d
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 0x140052e69
mov rax, qword [rsp + 0x158]
vmovss xmm1, dword [rax]
vmaxss xmm4, xmm1, xmm2
vmovss xmm2, dword [rdi + 0x4c]
vxorps xmm5, xmm5, xmm5
vucomiss xmm5, xmm2
je 0x140052e8c
vmovss xmm3, dword [rdi + 0x54]
vmovss xmm1, dword [rdi + 0x64]
vmovaps xmm5, xmm2
jmp 0x140052ebb
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 0x140052eb7
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 0x140052f76
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 0x140052f9f
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 + 0x8c]
call fcn.140093170
mov qword [rdi + 0x188], 0
cmp dword [rdi + 0x194], 0
jns 0x140053123
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400530b6
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
xor ecx, ecx
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rdi + 0x198]
test rdx, rdx
je 0x140053112
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 0x140053105
mov rax, qword [0x14021e770]
test rax, rax
je 0x140053105
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
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 0x14005315d
mov eax, dword [rbp + 0x1b4]
jmp 0x140053162
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 0x14005320a
mov rax, qword [0x14021e770]
test rax, rax
je 0x14005319d
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
xor ecx, ecx
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rdi + 0x1d0]
test rdx, rdx
je 0x1400531f9
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 0x1400531ec
mov rax, qword [0x14021e770]
test rax, rax
je 0x1400531ec
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov qword [rdi + 0x1d0], r15
mov dword [rdi + 0x1cc], 0
mov dword [rdi + 0x1c8], 0
cmp dword [rdi + 0x1dc], 0
jns 0x14005329c
mov rax, qword [0x14021e770]
test rax, rax
je 0x14005322f
inc dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
xor ecx, ecx
call qword [0x1402004d8]
mov r15, rax
mov rdx, qword [rdi + 0x1e0]
test rdx, rdx
je 0x14005328b
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 0x14005327e
mov rax, qword [0x14021e770]
test rax, rax
je 0x14005327e
dec dword [rax + 0xf4]
mov rdx, qword [0x14021e780]
call qword [0x1402004e0]
mov qword [rdi + 0x1e0], r15
mov dword [rdi + 0x1dc], 0
mov dword [rdi + 0x1d8], 0
movzx eax, byte [rdi + 0xd0]
test al, al
jle 0x1400532b9
dec al
mov byte [rdi + 0xd0], al
movzx eax, byte [rdi + 0xd1]
test al, al
jle 0x1400532cc
dec al
mov byte [rdi + 0xd1], al
test r14b, 1
je 0x1400532f3
mov rcx, rdi
mov edx, 2
call fcn.140048d70
cmp rdi, qword [r12 + 0x48d8]
jne 0x1400532f3
mov rcx, rdi
xor edx, edx
call fcn.140056d20
test sil, 1
jne 0x14005392d
vmovss xmm0, dword [rsp + 0xa8]
vmovss xmm1, dword [rdi + 0x5c]
mov rbx, qword [0x14021e770]
mov r14d, dword [rdi + 0x14]
test r14b, 0x20
jne 0x140053328
cmp dword [rbx + 0x37f8], 0xffffffff
setne al
jmp 0x14005332a
xor eax, eax
vmovss xmm6, dword [rsp + 0xac]
vmovss xmm7, dword [rsp + 0xa4]
vsubss xmm8, xmm0, xmm1
vaddss xmm9, xmm1, dword [rsp + 0xa0]
mov r15d, dword [rbx + 0x4778]
mov ecx, r15d
or ecx, 0x10
mov dword [rbx + 0x4778], ecx
mov dword [rdi + 0x158], 1
vmovss xmm10, dword [rbx + 0x380c]
vmovss xmm12, dword [rbx + 0x3c20]
vxorps xmm0, xmm0, xmm0
vmovlps qword [rsp + 0xb8], xmm0
vmovlps qword [rsp + 0xb0], xmm0
vmovaps xmm11, xmm10
cmp qword [rsp + 0x160], 0
je 0x1400533bc
vaddss xmm11, xmm12, xmm10
vaddss xmm0, xmm10, xmm11
vsubss xmm0, xmm8, xmm0
vmovss dword [rsp + 0xb8], xmm0
vmovss dword [rsp + 0xbc], xmm7
test al, al
je 0x1400534be
mov eax, dword [rbx + 0x37f8]
test eax, eax
je 0x1400533f5
cmp eax, 1
jne 0x14005340c
vaddss xmm11, xmm11, xmm12
vaddss xmm0, xmm10, xmm11
vsubss xmm0, xmm8, xmm0
vmovss dword [rsp + 0xb0], xmm0
vmovss dword [rsp + 0xb4], xmm7
jmp 0x14005340c
vmovss dword [rsp + 0xb0], xmm9
vmovss dword [rsp + 0xb4], xmm7
vaddss xmm10, xmm12, xmm10
mov rax, qword [rdi + 0xf8]
movsxd rcx, dword [rdi + 0xf0]
mov eax, dword [rax + rcx*4 - 4]
not eax
mov r8b, 0x23
lea rcx, [0x140125014]
lea rdx, [0x1401236b0]
mov ebp, eax
jmp 0x14005345d
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 0x140053479
movzx r9d, byte [rcx - 1]
cmp r8b, 0x23
jne 0x140053440
cmp r9b, 0x23
jne 0x140053440
cmp byte [rcx], 0x23
cmove ebp, eax
mov r9b, 0x23
jmp 0x140053440
not ebp
mov rax, qword [rdi]
cmp dword [rax + 0x3f40], ebp
jne 0x14005349c
lea r8, str.COLLAPSE
mov ecx, ebp
mov edx, 0xb
xor r9d, r9d
call fcn.140047be0
lea rdx, [rsp + 0xb0]
mov ecx, ebp
call fcn.14007f170
test al, al
je 0x1400534b6
mov byte [rdi + 0xba], 1
mov rbp, qword [rsp + 0x98]
cmp qword [rsp + 0x160], 0
je 0x140053582
mov rax, qword [rdi + 0xf8]
movsxd rcx, dword [rdi + 0xf0]
mov eax, dword [rax + rcx*4 - 4]
not eax
mov r8b, 0x23
lea rcx, [0x14012501e]
lea rdx, [0x1401236b0]
mov ebp, eax
jmp 0x14005351d
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 0x140053539
movzx r9d, byte [rcx - 1]
cmp r8b, 0x23
jne 0x140053500
cmp r9b, 0x23
jne 0x140053500
cmp byte [rcx], 0x23
cmove ebp, eax
mov r9b, 0x23
jmp 0x140053500
not ebp
mov rax, qword [rdi]
cmp dword [rax + 0x3f40], ebp
jne 0x14005355c
lea r8, str.CLOSE
mov ecx, ebp
mov edx, 0xb
xor r9d, r9d
call fcn.140047be0
lea rdx, [rsp + 0xb8]
mov ecx, ebp
call fcn.14007ef00
test al, al
mov rbp, qword [rsp + 0x98]
je 0x140053582
mov rax, qword [rsp + 0x160]
mov byte [rax], 0
mov dword [rdi + 0x158], 0
mov dword [rbx + 0x4778], r15d
vxorps xmm13, xmm13, xmm13
test r14d, 0x100000
je 0x1400535a9
vmulss xmm13, xmm12, dword [0x140123570]
mov rax, qword [0x14021e770]
cmp r13, 0xffffffffffffffff
je 0x1400535dd
mov rdx, r13
jmp 0x1400535cf
cmp byte [rdx + 1], 0x23
je 0x1400535ee
inc rdx
cmp rdx, 0xffffffffffffffff
je 0x1400535e7
movzx ecx, byte [rdx]
cmp ecx, 0x23
je 0x1400535c0
test ecx, ecx
jne 0x1400535c6
jmp 0x1400535ee
vmovss xmm2, dword [rax + 0x3c20]
jmp 0x140053654
mov rdx, 0xffffffffffffffff
vmovss xmm2, dword [rax + 0x3c20]
cmp rdx, r13
je 0x140053654
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 + 0xc0]
vmovss xmm3, dword [0x140123310]
call fcn.140072ec0
vmovss xmm0, dword [rsp + 0xc0]
vmovss xmm2, dword [rsp + 0xc4]
vaddss xmm0, xmm0, dword [0x1401233a0]
vroundss xmm0, xmm0, xmm0, 0xb
jmp 0x140053658
vxorps xmm0, xmm0, xmm0
vaddss xmm0, xmm13, xmm0
vmovss dword [rsp + 0x1a8], xmm0
vmovss dword [rsp + 0x1ac], xmm2
vmovss xmm1, dword [rbx + 0x380c]
vucomiss xmm10, xmm1
jbe 0x140053684
vaddss xmm10, xmm10, dword [rbx + 0x3824]
vucomiss xmm11, xmm1
jbe 0x140053692
vaddss xmm11, xmm11, dword [rbx + 0x3824]
vmovss xmm1, dword [rbx + 0x37f0]
vxorps xmm2, xmm2, xmm2
vucomiss xmm2, xmm1
jae 0x140053700
vucomiss xmm1, dword [0x14011de30]
jae 0x140053700
vaddss xmm2, xmm1, dword [0x14011e5b0]
vandps xmm2, xmm2, xmmword [0x14011e540]
vaddss xmm2, xmm2, xmm2
vmovss xmm3, dword [0x14011de30]
vsubss xmm2, xmm3, xmm2
vminss xmm2, xmm2, xmm3
vxorps xmm3, xmm3, xmm3
vmaxss xmm2, xmm2, xmm3
vaddss xmm3, xmm9, xmm0
vaddss xmm4, xmm10, xmm11
vaddss xmm3, xmm3, xmm4
vsubss xmm3, xmm8, xmm3
vmaxss xmm4, xmm10, xmm11
vminss xmm3, xmm4, xmm3
vmulss xmm2, xmm2, xmm3
vmaxss xmm10, xmm10, xmm2
vmaxss xmm11, xmm11, xmm2
vsubss xmm3, xmm8, xmm11
vaddss xmm2, xmm10, xmm9
vmovss dword [rsp + 0xc0], xmm2
vmovss dword [rsp + 0xc4], xmm7
vmovss dword [rsp + 0xc8], xmm3
vmovss dword [rsp + 0xcc], 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 0x140053876
vaddss xmm0, xmm2, xmm0
vsubss xmm4, xmm3, xmm0
vmulss xmm1, xmm4, xmm1
vaddss xmm0, xmm1, xmm0
vminss xmm1, xmm3, xmm0
vcmpltss xmm0, xmm0, xmm2
vblendvps xmm9, xmm1, xmm2, xmm0
vucomiss xmm9, xmm2
jbe 0x140053876
vaddss xmm0, xmm7, xmm6
mov rax, qword [0x14021e770]
vmovss xmm1, dword [rax + 0x37d0]
vmulss xmm1, xmm1, dword [rax + 0x38c4]
vmovss xmm6, dword [0x14011e560]
vmovss xmm2, dword [0x14011de30]
vminss xmm3, xmm2, dword [rax + 0x38b8]
vmulss xmm0, xmm0, xmm6
vxorps xmm4, xmm4, xmm4
vmaxss xmm3, xmm3, xmm4
vmovss xmm5, dword [0x14011feb0]
vmulss xmm3, xmm3, xmm5
vaddss xmm3, xmm3, xmm6
vcvttss2si ecx, xmm3
vminss xmm2, xmm2, dword [rax + 0x38bc]
vmaxss xmm2, xmm2, xmm4
vmulss xmm2, xmm2, xmm5
vaddss xmm2, xmm2, xmm6
vcvttss2si edx, xmm2
shl edx, 8
vmovss xmm2, dword [rax + 0x38c0]
vinsertps xmm1, xmm2, xmm1, 0x10
vminps xmm1, xmm1, xmmword [0x14011e4c0]
vxorps xmm2, xmm2, xmm2
vmaxps xmm1, xmm1, xmm2
vmulps xmm1, xmm1, xmmword [0x14011fea0]
or edx, ecx
vaddps xmm1, xmm1, xmmword [0x14011de20]
vcvttps2dq xmm1, xmm1
vpslld xmm2, xmm1, 0x18
vpslld xmm1, xmm1, 0x10
vmovd eax, xmm1
or eax, edx
vpextrd r8d, xmm2, 1
or r8d, eax
vmovd edx, xmm9
vmovd eax, xmm0
shl rax, 0x20
or rdx, rax
mov rcx, qword [rdi + 0x298]
call fcn.1400734a0
vmulss xmm0, xmm13, xmm6
vroundss xmm0, xmm0, xmm0, 0xb
vsubss xmm0, xmm9, xmm0
vminss xmm0, xmm8, xmm0
vmovss dword [rsp + 0x68], xmm0
cmp r13, 0xffffffffffffffff
je 0x14005392d
add rbx, 0x37f0
lea r8, [rsp + 0xc8]
mov r14, r13
jmp 0x1400538b0
cmp byte [r14 + 1], 0x23
je 0x1400538c6
inc r14
cmp r14, 0xffffffffffffffff
je 0x1400538bf
movzx eax, byte [r14]
cmp eax, 0x23
je 0x1400538a0
test eax, eax
jne 0x1400538a7
jmp 0x1400538c6
mov r14, 0xffffffffffffffff
cmp r14d, r13d
je 0x14005392d
mov rsi, qword [0x14021e770]
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 + 0xc0]
mov r9, r13
call fcn.140042dc0
cmp byte [rsi + 0x5ca0], 0
je 0x14005392d
lea rcx, [rsp + 0xc0]
mov rdx, r13
mov r8, r14
call fcn.140042a20
mov dword [rdi + 0x258], 0
mov r14, qword [0x14021e770]
vmovss xmm0, dword [rsp + 0xa0]
vmovss xmm1, dword [r14 + 0x3834]
vsubss xmm2, xmm0, xmm1
vmovss xmm0, dword [r14 + 0xe08]
vucomiss xmm2, xmm0
jbe 0x140053967
xor eax, eax
jmp 0x1400539b3
vmovss xmm2, dword [rsp + 0xa4]
vmovss xmm3, dword [r14 + 0x3838]
vsubss xmm2, xmm2, xmm3
vaddss xmm1, xmm1, dword [rsp + 0xa8]
vaddss xmm3, xmm3, dword [rsp + 0xac]
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 + 0xa0]
vmovups xmmword [r14 + 0x47b0], xmm0
vmovups xmm0, xmmword [rsp + 0xa0]
vmovups xmmword [r14 + 0x47a0], xmm0
mov eax, dword [r12 + 0x477c]
test eax, eax
je 0x140053b18
cmp dword [rdi + 0x10], eax
je 0x140053a18
cmp dword [rdi + 0x7c], eax
jne 0x140053b18
lea rax, [r14 + 0x4794]
vmovups ymm0, ymmword [rax]
vmovups ymm1, ymmword [rax + 0x1c]
vmovups ymmword [rsp + 0xdc], ymm1
vmovups ymmword [rsp + 0xc0], 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.140048bb0
mov rbx, rax
vmovups xmm0, xmmword [rsp + 0xcc]
vmovaps xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x68]
vmovaps xmm0, xmmword [rsp + 0x60]
vaddps xmm0, xmm0, xmmword [0x140123580]
vmovaps xmmword [rsp + 0x60], xmm0
mov rax, qword [r14 + 0xe08]
vmovq xmm1, rax
mov qword [rsp + 0xb8], rax
vcmpltps xmm2, xmm1, xmm0
vpermilpd xmm3, xmm0, 1
vminps xmm1, xmm3, xmm1
vblendvps xmm0, xmm1, xmm0, xmm2
vmovlps qword [rsp + 0xb0], 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.140064490
mov dword [rsp + 0x20], 0x3f800000
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0xb0]
mov rcx, rbx
mov r9d, 0xff00ff00
call fcn.1400642f0
mov r14, qword [0x14021e770]
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.140061d00
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 + 0x80]
cmp eax, dword [rsp + 0x110]
je 0x140053c90
mov eax, dword [rsp + 0x58]
test eax, 0x1000000
je 0x140053bf8
test al, 0x40
jne 0x140053bc1
cmp byte [rdi + 0xd0], 0
jg 0x140053bc1
cmp byte [rdi + 0xd1], 0
jle 0x140053d7a
test rbp, rbp
je 0x140053bf8
cmp byte [rbp + 0xb9], 0
jne 0x140053bd8
cmp byte [rbp + 0xd8], 0
jle 0x140053be8
mov byte [rdi + 0xd8], 1
cmp byte [rbp + 0xb9], 0
jne 0x140053bf1
cmp byte [rbp + 0xd9], 0
jle 0x140053bf8
mov byte [rdi + 0xd9], 1
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [r12 + 0x37d0]
jae 0x140053c2e
mov al, 1
cmp byte [rdi + 0xd8], 0
mov cl, 1
jg 0x140053c39
mov al, 1
cmp byte [rdi + 0xd9], 0
jg 0x140053c39
cmp byte [rdi + 0xda], 0
setg cl
xor eax, eax
jmp 0x140053c39
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 0x140053c59
dec cl
mov byte [rdi + 0xdb], cl
or dword [rdi + 0x14], 0xc0200
cmp byte [rdi + 0xb9], 0
jne 0x140053c72
cmp byte [rdi + 0xb6], 0
setne cl
not al
test al, cl
jne 0x140053c88
cmp byte [rdi + 0xd0], 0
jg 0x140053c88
cmp byte [rdi + 0xd1], 0
jle 0x140053d6b
xor eax, eax
mov byte [rdi + 0xbb], al
cmp byte [rdi + 0xbe], 0
je 0x140053ca5
cmp byte [rdi + 0xbb], 0
sete al
jmp 0x140053cfd
cmp byte [r12 + 0x84], 0
setne al
test byte [rsp + 0x7c], al
jne 0x140053cd5
cmp byte [r12 + 0x85], 0
je 0x140053c99
movsx eax, byte [r12 + 0x5d12]
cmp dword [r12 + 0x3ec8], eax
jne 0x140053c99
movzx eax, byte [rdi + 0xd0]
test al, al
jle 0x140053ce8
inc al
mov byte [rdi + 0xd0], al
movzx eax, byte [rdi + 0xd1]
test al, al
jle 0x140053cfb
inc al
mov byte [rdi + 0xd1], al
xor eax, eax
vmovaps xmm6, xmmword [rsp + 0x240]
vmovaps xmm7, xmmword [rsp + 0x250]
vmovaps xmm8, xmmword [rsp + 0x260]
vmovaps xmm9, xmmword [rsp + 0x270]
vmovaps xmm10, xmmword [rsp + 0x280]
vmovaps xmm11, xmmword [rsp + 0x290]
vmovaps xmm12, xmmword [rsp + 0x2a0]
vmovaps xmm13, xmmword [rsp + 0x2b0]
vmovaps xmm14, xmmword [rsp + 0x2c0]
vmovaps xmm15, xmmword [rsp + 0x2d0]
add rsp, 0x2e8
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 0x140053c8a
test eax, 0x800000
je 0x140053dbd
cmp byte [r12 + 0x4918], 0
je 0x140053dbd
mov rax, qword [r12 + 0x48d8]
test rax, rax
je 0x140053dbd
mov rax, qword [rax + 0x390]
cmp rax, qword [rdi + 0x390]
sete al
jmp 0x140053dbf
vxorps xmm3, xmm3, xmm3
test al, al
jne 0x14005196a
jmp 0x140051955
xor eax, eax
cmp byte [r12 + 0x5ca0], 0
jne 0x140053bc1
test al, al
jne 0x140053bc1
vmovss xmm0, dword [rdi + 0x1e8]
vucomiss xmm0, dword [rdi + 0x1f0]
jae 0x140053dfe
vmovss xmm0, dword [rdi + 0x1ec]
vucomiss xmm0, dword [rdi + 0x1f4]
jb 0x140053bc1
mov byte [rdi + 0xd8], 1
jmp 0x140053bc1
cmp byte [rdi + 0xb7], 0
je 0x14005171c
vmovss dword [rsp + 0x16c], xmm6
vmovss dword [rsp + 0x130], xmm9
mov rdx, qword [0x14021e770]
movzx eax, byte [rdx + 0x7e]
vmovss xmm0, dword [rdx + 0x3c20]
vmulss xmm1, xmm0, dword [0x140123450]
vaddss xmm1, xmm15, xmm1
vmulss xmm0, xmm0, dword [0x1401234e4]
vmaxss xmm0, xmm0, xmm1
vroundss xmm0, xmm0, xmm0, 0xb
vmulss xmm0, xmm0, dword [0x14011e768]
vxorps xmm9, xmm9, xmm9
mov byte [rsp + 0x87], al
test al, al
je 0x140053e7a
vmovss xmm9, dword [0x14011e55c]
vroundss xmm0, xmm0, xmm0, 0xb
vmovaps xmmword [rsp + 0x170], xmm0
cmp byte [rdx + 0x7f], 0
sete al
or r8b, al
vmovshdup xmm6, xmm8
test r8b, 1
jne 0x140053ed9
mov rax, qword [rdi]
vmovss xmm0, dword [rdi + 0x290]
vmulss xmm0, xmm0, dword [rax + 0x3c24]
mov rcx, qword [rdi + 0x368]
test rcx, rcx
je 0x140053ec5
vmulss xmm0, xmm0, dword [rcx + 0x290]
vmovss xmm1, dword [rax + 0x3810]
vsubss xmm0, xmm6, xmm0
vaddss xmm1, xmm1, xmm1
vsubss xmm6, xmm0, xmm1
mov dword [rsp + 0x13c], r8d
mov qword [rsp + 0x48], rdx
mov byte [rsp + 0x57], r15b
vmovss dword [rsp + 0x134], xmm14
vmovss dword [rsp + 0x138], xmm15
mov dword [rdi + 0x158], 1
lea rcx, str.RESIZE
call fcn.1400599d0
mov eax, dword [rsp + 0x104]
mov qword [rsp + 0x108], rax
vmovaps xmm0, xmmword [0x1401234f0]
vmovaps xmmword [rsp + 0x1b0], xmm6
vinsertps xmm0, xmm0, xmm6, 0x10
vmovaps xmmword [rsp + 0x180], xmm0
vmovsldup xmm15, xmmword [rsp + 0x170]
vxorps xmm0, xmm15, xmmword [0x14011ee30]
vmovaps xmmword [rsp + 0x1e0], xmm0
vblendps xmm0, xmm8, xmmword [0x140123500], 0xe
vmovaps xmmword [rsp + 0x1d0], xmm0
vmovsldup xmm14, xmm9
vmovaps xmm6, xmmword [0x1401233d0]
lea r12, [0x140124348]
xor r13d, r13d
vmovss xmm13, dword [0x14011de30]
vxorps xmm7, xmm7, xmm7
xor eax, eax
mov qword [rsp + 0x1a0], rax
vmovaps xmmword [rsp + 0x190], xmm6
jmp 0x140054096
xor edx, edx
test cl, cl
sete dl
xor rdx, 0x1f
test al, al
mov rax, qword [0x14021e770]
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 [0x14011feb0]
vmulss xmm1, xmm1, xmm3
vmovss xmm4, dword [0x14011e560]
vaddss xmm1, xmm1, xmm4
vcvttss2si ecx, xmm1
vminss xmm1, xmm13, dword [rax + rdx + 0x38bc]
vxorps xmm7, xmm7, xmm7
vmaxss xmm1, xmm1, xmm2
vmulss xmm1, xmm1, xmm3
vaddss xmm1, xmm1, xmm4
vcvttss2si r8d, xmm1
shl r8d, 8
or r8d, ecx
vmovss xmm1, dword [rax + rdx + 0x38c0]
vinsertps xmm0, xmm1, xmm0, 0x10
vminps xmm0, xmm0, xmmword [0x14011e4c0]
vmaxps xmm0, xmm0, xmmword [0x14011ee90]
vmulps xmm0, xmm0, xmmword [0x14011fea0]
vaddps xmm0, xmm0, xmmword [0x14011de20]
vcvttps2dq xmm0, xmm0
vpslld xmm1, xmm0, 0x18
vpslld xmm0, xmm0, 0x10
vmovd eax, xmm0
or eax, r8d
vpextrd ecx, xmm1, 1
or ecx, eax
mov dword [rsp + r13*4 + 0x1c0], ecx
inc r13
add r12, 0x18
cmp qword [rsp + 0x108], r13
je 0x14005439d
vmovsd xmm9, qword [r12 - 8]
vmovsd xmm10, qword [r12]
vmovsd xmm0, qword [rdi + 0x20]
vmovsd xmm1, qword [rdi + 0x28]
vmulps xmm1, xmm9, xmm1
vaddps xmm1, xmm1, xmm0
vmulps xmm12, xmm10, xmm14
vsubps xmm0, xmm1, xmm12
vmulps xmm2, xmm10, xmm15
vaddps xmm1, xmm2, xmm1
vmovlhps xmm2, xmm0, xmm1
vmovups xmmword [rsp + 0xc0], xmm2
vucomiss xmm0, xmm1
jbe 0x1400540ed
vmovss dword [rsp + 0xc0], xmm1
vmovss dword [rsp + 0xc8], xmm0
vmovshdup xmm0, xmm0
vmovshdup xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x14005410d
vmovss dword [rsp + 0xc4], xmm1
vmovss dword [rsp + 0xcc], xmm0
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, [0x1401236b0]
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 0x14005419f
mov ecx, r15d
mov edx, 4
mov r8, r13
xor r9d, r9d
call fcn.140047be0
lea rbx, [rsp + 0xc0]
mov rcx, rbx
mov edx, r15d
xor r8d, r8d
mov r9d, 8
call fcn.1400572d0
mov dword [rsp + 0x20], 0x40800
mov rcx, rbx
mov edx, r15d
lea r8, [rsp + 0xa0]
lea r9, [rsp + 0xb8]
call fcn.14007e400
movzx eax, byte [rsp + 0xb8]
movzx ecx, byte [rsp + 0xa0]
or cl, al
je 0x14005436f
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 0x14005436f
cmp word [r8 + 0x3752], 2
jne 0x140054263
test r13, r13
jne 0x140054263
lea rcx, [rsp + 0x60]
mov rdx, rdi
lea r8, [rsp + 0x128]
call fcn.140058290
vmovsd xmm0, qword [rsp + 0x60]
vmovaps xmmword [rsp + 0x190], xmm0
xor ecx, ecx
xor edx, edx
call fcn.1400483a0
mov al, 1
mov qword [rsp + 0x1a0], rax
jmp 0x14005436f
vmovshdup xmm0, xmm9
vucomiss xmm0, xmm13
setne al
vucomiss xmm0, xmm7
setne cl
or cl, byte [rsp + 0x13c]
and cl, al
vucomiss xmm9, xmm13
sete al
vcmpeqps xmm6, xmm9, xmmword [0x14011ee90]
vmovaps xmm0, xmmword [0x1401233d0]
vblendvps xmm0, xmm0, xmm11, xmm6
vmulps xmm1, xmm10, xmmword [rsp + 0x1e0]
vsubps xmm1, xmm1, xmm12
vmulps xmm1, xmm9, xmm1
vmovsd xmm2, qword [r8 + 0xe08]
vmovsd xmm3, qword [r8 + 0x3f6c]
vsubps xmm2, xmm2, xmm3
vaddps xmm2, xmm12, xmm2
vmovd xmm3, eax
vpinsrb xmm3, xmm3, ecx, 4
vaddps xmm1, xmm1, xmm2
vpslld xmm2, xmm3, 0x1f
vmovaps xmm3, xmmword [rsp + 0x180]
vblendvps xmm2, xmm3, xmmword [rsp + 0x1d0], 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 xmm3, xmm1, xmm0
vmulps xmm3, xmm9, xmm3
vaddps xmm10, xmm3, xmm0
vaddps xmm1, xmm2, xmm1
vsubps xmm0, xmm0, xmm1
vmulps xmm0, xmm9, xmm0
vsubps xmm1, xmm1, xmm10
vaddps xmm9, xmm1, xmm0
vmovlps qword [rsp + 0x60], xmm9
lea rcx, [rsp + 0x140]
mov rdx, rdi
lea r8, [rsp + 0x60]
call fcn.140058290
vmovsd xmm0, qword [rsp + 0x140]
vmovaps xmmword [rsp + 0x190], xmm0
vsubps xmm0, xmm9, xmm0
vmovaps xmm1, xmmword [0x140123510]
vblendvps xmm0, xmm1, xmm0, xmm6
vaddps xmm6, xmm10, xmm0
movzx eax, byte [rsp + 0xb8]
movzx ecx, byte [rsp + 0xa0]
test r13, r13
je 0x140053faa
test al, al
jne 0x140053faa
test cl, cl
je 0x140054081
jmp 0x140053faa
cmp byte [rsp + 0x87], 0
je 0x1400547a9
vmovaps xmm0, xmmword [rsp + 0x170]
vblendps xmm9, xmm0, xmmword [0x140123520], 0xe
vblendps xmm13, xmm0, xmmword [0x140123530], 0xe
mov dword [rsp + 0x180], 0xffffffff
lea r12, [0x1401243b0]
xor r13d, r13d
vxorps xmm7, xmm7, xmm7
lea rbx, [rsp + 0xc0]
vmovss xmm15, dword [0x140123380]
vmovss xmm14, dword [0x14011e55c]
jmp 0x140054513
vinsertps xmm0, xmm1, xmm0, 0x10
xor ecx, ecx
cmp r13, 2
setae cl
sete dl
mov r8, qword [rdi + 0x20]
mov qword [rsp + 0xa0], r8
vaddss xmm1, xmm14, dword [r9 + rcx*4 + 0xe08]
vmovq xmm2, r8
vsubss xmm1, xmm1, dword [r9 + rcx*4 + 0x3f6c]
vmovss dword [rsp + rcx*4 + 0xa0], xmm1
vmovd xmm1, eax
vpinsrb xmm1, xmm1, edx, 4
vpslld xmm1, xmm1, 0x1f
vmovaps xmm3, xmmword [0x1401233d0]
vblendvps xmm1, xmm3, xmm11, xmm1
vmovsd xmm3, qword [rsp + 0xa0]
vcmpltps xmm4, xmm3, xmm0
vminps xmm1, xmm1, xmm3
vblendvps xmm0, xmm1, xmm0, xmm4
vmovsd xmm1, qword [r12 - 8]
vmovsd xmm3, qword [r12]
vminps xmm6, xmm1, xmm3
vsubps xmm1, xmm2, xmm0
vmulps xmm1, xmm6, xmm1
vaddps xmm10, xmm1, xmm0
vmovsd xmm1, qword [rdi + 0x28]
vaddps xmm1, xmm1, xmm2
vsubps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmm6
vsubps xmm1, xmm1, xmm10
vaddps xmm12, xmm0, xmm1
vmovlps qword [rsp + 0x60], xmm12
lea rcx, [rsp + 0x140]
mov rdx, rdi
lea r8, [rsp + 0x60]
call fcn.140058290
mov r9, qword [rsp + 0x48]
vcmpeqps xmm0, xmm6, xmm7
vmovsd xmm1, qword [rsp + 0x140]
vmovaps xmmword [rsp + 0x190], xmm1
vsubps xmm1, xmm12, xmm1
vmovaps xmm2, xmmword [0x140123510]
vblendvps xmm0, xmm2, xmm1, xmm0
vaddps xmm6, xmm10, xmm0
mov eax, r13d
mov dword [rsp + 0x180], r13d
inc r13
add r12, 0x1c
cmp r13, 4
je 0x1400547b9
cmp r13d, 3
ja case.default.0x14005453e
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, [0x140054aec]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
vsubss xmm2, xmm3, dword [rsp + 0x170]
vinsertps xmm1, xmm1, xmm0, 0x10
vaddps xmm1, xmm9, xmm1
vaddss xmm0, xmm0, dword [0x140123458]
vmovss dword [rsp + 0xc0], xmm0
vmovlps qword [rsp + 0xc4], xmm1
vmovss dword [rsp + 0xcc], xmm2
jmp 0x140054627
vmovaps xmmword [rsp + 0xc0], xmm7
jmp 0x140054627
vsubss xmm0, xmm3, dword [rsp + 0x170]
vinsertps xmm1, xmm1, xmm2, 0x10
vaddps xmm1, xmm9, xmm1
vaddss xmm2, xmm2, dword [0x140123458]
vmovss dword [rsp + 0xc0], xmm2
vmovlps qword [rsp + 0xc4], xmm1
vmovss dword [rsp + 0xcc], xmm0
jmp 0x140054627
vaddss xmm3, xmm14, xmm1
vsubss xmm2, xmm2, dword [rsp + 0x170]
vinsertps xmm0, xmm0, xmm1, 0x10
vaddps xmm0, xmm13, xmm0
vmovlps qword [rsp + 0xc0], xmm0
vmovss dword [rsp + 0xc8], xmm2
vmovss dword [rsp + 0xcc], xmm3
jmp 0x140054627
vaddss xmm1, xmm14, xmm3
vsubss xmm2, xmm2, dword [rsp + 0x170]
vinsertps xmm0, xmm0, xmm3, 0x10
vaddps xmm0, xmm13, xmm0
vmovlps qword [rsp + 0xc0], xmm0
vmovss dword [rsp + 0xc8], xmm2
vmovss dword [rsp + 0xcc], 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, [0x1401236b0]
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 0x1400546ba
mov ecx, r15d
mov edx, 4
xor r9d, r9d
call fcn.140047be0
mov rcx, rbx
mov edx, r15d
xor r8d, r8d
mov r9d, 8
call fcn.1400572d0
mov dword [rsp + 0x20], 0x40800
mov rcx, rbx
mov edx, r15d
lea r8, [rsp + 0xb8]
lea r9, [rsp + 0xb0]
call fcn.14007e400
cmp byte [rsp + 0xb8], 0
je 0x14005473f
mov r9, qword [rsp + 0x48]
vmovss xmm0, dword [0x140123540]
vucomiss xmm0, dword [r9 + 0x3f50]
movzx eax, byte [rsp + 0xb0]
jb 0x140054723
test al, al
je 0x140054502
cmp r13, 2
mov ecx, 0
adc ecx, 3
mov dword [r9 + 0x4a98], ecx
test al, al
jne 0x140054765
jmp 0x140054502
cmp byte [rsp + 0xb0], 0
mov r9, qword [rsp + 0x48]
je 0x140054502
cmp r13, 2
mov eax, 0
adc eax, 3
mov dword [r9 + 0x4a98], eax
cmp r13d, 3
je 0x140054783
vmovaps xmm0, xmm15
cmp r13d, 2
jne 0x14005478c
vmovaps xmm0, xmm15
test byte [rsp + 0x13c], 1
jne 0x14005478c
vmovaps xmm0, xmmword [rsp + 0x1b0]
test r13, r13
sete al
vmovaps xmm1, xmm8
cmp r13, 1
je 0x1400543fe
vmovaps xmm1, xmm15
jmp 0x1400543fe
mov dword [rsp + 0x180], 0xffffffff
mov r9, qword [rsp + 0x48]
mov rax, qword [0x14021e770]
mov rcx, qword [rax + 0x3ef8]
dec dword [rcx + 0xf0]
mov dword [rdi + 0x158], 0
mov rcx, qword [r9 + 0x4a60]
test rcx, rcx
je 0x140054879
cmp qword [rcx + 0x378], rdi
mov r12, qword [rsp + 0x40]
vmovss xmm15, dword [rsp + 0x138]
vmovss xmm14, dword [rsp + 0x134]
mov ebx, dword [rsp + 0x90]
vmovss xmm9, dword [rsp + 0x130]
movzx r15d, byte [rsp + 0x57]
vmovaps xmm10, xmmword [rsp + 0x190]
jne 0x140054a06
mov ecx, dword [r9 + 0x490c]
cmp ecx, 3
je 0x1400548b4
vxorps xmm0, xmm0, xmm0
cmp ecx, 2
vmovaps xmm3, xmmword [rsp + 0x1b0]
jne 0x1400548e8
cmp byte [r9 + 0xe25], 0
je 0x1400548e8
vmovss xmm0, dword [rax + 0x2e78]
lea rcx, [rax + 0x2e58]
vsubss xmm0, xmm0, dword [rax + 0x2e68]
add rax, 0x2e48
jmp 0x1400548da
mov r12, qword [rsp + 0x40]
vmovss xmm15, dword [rsp + 0x138]
vmovss xmm14, dword [rsp + 0x134]
mov ebx, dword [rsp + 0x90]
vmovss xmm9, dword [rsp + 0x130]
movzx r15d, byte [rsp + 0x57]
vmovaps xmm10, xmmword [rsp + 0x190]
jmp 0x140054a06
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 0x140054a06
vmovss xmm1, dword [r9 + 0x18]
vmovss xmm2, dword [r9 + 0x70]
vmulss xmm1, xmm1, dword [0x140123544]
vminss xmm2, xmm2, dword [r9 + 0x74]
vmulss xmm1, xmm1, xmm2
vmovsldup xmm1, xmm1
vmulps xmm0, xmm1, xmm0
vmovsd xmm1, qword [r9 + 0x4a8c]
vaddps xmm0, xmm0, xmm1
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 [0x14011de30]
mov ecx, 0x20
call fcn.140042100
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
je 0x140054a06
vmovaps xmm8, xmm6
vcvtdq2ps xmm6, xmm0
vmovsd xmm0, qword [rdi + 0x30]
vaddps xmm0, xmm0, xmm6
vmovlps qword [rsp + 0x60], xmm0
lea rcx, [rsp + 0xc0]
lea r8, [rsp + 0x60]
mov rdx, rdi
mov r13, r9
call fcn.140058290
vmovsd xmm10, qword [rsp + 0xc0]
vmovsd xmm0, qword [r13 + 0x4a8c]
vsubps xmm0, xmm0, xmm6
vmovaps xmm6, xmm8
vmovlps qword [r13 + 0x4a8c], xmm0
vucomiss xmm10, dword [0x140123310]
je 0x140054a3d
vmovlps qword [rdi + 0x30], xmm10
test byte [rdi + 0x15], 1
jne 0x140054a3d
mov rax, qword [0x14021e770]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x140054a3d
vmovss xmm0, dword [rax + 0x1c]
vmovss dword [rax + 0x5c0c], xmm0
vucomiss xmm6, dword [0x140123310]
je 0x140054a89
vmovshdup xmm0, xmm6
vroundss xmm0, xmm0, xmm0, 0xb
vroundss xmm1, xmm6, xmm6, 0xb
vmovss dword [rdi + 0x20], xmm1
vmovss dword [rdi + 0x24], xmm0
test byte [rdi + 0x15], 1
jne 0x140054a89
mov rax, qword [0x14021e770]
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, dword [rax + 0x5c0c]
jb 0x140054a89
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 + 0x108], rcx
mov ecx, dword [rsp + 0x180]
mov byte [rdi + 0xc1], cl
cmp byte [rdi + 0xb9], 0
jne 0x140051997
mov dword [rsp + 0x5c], eax
vmovss xmm6, dword [rsp + 0x16c]
jmp 0x140051739