Function at 0x14020c4b0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x338
movaps xmmword [rsp + 0x320], xmm9
movaps xmmword [rsp + 0x310], xmm8
movaps xmmword [rsp + 0x300], xmm7
movaps xmmword [rsp + 0x2f0], xmm6
mov r12d, ecx
mov r14, qword [rsp + 0x3e8]
mov ebp, dword [rsp + 0x3e0]
mov rbx, qword [rsp + 0x3d8]
mov rcx, qword [rsp + 0x3d0]
mov r15, qword [rsp + 0x3c8]
mov r10, qword [rsp + 0x3c0]
mov r11d, dword [rsp + 0x3b8]
mov r13d, dword [rsp + 0x3b0]
mov edi, dword [rsp + 0x3a8]
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x2e8], rax
cmp dword [rsp + 0x3a0], 0
je 0x14020c637
mov dword [rcx], 0
mov qword [rsp + 0x20], r15
mov ecx, r12d
mov r9, r10
call fcn.14020e040
test eax, eax
je 0x14020c7df
mov r8, qword [r15 + 8]
test r8, r8
je 0x14020c7bc
mov r9, qword [r8 + 8]
test r9, r9
je 0x14020c7bc
movsxd rax, dword [r8 + 0x10]
lea rdi, [r9 + rax*8]
lea r10d, [r12 - 8]
lea r11d, [r12 + 0x18]
lea rsi, str._I7
jmp 0x14020c5d6
shl eax, 4
or eax, 8
sub eax, edx
cdqe
movzx ecx, byte [rax + rsi]
inc ecx
mov dword [r9 + 4], ecx
add r9, 8
cmp r9, rdi
je 0x14020c610
test r9, r9
je 0x14020c7b7
cmp byte [r9], 2
jne 0x14020c5c4
mov ecx, dword [r9 + 4]
mov eax, ecx
cdq
idiv r12d
cmp eax, 7
jg 0x14020c5f0
cmp edx, 8
jle 0x14020c5b0
cmp eax, 6
jg 0x14020c632
cmp edx, r10d
jle 0x14020c632
shl eax, 4
add eax, r11d
jmp 0x14020c5b6
mov r8, qword [r8]
test r8, r8
je 0x14020c7b7
mov r9, qword [r8 + 8]
movsxd rax, dword [r8 + 0x10]
lea rdi, [r9 + rax*8]
test r9, r9
jne 0x14020c5d6
jmp 0x14020c7b7
add ecx, 0x78
jmp 0x14020c5c0
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xa0], r10
mov dword [rsp + 0x98], r9d
mov dword [rsp + 0x4c], edx
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x70], r15
mov dword [rsp + 0xd0], ebp
mov qword [rsp + 0x128], r14
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0x178], 0
movabs rax, 0x7f7fffff7f7fffff
mov qword [rsp + 0x170], rax
mov dword [rsp + 0x5c], r11d
cmp r11d, 1
mov esi, 1
sbb rsi, 0xffffffffffffffff
xorps xmm0, xmm0
movaps xmmword [rsp + 0x160], xmm0
mov ecx, 0xa
call fcn.140208ba0
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x14020df8a
lea rcx, [rsi + rsi*4]
mov r14, qword [rsp + 0x70]
lea rax, [r14 + rcx*8]
mov qword [rsp + 0x50], rax
test edi, edi
je 0x14020c831
mov eax, dword [rsp + 0x4c]
imul eax, r12d
mov qword [rsp + 0x80], rax
cdqe
mov qword [rsp + 0xe0], rax
lea edx, [rax - 2]
movsxd rax, edx
mov qword [rsp + 0xd8], rax
lea eax, [r12 - 8]
mov dword [rsp + 0x9c], eax
lea eax, [r12 + 0x18]
mov dword [rsp + 0x94], eax
lea rax, [r14 + rcx*8 + 0x10]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x110], rcx
lea rax, [r14 + rcx*8]
add rax, 8
mov qword [rsp + 0xa8], rax
movsxd rax, r12d
neg rax
mov qword [rsp + 0xf8], rax
mov rax, r12
shl rax, 0x20
mov qword [rsp + 0x130], rax
lea rax, [r14 + 8]
mov qword [rsp + 0xf0], rax
lea rax, [r14 + 0x30]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x120], rdx
lea rax, [rdx - 1]
mov qword [rsp + 0x118], rax
mov ecx, 1
xorps xmm7, xmm7
movss xmm8, dword [0x1405c0214]
mov qword [rsp + 0x108], r12
mov r15, qword [rsp + 0x40]
mov dword [rsp + 0x3c], r13d
jmp 0x14020cc69
test r15, r15
je 0x14020c7df
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x14020cc34
lea rcx, [r15 + 8]
cmp rax, rcx
jne 0x14020cc34
mov qword [r15 + 0x10], rcx
jmp 0x14020cc34
mov rcx, qword [rsp + 0x2e8]
xor rcx, rsp
call fcn.1405602f0
mov rcx, rbx
mov edx, 1
movaps xmm6, xmmword [rsp + 0x2f0]
movaps xmm7, xmmword [rsp + 0x300]
movaps xmm8, xmmword [rsp + 0x310]
movaps xmm9, xmmword [rsp + 0x320]
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140071180
lea eax, [r12 - 8]
mov dword [rsp + 0x9c], eax
lea eax, [r12 + 0x18]
mov dword [rsp + 0x94], eax
xor esi, esi
lea rax, [r14 + rcx*8]
add rax, 0x10
mov qword [rsp + 0x80], rax
lea rax, [r14 + rcx*8 + 8]
mov qword [rsp + 0x88], rax
mov r15d, 1
lea r13, str._I7
mov r11d, dword [rsp + 0x4c]
mov edi, dword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
jmp 0x14020c89a
sub r15, 1
jb 0x14020cbec
cmp dword [rsp + 0x5c], 0
jne 0x14020c8a7
cmp r15, 1
je 0x14020c890
mov ecx, dword [rsp + r15*4 + 0x178]
cmp ecx, 1
jne 0x14020c8d0
mov rax, r14
cmp edi, 0x19
jge 0x14020c8ea
jmp 0x14020ca50
cmp edi, 0x19
jl 0x14020ca50
lea rax, [rsp + 0x160]
cmp ecx, 4
jne 0x14020ca50
xor edi, edi
cmp r15, 1
je 0x14020c8fc
mov rcx, qword [rsp + 0xc0]
mov edi, dword [rcx]
lea rbp, [r15 + r15*4]
mov rcx, qword [rsp + 0x70]
lea rbx, [rcx + rbp*8]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
mov ecx, r12d
mov edx, r11d
mov r8, qword [rsp + 0x40]
mov r9d, edi
call fcn.140376c60
test eax, eax
je 0x14020df8a
mov r14, qword [rsp + 0xb0]
mov rcx, r14
mov rdx, qword [rsp + 0x50]
mov r8d, edi
call fcn.140208a60
mov rcx, r14
call fcn.140208fc0
movss xmm1, dword [rsp + r15*4 + 0x170]
ucomiss xmm1, xmm0
mov r11d, dword [rsp + 0x4c]
mov edi, dword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
jbe 0x14020ca50
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
test rax, rax
setne cl
cmp rax, qword [rsp + 0x88]
sete al
and al, cl
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rcx + rbp*8 + 0x10]
lea rcx, [rcx + rbp*8]
add rcx, 8
mov r9, qword [rsp + 0x50]
mov r8, qword [r9 + 0x20]
mov qword [rsp + 0x220], r8
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x210], xmm1
movaps xmmword [rsp + 0x200], xmm0
mov r8, qword [rbx + 0x20]
mov qword [r9 + 0x20], r8
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmmword [r9], xmm0
mov r8, qword [rsp + 0x220]
mov qword [rbx + 0x20], r8
movaps xmm0, xmmword [rsp + 0x200]
movaps xmm1, xmmword [rsp + 0x210]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
test rdx, rdx
je 0x14020ca31
cmp rdx, rcx
jne 0x14020ca31
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov qword [rdx], r8
test al, al
je 0x14020ca50
mov rax, qword [rsp + 0x70]
lea rax, [rax + rbp*8]
add rax, 0x10
mov qword [rax], rcx
nop word cs:[rax + rax]
lea rax, [r15 + r15*4]
mov rcx, qword [rsp + 0x70]
mov r8, qword [rcx + rax*8 + 8]
test r8, r8
je 0x14020cb00
mov r9, qword [r8 + 8]
test r9, r9
je 0x14020cb00
movsxd rax, dword [r8 + 0x10]
lea r10, [r9 + rax*8]
jmp 0x14020caa3
shl eax, 4
or eax, 8
sub eax, edx
cdqe
movzx ecx, byte [rax + r13]
inc ecx
mov dword [r9 + 4], ecx
add r9, 8
cmp r9, r10
je 0x14020cae0
test r9, r9
je 0x14020cb00
cmp byte [r9], 2
jne 0x14020ca95
mov ecx, dword [r9 + 4]
mov eax, ecx
cdq
idiv r12d
cmp eax, 7
jg 0x14020cabd
cmp edx, 8
jle 0x14020ca80
cmp eax, 6
jg 0x14020cafb
cmp edx, dword [rsp + 0x9c]
jle 0x14020cafb
shl eax, 4
add eax, dword [rsp + 0x94]
jmp 0x14020ca86
mov r8, qword [r8]
test r8, r8
je 0x14020cb00
mov r9, qword [r8 + 8]
movsxd rax, dword [r8 + 0x10]
lea r10, [r9 + rax*8]
test r9, r9
jne 0x14020caa3
jmp 0x14020cb00
add ecx, 0x78
jmp 0x14020ca91
cmp r15, 1
jne 0x14020c890
cmp esi, dword [rsp + 0x17c]
jne 0x14020c890
mov rax, qword [rsp + 0xc0]
cmp dword [rax], 0
jne 0x14020c890
mov rdx, qword [rsp + 0x70]
mov rax, qword [rdx + 0x10]
mov rdi, qword [rdx + 0x30]
test rax, rax
je 0x14020cb41
mov rcx, qword [rdx + 0x18]
mov qword [rax], rcx
lea rax, [rdx + 8]
mov rcx, qword [rdx + 8]
mov qword [rdx + 0x18], rcx
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x20], 0
mov qword [rdx + 8], 0
test rdi, rdi
je 0x14020cbec
mov rbx, qword [rsp + 0x70]
jmp 0x14020cbb8
mov rax, qword [rsi]
mov qword [rbx + 0x18], rax
mov rax, qword [rbx + 0x10]
mov qword [rax], rsi
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x20], rsi
mov qword [rsi], 0
mov dword [rsi + 0x10], 0
mov rcx, qword [rsi + 8]
mov rdx, qword [rdi + 8]
movsxd r8, dword [rdi + 0x10]
shl r8, 3
call fcn.140562340
mov eax, dword [rdi + 0x10]
mov dword [rsi + 0x10], eax
mov rdi, qword [rdi]
test rdi, rdi
je 0x14020cbec
mov rsi, qword [rbx + 0x18]
test rsi, rsi
jne 0x14020cb71
movsxd rax, dword [rbx]
lea rdx, [rax*8 + 0x18]
mov ecx, 1
call fcn.140072640
test rax, rax
je 0x14020e02b
mov rsi, rax
add rax, 0x18
mov qword [rsi + 8], rax
jmp 0x14020cb78
mov rcx, qword [rsp + 0x160]
call fcn.1400726a0
mov dword [rsp + 0x168], 0
mov qword [rsp + 0x160], 0
mov rcx, qword [rsp + 0xb0]
call fcn.140208870
mov rbx, qword [rsp + 0xe8]
mov r14, qword [rsp + 0x128]
mov ebp, dword [rsp + 0xd0]
add ebp, dword [r14]
mov rcx, rbx
mov edx, ebp
mov r8, r14
call fcn.1400711a0
jmp 0x14020dfcd
mov dword [rax], ebp
nop dword [rax + rax]
mov ecx, dword [rsp + 0x7c]
mov eax, ecx
not eax
add ecx, ecx
mov edi, dword [rsp + 0xd4]
and edi, eax
je 0x14020e017
mov dword [rsp + 0xd4], edi
mov dword [rsp + 0x7c], ecx
test ecx, edi
je 0x14020cc50
mov eax, dword [rsp + 0x7c]
cmp eax, 1
je 0x14020ccef
cmp eax, 4
je 0x14020cd15
cmp eax, 2
mov rdi, qword [rsp + 0x68]
jne 0x14020df8a
mov rax, qword [rdi]
test rax, rax
je 0x14020cca7
mov rcx, qword [rdi + 8]
mov qword [rax], rcx
mov rdx, qword [rsp + 0xa8]
mov rax, qword [rdx]
mov qword [rdi + 8], rax
mov qword [rdi], rdx
mov qword [rdi + 0x10], 0
mov qword [rdx], 0
mov rbx, qword [rsp + 0x40]
mov esi, dword [rbx]
test rax, rax
mov r14, qword [rsp + 0x80]
je 0x14020ce72
mov rcx, qword [rax]
mov qword [rdi + 8], rcx
mov rcx, rdx
jmp 0x14020cea3
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov ecx, r12d
mov edx, dword [rsp + 0x4c]
mov r8, r15
mov r9, qword [rsp + 0xa0]
call fcn.14020e040
jmp 0x14020d5f2
mov edx, 4
mov rcx, qword [rsp + 0xe0]
call fcn.140072640
mov qword [rsp + 0x160], rax
test rax, rax
je 0x14020df8a
mov rcx, qword [rsp + 0xe0]
mov dword [rsp + 0x168], ecx
movaps xmmword [rsp + 0x270], xmm7
movaps xmmword [rsp + 0x260], xmm7
movaps xmmword [rsp + 0x250], xmm7
movaps xmmword [rsp + 0x240], xmm7
movaps xmmword [rsp + 0x230], xmm7
movaps xmmword [rsp + 0x220], xmm7
movaps xmmword [rsp + 0x210], xmm7
movaps xmmword [rsp + 0x200], xmm7
movaps xmmword [rsp + 0x1f0], xmm7
movaps xmmword [rsp + 0x1e0], xmm7
movaps xmmword [rsp + 0x1d0], xmm7
movaps xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x1b0], xmm7
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x190], xmm7
movaps xmmword [rsp + 0x180], xmm7
mov edx, 2
call fcn.140072640
test rax, rax
je 0x14020d1e2
mov rcx, rax
mov rax, qword [rsp + 0xd8]
mov word [rcx + rax*2 + 2], 1
cmp dword [rsp + 0x80], 2
mov r13, qword [rsp + 0x40]
mov r14, qword [rsp + 0xa0]
mov esi, dword [rsp + 0x9c]
mov edi, dword [rsp + 0x94]
mov r9, qword [rsp + 0x120]
lea rbx, str._I7
jl 0x14020d266
mov rax, qword [rsp + 0xd8]
lea rax, [rcx + rax*2]
test r9b, 1
jne 0x14020d1e9
mov r8d, dword [r13 + r9*4]
mov dx, 1
cmp r8d, dword [r13 + r9*4 + 4]
jne 0x14020ce5e
movzx r8d, word [rax + 2]
xor edx, edx
cmp r8d, 0xfff
setne dl
add edx, r8d
mov word [rax], dx
add rax, 0xfffffffffffffffe
mov rdx, qword [rsp + 0x118]
jmp 0x14020d1ec
mov rax, qword [rsp + 0x50]
movsxd rax, dword [rax]
lea rdx, [rax*8 + 0x18]
mov ecx, 1
call fcn.140072640
test rax, rax
je 0x14020d5db
mov rcx, rax
add rcx, 0x18
mov qword [rax + 8], rcx
mov rcx, qword [rdi]
shl rsi, 0x20
or rsi, 0x10000
mov qword [rcx], rax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rax], 0
mov rcx, qword [rax + 8]
mov dword [rax + 0x10], 1
mov qword [rcx], rsi
cmp r14d, 2
jl 0x14020d5e9
mov esi, 1
jmp 0x14020cf41
mov rax, qword [rdi + 8]
test rax, rax
je 0x14020d08f
mov rcx, qword [rax]
mov qword [rdi + 8], rcx
mov rcx, qword [rdi]
mov qword [rcx], rax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rax], 0
mov dword [rax + 0x10], 0
xor ecx, ecx
mov edx, ebp
shl edx, 0x10
movabs r8, 0x100000002
or rdx, r8
mov r8, qword [rax + 8]
lea r9d, [rcx + 1]
mov dword [rax + 0x10], r9d
movsxd rax, ecx
mov qword [r8 + rax*8], rdx
add esi, ebp
cmp r14d, esi
jle 0x14020d5e9
mov r15d, r14d
sub r15d, esi
cmp r15d, 0xfff
mov eax, 0xfff
cmovge r15d, eax
movsxd rax, esi
lea rdi, [rbx + rax*4]
mov ecx, dword [rbx + rax*4]
xor r13d, r13d
mov ebp, 0
cmp ecx, dword [rbx + rax*4 - 4]
jne 0x14020cf8a
mov rcx, qword [rsp + 0x40]
lea rdx, [rcx + rax*4]
add rdx, 0xfffffffffffffffc
mov rcx, rdi
mov r8d, r15d
call qword [0x1406abb58]
mov ebp, eax
cmp esi, r12d
jl 0x14020cfb9
mov eax, dword [rdi]
mov rcx, qword [rsp + 0xf8]
cmp eax, dword [rdi + rcx*4]
jne 0x14020cfb9
mov rax, qword [rsp + 0xf8]
lea rdx, [rdi + rax*4]
mov rcx, rdi
mov r8d, r15d
call qword [0x1406abb58]
mov r13d, eax
cmp ebp, 4
jl 0x14020d000
cmp ebp, r13d
jl 0x14020d000
mov rdi, qword [rsp + 0x68]
mov rax, qword [rdi + 0x10]
test rax, rax
mov rbx, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x3c]
je 0x14020cee0
mov ecx, dword [rax + 0x10]
mov rdx, qword [rsp + 0x50]
cmp ecx, dword [rdx]
je 0x14020cee0
jmp 0x14020cf11
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x10]
cmp r13d, 4
jl 0x14020d050
test rax, rax
mov rdi, qword [rsp + 0x68]
je 0x14020d029
mov ecx, dword [rax + 0x10]
mov rdx, qword [rsp + 0x50]
cmp ecx, dword [rdx]
jne 0x14020d10d
mov rax, qword [rdi + 8]
test rax, rax
je 0x14020d0c2
mov rcx, qword [rax]
mov qword [rdi + 8], rcx
jmp 0x14020d0f0
mov edi, dword [rdi]
test rax, rax
mov rbx, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x3c]
je 0x14020d071
mov ecx, dword [rax + 0x10]
mov rdx, qword [rsp + 0x50]
cmp ecx, dword [rdx]
jne 0x14020d190
mov rdx, qword [rsp + 0x68]
mov rax, qword [rdx + 8]
test rax, rax
je 0x14020d144
mov rcx, qword [rax]
mov qword [rdx + 8], rcx
jmp 0x14020d173
mov rax, qword [rsp + 0x50]
movsxd rax, dword [rax]
lea rdx, [rax*8 + 0x18]
mov ecx, 1
call fcn.140072640
test rax, rax
je 0x14020d1bd
mov rcx, rax
add rcx, 0x18
mov qword [rax + 8], rcx
jmp 0x14020cef4
mov rax, qword [rsp + 0x50]
movsxd rax, dword [rax]
lea rdx, [rax*8 + 0x18]
mov ecx, 1
call fcn.140072640
test rax, rax
je 0x14020d1c6
mov rcx, rax
add rcx, 0x18
mov qword [rax + 8], rcx
mov rcx, qword [rdi]
mov qword [rcx], rax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rax], 0
mov dword [rax + 0x10], 0
xor ecx, ecx
mov edx, r13d
shl edx, 0x10
or rdx, qword [rsp + 0x130]
or rdx, 2
mov r8, qword [rax + 8]
lea r9d, [rcx + 1]
mov dword [rax + 0x10], r9d
movsxd rax, ecx
mov qword [r8 + rax*8], rdx
mov ebp, r13d
mov rbx, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x3c]
jmp 0x14020cf36
mov rax, qword [rsp + 0x50]
movsxd rax, dword [rax]
lea rdx, [rax*8 + 0x18]
mov ecx, 1
call fcn.140072640
test rax, rax
je 0x14020d1cf
mov rcx, rax
add rcx, 0x18
mov qword [rax + 8], rcx
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rdx]
mov qword [rcx], rax
mov qword [rdx], rax
mov qword [rdx + 0x10], rax
mov qword [rax], 0
mov dword [rax + 0x10], 0
xor ecx, ecx
shl rdi, 0x20
or rdi, 0x10000
mov rdx, qword [rax + 8]
lea r8d, [rcx + 1]
mov dword [rax + 0x10], r8d
movsxd rax, ecx
mov qword [rdx + rax*8], rdi
mov ebp, 1
mov rdi, qword [rsp + 0x68]
jmp 0x14020cf36
or byte [rdi - 0xc], 1
jmp 0x14020cf36
or byte [rdi - 0xc], 1
jmp 0x14020d132
mov rdi, qword [rsp + 0x68]
or byte [rdi - 0xc], 1
mov ebp, 1
jmp 0x14020cf36
xor eax, eax
jmp 0x14020d5f2
mov rdx, r9
test r9d, r9d
je 0x14020d266
add rdx, 2
jmp 0x14020d213
mov word [rax - 2], r8w
add rax, 0xfffffffffffffffc
add rdx, 0xfffffffffffffffe
cmp rdx, 1
jle 0x14020d266
mov r10d, dword [r13 + rdx*4 - 8]
mov r8w, 1
mov r9w, 1
cmp r10d, dword [r13 + rdx*4 - 4]
jne 0x14020d23f
movzx r10d, word [rax + 2]
xor r9d, r9d
cmp r10d, 0xfff
setne r9b
add r9d, r10d
mov word [rax], r9w
mov r9d, dword [r13 + rdx*4 - 0xc]
cmp r9d, dword [r13 + rdx*4 - 8]
jne 0x14020d200
movzx r9d, word [rax]
xor r8d, r8d
cmp r9d, 0xfff
setne r8b
add r8d, r9d
jmp 0x14020d200
xor r9d, r9d
xor r10d, r10d
mov ebp, dword [rsp + 0x4c]
jmp 0x14020d28c
inc r10d
add r9d, r12d
cmp r10d, 7
je 0x14020d2f6
mov r11d, 0xfffffffa
jmp 0x14020d2a9
inc r11d
cmp r11d, 7
je 0x14020d280
lea r8d, [r9 + r11]
test r8d, r8d
jle 0x14020d2a0
mov eax, r8d
cdq
idiv r12d
cmp eax, 7
jg 0x14020d2d0
cmp edx, 8
jg 0x14020d2d0
shl eax, 4
or eax, 8
jmp 0x14020d2de
cmp eax, 6
jg 0x14020d2a0
cmp edx, esi
jle 0x14020d2a0
shl eax, 4
add eax, edi
sub eax, edx
cdqe
movzx eax, byte [rax + rbx]
cmp rax, 0x1f
ja 0x14020d2a0
mov dword [rsp + rax*4 + 0x200], r8d
jmp 0x14020d2a0
xor edx, edx
xor eax, eax
jmp 0x14020d30a
add rdx, 2
cmp rdx, 0x20
je 0x14020d340
mov r8d, dword [rsp + rdx*4 + 0x200]
test r8d, r8d
je 0x14020d324
movsxd r9, eax
inc eax
mov dword [rsp + r9*4 + 0x200], r8d
mov r8d, dword [rsp + rdx*4 + 0x204]
test r8d, r8d
je 0x14020d300
movsxd r9, eax
inc eax
mov dword [rsp + r9*4 + 0x200], r8d
jmp 0x14020d300
mov edx, eax
test eax, eax
jle 0x14020d39c
xor r9d, r9d
xor r8d, r8d
jmp 0x14020d358
inc r9
cmp r9, rdx
je 0x14020d39f
mov r10d, dword [rsp + r9*4 + 0x200]
mov r11d, 1
nop word cs:[rax + rax]
mov esi, dword [rsp + r11*4 + 0x1fc]
inc esi
cmp r11, rdx
jae 0x14020d387
inc r11
cmp r10d, esi
jne 0x14020d370
cmp r10d, esi
je 0x14020d350
movsxd r8, r8d
mov dword [rsp + r8*4 + 0x180], r10d
inc r8d
jmp 0x14020d350
xor r8d, r8d
mov qword [rsp + 0x88], r8
mov r8, qword [rsp + 0x160]
mov dword [r8], 0
cmp dword [rsp + 0x80], 2
jl 0x14020d5a2
mov r11d, 0xffffffff
mov r9d, 1
mov r10d, 0xffffffff
jmp 0x14020d40c
mov r10d, 0xfff
mov edi, esi
shl edi, 0xc
or edi, r10d
mov ebx, r10d
mov r11d, esi
mov r8, qword [rsp + 0x160]
mov dword [r8 + r9*4], edi
inc r9
mov r10d, ebx
cmp r9, qword [rsp + 0x80]
je 0x14020d5a2
mov r8, qword [r14]
mov esi, dword [r8 + r9*4]
mov r8d, esi
not r8d
test r8d, 0xfff
jne 0x14020d450
test eax, eax
jle 0x14020d450
shr esi, 0xc
xor edi, edi
nop dword [rax + rax]
cmp esi, dword [rsp + rdi*4 + 0x200]
je 0x14020d3d8
inc rdi
cmp rdx, rdi
jne 0x14020d430
nop word cs:[rax + rax]
lea edi, [r10 - 2]
dec r10d
cmp edi, 0xffd
mov r8d, eax
cmovb r8d, dword [rsp + 0x88]
mov esi, 0
cmovae r10d, esi
cmovae r11d, esi
test r8d, r8d
jle 0x14020d560
mov ebx, r8d
xor r14d, r14d
jmp 0x14020d49c
inc r14
cmp r14, rbx
je 0x14020d560
cmp edi, 0xffd
lea r8, [rsp + 0x200]
lea rsi, [rsp + 0x180]
cmovb r8, rsi
mov esi, dword [r8 + r14*4]
mov r15d, r9d
sub r15d, esi
js 0x14020d490
mov r8d, r15d
mov r8d, dword [r13 + r8*4]
cmp r8d, dword [r13 + r9*4]
jne 0x14020d490
xor ebp, ebp
mov r12d, r9d
nop word cs:[rax + rax]
movsxd r8, r15d
movzx r13d, word [rcx + r8*2]
mov r12d, r12d
movzx r8d, word [rcx + r12*2]
cmp r13w, r8w
jne 0x14020d527
add ebp, r13d
cmp ebp, 0xfff
ja 0x14020d536
add r12, r13
cmp r12d, dword [rsp + 0x80]
jge 0x14020d536
add r15d, r13d
movsxd r8, r15d
mov r13, qword [rsp + 0x40]
mov r8d, dword [r13 + r8*4]
cmp r8d, dword [r13 + r12*4]
je 0x14020d4e0
jmp 0x14020d53b
cmp r13w, r8w
cmovb r8d, r13d
movzx r8d, r8w
add ebp, r8d
mov r13, qword [rsp + 0x40]
cmp r10d, ebp
mov r12, qword [rsp + 0x108]
jge 0x14020d490
cmp ebp, 0xffe
ja 0x14020d58b
mov r10d, ebp
mov r11d, esi
jmp 0x14020d490
xor edi, edi
mov esi, r11d
mov ebx, 0
mov r11d, 0
cmp r10d, 5
mov ebp, dword [rsp + 0x4c]
mov r14, qword [rsp + 0xa0]
jge 0x14020d3de
jmp 0x14020d3ec
mov r10d, 0xfff
mov ebp, dword [rsp + 0x4c]
mov r14, qword [rsp + 0xa0]
jmp 0x14020d3de
mov rax, qword [rsp + 0x160]
mov dword [rax], 0
call fcn.1400726a0
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov ecx, r12d
mov edx, ebp
mov r8, r13
lea r9, [rsp + 0x160]
call fcn.14020e040
mov r13d, dword [rsp + 0x3c]
jmp 0x14020d5f2
or byte [rdi - 0xc], 1
cmp r14d, 2
jge 0x14020ced7
xor eax, eax
cmp dword [rdi - 0xc], 0
sete al
test eax, eax
je 0x14020df8a
xorps xmm6, xmm6
mov ebx, 1
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x40]
mov edi, dword [rsp + 0x5c]
jmp 0x14020d64a
mov rbx, qword [rsp + 0x60]
movss dword [rsp + rbx*4 + 0x170], xmm6
mov eax, dword [rsp + 0x7c]
mov dword [rsp + rbx*4 + 0x178], eax
test rbx, rbx
mov rax, qword [rsp + 0xc0]
mov edi, dword [rsp + 0x5c]
je 0x14020cc49
sub rbx, 1
jb 0x14020cc50
cmp rbx, 1
mov r8d, r13d
mov eax, 0
cmove r8d, eax
test edi, edi
jne 0x14020d664
cmp rbx, 1
je 0x14020d640
test rbx, rbx
mov qword [rsp + 0x60], rbx
je 0x14020d78d
mov rsi, qword [rsp + 0xb0]
mov rcx, rsi
mov rdx, qword [rsp + 0x50]
mov ebp, r8d
call fcn.140208a60
mov rcx, rsi
call fcn.140208fc0
movaps xmm6, xmm0
movss xmm0, dword [rsp + rbx*4 + 0x170]
ucomiss xmm0, xmm6
jbe 0x14020d640
cmp rbx, 1
jne 0x14020d7de
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rax]
mov rax, qword [r14 + 0x38]
test rax, rax
je 0x14020d6c8
mov rcx, qword [r14 + 0x40]
mov qword [rax], rcx
mov rdi, qword [r14 + 0x30]
mov qword [r14 + 0x40], rdi
mov rax, qword [rsp + 0x138]
mov qword [r14 + 0x38], rax
mov qword [r14 + 0x48], 0
mov qword [r14 + 0x30], 0
test rbx, rbx
je 0x14020d9b4
nop word cs:[rax + rax]
test rdi, rdi
je 0x14020d710
mov rax, qword [rdi]
mov qword [r14 + 0x40], rax
jmp 0x14020d73a
movsxd rax, dword [r14 + 0x28]
lea rdx, [rax*8 + 0x18]
mov ecx, 1
call fcn.140072640
test rax, rax
je 0x14020df85
mov rdi, rax
add rax, 0x18
mov qword [rdi + 8], rax
mov rax, qword [r14 + 0x38]
mov qword [rax], rdi
mov qword [r14 + 0x38], rdi
mov qword [r14 + 0x48], rdi
mov qword [rdi], 0
mov dword [rdi + 0x10], 0
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
movsxd r8, dword [rbx + 0x10]
shl r8, 3
call fcn.140562340
mov eax, dword [rbx + 0x10]
mov dword [rdi + 0x10], eax
mov rbx, qword [rbx]
test rbx, rbx
je 0x14020d612
mov rdi, qword [r14 + 0x40]
test rdi, rdi
jne 0x14020d705
jmp 0x14020d710
cmp dword [rsp + 0x98], 0x1a
mov r14d, r8d
mov eax, 0
cmovl r14d, eax
movups xmmword [rsp + 0x2cc], xmm7
movaps xmmword [rsp + 0x2c0], xmm7
movaps xmmword [rsp + 0x2b0], xmm7
mov rax, qword [rsp + 0xa8]
mov rsi, qword [rax]
test rsi, rsi
je 0x14020d894
mov r15, qword [rsi + 8]
movsxd rax, dword [rsi + 0x10]
lea rax, [r15 + rax*8]
jmp 0x14020d899
mov r9, qword [rsp + 0x68]
mov rax, qword [r9]
test rax, rax
setne cl
mov r10, qword [rsp + 0xa8]
cmp rax, r10
sete al
and al, cl
mov rcx, qword [r14 + 0x10]
mov r8, qword [rsp + 0x50]
mov rdx, qword [r8 + 0x20]
mov qword [rsp + 0x220], rdx
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0x210], xmm1
movaps xmmword [rsp + 0x200], xmm0
mov rdx, qword [r14 + 0x20]
mov qword [r8 + 0x20], rdx
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
mov rdx, qword [rsp + 0x220]
mov qword [r14 + 0x20], rdx
movaps xmm0, xmmword [rsp + 0x200]
movaps xmm1, xmmword [rsp + 0x210]
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
test rcx, rcx
je 0x14020d87b
cmp rcx, qword [rsp + 0xf0]
jne 0x14020d87b
mov qword [r9], r10
test al, al
je 0x14020d612
mov rax, qword [rsp + 0xf0]
mov qword [r14 + 0x10], rax
jmp 0x14020d612
xor r15d, r15d
xor eax, eax
mov qword [rsp + 0xc8], rax
movaps xmmword [rsp + 0x1c0], xmm7
movaps xmmword [rsp + 0x1b0], xmm7
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x190], xmm7
movaps xmmword [rsp + 0x180], xmm7
mov qword [rsp + 0x1d0], 0
test r14d, r14d
je 0x14020d9ac
mov dword [rsp + 0x58], r8d
js 0x14020d9d6
lea ebx, [r14 + 1]
xor r13d, r13d
xor ecx, ecx
call fcn.140208ba0
mov qword [rsp + 0x180], rax
test rax, rax
je 0x14020dda6
mov rbp, r15
mov qword [rsp + 0xb8], rsi
mov rcx, rax
mov qword [rsp + 0x100], rax
xor edx, edx
mov r8d, 1
call fcn.140208b30
mov edi, 1
lea r15, [rsp + 0x210]
nop dword [rax + rax]
mov ecx, edi
call fcn.140208ba0
mov qword [rsp + rdi*8 + 0x180], rax
xor r13d, r13d
test rax, rax
je 0x14020dd8c
mov rcx, rax
mov edx, edi
mov r8d, 1
call fcn.140208b30
mov rcx, r15
mov edx, edi
call fcn.140224960
mov dword [rsp + rdi*4 + 0x2b0], eax
test eax, eax
je 0x14020dd8c
inc rdi
add r15, 0x10
cmp rbx, rdi
jne 0x14020d940
mov rdi, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x60]
mov r15, rbp
test r15, r15
jne 0x14020d9f6
jmp 0x14020dd25
xor r8d, r8d
jmp 0x14020de05
mov rbx, qword [rsp + 0x60]
movss dword [rsp + rbx*4 + 0x170], xmm6
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x17c], eax
mov edi, dword [rsp + 0x5c]
jmp 0x14020d640
mov qword [rsp + 0xb8], rsi
xor eax, eax
mov qword [rsp + 0x100], rax
mov rdi, qword [rsp + 0x40]
test r15, r15
je 0x14020dd25
mov ecx, 0x20
sub ecx, r14d
lea r8d, [r14 + 1]
mov edx, r14d
mov qword [rsp + 0x148], r8
and r8d, 0xfffffffe
mov rax, rdx
shl rax, 4
add rax, rsp
add rax, 0x200
mov qword [rsp + 0x88], rax
lea rax, [rdx - 1]
mov qword [rsp + 0x158], rax
lea rax, [rdx + 1]
mov qword [rsp + 0x140], rax
jmp 0x14020dac9
mov rbx, qword [rsp + 0x60]
test r15, r15
jne 0x14020dac9
jmp 0x14020dd25
mov r12, qword [rsp + 0x108]
mov r13d, dword [rsp + 0x3c]
mov r15, qword [rsp + 0x150]
add r15, 8
cmp r15, qword [rsp + 0xc8]
jne 0x14020da50
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax]
mov qword [rsp + 0xb8], rax
test rax, rax
mov rbx, qword [rsp + 0x60]
je 0x14020dd25
mov rax, qword [rsp + 0xb8]
mov r15, qword [rax + 8]
movsxd rax, dword [rax + 0x10]
lea rax, [r15 + rax*8]
mov qword [rsp + 0xc8], rax
test r15, r15
je 0x14020dd25
cmp byte [r15], 0
mov qword [rsp + 0x150], r15
je 0x14020db00
movzx r15d, word [r15 + 2]
cmp r15d, 0x1ff
ja 0x14020dbe0
mov eax, r15d
lea r9, [0x1405bfa80]
movsx eax, byte [r9 + rax*2]
jmp 0x14020dc08
mov ebx, dword [rdi]
add rdi, 4
mov r15, rbx
shr r15, 0x18
mov r9d, ebx
shr r9d, 0x10
movzx eax, bh
movzx r11d, bl
mov rsi, qword [rsp + 0x100]
inc dword [rsi + r11*4 + 0x408]
mov r10, qword [rsi]
inc dword [r10 + rax*4]
movzx r13d, r9b
inc dword [rsi + r13*4 + 8]
inc dword [rsi + r15*4 + 0x808]
test r14d, r14d
jle 0x14020da68
imul r12d, ebx, 0x1e35a7bd
shr r12d, cl
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0x140]
jmp 0x14020dbb1
mov dword [rsi + r12*4], ebx
mov rsi, qword [rsp + r10*8 + 0x178]
inc dword [rsi + r11*4 + 0x408]
mov rbp, qword [rsi]
inc dword [rbp + rax*4]
inc dword [rsi + r13*4 + 8]
lea rsi, [rsi + r15*4]
add rsi, 0x808
inc dword [rsi]
sar r12d, 1
dec r10
add r9, 0xfffffffffffffff0
cmp r10, 1
jle 0x14020da60
mov rsi, qword [r9]
mov r12d, r12d
cmp dword [rsi + r12*4], ebx
jne 0x14020db70
mov rsi, qword [rsp + r10*8 + 0x178]
mov rsi, qword [rsi]
movsxd rbp, r12d
lea rsi, [rsi + rbp*4]
add rsi, 0x460
jmp 0x14020db9b
lea eax, [r15 - 1]
bsr r9d, eax
xor r9d, 0x1f
mov r10b, 0x1e
sub r10b, r9b
movzx r10d, r10b
xor r11d, r11d
bt eax, r10d
setb r11b
lea eax, [r11 + r9*2]
xor eax, 0x3e
mov ebx, dword [rdi]
test r14d, r14d
js 0x14020dc60
add eax, 0x100
xor r9d, r9d
nop word [rax + rax]
mov r10, qword [rsp + r9*8 + 0x180]
mov r10, qword [r10]
inc dword [r10 + rax*4]
mov r10, qword [rsp + r9*8 + 0x188]
mov r10, qword [r10]
inc dword [r10 + rax*4]
add r9, 2
cmp r8, r9
jne 0x14020dc20
test byte [rsp + 0x148], 1
je 0x14020dc60
mov r9, qword [rsp + r9*8 + 0x180]
mov r9, qword [r9]
inc dword [r9 + rax*4]
not ebx
jmp 0x14020dc7f
mov ebx, dword [rdi]
add rdi, 4
dec r15d
je 0x14020da6d
mov eax, ebx
mov ebx, dword [rdi]
cmp ebx, eax
je 0x14020dc72
test r14d, r14d
jle 0x14020dc72
imul eax, ebx, 0x1e35a7bd
shr eax, cl
test dl, 1
jne 0x14020dcb0
mov r10, rdx
cmp r14d, 1
je 0x14020dc70
jmp 0x14020dcd4
mov r9d, dword [rdi]
mov r10, qword [rsp + 0x88]
mov r10, qword [r10]
cdqe
mov dword [r10 + rax*4], r9d
sar eax, 1
mov r10, qword [rsp + 0x158]
cmp r14d, 1
je 0x14020dc70
lea r9, [r10 + 2]
shl r10, 4
add r10, rsp
add r10, 0x200
nop word cs:[rax + rax]
mov r11d, dword [rdi]
mov rsi, qword [r10]
cdqe
mov dword [rsi + rax*4], r11d
mov r11d, eax
sar r11d, 1
mov esi, dword [rdi]
mov rbx, qword [r10 - 0x10]
movsxd r11, r11d
mov dword [rbx + r11*4], esi
sar eax, 2
add r9, 0xfffffffffffffffe
add r10, 0xffffffffffffffe0
cmp r9, 2
jg 0x14020dcf0
jmp 0x14020dc70
test r14d, r14d
js 0x14020df7b
lea esi, [r14 + 1]
xor edi, edi
movaps xmm9, xmm8
mov r8d, dword [rsp + 0x58]
jmp 0x14020dd4c
inc rdi
movaps xmm9, xmm0
cmp rsi, rdi
je 0x14020dd7a
mov ebx, r8d
mov rcx, qword [rsp + rdi*8 + 0x180]
call fcn.140208fc0
test rdi, rdi
sete al
ucomiss xmm9, xmm0
seta cl
or cl, al
mov r8d, edi
cmove r8d, ebx
jne 0x14020dd40
movaps xmm0, xmm9
jmp 0x14020dd40
mov r13d, 1
mov rbx, qword [rsp + 0x60]
test r14d, r14d
jns 0x14020dd9b
jmp 0x14020ddf7
mov rbx, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x58]
test r14d, r14d
js 0x14020ddf7
mov dword [rsp + 0x58], r8d
inc r14d
mov rbx, r14
lea rdi, [rsp + 0x200]
xor esi, esi
jmp 0x14020ddd9
mov rcx, qword [rsp + rsi*8 + 0x180]
call fcn.140208870
inc rsi
add rdi, 0x10
cmp rbx, rsi
je 0x14020dded
cmp dword [rsp + rsi*4 + 0x2b0], 0
je 0x14020ddc0
mov rcx, rdi
call fcn.1402249b0
jmp 0x14020ddc0
mov rbx, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x58]
test r13d, r13d
mov r13d, dword [rsp + 0x3c]
je 0x14020df8a
test r8d, r8d
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x40]
jle 0x14020df5f
mov rax, qword [rsp + 0xa8]
mov rsi, qword [rax]
test rsi, rsi
je 0x14020df33
mov rdi, qword [rsi + 8]
movsxd rbx, dword [rsi + 0x10]
lea rcx, [rsp + 0x200]
mov ebp, r8d
mov edx, r8d
call fcn.140224960
test eax, eax
je 0x14020df8a
test rdi, rdi
je 0x14020df4a
lea rdx, [rdi + rbx*8]
xor eax, eax
jmp 0x14020de75
mov rdi, qword [rsi + 8]
movsxd rcx, dword [rsi + 0x10]
lea rdx, [rdi + rcx*8]
test rdi, rdi
je 0x14020df4a
cmp byte [rdi], 0
je 0x14020ded0
cmp word [rdi + 2], 0
je 0x14020df18
movsxd rcx, eax
lea r9, [r15 + rcx*4]
xor r8d, r8d
nop
mov r10d, dword [r9 + r8*4]
movzx ecx, byte [rsp + 0x208]
imul r11d, r10d, 0x1e35a7bd
shr r11d, cl
mov rcx, qword [rsp + 0x200]
movsxd r11, r11d
mov dword [rcx + r11*4], r10d
movzx ecx, word [rdi + 2]
inc r8
cmp r8d, ecx
jb 0x14020de90
add eax, r8d
jmp 0x14020df18
mov r8d, dword [rdi + 4]
movzx ecx, byte [rsp + 0x208]
imul r10d, r8d, 0x1e35a7bd
shr r10d, cl
mov r9, qword [rsp + 0x200]
movsxd r10, r10d
cmp dword [r9 + r10*4], r8d
mov ecx, 0xffffffff
cmove ecx, r10d
test ecx, ecx
js 0x14020df12
shl rcx, 0x20
or rcx, 0x10001
mov qword [rdi], rcx
jmp 0x14020df16
mov dword [r9 + r10*4], r8d
inc eax
add rdi, 8
cmp rdi, rdx
jne 0x14020de6c
mov rsi, qword [rsi]
test rsi, rsi
jne 0x14020de60
jmp 0x14020df4a
lea rcx, [rsp + 0x200]
mov ebp, r8d
mov edx, r8d
call fcn.140224960
test eax, eax
je 0x14020df8a
lea rcx, [rsp + 0x200]
call fcn.1402249b0
mov rbx, qword [rsp + 0x60]
mov r8d, ebp
mov edi, dword [rsp + 0x5c]
test edi, edi
je 0x14020d672
xor ebp, ebp
test r8d, r8d
je 0x14020d695
jmp 0x14020d672
mov r8d, dword [rsp + 0x58]
jmp 0x14020de05
or byte [r14 + 0x2c], 1
mov rcx, qword [rsp + 0x160]
call fcn.1400726a0
mov dword [rsp + 0x168], 0
mov qword [rsp + 0x160], 0
mov rcx, qword [rsp + 0xb0]
call fcn.140208870
mov rcx, qword [rsp + 0xe8]
mov edx, 1
call fcn.140071180
mov esi, eax
mov rcx, qword [rsp + 0x2e8]
xor rcx, rsp
call fcn.1405602f0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x2f0]
movaps xmm7, xmmword [rsp + 0x300]
movaps xmm8, xmmword [rsp + 0x310]
movaps xmm9, xmmword [rsp + 0x320]
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov esi, dword [rsp + 0x178]
mov rcx, qword [rsp + 0x110]
jmp 0x14020c84b
or byte [rbx + 4], 1
jmp 0x14020df8a