Function at 0x14031fcd0
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x308
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x270], xmm6
mov qword [rbp + 0x268], 0xfffffffffffffffe
mov byte [rbp + 0x25f], r8b
mov dword [rbp + 0x1ac], edx
movsxd rdi, edx
mov rax, qword [rcx + 0x348]
lea r8, [rdi + rdi*2]
mov rdx, qword [rax + r8*8 + 8]
mov qword [rbp + 0x170], r8
sub rdx, qword [rax + r8*8]
sar rdx, 4
movabs r8, 0xeeeeeeeeeeeeeeef
imul r8, rdx
mov eax, dword [rcx + 0x98]
mov edx, eax
not edx
xor eax, 0xfffffbff
and edx, 0x400
or edx, eax
not edx
mov qword [rbp + 0x260], rcx
mov dword [rcx + 0x98], edx
mov rax, r8
shl rax, 0x20
mov qword [rbp + 0x178], r8
movsxd rcx, r8d
mov qword [rbp + 0x180], rcx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x190], xmm0
mov qword [rbp + 0x1a0], 0
mov qword [rbp + 0x128], rax
test rax, rax
je 0x14031fe22
js 0x140321699
mov rcx, qword [rbp + 0x128]
mov rbx, rcx
shr rbx, 0x1e
movabs rax, 0x3ff00000001
cmp rcx, rax
jb 0x14031fde2
lea rcx, [rbx + 0x27]
mov edx, 0xc0c806fb
mov r8d, 0x47b2fe40
call fcn.1400a9550
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14031fdf8
mov rcx, rbx
mov edx, 0xc0c806fb
mov r8d, 0x47b2fe40
call fcn.1400a9550
mov rcx, rax
mov qword [rbp + 0x190], rcx
mov rax, qword [rbp + 0x180]
lea rsi, [rcx + rax*4]
mov qword [rbp + 0x1a0], rsi
xor edx, edx
mov r8, rbx
call fcn.14040d340
mov qword [rbp + 0x198], rsi
mov rax, qword [rbp + 0x190]
mov rcx, qword [rbp + 0x198]
sub rcx, rax
shr rcx, 2
test ecx, ecx
jle 0x14031fe6a
mov ecx, 1
mov dword [rax + rcx*4 - 4], 0
mov rax, qword [rbp + 0x190]
mov rdx, qword [rbp + 0x198]
sub rdx, rax
shr rdx, 2
movsxd rdx, edx
cmp rcx, rdx
jge 0x14031fe6a
inc rcx
jmp 0x14031fe40
mov qword [rbp + 0xf0], rdi
mov ecx, 0x28
mov rax, qword [rbp + 0x180]
mul rcx
mov rcx, 0xffffffffffffffff
cmovno rcx, rax
mov qword [rbp + 0xf8], rcx
mov rax, qword [rbp + 0x260]
lea rcx, [rax + 0x3b8]
mov qword [rbp + 0x138], rcx
add rax, 0x3bc
mov qword [rbp + 0x140], rax
mov esi, dword [rbp + 0x178]
dec rsi
xorps xmm6, xmm6
xor eax, eax
mov qword [rbp + 0x188], rax
mov qword [rbp + 0x130], rsi
mov rcx, qword [rbp + 0x260]
mov edx, dword [rbp + 0x1ac]
xor r8d, r8d
call fcn.140304000
xor ecx, ecx
jmp 0x14031ff01
mov dword [r12 + r14 + 0xd8], ecx
mov dword [r15 + 0xc], 5
mov ecx, dword [rbp + 0x258]
inc ecx
cmp ecx, dword [rbp + 0x178]
jge 0x1403200d0
mov rax, qword [rbp + 0x260]
mov rax, qword [rax + 0x348]
mov dword [rbp + 0x258], ecx
mov ecx, ecx
mov rdx, qword [rbp + 0x170]
mov r12, qword [rax + rdx*8]
imul r14, rcx, 0xf0
lea r15, [r12 + r14]
mov eax, dword [r12 + r14 + 0xc]
and eax, 0x17
lea r13, [r12 + r14]
add r13, 0xb0
cmp eax, 5
jne 0x14031fff0
lea rdi, [r12 + r14]
add rdi, 0xb8
mov sil, 1
mov eax, 1
xor ebx, ebx
nop word [rax + rax]
mov dword [r15 + 0xc], eax
mov rcx, qword [r13]
mov r9d, dword [r15 + 0x1c]
mov eax, dword [r15 + 0x20]
mov dword [rsp + 0x20], eax
mov rdx, r15
mov r8, r13
call fcn.140303a00
cmp dword [rdi], 0
setne dl
cmp qword [rdi], 0
setne cl
or cl, dl
test eax, eax
sete dl
mov r8d, edx
and r8b, cl
xor cl, dl
xor cl, r8b
jne 0x140320060
mov dword [rdi + 0x20], eax
xor cl, 1
or cl, byte [0x14055d200]
mov eax, esi
not al
xor sil, cl
not cl
and cl, al
or cl, sil
mov bl, 1
mov eax, 2
xor esi, esi
test cl, 1
je 0x14031ff70
jmp 0x14031fef1
mov rcx, qword [r13]
mov r9d, dword [r15 + 0x1c]
mov eax, dword [r15 + 0x20]
mov dword [rsp + 0x20], eax
mov rdx, r15
mov r8, r13
call fcn.140303a00
cmp dword [r12 + r14 + 0xb8], 0
setne cl
cmp qword [r12 + r14 + 0xb8], 0
setne dl
or dl, cl
test eax, eax
setne r8b
sete cl
xor cl, dl
xor dl, 1
and dl, r8b
or dl, cl
cmp dl, 1
jne 0x140321550
test cl, cl
jne 0x140321550
mov dword [r12 + r14 + 0xd8], eax
jmp 0x14031fef9
xor bl, cl
not bl
and bl, cl
cmp bl, 1
jne 0x140321548
xor ecx, ecx
call fcn.140322cf0
cmp eax, 4
je 0x140321548
mov ecx, dword [r15 + 8]
mov eax, ecx
not eax
xor ecx, 0xf00
and eax, 0xfffff0ff
or eax, ecx
not eax
mov ecx, 0xc8
cmp eax, 0x400
je 0x14031fee9
cmp eax, 0x200
je 0x14031fee9
cmp eax, 0x100
jne 0x14031fef1
mov ecx, 0x11
jmp 0x14031fee9
lea rcx, [rbp - 0x10]
mov edx, 1
call fcn.1400afe50
lea rax, [0x14044ad58]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x48]
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov byte [rbp - 0x30], 1
movups xmmword [rax + 0x28], xmm6
movups xmmword [rax + 0x1c], xmm6
cmp qword [rbp + 0x128], 0
je 0x14032012b
mov rcx, qword [rbp + 0xf8]
call fcn.1403e4d24
mov rcx, qword [rbp + 0x180]
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x40], rcx
jmp 0x14032012d
xor eax, eax
mov r11, qword [rbp + 0x130]
mov qword [rbp - 0x48], rax
cmp dword [rbp + 0x178], 0
jle 0x1403201b0
mov eax, 8
xor ecx, ecx
nop dword [rax + rax]
mov rdx, qword [rbp + 0x260]
mov rdx, qword [rdx + 0x348]
mov r8, qword [rbp + 0x170]
mov rdx, qword [rdx + r8*8]
mov r8, qword [rbp - 0x48]
cmp qword [rbp - 0x40], rcx
mov r9d, 0
cmova r9, rcx
lea r9, [r9 + r9*4]
mov r10, qword [rdx + rax + 0x20]
mov qword [r8 + r9*8 + 0x20], r10
movups xmm0, xmmword [rdx + rax]
movups xmm1, xmmword [rdx + rax + 0x10]
movups xmmword [r8 + r9*8 + 0x10], xmm1
movups xmmword [r8 + r9*8], xmm0
cmp r11, rcx
je 0x1403201b0
add rax, 0xf0
inc rcx
jmp 0x140320150
mov r9, qword [rbp - 0x40]
test r9, r9
je 0x1403201bd
mov r9, qword [rbp - 0x48]
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov rdx, qword [rbp + 0x180]
mov qword [rsp + 0x20], rdx
mov r8d, 0x20
lea rdx, [rbp + 0x1b0]
call r10
mov eax, dword [rbp + 0x1b0]
cmp qword [rbp + 0x188], 0
setne byte [rbp + 0x258]
cmp eax, 4
je 0x140321520
cmp eax, 8
jne 0x14032021b
mov ebx, 1
jmp 0x140321529
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 9
lea rdx, [rbp + 0x1b0]
xor r9d, r9d
call r10
mov rax, qword [rbp + 0x1b0]
mov rcx, rax
not rcx
mov edx, 0xffffffff
xor rax, rdx
movabs rdx, 0xffffffff00000000
and rcx, rdx
or rcx, rax
cmp rcx, 0xfffffffffffffffb
jne 0x1403202c1
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 8
lea rdx, [rbp + 0x1b0]
xor r9d, r9d
call r10
cmp dword [rbp + 0x1b0], 4
sete al
mov dword [rbp + 0x1a8], eax
mov byte [rbp + 0x258], 1
jmp 0x1403202cb
mov dword [rbp + 0x1a8], 0
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 6
lea rdx, [rbp + 0x1b0]
mov r9, qword [rbp + 0x138]
call r10
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 7
lea rdx, [rbp + 0x1b0]
mov r9, qword [rbp + 0x140]
call r10
movsxd rsi, dword [0x14044aa38]
mov eax, dword [0x14044aa30]
mov dword [rbp + 0x14c], eax
mov qword [rbp + 0x250], 0
xor ecx, ecx
xor edx, edx
mov r8d, 0xfbb7c74e
mov r9d, 0x9b3acf08
call fcn.140325d00
lea rcx, [rbp]
mov rdx, rax
call fcn.1400b00b0
mov rcx, rax
call fcn.14028c8b0
mov rax, rsi
lea rcx, [0x14044aa38]
xor rax, rcx
and rsi, rcx
lea rax, [rax + rsi*2]
mov qword [rbp + 0xe8], rax
mov al, 1
mov dword [rbp + 0x24c], eax
xor r12d, r12d
xor ebx, ebx
cmp ebx, dword [rbp + 0x178]
jge 0x140320bc9
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx + 0x348]
mov rdx, qword [rbp + 0x170]
mov rdi, qword [rax + rdx*8]
cmp dword [rcx + 0x3bc], 0x4e4
jne 0x140320400
mov ecx, 1
mov edx, 1
mov r8d, 0xdcb6c15f
mov r9d, 0x66155e70
call fcn.1403265d0
lea rcx, [rbp]
mov rdx, rax
call fcn.1400b00b0
jmp 0x140320424
mov ecx, 1
xor edx, edx
mov r8d, 0xc70de438
mov r9d, 0x6a189288
call fcn.140326340
lea rcx, [rbp]
mov rdx, rax
call fcn.1400b00b0
mov r14d, ebx
imul r15, r14, 0xf0
lea r13, [rdi + r15]
or r12d, dword [r13 + 8]
mov rcx, r13
lea rdx, [rbp + 0x1b0]
call fcn.1401f79b0
cmp qword [rbp + 0x1d0], 0x10
lea rdx, [rbp + 0x1b8]
jb 0x14032045d
mov rdx, qword [rbp + 0x1b8]
mov r8, qword [rbp + 0x1c8]
lea rcx, [rbp]
call fcn.140279750
mov rax, qword [rbp + 0x1d0]
cmp rax, 0x10
jb 0x1403204b2
mov rcx, qword [rbp + 0x1b8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1403204ad
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14032168a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
cmp byte [rbp + 0x258], 0
je 0x140320b40
mov r15d, dword [rdi + r15 + 0xd8]
mov rax, qword [rbp + 0x190]
mov dword [rax + r14*4], r15d
test r15d, r15d
js 0x140320601
cmp byte [rbp + 0x1a8], 0
je 0x14032063e
mov qword [rbp + 0x1c8], 0
mov qword [rbp + 0x1d0], 0xf
mov byte [rbp + 0x1b8], 0
lea rax, [0x140427b38]
mov qword [rbp + 0x1b0], rax
test r15d, r15d
mov esi, dword [rbp + 0x14c]
js 0x140320543
lea rax, [rbp + 0x250]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0x260]
mov rdx, r13
mov r8d, r15d
lea r9, [rbp + 0x1b0]
call fcn.1403046c0
lea rcx, [rbp]
call fcn.14028c8b0
mov r13, rax
xor ecx, ecx
xor edx, edx
mov r8d, 0xc70de438
mov r9d, 0x6a189288
call fcn.140326340
mov rcx, r13
mov rdx, rax
call fcn.1400b00b0
mov qword [rbp + 0x120], 0
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
lea rdx, [rbp + 0x120]
mov qword [rsp + 0x20], rdx
mov r8d, 0xa
lea rdx, [rbp + 0x220]
lea r9, [rbp + 0x250]
call r10
cmp dword [rbp + 0x220], 4
jne 0x1403206ab
mov r13d, dword [0x140539ee4]
lea edi, [r13 + 1]
mov dword [0x140539ee4], edi
xor r13d, edi
not r13d
xor r14d, r14d
test r13d, edi
jne 0x140320710
lea rax, [fcn.14031fcd0]
add eax, eax
add eax, 0x700
mov ecx, eax
not ecx
test ecx, eax
jne 0x1403206f0
jmp 0x1403206d8
mov word [rbp + 0x254], 0
mov byte [rbp + 0x256], 0
mov ecx, dword [rbp + 0x24c]
mov eax, ecx
not al
xor cl, 1
and al, 0xfe
or al, cl
not al
mov byte [rbp + 0x257], al
mov dword [rbp + 0x250], r15d
cmp byte [rbp + 0x1a8], 0
jne 0x1403204e8
mov rcx, r13
call fcn.1401f7d20
mov r13, rax
xor ecx, ecx
mov edx, 1
mov r8d, 0xfbb7c74e
mov r9d, 0x9b3acf08
call fcn.140325d00
lea rcx, [rbp]
mov rdx, rax
call fcn.1400b00b0
mov rcx, rax
mov rdx, r13
call fcn.1400b00b0
mov rcx, rax
mov edx, r15d
call fcn.1402742d0
mov r15, rax
xor ecx, ecx
xor edx, edx
mov r8d, 0xc8f025c9
mov r9d, 0xaf536c4e
call fcn.140325f00
mov rcx, r15
mov rdx, rax
call fcn.1400b00b0
jmp 0x140320b40
cmp qword [rbp + 0x1d0], 0x10
lea rdx, [rbp + 0x1b8]
jb 0x1403206c3
mov rdx, qword [rbp + 0x1b8]
mov r8, qword [rbp + 0x1c8]
lea rcx, [rbp]
call fcn.140279750
jmp 0x140320abe
mov eax, dword [0x14055e998]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
je 0x1403206fd
nop dword [rax]
mov eax, dword [0x14055e99c]
cmp eax, 0x1a
jge 0x1403206f0
jmp 0x1403206d8
test esi, esi
jg 0x140320b59
nop word cs:[rax + rax]
mov eax, dword [0x14055e998]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140320710
mov eax, dword [0x14055e998]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140320710
test r15d, r15d
js 0x140320aae
lea rcx, [rbp + 8]
lea rdx, [rbp + 0x150]
call fcn.140118d70
xor eax, eax
sub eax, dword [0x14044aa3c]
mov ecx, dword [0x14055e998]
and r13d, edi
cmp r13d, 1
mov ecx, 0
sbb ecx, ecx
neg r14d
nop word [rax + rax]
mov edx, dword [0x14055e998]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140320798
mov edx, dword [0x14055e998]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1403207a0
mov dl, 1
test dl, dl
je 0x140320770
jmp 0x140320784
sub eax, r14d
mov r8d, eax
neg r8d
dec eax
and eax, ecx
not ecx
mov edx, ecx
xor edx, r8d
and r8d, ecx
or r8d, eax
and edx, ecx
or edx, r8d
nop
mov al, 1
test al, al
jne 0x1403207e3
nop word cs:[rax + rax]
mov eax, dword [0x14055e998]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403207d0
jmp 0x1403207c0
not edx
mov eax, edx
add qword [0x14055d370], rax
lea rcx, [rbp + 8]
lea rdx, [rbp + 0x100]
call fcn.140118d70
mov rax, qword [rbp + 0x110]
mov qword [rbp + 0x230], 0
mov qword [rbp + 0x238], 0xf
mov byte [rbp + 0x220], 0
mov r15, qword [rbp + 0x160]
sub r15, rax
jb 0x14032168f
cmp qword [rbp + 0x168], 0x10
lea r9, [rbp + 0x150]
jb 0x14032084a
mov r9, qword [rbp + 0x150]
add r9, rax
cmp r15, 0xf
jbe 0x140320864
lea rcx, [rbp + 0x220]
mov rdx, r15
call fcn.140086c60
jmp 0x140320886
mov qword [rbp + 0x230], r15
lea rcx, [rbp + 0x220]
mov rdx, r9
mov r8, r15
call fcn.14040cc90
mov byte [rbp + r15 + 0x220], 0
mov eax, dword [rbp + 0x78]
mov ecx, eax
not ecx
mov edx, ecx
and edx, 1
and eax, 0xfffffffe
or eax, edx
and ecx, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
je 0x140320903
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
lea rcx, [rbp + 0x60]
test rax, rax
jne 0x1403208bc
mov rax, qword [rbp + 0x40]
mov rax, qword [rax]
lea rcx, [rbp + 0x58]
mov rcx, qword [rcx]
movsxd rdx, dword [rcx]
add rdx, rax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1403208fe
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216a3
mov rcx, rdx
xor rcx, 0x27
and edx, 0x27
lea rdx, [rcx + rdx*2]
mov rcx, rax
call fcn.1400a7e90
mov rax, qword [rbp + 0x20]
mov qword [rax], 0
mov rax, qword [rbp + 0x40]
mov qword [rax], 0
mov rax, qword [rbp + 0x58]
mov dword [rax], 0
mov rax, qword [rbp + 0x28]
mov qword [rax], 0
mov rax, qword [rbp + 0x48]
mov qword [rax], 0
mov rax, qword [rbp + 0x60]
mov dword [rax], 0
mov qword [rbp + 0x70], 0
mov eax, dword [rbp + 0x78]
mov r9d, eax
xor r9d, 1
and r9d, eax
mov dword [rbp + 0x78], r9d
mov r8, qword [rbp + 0x230]
cmp qword [rbp + 0x238], 0x10
lea rdx, [rbp + 0x220]
jb 0x14032097b
mov rdx, qword [rbp + 0x220]
lea rcx, [rbp + 8]
call fcn.140324ff0
mov rax, qword [rbp + 0x238]
cmp rax, 0x10
jb 0x1403209da
mov rcx, qword [rbp + 0x220]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1403209d5
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216a8
mov ecx, eax
not ecx
and ecx, 0x28
mov rdx, rax
and rdx, 0xffffffffffffffd7
or rdx, rcx
and eax, 0x28
lea rdx, [rdx + rax*2]
mov rcx, r8
call fcn.1400a7e90
mov qword [rbp + 0x230], 0
mov qword [rbp + 0x238], 0xf
mov byte [rbp + 0x220], 0
mov rax, qword [rbp + 0x118]
cmp rax, 0x10
jb 0x140320a4f
mov rcx, qword [rbp + 0x100]
mov rdx, qword [0x14055d960]
sub rdx, rax
mov r8, rdx
not r8
lea rdx, [r8 + rdx*2]
neg rdx
cmp rdx, 0x1000
jb 0x140320a4a
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216ad
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov rax, qword [rbp + 0x168]
cmp rax, 0x10
jb 0x140320aae
mov rcx, qword [rbp + 0x150]
mov rdx, rax
xor rdx, 1
mov r8, rax
movabs r9, 0x7ffffffffffffffe
xor r8, r9
and r8, rax
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x140320aa9
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216b2
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov rdx, qword [rbp + 0x120]
lea rcx, [rbp]
call fcn.1400b00b0
cmp byte [rbp + 0x257], 0
mov ecx, dword [rbp + 0x24c]
movzx ecx, cl
mov eax, 0
cmove ecx, eax
mov dword [rbp + 0x24c], ecx
mov rax, qword [rbp + 0x1d0]
cmp rax, 0x10
jb 0x140320b40
mov rcx, qword [rbp + 0x1b8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140320b30
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x140321694
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
nop word cs:[rax + rax]
lea rcx, [rbp]
call fcn.14028c8b0
inc ebx
cmp ebx, dword [rbp + 0x178]
jl 0x1403203b0
jmp 0x140320bc9
xor eax, eax
xor r14d, r14d
jmp 0x140320b71
and r14d, edx
or r14d, ecx
add eax, 4
cmp eax, esi
jge 0x140320710
movsxd rcx, eax
mov rdx, qword [rbp + 0xe8]
mov edx, dword [rdx + rcx]
mov ecx, r14d
not ecx
and ecx, edx
not edx
nop word [rax + rax]
mov r8d, dword [0x14055e99c]
cmp r8d, 0xc
jg 0x140320bb2
mov r8d, dword [0x14055e998]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x140320b60
mov r8d, dword [0x14055e998]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x140320b90
jmp 0x140320b9d
test byte [rbp + 0x24c], 1
je 0x140320f25
mov qword [rbp + 0x100], 0
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
lea rdx, [rbp + 0x100]
mov qword [rsp + 0x20], rdx
mov r8d, 0xb
lea rdx, [rbp + 0x1b0]
lea r9, [rbp + 0x250]
call r10
mov rax, qword [rbp + 0x1b0]
mov rcx, rax
not rcx
mov edx, 0xffffffff
xor rax, rdx
movabs rdx, 0xffffffff00000000
and rcx, rdx
or rcx, rax
cmp rcx, 0xfffffffffffffffb
jne 0x140320f25
lea rcx, [rbp + 8]
lea rdx, [rbp + 0x220]
call fcn.140118d70
lea rcx, [rbp + 8]
lea rdx, [rbp + 0x150]
call fcn.140118d70
mov rax, qword [rbp + 0x160]
mov qword [rbp + 0x1c0], 0
mov qword [rbp + 0x1c8], 0xf
mov byte [rbp + 0x1b0], 0
mov r15, qword [rbp + 0x230]
sub r15, rax
jb 0x1403216b7
cmp qword [rbp + 0x238], 0x10
lea r9, [rbp + 0x220]
jb 0x140320cb4
mov r9, qword [rbp + 0x220]
add r9, rax
cmp r15, 0xf
jbe 0x140320cce
lea rcx, [rbp + 0x1b0]
mov rdx, r15
call fcn.140086c60
jmp 0x140320cf0
mov qword [rbp + 0x1c0], r15
lea rcx, [rbp + 0x1b0]
mov rdx, r9
mov r8, r15
call fcn.14040cc90
mov byte [rbp + r15 + 0x1b0], 0
mov eax, dword [rbp + 0x78]
mov ecx, eax
xor ecx, 1
not eax
and eax, 0xfffffffe
or eax, ecx
cmp eax, 0xffffffff
je 0x140320d66
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
lea rcx, [rbp + 0x60]
test rax, rax
jne 0x140320d1f
mov rax, qword [rbp + 0x40]
mov rax, qword [rax]
lea rcx, [rbp + 0x58]
mov rcx, qword [rcx]
movsxd rdx, dword [rcx]
add rdx, rax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140320d61
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1403216d0
mov rcx, rdx
xor rcx, 0x27
and edx, 0x27
lea rdx, [rcx + rdx*2]
mov rcx, rax
call fcn.1400a7e90
mov rax, qword [rbp + 0x20]
mov qword [rax], 0
mov rax, qword [rbp + 0x40]
mov qword [rax], 0
mov rax, qword [rbp + 0x58]
mov dword [rax], 0
mov rax, qword [rbp + 0x28]
mov qword [rax], 0
mov rax, qword [rbp + 0x48]
mov qword [rax], 0
mov rax, qword [rbp + 0x60]
mov dword [rax], 0
mov qword [rbp + 0x70], 0
mov eax, dword [rbp + 0x78]
mov r9d, eax
not r9d
xor eax, 0xfffffffe
and r9d, 1
or r9d, eax
not r9d
mov dword [rbp + 0x78], r9d
mov r8, qword [rbp + 0x1c0]
cmp qword [rbp + 0x1c8], 0x10
lea rdx, [rbp + 0x1b0]
jb 0x140320de7
mov rdx, qword [rbp + 0x1b0]
lea rcx, [rbp + 8]
call fcn.140324ff0
mov rax, qword [rbp + 0x1c8]
cmp rax, 0x10
jb 0x140320e67
mov rcx, qword [rbp + 0x1b0]
mov rdx, rax
xor rdx, 1
mov r8, rax
not r8
movabs r9, 0x7ffffffffffffffe
and r8, r9
or r8, rdx
not r8
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x140320e62
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
not ecx
and ecx, 7
or rcx, rdx
not rcx
lea rcx, [rdx + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x1403216d5
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov qword [rbp + 0x1c0], 0
mov qword [rbp + 0x1c8], 0xf
mov byte [rbp + 0x1b0], 0
mov rax, qword [rbp + 0x168]
cmp rax, 0x10
jb 0x140320ec9
mov rcx, qword [rbp + 0x150]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140320ec4
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216da
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov rax, qword [rbp + 0x238]
cmp rax, 0x10
jb 0x140320f15
mov rcx, qword [rbp + 0x220]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140320f10
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1403216df
mov rcx, rax
xor rcx, 0x28
and eax, 0x28
lea rdx, [rcx + rax*2]
mov rcx, r8
call fcn.1400a7e90
mov rdx, qword [rbp + 0x100]
lea rcx, [rbp]
call fcn.1400b00b0
lea rcx, [rbp + 8]
lea rdx, [rbp + 0x1b0]
call fcn.140118d70
lea rax, [rbp + 0x228]
movups xmmword [rax + 0x10], xmm6
cmp qword [rbp + 0x1c8], 0x10
lea r15, [rbp + 0x1b0]
jb 0x140320f58
mov r15, qword [rbp + 0x1b0]
mov rsi, qword [rbp + 0x1c0]
cmp rsi, 0xf
ja 0x140320f73
movups xmm0, xmmword [r15]
movups xmmword [rax], xmm0
mov edi, 0xf
jmp 0x140320fcd
mov rdi, rsi
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x140320fae
lea rcx, [rdi + 0x28]
call fcn.1403e4d2c
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140320fb7
lea rcx, [rdi + 1]
call fcn.1403e4d2c
mov qword [rbp + 0x228], rax
lea r8, [rsi + 1]
mov rcx, rax
mov rdx, r15
call fcn.14040cc90
mov qword [rbp + 0x238], rsi
mov qword [rbp + 0x240], rdi
lea rax, [0x140427b38]
mov qword [rbp + 0x220], rax
mov rax, qword [rbp + 0x1c8]
cmp rax, 0x10
jb 0x14032102e
mov rcx, qword [rbp + 0x1b0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140321029
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216bc
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
cmp qword [rbp + 0x240], 0x10
lea r15, [rbp + 0x228]
jb 0x140321046
mov r15, qword [rbp + 0x228]
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 0x21
lea rdx, [rbp + 0x1b0]
mov r9, r15
call r10
mov eax, dword [rbp + 0x1b0]
cmp eax, 8
je 0x140321091
cmp eax, 4
jne 0x14032109b
mov ebx, 0x11
jmp 0x1403214a1
mov ebx, 0x12
jmp 0x1403214a1
xor ecx, ecx
mov edx, 1
mov r8d, 0xfd8ad3f8
mov r9d, 0x2109b80e
call fcn.140326100
mov qword [rbp + 0x150], rax
mov rsi, qword [rbp + 0x260]
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 4
mov rcx, rsi
lea rdx, [rbp + 0x1b0]
lea r9, [rbp + 0x150]
call r10
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov rcx, qword [rbp + 0x188]
mov qword [rsp + 0x20], rcx
mov r8d, 2
mov rcx, rsi
lea rdx, [rbp + 0x1b0]
lea r9, [rbp + 0x250]
call r10
mov eax, dword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x188]
cmp rcx, qword [rsi + 0x3c0]
setb dil
cmp eax, 4
je 0x14032114e
cmp eax, 8
jne 0x140321151
xor edi, edi
xor eax, eax
jmp 0x1403211be
mov dil, 1
xor eax, eax
cmp byte [rbp + 0x25f], 0
je 0x1403211be
test dil, dil
je 0x1403211be
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
mov r8d, 3
lea rdx, [rbp + 0x1b0]
xor r9d, r9d
call r10
mov rax, qword [rbp + 0x1b0]
mov rcx, rax
not rcx
mov edx, ecx
movabs r8, 0xffffffff00000000
and rax, r8
or rax, rdx
and rcx, r8
or rcx, rax
cmp rcx, 0xfffffffffffffffb
sete al
mov qword [rbp + 0x1e0], 0
mov qword [rbp + 0x1e8], 0xf
mov byte [rbp + 0x1d0], 0
lea rcx, [0x140427b38]
mov qword [rbp + 0x1c8], rcx
mov qword [rbp + 0x208], 0
mov qword [rbp + 0x210], 0xf
mov byte [rbp + 0x1f8], 0
mov qword [rbp + 0x1f0], rcx
mov ecx, dword [rbp + 0x1ac]
mov dword [rbp + 0x1b0], ecx
movabs rcx, 0x400000001
mov qword [rbp + 0x1b4], rcx
test dil, dil
je 0x140321244
test al, al
mov eax, 0x22
mov ecx, 0xb0
cmovne eax, ecx
mov dword [rbp + 0x1b4], eax
mov rax, qword [rbp + 0x190]
mov rdx, qword [rbp + 0x198]
sub rdx, rax
shr rdx, 2
test edx, edx
jle 0x14032134b
mov rcx, qword [rbp + 0x260]
mov rcx, qword [rcx + 0x348]
mov r8, qword [rbp + 0x170]
mov rcx, qword [rcx + r8*8]
mov r9, rdx
not r9
mov r8d, r9d
movabs r10, 0x3fffffff00000000
and rdx, r10
or rdx, r8
movabs r8, 0xffffffff00000000
and r9, r8
or r9, rdx
mov r8, 0xfffffffffffffffe
sub r8, r9
add rcx, 8
xor r10d, r10d
xor r9d, r9d
xor edx, edx
nop dword [rax]
mov r11d, dword [rcx]
cmp r11d, 0x100
je 0x140321310
cmp r11d, 0x200
je 0x1403212de
cmp r11d, 0x400
jne 0x140321330
mov r11d, dword [rax + r10*4]
test r9d, r9d
je 0x140321300
cmp r11d, 0x65
je 0x140321330
cmp r9d, 0x65
je 0x140321300
cmp r9d, 0xc8
jne 0x14032131a
nop dword [rax]
mov r9d, r11d
jmp 0x140321330
test edx, edx
jne 0x140321330
mov edx, dword [rax + r10*4]
jmp 0x140321330
cmp r11d, 0xc8
je 0x140321330
cmp r11d, r9d
mov r11d, 0xe6
cmovne r9d, r11d
cmp r8, r10
je 0x140321344
add rcx, 0xf0
inc r10
jmp 0x1403212c0
test r9d, r9d
jne 0x140321350
jmp 0x14032134d
xor edx, edx
mov r9d, edx
mov dword [rbp + 0x1bc], r9d
mov dword [rbp + 0x1c0], r12d
mov rdx, qword [rbp + 0x150]
lea rcx, [rbp + 0x1c8]
call fcn.14026fdb0
lea rcx, [rbp + 0x1f0]
mov rdx, r15
call fcn.14026fdb0
mov byte [rbp + 0x218], 1
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
lea rdx, [rbp + 0x100]
xor r8d, r8d
lea r9, [rbp + 0x1b0]
call r10
mov eax, dword [rbp + 0x100]
cmp eax, 0x80
je 0x1403213d2
cmp eax, 0x20
jne 0x1403213e3
mov ebx, 0x11
jmp 0x1403213e5
mov rax, qword [rbp + 0x260]
or dword [rax + 0x98], 0x200
xor ebx, ebx
mov rax, qword [rbp + 0x210]
cmp rax, 0x10
jb 0x14032142a
mov rcx, qword [rbp + 0x1f8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140321425
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216c6
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov qword [rbp + 0x208], 0
mov qword [rbp + 0x210], 0xf
mov byte [rbp + 0x1f8], 0
mov rax, qword [rbp + 0x1e8]
cmp rax, 0x10
jb 0x1403214a1
mov rcx, qword [rbp + 0x1d0]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
add rdx, qword [0x14055d370]
cmp rdx, 0x1000
jb 0x14032149c
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216cb
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov rax, qword [rbp + 0x240]
cmp rax, 0x10
jb 0x140321506
mov rcx, qword [rbp + 0x228]
mov rdx, rax
xor rdx, 1
mov r8, rax
not r8
movabs r9, 0x7ffffffffffffffe
and r8, r9
or r8, rdx
not r8
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x140321501
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403216c1
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
test ebx, ebx
je 0x140320211
cmp ebx, 0x11
je 0x140321520
cmp ebx, 0x12
je 0x140320211
jmp 0x140321529
inc qword [rbp + 0x188]
xor ebx, ebx
lea rcx, [rbp - 0x50]
call fcn.140322d40
lea rcx, [rbp - 0x10]
call fcn.1400b0a80
test ebx, ebx
je 0x14031fed0
jmp 0x140321633
mov dword [r15 + 0xc], 5
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx + 0x390]
mov rdx, qword [rbp + 0xf0]
mov r8d, dword [rbp + 0x258]
mov dword [rax + rdx*4], r8d
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x10]
mov r8d, 0x24
mov r9, r15
call r10
cmp dword [rbp - 0x10], 0
jne 0x140321633
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x10]
mov r8d, 6
mov r9, qword [rbp + 0x138]
call r10
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x10]
mov r8d, 7
mov r9, qword [rbp + 0x140]
call r10
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x10]
mov r8d, 0x25
mov r9, r15
call r10
mov rcx, qword [rbp + 0x190]
test rcx, rcx
je 0x14032166f
mov rdx, qword [rbp + 0x1a0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14032166a
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14032169e
add rdx, 0x27
mov rcx, rax
call fcn.1400a7e90
movaps xmm6, xmmword [rbp + 0x270]
add rsp, 0x308
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1403c4adc
call fcn.140113c30
call fcn.1403c4adc
call fcn.1401450e0
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.140113c30
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
call fcn.1403c4adc
int3