Function at 0x14016ba00
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x308
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x280], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
cmp qword [0x140575a70], 0
jne 0x14016ba97
mov ecx, 0xe8
mov edx, 0x11a5e520
mov r8d, 0xb6059c5
call fcn.1400aaae0
lea rcx, [0x140438898]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x1404388f8]
mov qword [rax + 0x10], rcx
mov word [rax + 8], 0
mov ecx, 0xfffff328
add ecx, dword [0x14051b358]
mov word [rax + 0xa], cx
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x140575a70], rax
mov rax, qword [0x140575a70]
mov rbx, qword [rax + 0x38]
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0x7fffffff
mov byte [rbp - 0x10], 1
lea r14, [0x14043a508]
mov qword [rbp - 0x28], r14
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov rcx, rbx
call fcn.14025bef0
movsxd rax, dword [rax + 0x3c]
lea rcx, [rbx + rax]
xor edx, edx
cmp dword [rbx + rax], 0x4550
cmove rdx, rcx
mov r15d, dword [rdx + 0xd8]
test r15, r15
je 0x14016bb49
mov eax, dword [0x140575bd4]
cmp eax, 0x25
nop word cs:[rax + rax]
mov eax, dword [0x140575bdc]
add eax, dword [rbx + r15]
mov ecx, dword [0x140575bd0]
mov edx, ecx
not edx
imul edx, ecx
test dl, 1
jne 0x14016bb00
cmp eax, 0x71
jb 0x14016bb49
mov r8, qword [rbx + r15 + 0x70]
lea rdx, [0x1404fe3f8]
mov rcx, rbx
call fcn.140171d90
mov r8, qword [rbx + r15 + 0x78]
lea rdx, case.0x14013cbc3.0
mov rcx, rbx
call fcn.140171d90
mov qword [rbp - 0x28], r14
mov rbx, qword [rbp]
test rbx, rbx
je 0x14016bb81
lock dec dword [rbx + 8]
jne 0x14016bb81
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
call qword [case.0x14013cbc3.0]
lock dec dword [rbx + 0xc]
jne 0x14016bb81
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov rcx, rbx
call qword [case.0x14013cbc3.0]
xor eax, eax
test al, al
je 0x14016bb8c
jmp 0x14016bc65
mov eax, dword [rsi + 0xc134]
mov ecx, dword [rsi]
movups xmm0, xmmword [rsi + 0xc124]
or dword [rdi + 0x164], ecx
movups xmmword [rdi + 0x168], xmm0
mov dword [rdi + 0x178], eax
mov eax, dword [rdi + 0x160]
or eax, dword [rsi + 0xc114]
mov dword [rdi + 0x160], eax
lea rbx, [rsi + 0x40]
shr eax, 0x1f
movzx ecx, byte [0x140575b58]
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
lea r14, [rdi + 0x50]
mov byte [rdi + 0x58], cl
movups xmm0, xmmword [rsi + 0x40]
movups xmm1, xmmword [rsi + 0x50]
movups xmm2, xmmword [rsi + 0x60]
movups xmm3, xmmword [rsi + 0x70]
movups xmmword [rdi + 0x59], xmm0
movups xmmword [rdi + 0x69], xmm1
movups xmmword [rdi + 0x79], xmm2
movups xmmword [rdi + 0x89], xmm3
mov dword [rsp + 0x20], 0x4f14fcab
mov rcx, r14
mov rdx, rbx
mov r8d, 0x2a02c65b
mov r9d, 0xdc4594fc
call fcn.1401780d0
mov dword [rsp + 0x20], 0x2c0f0cda
mov rcx, r14
mov rdx, rbx
mov r8d, 0xbaf5e893
mov r9d, 0x78f45f75
call fcn.140178110
xorps xmm0, xmm0
movaps xmmword [rbp + 0x1f0], xmm0
mov qword [rbp + 0x200], 0
cmp dword [0x14051b34c], 0x60877a9
je 0x14016be54
mov ecx, dword [rsi]
mov eax, dword [rdi + 0x164]
sub eax, ecx
imul eax, ecx
sub ecx, eax
mov edx, eax
shl edx, cl
sub eax, dword [0x14051b34c]
add eax, 0x60877a9
sub edx, eax
mov r9d, edx
mov ecx, eax
shl r9d, cl
mov eax, dword [rsi + 0xc134]
mov r8d, dword [rdi + 0x160]
mov ecx, edx
sub ecx, r9d
imul ecx, r9d
or ecx, edx
movups xmm0, xmmword [rsi + 0xc124]
mov dword [rdi + 0x164], ecx
movups xmmword [rdi + 0x168], xmm0
mov dword [rdi + 0x178], eax
mov eax, dword [rsi + 0xc114]
mov edx, r8d
mov ecx, eax
shl edx, cl
sub edx, eax
imul edx, eax
mov ecx, edx
sub ecx, eax
imul ecx, eax
shl edx, cl
mov r9d, edx
shl r9d, cl
mov ecx, edx
sub ecx, r9d
imul ecx, r9d
mov r9d, edx
shl r9d, cl
sub edx, r9d
imul edx, r9d
sub edx, r9d
imul edx, r9d
neg edx
imul edx, r9d
mov ecx, r8d
sub ecx, eax
imul ecx, eax
mov eax, r8d
shl eax, cl
and edx, r9d
sub r8d, eax
imul r8d, eax
mov ecx, eax
shl r8d, cl
mov r9d, r8d
sub r9d, eax
imul r9d, eax
mov ecx, r9d
xor ecx, r9d
not ecx
and ecx, r8d
xor ecx, r9d
sub ecx, edx
shl edx, cl
mov eax, edx
shl eax, cl
neg edx
mov ecx, edx
xor ecx, eax
and edx, eax
lea edx, [rcx + rdx*2]
mov ecx, eax
shl edx, cl
mov ecx, edx
sub ecx, eax
imul ecx, eax
mov eax, edx
sub eax, ecx
imul eax, ecx
mov ecx, edx
sub ecx, eax
imul ecx, eax
shl edx, cl
shl edx, cl
sub ecx, edx
shl edx, cl
or edx, ecx
mov r8d, edx
shl r8d, 5
sub r8d, edx
add r8d, 0xfffffc3f
mov ecx, r8d
shl ecx, 5
sub ecx, r8d
add cl, 0x3f
mov eax, r8d
shl eax, cl
sub eax, r8d
mov r9d, eax
sub r9d, r8d
mov r8d, r9d
mov ecx, eax
shl r8d, cl
mov dword [rdi + 0x160], edx
lea rbx, [rsi + 0x40]
mov ecx, r9d
sub ecx, r8d
imul ecx, r8d
mov edx, ecx
sub edx, r9d
shr edx, cl
movzx r8d, byte [0x140575b58]
mov ecx, edx
shl r8b, cl
mov eax, r8d
sub al, dl
mul dl
add al, r8b
lea r14, [rdi + 0x50]
mov byte [rdi + 0x58], al
movups xmm0, xmmword [rsi + 0x40]
movups xmm1, xmmword [rsi + 0x50]
movups xmm2, xmmword [rsi + 0x60]
movups xmm3, xmmword [rsi + 0x70]
movups xmmword [rdi + 0x59], xmm0
movups xmmword [rdi + 0x69], xmm1
movups xmmword [rdi + 0x79], xmm2
movups xmmword [rdi + 0x89], xmm3
mov dword [rsp + 0x20], 0x4f14fcab
mov rcx, r14
mov rdx, rbx
mov r8d, 0x2a02c65b
mov r9d, 0xdc4594fc
call fcn.1401780d0
mov dword [rsp + 0x20], 0x2c0f0cda
mov rcx, r14
mov rdx, rbx
mov r8d, 0xbaf5e893
mov r9d, 0x78f45f75
call fcn.140178110
xorps xmm0, xmm0
movaps xmmword [rbp + 0x1f0], xmm0
mov qword [rbp + 0x200], 0
jmp 0x14016bb8c
call fcn.1400ae560
mov qword [rbp + 0x1e8], rax
lea rdx, [rbp + 0x1f0]
mov rcx, qword [rbp + 0x1e8]
call fcn.14016d890
lea rax, [rsi + 0xc124]
mov qword [rbp + 0x1e0], rax
mov rax, qword [0x140575a98]
mov ecx, dword [0x140575bd4]
cmp ecx, 0x32
jge 0x14016beaf
mov rbx, qword [0x14051ae60]
mov r14d, dword [rbx]
mov r15d, dword [0x140575be0]
mov ecx, dword [0x140575bd4]
cmp ecx, 0x39
jl 0x14016beba
mov rcx, qword [0x14051ae60]
mov ecx, dword [rcx]
jmp 0x14016be93
mov ecx, dword [0x14043ced0]
mov dword [rbp + 0x24c], ecx
test rax, rax
jne 0x14016bef2
mov ecx, 0x160
call fcn.1403f542c
mov qword [rbp + 0x240], rax
mov rcx, rax
call fcn.140139ad0
mov rax, qword [rbp + 0x240]
mov qword [0x140575a98], rax
mov eax, r15d
xor eax, r14d
not r15d
not r14d
and r14d, r15d
or r14d, eax
not r14d
lea eax, [rax + r14*2]
cdqe
add rbx, rax
mov r9, qword [0x140575a98]
mov ecx, 0xf9f78858
nop dword [rax]
mov r13d, dword [0x14051ae54]
mov eax, dword [0x14051b34c]
add eax, ecx
mov edx, dword [0x140575bd0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x14016bf20
mov qword [rbp + 0x1d8], r9
xor eax, r13d
mov ecx, r13d
and ecx, 1
lea eax, [rax + rcx*2]
mov dword [0x14051ae54], eax
test r13d, eax
mov dword [rbp + 0x20c], eax
je 0x14016bf6c
xor r14d, r14d
jmp 0x14016bf81
xor edx, edx
mov r14d, 0
cmp dword [rbp + 0x24c], 0
jg 0x14016c015
mov r9, qword [rdi + 0x190]
mov eax, dword [rdi + 0x160]
mov ecx, eax
not ecx
xor eax, 0x10000
and ecx, 0xfffeffff
or ecx, eax
cmp ecx, 0xffffffff
setne dl
mov r12, qword [rbp + 0x1d8]
mov rcx, r12
mov r8, rsi
call fcn.14013a1f0
lea rcx, [rbp - 0x28]
mov r8d, 0x200
xor edx, edx
call fcn.14041da70
mov edx, dword [rsi]
mov rcx, rdi
call fcn.1400ae030
mov ecx, eax
mov eax, dword [0x140575bd4]
lea rax, [fcn.14016ba00]
add eax, eax
add eax, 0x46a0
mov edx, eax
not edx
nop dword [rax]
test edx, eax
jne 0x14016bff0
mov eax, dword [0x140575bd0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
mov r10d, dword [rbp + 0x20c]
jne 0x14016c1b0
jmp 0x14016c186
lea r15, [0x1401774f0]
lea r12, [fcn.14016ba00]
xor r14d, r14d
nop word cs:[rax + rax]
mov dword [rbp + 0x240], r14d
mov dword [rbp + 0x208], edx
movsxd r14, edx
add r14, rbx
mov eax, dword [0x140575bd4]
cmp eax, 0x21
jg 0x14016c070
nop
mov eax, dword [0x140575bd0]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
je 0x14016c100
nop word cs:[rax + rax]
mov ecx, 0x39
mov edx, 0xe6e323b9
mov r8d, 0x5d8ade17
mov r9d, 0x7eeef33f
call fcn.140131c00
mov qword [0x140575ba8], rax
mov rcx, r15
mov edx, 0x988c7def
mov r8d, 0xe3d3177
mov r9d, 0x56b22baf
call fcn.1400aa090
mov eax, dword [0x14051b34c]
lea ecx, [rax - 0x60877a8]
lea edx, [r12 + r12]
add edx, 0xe0
mov r8d, edx
not r8d
mov r9d, r8d
and r9d, ecx
not ecx
and edx, ecx
or edx, r9d
and ecx, r8d
or ecx, edx
not ecx
mov edx, eax
xor edx, 0xf9f78857
and eax, 0x79f78857
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x14016c070
jmp 0x14016c050
mov eax, dword [0x140575bd4]
mov ecx, dword [0x14051b34c]
mov edx, 0xf9f7889f
add ecx, edx
cmp eax, ecx
jge 0x14016c180
nop word [rax + rax]
movzx eax, word [r14]
cmp dword [0x14051b34c], 0x60877a9
jne 0x14016c180
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [rbp + 0x240]
xor ecx, eax
mov r14d, ecx
mov edx, dword [rbp + 0x208]
add edx, 2
cmp dword [0x14051b34c], 0x60877a9
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14016c154
cmp edx, dword [rbp + 0x24c]
jl 0x14016c030
jmp 0x14016bf81
movzx eax, word [r14]
jmp 0x14016c120
mov edx, dword [0x140575bd0]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, 0xf9f78859
add r8d, dword [0x14051b34c]
xor edx, edx
div r8d
test edx, edx
je 0x14016c1bd
nop dword [rax + rax]
mov eax, dword [0x140575bd4]
cmp eax, 0x17
jge 0x14016c1b0
jmp 0x14016c186
xor eax, eax
nop
xor edx, edx
test r13d, r10d
setne r8b
movzx r9d, word [0x14043ceda]
test al, al
je 0x14016c1de
movzx edx, word [0x14043ceda]
jmp 0x14016c1c0
mov dl, r8b
movzx eax, dx
add eax, 0xfffff687
movsx r8d, ax
add r8d, 0x978
sub r9d, r14d
mov eax, 0xfffff327
xor r8d, r9d
nop
mov edx, dword [0x14051b358]
add edx, eax
mov r10d, dword [0x140575bd0]
mov r11d, r10d
not r11d
imul r11d, r10d
test r11b, 1
jne 0x14016c200
xor r8d, edx
mov edx, dword [0x140575bd0]
mov r10d, dword [0x14051b34c]
mov eax, r10d
xor eax, 0xf9f78858
mov r11d, r10d
and r11d, 0x79f78858
lea r11d, [rax + r11*2]
mov eax, edx
sub eax, r11d
imul eax, edx
add r10d, 0xf9f78859
xor edx, edx
div r10d
test edx, edx
xor r8d, r9d
not r8d
and r8d, r9d
mov edx, 0xf9f78857
movzx eax, r8w
shr eax, 8
mov r9d, dword [0x140575bd0]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x14051b34c]
add r9d, edx
cmp r10d, r9d
mov r9d, dword [0x140575bd0]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x14051b34c]
add r9d, edx
cmp r10d, r9d
jne 0x14016c290
mov r9d, dword [0x140575bd0]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x14016c270
or al, r8b
movzx edx, byte [0x140575b58]
sub dl, byte [0x14051b348]
add dl, al
add dl, 0x40
mov byte [0x140575b58], dl
test cl, cl
je 0x14016d281
nop word [rax + rax]
mov eax, dword [0x140575bd0]
mov ecx, dword [0x14051b34c]
neg ecx
add ecx, eax
add ecx, 0x60877a8
imul ecx, eax
test cl, 1
jne 0x14016c319
mov eax, dword [0x140575bd4]
cmp eax, 0x23
jle 0x14016c326
mov eax, dword [0x140575bd4]
cmp eax, 0x23
jge 0x14016c2f0
jmp 0x14016c30e
mov rcx, r12
call fcn.14013cb50
lea rdx, [rbp - 0x28]
mov rcx, r12
call fcn.14013cc00
test al, al
je 0x14016c493
mov r15, qword [rdi + 0x108]
mov eax, dword [rbp - 0x24]
mov ecx, eax
not ecx
mov edx, eax
xor edx, 1
and ecx, 0xfffffffe
or ecx, edx
mov edx, 0xf9f78856
add edx, dword [0x14051b34c]
xor edx, ecx
je 0x14016c370
mov ecx, dword [rbp - 0x20]
mov dword [r15 + 8], ecx
mov ecx, 0xf9f78857
nop word cs:[rax + rax]
mov edx, dword [0x14051b34c]
mov r8d, dword [0x140575bd0]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x14016c3ba
mov edx, dword [0x140575bd0]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x14051b34c]
add edx, ecx
cmp r8d, edx
jmp 0x14016c380
lea ecx, [rdx - 0x60877a7]
add edx, 0xf9f78856
mov r8d, edx
xor r8d, edx
not r8d
and r8d, ecx
xor r8d, edx
mov edx, eax
xor edx, r8d
xor ecx, eax
not r8d
and r8d, eax
xor r8d, edx
mov edx, r8d
xor edx, r8d
not edx
and edx, ecx
and ecx, r8d
xor edx, r8d
or edx, ecx
not edx
test edx, edx
je 0x14016c415
movzx ecx, word [rbp - 0x1a]
mov word [r15 + 0xc], cx
mov ecx, dword [rbp - 0x18]
mov dword [r15 + 0x10], ecx
mov byte [r15 + 0x90], 1
test al, 4
je 0x14016c420
mov ecx, dword [rbp - 0x14]
mov dword [r15 + 0x14], ecx
mov ecx, eax
xor ecx, 0xfffffff7
test ecx, eax
je 0x14016c436
lea rdx, [rbp - 0x10]
lea rcx, [r15 + 0x18]
call fcn.140270c30
mov edx, dword [rbp - 0x24]
mov eax, dword [0x14051b34c]
lea r8d, [rax - 0x60877aa]
mov r9d, edx
xor r9d, r8d
lea ecx, [rax - 0x6087799]
xor ecx, r8d
xor edx, 0x10
mov r8d, r9d
not r8d
xor r9d, ecx
not ecx
and ecx, r8d
or ecx, r9d
not ecx
or ecx, edx
mov edx, eax
xor edx, 0x60877a9
and edx, eax
xor eax, 0xf9f78856
lea eax, [rax + rdx*2]
xor eax, ecx
je 0x14016c493
lea rdx, [rbp + 0x70]
add r15, 0x68
mov rcx, r15
call fcn.140270c30
mov eax, dword [rdi + 0x160]
mov ecx, eax
not ecx
mov edx, eax
xor edx, 0xffbfffff
and edx, ecx
xor eax, 0x400000
and ecx, 0xffbfffff
or ecx, eax
not ecx
or ecx, edx
mov eax, ecx
xor eax, 0xffbfffff
test ecx, eax
je 0x14016c534
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14016c4ed
mov rax, qword [rdi + 0x108]
mov byte [rax + 0x90], 1
mov eax, dword [0x140575bd4]
cmp eax, 0x40
jl 0x14016c534
lea r15, [0x1401778e0]
nop word cs:[rax + rax]
mov ecx, 0x34
call fcn.1403d5a14
mov qword [0x140575bc0], rax
mov rcx, r15
call fcn.1403f5a50
mov rax, qword [rdi + 0x108]
mov byte [rax + 0x90], 1
mov eax, dword [0x140575bd4]
cmp eax, 0x35
jge 0x14016c500
jmp 0x14016c4d4
mov rcx, rdi
mov rdx, rsi
call fcn.14011d1d0
test al, al
je 0x14016d281
mov rax, qword [rdi + 0x108]
mov qword [rax + 0x3c0], 0x3e8
lea rdx, [rbp + 0x1f0]
mov rcx, qword [rbp + 0x1e8]
call fcn.14016d950
lea rax, [fcn.14016ba00]
add eax, eax
add eax, 0x3f80
mov ecx, eax
not ecx
test ecx, eax
je 0x14016c5a5
mov ecx, 0xf9f7886c
add ecx, dword [0x14051b34c]
call fcn.1403d5a14
mov qword [0x140575bc8], rax
lea rcx, [0x140177900]
call fcn.1403f5a50
mov eax, dword [rdi + 0x160]
mov ecx, eax
not ecx
xor eax, 1
and ecx, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
je 0x14016c775
mov edx, dword [rsi + 0x38]
mov rcx, rdi
xor r8d, r8d
call fcn.1400ae690
test al, al
je 0x14016d281
mov ebx, dword [rsi + 0xc138]
mov rcx, rdi
call fcn.140171fd0
mov r14, rax
mov r15d, dword [rdi + 0x118]
mov dword [rax + 0x87c], ebx
lea rcx, [rax + 0x840]
mov rbx, qword [rax + 0x840]
mov r8, qword [rbx + 8]
mov rdx, rcx
call fcn.1401464f0
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
mov qword [r14 + 0x848], 0
mov dword [r14 + 0x880], r15d
mov rcx, r14
call fcn.1400713e0
mov ecx, dword [0x140575bd0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xf9f78859
add ecx, dword [0x14051b34c]
xor edx, edx
div ecx
test edx, edx
je 0x14016c66c
nop word cs:[rax + rax]
cmp dword [0x14051b34c], 0x60877a9
jne 0x14016c660
mov rcx, r14
mov rdx, rdi
call fcn.140071ea0
mov eax, dword [0x140575bd4]
cmp eax, 0x3a
mov eax, dword [0x140575bd0]
mov ecx, dword [0x14051b34c]
lea edx, [rcx + rax]
add edx, 0xf9f78858
imul edx, eax
and edx, 1
add ecx, 0xf9f78857
cmp edx, ecx
jne 0x14016c680
mov rcx, r14
add rcx, 8
call fcn.140175080
mov rcx, r14
call fcn.140082bc0
xorps xmm0, xmm0
mov rax, qword [rbp + 0x1e0]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rcx, rdi
call fcn.1400af290
test al, al
je 0x14016d281
mov eax, dword [rsi + 0xc148]
mov rcx, qword [rsi + 0xc140]
mov qword [rdi + 0x184], rcx
mov dword [rdi + 0x18c], eax
mov byte [rbp + 0x27f], 0
lea rdx, [rbp + 0x27f]
mov rcx, rdi
call fcn.1400af5e0
test al, al
je 0x14016d281
mov qword [rsi + 0xc140], 0
mov dword [rsi + 0xc148], 0
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
mov rcx, rdi
mov rdx, rsi
call qword [case.0x14013cbc3.0]
lea rcx, [fcn.14016ba00]
add ecx, ecx
add ecx, 0x4380
mov edx, ecx
not edx
nop word cs:[rax + rax]
mov r8d, dword [0x140575bd4]
cmp r8d, 0x28
jle 0x14016cbae
test edx, ecx
jmp 0x14016c760
mov rcx, rdi
call fcn.140171fd0
mov rbx, rax
mov r14d, dword [0x140575bd8]
add r14d, dword [rdi + 0x118]
mov dword [rax + 0x87c], 0
lea rcx, [rax + 0x840]
mov r15, qword [rax + 0x840]
mov r8, qword [r15 + 8]
mov rdx, rcx
call fcn.1401464f0
mov qword [r15 + 8], r15
mov qword [r15], r15
mov qword [r15 + 0x10], r15
mov qword [rbx + 0x848], 0
mov dword [rbx + 0x880], r14d
mov rcx, rbx
call fcn.1400713e0
mov ecx, 0xf9f78859
lea rax, [fcn.14016ba00]
lea r8d, [rax + rax]
add r8d, 0x980
nop
mov edx, dword [0x140575bd0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x14051b34c]
add r9d, ecx
xor edx, edx
div r9d
test edx, edx
jne 0x14016c820
mov eax, dword [0x140575bd0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x14016c83d
mov eax, dword [0x14051b34c]
mov edx, eax
xor edx, 0xf9f78858
and eax, 0x79f78858
lea eax, [rdx + rax*2]
test r8d, eax
jne 0x14016c7f0
jmp 0x14016c80f
mov rcx, rbx
mov rdx, rdi
call fcn.140071ea0
mov rcx, rbx
add rcx, 8
call fcn.140175080
mov rcx, rbx
call fcn.140082bc0
cmp qword [0x140575a70], 0
jne 0x14016c8d0
mov ecx, 0xe8
call fcn.1403f542c
lea rcx, [0x140438898]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
movzx ecx, byte [0x14051b348]
add cl, 0xc0
mov byte [rax + 0x18], cl
lea rcx, [0x1404388f8]
mov qword [rax + 0x10], rcx
mov byte [rax + 8], 0
movzx ecx, byte [0x14051b348]
add cl, 0xc0
mov byte [rax + 9], cl
mov ecx, 0xfffff328
add ecx, dword [0x14051b358]
mov word [rax + 0xa], cx
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x140575a70], rax
mov rax, qword [0x140575a70]
mov rcx, qword [rax + 0x38]
lea rdx, [0x140575512]
call fcn.1401f30e0
mov eax, 0x100
and eax, dword [rdi + 0x164]
mov edx, eax
shr edx, 8
test eax, eax
sete cl
mov r9d, dword [rdi + 0x160]
mov eax, r9d
not eax
mov r8d, eax
and r8d, 0x2000
mov r10d, r9d
and r10d, 0xffffdfff
or r10d, r8d
mov r8d, eax
and r8d, 0xffffdfff
or r8d, r10d
cmp r8d, 0xffffffff
setne r8b
and r8b, cl
lea rbx, [rdi + 0x308]
mov rcx, qword [rdi + 0x190]
mov r10d, dword [0x14057518e]
mov r11d, r10d
not r11d
mov r14d, r11d
and r14d, 2
mov r15d, r10d
and r15d, 0xfffffffd
or r15d, r14d
and r11d, 0xfffffffd
or r11d, r15d
mov r14d, r9d
and r14d, 8
shr r14d, 3
mov r15d, r9d
xor r15d, 0x800000
mov r12d, eax
and r12d, 0xff7fffff
or r12d, r15d
mov r15d, eax
or r15d, 0xdfffffff
mov r13d, r9d
xor r13d, 4
and eax, 0xfffffffb
or eax, r13d
shr r9d, 0xc
and r9d, 1
cmp r12d, 0xffffffff
setne byte [rsp + 0x30]
cmp r15d, 0xffffffff
setne byte [rsp + 0x28]
cmp r11d, 0xffffffff
setne byte [rsp + 0x48]
and r10b, 1
cmp eax, 0xffffffff
mov qword [rsp + 0x50], rcx
mov byte [rsp + 0x40], r10b
mov byte [rsp + 0x38], r14b
setne byte [rsp + 0x20]
mov rcx, rbx
call fcn.1401c43d0
mov rcx, rdi
call fcn.14016b1f0
test al, al
je 0x14016d281
test byte [rdi + 0x161], 0x10
je 0x14016cafc
call fcn.14016de10
mov r14, rax
mov rax, qword [rsi + 0xc1bb]
mov qword [r14 + 0x40], rax
movups xmm0, xmmword [rsi + 0xc1ab]
movups xmmword [r14 + 0x30], xmm0
cmp qword [0x140575a70], 0
jne 0x14016cab4
mov ecx, 0xe8
call fcn.1403f542c
lea rcx, [0x140438898]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x1404388f8]
mov qword [rax + 0x10], rcx
mov word [rax + 8], 0
mov ecx, 0xfffff328
add ecx, dword [0x14051b358]
mov word [rax + 0xa], cx
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x140575a70], rax
jmp 0x14016cab4
mov rax, qword [0x140575a70]
mov rax, qword [rax + 0x38]
movsxd rcx, dword [rax + 0x3c]
mov ecx, dword [rax + rcx + 0x98]
add rax, rcx
test rcx, rcx
cmove rax, rcx
mov qword [r14 + 0x18], rax
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14016ca90
mov rax, qword [0x140575a70]
mov rax, qword [rax + 0x38]
movsxd rcx, dword [rax + 0x3c]
mov ecx, dword [rax + rcx + 0x98]
add rax, rcx
test rcx, rcx
cmove rax, rcx
mov qword [r14 + 0x18], rax
mov eax, dword [0x140575bd4]
cmp eax, 0xa
jge 0x14016ca90
mov rcx, r14
call fcn.140175b50
lea r9, [rsi + 0xc1ab]
mov r8d, 0xf9f78859
mov r10d, 0xf9f78857
nop
mov eax, dword [0x140575bd4]
cmp eax, 0x2d
jg 0x14016cb48
mov rax, qword [rdi + 0x108]
mov rcx, qword [rax + 0x3a8]
mov edx, dword [0x140575bd0]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, dword [0x14051b34c]
add r11d, r8d
xor edx, edx
div r11d
test edx, edx
je 0x14016cb66
mov eax, dword [0x140575bd0]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14051b34c]
add eax, r10d
cmp ecx, eax
jne 0x14016cb10
jmp 0x14016cb1b
mov r8d, 0x18
mov rdx, r9
call fcn.140148cb0
mov ecx, dword [rdi + 0x160]
mov eax, ecx
and eax, 0x40000000
mov edx, 0xf9f78857
add edx, dword [0x14051b34c]
cmp eax, edx
jne 0x14016ce7d
mov eax, dword [0x140575bd0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x14016ce36
jmp 0x14016ce20
test al, al
je 0x14016d281
mov edx, dword [rsi + 0xc118]
mov rcx, rdi
call fcn.14016da60
mov eax, dword [rsi + 0xc11c]
mov dword [rdi + 0x180], eax
mov dword [rdi + 0x130], eax
mov qword [rsi + 0xc118], 0
mov r14d, dword [rsi + 0xc52f]
mov edx, dword [rsi + 0xc533]
mov rcx, rdi
call fcn.14011cff0
mov rcx, rdi
mov rdx, rax
mov r8d, r14d
call fcn.1400af300
test al, al
je 0x14016d281
mov rcx, qword [rdi + 0x108]
add rcx, 8
lea rdx, [rbp - 0x28]
call fcn.14016daf0
lea rdx, [rbp - 0x28]
mov rcx, r12
call fcn.14013cd00
cmp word [rsi + 0xc607], 0
jne 0x14016cc4b
mov rcx, r12
mov edx, 0x61e0000
call fcn.14013c8b0
test al, al
je 0x14016cd38
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc607]
call fcn.1402637a0
lea rbx, [rbp + 0x250]
mov rcx, rbx
mov rdx, rax
call fcn.1400ada30
mov eax, dword [0x140575bd4]
mov ecx, 0xf9f788a7
add ecx, dword [0x14051b34c]
cmp eax, ecx
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5cf]
mov eax, dword [0x140575bd4]
cmp eax, 0x5b
jge 0x14016cc83
call fcn.1402637a0
lea r14, [rbp + 0x218]
mov rcx, r14
mov rdx, rax
call fcn.1400ada30
mov edx, dword [rdi + 0x118]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x40], 1
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0x186a3
lea rcx, [rbp + 0x210]
xor r8d, r8d
mov r9d, 1
call fcn.14012e6b0
mov eax, 0xf9f78858
add eax, dword [0x14051b34c]
lea rcx, [fcn.14016ba00]
add ecx, ecx
add ecx, 0x1f00
mov edx, ecx
not edx
mov r8d, ecx
xor r8d, edx
and r8d, eax
xor r8d, edx
mov eax, r8d
not eax
xor r8d, ecx
and eax, edx
or eax, r8d
cmp eax, 0xffffffff
jne 0x14016cdf2
jmp 0x14016cd89
mov ecx, 0xf9f78859
mov r8b, 1
mov edx, dword [0x140575bd0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x14051b34c]
add r9d, ecx
xor edx, edx
div r9d
test edx, edx
jne 0x14016cd68
test r8b, r8b
jne 0x14016c85c
mov edx, dword [0x140575bd0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x14051b34c]
add r9d, ecx
xor edx, edx
div r9d
test edx, edx
jne 0x14016cd40
jmp 0x14016cd5f
lea rcx, [rbp + 0x218]
call fcn.140071330
lea rcx, [rbp + 0x250]
call fcn.140071330
mov eax, 0xd09ef533
add eax, dword [0x14051b34c]
mov ecx, eax
xor ecx, 0x29589324
and eax, 0x29589324
lea eax, [rcx + rax*2]
lea rcx, [fcn.14016ba00]
add ecx, ecx
add ecx, 0x2f60
mov edx, ecx
not edx
mov r8d, edx
and r8d, 0xfffffffe
xor r8d, edx
or r8d, ecx
not r8d
or r8d, ecx
not r8d
and r8d, 0xfffffffe
cmp r8d, eax
je 0x14016cd38
lea rbx, [rbp + 0x218]
lea r14, [rbp + 0x250]
mov rcx, rbx
call fcn.140071330
mov rcx, r14
call fcn.140071330
mov eax, dword [0x140575bd4]
cmp eax, 0x5b
jge 0x14016ce00
jmp 0x14016cd89
lea rax, [fcn.14016ba00]
add eax, eax
add eax, 0x3ae0
mov edx, eax
not edx
test edx, eax
je 0x14016ce61
mov r8d, 0xf9f78859
nop dword [rax]
mov edx, dword [0x140575bd0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x14051b34c]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
jne 0x14016ce40
jmp 0x14016ce20
mov eax, ecx
xor eax, 0xffffefff
test ecx, eax
setne dl
mov rcx, rbx
call fcn.1401d47a0
mov rcx, rbx
call fcn.1401d5ac0
mov eax, dword [rdi + 0x160]
mov ecx, eax
not ecx
xor eax, 1
and ecx, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
je 0x14016ceb0
mov rcx, rdi
call fcn.1400b5900
test al, al
je 0x14016cef9
mov rcx, rdi
call fcn.1400b5ab0
test al, al
je 0x14016d124
lea r9, [rsi + 0xc553]
mov rcx, qword [rdi + 0x108]
mov r8, qword [rdi + 0x198]
mov rdx, rsi
call fcn.14014a530
test al, al
je 0x14016cf7f
mov r8d, dword [rsi + 0xc55f]
test r8, r8
je 0x14016d4d4
mov eax, dword [0x140575bd4]
cmp eax, 0x3a
jle 0x14016d43b
jmp 0x14016d482
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e1]
call fcn.1402637a0
lea rcx, [rbp + 0x250]
mov rdx, rax
call fcn.1400ada30
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e9]
call fcn.1402637a0
mov ecx, dword [0x140575bd4]
nop word cs:[rax + rax]
mov ecx, dword [0x140575bd0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14016cf40
lea rcx, [rbp + 0x218]
mov rdx, rax
call fcn.1400ada30
lea rcx, [rbp + 0x210]
lea rdx, [rbp + 0x218]
lea r8, [rbp + 0x250]
call fcn.14012edf0
jmp 0x14016d182
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc601]
call fcn.1402637a0
mov r14, rax
lea r15, [rbp + 0x258]
test rax, rax
lea rbx, [0x1404391d8]
cmove r14, rbx
mov qword [rbp + 0x268], 0
mov qword [rbp + 0x270], 0xf
movzx eax, byte [0x14051b348]
add al, 0xc0
mov byte [rbp + 0x258], al
mov rcx, r14
mov edx, 0xe849147b
mov r8d, 0xcd472aea
call fcn.1400aa1d0
mov r12, rax
movabs rax, 0xace06b53a0465d82
add rax, qword [0x14051b350]
cmp r12, rax
jbe 0x14016d0a0
mov rcx, r15
mov rdx, r12
mov r9, r14
call fcn.1400896c0
lea r12, [0x1404388f8]
mov qword [rbp + 0x250], r12
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e9]
call fcn.1402637a0
lea r14, [rbp + 0x220]
test rax, rax
cmovne rbx, rax
mov qword [rbp + 0x230], 0
mov qword [rbp + 0x238], 0xf
mov byte [rbp + 0x220], 0
mov r8d, dword [0x14051b34c]
lea edx, [r8 - 0x1dbf632e]
add r8d, 0xc73eb341
mov rcx, rbx
call fcn.1400aa1d0
mov r15, rax
cmp rax, 0xf
jbe 0x14016d19f
mov rcx, r14
mov rdx, r15
mov r9, rbx
call fcn.1400896c0
jmp 0x14016d1bd
mov qword [rbp + 0x268], r12
mov rcx, r15
mov rdx, r14
mov r8, r12
call fcn.14041d3c0
mov byte [rbp + r12 + 0x258], 0
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14051b34c]
mov edx, eax
xor edx, 0xf9f78857
and eax, 0x79f78857
lea eax, [rdx + rax*2]
cmp ecx, eax
je 0x14016d00d
nop dword [rax + rax]
mov qword [rbp + 0x268], r12
mov rcx, r15
mov rdx, r14
mov r8, r12
call fcn.14041d3c0
mov byte [rbp + r12 + 0x258], 0
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14016d0f0
jmp 0x14016d0a0
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e3]
call fcn.1402637a0
lea rcx, [rbp + 0x250]
mov rdx, rax
call fcn.1400ada30
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e9]
call fcn.1402637a0
lea rcx, [rbp + 0x218]
mov rdx, rax
call fcn.1400ada30
lea rcx, [rbp + 0x210]
lea rdx, [rbp + 0x218]
lea r8, [rbp + 0x250]
call fcn.14012edf0
lea rcx, [rbp + 0x218]
call fcn.140071330
lea rcx, [rbp + 0x250]
call fcn.140071330
jmp 0x14016d281
mov qword [rbp + 0x230], r15
mov rcx, r14
mov rdx, rbx
mov r8, r15
call fcn.14041d3c0
mov byte [rbp + r15 + 0x220], 0
mov qword [rbp + 0x218], r12
lea rcx, [rbp + 0x210]
lea rdx, [rbp + 0x218]
lea r8, [rbp + 0x250]
call fcn.14012edf0
mov rax, qword [rbp + 0x238]
cmp rax, 0x10
jb 0x14016d3ce
mov rbx, qword [rbp + 0x220]
lea r14, [rax + 1]
cmp r14, 0x1000
jb 0x14016d268
mov ecx, dword [0x140575bd4]
cmp ecx, 0x62
mov rcx, qword [rbx - 8]
mov rdx, qword [0x14051b350]
mov r8d, dword [0x140575bd4]
mov r9d, 0xf9f78895
add r9d, dword [0x14051b34c]
cmp r8d, r9d
jge 0x14016d20c
movabs r8, 0xace06b53a0465d73
xor r8, rdx
movabs r9, 0x2ce06b53a0465d73
and r9, rdx
lea rdx, [r8 + r9*2]
sub rbx, rcx
add rdx, rbx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x14016d27c
add rax, 0x28
mov r14, rax
mov rbx, rcx
mov eax, dword [0x140575bd4]
cmp eax, 0x49
jg 0x14016d3b0
jmp 0x14016d385
call fcn.1403d599c
mov eax, 0xf9f78a57
add eax, dword [0x14051b34c]
test dword [rdi + 0x164], eax
je 0x14016d301
mov eax, 0xf9f78858
lea rcx, [fcn.14016ba00]
add ecx, ecx
add ecx, 0x1340
nop dword [rax + rax]
mov edx, dword [0x140575bd0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x14016d2fb
mov edx, dword [rsi + 4]
mov r8d, edx
shl r8d, 0x10
mov r9d, edx
sub r9d, r8d
imul r9d, r8d
mov r8d, edx
sub r8d, r9d
imul r8d, r9d
sub edx, r8d
imul edx, r8d
or edx, r8d
mov dword [rsi + 4], edx
mov edx, dword [0x14051b34c]
add edx, eax
test ecx, edx
jne 0x14016d2b0
or byte [rsi + 4], 0x10
jmp 0x14016d311
mov rax, qword [rdi]
mov rax, qword [rax + 0x30]
mov rcx, rdi
call qword [case.0x14013cbc3.0]
xor edi, edi
mov rcx, qword [rbp + 0x1f0]
test rcx, rcx
je 0x14016d529
mov rdx, qword [rbp + 0x200]
sub rdx, rcx
mov rax, qword [0x14051b350]
movabs r8, 0xace06b53a0466d72
xor r8, rax
movabs r9, 0x2ce06b53a0466d72
and r9, rax
lea rax, [r8 + r9*2]
cmp rdx, rax
jbe 0x14016d524
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14016d380
mov ecx, dword [0x140575bd4]
cmp ecx, 0x57
jg 0x14016d510
jmp 0x14016d4ff
call fcn.1403d599c
mov rcx, rbx
mov rdx, r14
call fcn.1400a87c0
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14016d3ce
nop word cs:[rax + rax]
mov rcx, rbx
mov rdx, r14
call fcn.1400a87c0
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14016d3b0
jmp 0x14016d385
mov rax, qword [rbp + 0x270]
cmp rax, 0x10
jb 0x14016d40f
mov rcx, qword [rbp + 0x258]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14016d40a
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14016d436
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a87c0
mov eax, dword [0x140575bd4]
cmp eax, 0x17
nop dword [rax + rax]
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14016d420
jmp 0x14016d281
call fcn.1403d599c
mov edx, dword [rsi + 0xc563]
add rdx, qword [rdi + 0x198]
lea rax, [0x14043c228]
mov qword [rbp + 0x250], rax
mov dword [rbp + 0x258], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x260], xmm0
mov byte [rbp + 0x270], 0
mov eax, dword [0x140575bd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14016d4ad
lea rax, [0x14043c228]
mov qword [rbp + 0x250], rax
mov dword [rbp + 0x258], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x260], xmm0
mov byte [rbp + 0x270], 0
jmp 0x14016d43b
lea rcx, [rbp + 0x250]
call fcn.140141f70
movzx eax, byte [0x14051b348]
add al, 0xc0
mov byte [rbp + 0x270], al
lea rcx, [rbp + 0x250]
call fcn.140147070
mov rax, qword [rdi + 0x108]
mov rcx, qword [rax + 0x3a8]
add rsi, 0xc22b
mov dil, 1
mov r8d, 0x304
mov rdx, rsi
call fcn.140148cb0
jmp 0x14016d313
mov ecx, dword [0x140575bd4]
cmp ecx, 0x43
jl 0x14016d51d
nop word [rax + rax]
mov ecx, dword [0x140575bd4]
cmp ecx, 0x50
jge 0x14016d510
jmp 0x14016d4ff
add rdx, 0x27
mov rcx, rax
call fcn.1400a87c0
mov eax, edi
add rsp, 0x308
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret