Function at 0x1403509d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov rax, qword [rcx + 0x30]
cmp rax, qword [rcx + 0x28]
je 0x140350a11
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, rcx
mov rdi, qword [rcx]
lea rdx, [rdi + 0x370]
mov dword [rsp + 0x28], 0x575244b3
mov dword [rsp + 0x20], 0x12be28ad
lea r8, [rsp + 0x60]
lea r9, [rsp + 0x58]
mov rcx, rdi
call fcn.140353060
mov rax, qword [rsp + 0x60]
sub rax, qword [rsp + 0x58]
movabs rcx, 0xbf8f5604ef70aefd
add rcx, rax
lea rdx, [rsp + 0x58]
mov r8d, 0xd9fbcafe
mov r9d, 0xc2155392
call fcn.140353670
mov r15, qword [rsp + 0x58]
lea rbx, [0x14046ff70]
movsxd rsi, dword [0x14046ff70]
mov ebp, dword [0x14046ff78]
mov rax, qword [rdi + 0x350]
sub rax, qword [rdi + 0x348]
sar rax, 3
movabs rcx, 0xaaaaaaaaaaaaaaab
imul rcx, rax
mov qword [rsp + 0xa0], rcx
lea eax, [r15 + 0x1f]
cdq
idiv r15d
cmp eax, 3
mov ecx, 2
cmovge ecx, eax
mov qword [rsp + 0xc8], rcx
lea eax, [rcx + 6]
mov dword [r14 + 8], eax
lea rax, [r14 + 0x10]
mov qword [rsp + 0x70], rax
movsxd rdi, r15d
mov r12, qword [r14 + 0x10]
mov qword [rsp + 0x68], r14
mov r14, qword [r14 + 0x18]
movabs rax, 0x25701bc7632b5b7e
mov rcx, r14
xor rcx, rax
and rax, r14
lea rax, [rcx + rax*2]
sub rax, r12
movabs rcx, 0xda8fe4389cd4a482
add rcx, rax
lea rdx, [rsp + 0x58]
mov r8d, 0x23520831
mov r9d, 0xa689108a
call fcn.1403538f0
mov rax, qword [rsp + 0x58]
cmp rdi, rax
mov qword [rsp + 0x90], r15
jae 0x140350b7f
lea rcx, [rdi + rdi*4]
shl rcx, 4
lea rax, [r12 + rcx]
cmp rax, r14
je 0x140350be2
add rcx, r12
add rcx, 0x50
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rcx - 0x14], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x50], xmm0
cmp rcx, r14
je 0x140350be2
add rcx, 0x50
jmp 0x140350b60
mov r15, qword [rsp + 0x68]
jbe 0x140350beb
movabs rcx, 0xaf0e06909144997c
sub rcx, r12
movabs rdx, 0x50f1f96f6ebb6684
mov r8, rcx
xor r8, rdx
and rcx, rdx
lea rcx, [r8 + rcx*2]
add rcx, qword [r15 + 0x20]
sar rcx, 4
movabs rdx, 0xcccccccccccccccd
imul rdx, rcx
cmp rdx, rdi
jae 0x140350c5c
lea r8, [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
mov rdx, rdi
call fcn.1403522f0
mov r15, qword [rsp + 0x68]
jmp 0x140350beb
mov r15, qword [rsp + 0x68]
mov qword [r15 + 0x18], rax
lea rdi, [r15 + 0x28]
lea rax, [r15 + 0x30]
mov qword [rsp + 0xa8], rax
add rbx, rsi
lea rax, [r15 + 8]
mov qword [rsp + 0xc0], rax
mov r13, qword [r15 + 0x10]
mov rsi, qword [r15 + 0x18]
sub rsi, r13
lea r12, [rsp + 0x58]
mov rcx, r12
mov edx, 0x260c6c10
mov r8d, 0x934c51b5
call fcn.1403535e0
mov r14d, dword [rsp + 0x58]
mov ecx, dword [0x140591788]
lea edx, [rcx - 1]
mov r8d, 0x20905a31
mov r9d, 0x34489f5a
call fcn.1403536b0
mov r11, r14
test al, 1
jne 0x140350ebe
jmp 0x140350f04
mov r15, rdi
sub r15, rax
je 0x140350cdb
not rax
add rdi, rax
mov rax, r15
and rax, 7
je 0x140350cd5
add r14, 0x50
xor ecx, ecx
xorps xmm0, xmm0
movabs rdx, 0x7ffffffffffffffe
nop word cs:[rax + rax]
movups xmmword [r14 - 0x14], xmm0
movups xmmword [r14 - 0x20], xmm0
movups xmmword [r14 - 0x30], xmm0
movups xmmword [r14 - 0x40], xmm0
movups xmmword [r14 - 0x50], xmm0
mov r8, r15
not r8
lea r15, [r8 + r15*2]
mov r8, rcx
xor r8, 1
not rcx
and rcx, rdx
or rcx, r8
not rcx
lea rcx, [r8 + rcx*2]
cmp rcx, rax
je 0x140350cd5
add r14, 0x50
jmp 0x140350c90
cmp rdi, 7
jae 0x140350ce9
mov r15, qword [rsp + 0x68]
mov qword [r15 + 0x18], r14
jmp 0x140350beb
add r14, 0x280
xorps xmm6, xmm6
movabs rdi, 0x362487231018d667
movabs r12, 0x7ffffffffffffff8
movabs r13, 0xc68df7ca4cc26c08
nop word cs:[rax + rax]
lea rcx, [r14 - 0x280]
movups xmmword [r14 - 0x244], xmm6
movups xmmword [r14 - 0x250], xmm6
movups xmmword [r14 - 0x260], xmm6
movups xmmword [r14 - 0x270], xmm6
movups xmmword [r14 - 0x280], xmm6
movups xmmword [r14 - 0x230], xmm6
movups xmmword [r14 - 0x220], xmm6
movups xmmword [r14 - 0x210], xmm6
movups xmmword [r14 - 0x200], xmm6
movups xmmword [r14 - 0x1f4], xmm6
movups xmmword [r14 - 0x1e0], xmm6
movups xmmword [r14 - 0x1d0], xmm6
movups xmmword [r14 - 0x1c0], xmm6
movups xmmword [r14 - 0x1b0], xmm6
movups xmmword [r14 - 0x1a4], xmm6
lea rdx, [rsp + 0x58]
mov r8d, 0x3331e083
mov r9d, 0xab424f6d
call fcn.140353000
mov rax, qword [rsp + 0x58]
movups xmmword [rax + 0x3c], xmm6
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x20], xmm6
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax], xmm6
movups xmmword [r14 - 0x104], xmm6
movups xmmword [r14 - 0x110], xmm6
movups xmmword [r14 - 0x120], xmm6
movups xmmword [r14 - 0x130], xmm6
movups xmmword [r14 - 0x140], xmm6
movups xmmword [r14 - 0xf0], xmm6
movups xmmword [r14 - 0xe0], xmm6
movups xmmword [r14 - 0xd0], xmm6
movups xmmword [r14 - 0xc0], xmm6
movups xmmword [r14 - 0xb4], xmm6
movups xmmword [r14 - 0xa0], xmm6
movups xmmword [r14 - 0x90], xmm6
movups xmmword [r14 - 0x80], xmm6
movups xmmword [r14 - 0x70], xmm6
movups xmmword [r14 - 0x64], xmm6
movups xmmword [r14 - 0x50], xmm6
movups xmmword [r14 - 0x40], xmm6
movups xmmword [r14 - 0x30], xmm6
movups xmmword [r14 - 0x20], xmm6
movups xmmword [r14 - 0x14], xmm6
mov rax, qword [0x14056eb80]
mov rcx, rax
movabs rdx, 0xf0b29198fb4f6d42
xor rcx, rdx
movabs rdx, 0x70b29198fb4f6d42
and rax, rdx
lea rax, [rcx + rax*2]
sub r15, rax
add r15, rdi
mov rax, r15
not rax
mov rcx, rax
and rcx, 0xfffffffffffffff8
mov edx, r15d
and edx, 7
or rdx, rcx
xor r15, r12
and eax, 7
or rax, r15
not rax
lea r15, [rdx + rax*2]
add r15, r13
je 0x140350cdb
add r14, 0x280
jmp 0x140350d20
mov eax, dword [0x14056eb78]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x4783867c
mov r8d, ecx
and r8d, 0xb87c7983
or r8d, edx
xor eax, 0x387c7983
and ecx, 0x4783867c
or ecx, eax
not ecx
lea ecx, [r8 + rcx*2]
add ecx, r11d
mov dword [0x14056e480], ecx
mov eax, dword [0x14059178c]
cmp eax, 0x35
jl 0x140350f71
lea eax, [r11 - 1]
mov ecx, eax
xor ecx, 0xdf
mov edx, eax
and edx, 0x5f
lea ecx, [rcx + rdx*2]
nop dword [rax + rax]
mov edx, eax
shl edx, cl
mov r8d, eax
sub r8d, edx
imul r8d, edx
mov r9d, r8d
sub r9d, edx
lea edx, [r8 + r9]
imul r9d, r8d
mov r8d, 0xe8230c16
sub r8d, edx
mov r10d, r8d
xor r10d, r9d
and r8d, r9d
lea r8d, [r10 + r8*2]
add edx, r8d
add edx, 0x17dcf3ea
mov dword [0x14056e480], edx
mov edx, dword [0x14059178c]
cmp edx, 0x4c
jge 0x140350f20
jmp 0x140350ebe
mov dword [rsp + 0x9c], ecx
mov qword [rsp + 0xb8], r11
mov eax, dword [0x14056eb78]
mov ecx, eax
xor ecx, 0xb87c7982
and eax, 0x387c7982
add eax, eax
add eax, ecx
jne 0x140351cf0
jmp 0x140351ccd
mov dword [rsp + 0x28], 0x48a6bc6a
mov dword [rsp + 0x20], 0x8488aff1
lea r8, [rsp + 0x60]
lea r9, [rsp + 0x58]
mov rcx, r15
mov rdx, qword [rsp + 0xa0]
call fcn.140353080
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
mov r13, qword [r15 + 0x48]
mov rbx, qword [r12]
mov rcx, r13
sub rcx, rbx
mov dword [rsp + 0x20], 0xd30da859
lea rbp, [rsp + 0x58]
mov rdx, r14
mov r8, rbp
mov r9d, 0x9454fa99
call fcn.1403536e0
test al, 1
je 0x140351013
lea rax, [rbx + r14*2]
mov qword [r15 + 0x48], rax
jmp 0x14035109b
mov r15, r14
sub r15, qword [rsp + 0x58]
jbe 0x14035109b
lea rdx, [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
mov rcx, rsi
mov r8d, 0xde5a9b9
mov r9d, 0x2b446518
call fcn.1402d9ce0
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0x6f7cb34
mov rdx, rbx
mov r8, r14
mov r9d, 0xe617a34b
call fcn.140353770
test al, 1
je 0x140351072
lea r8, [rsp + 0x80]
mov rcx, r12
mov rdx, r14
call fcn.140352730
jmp 0x14035109b
lea rbx, [r15*2]
add rbx, r13
movzx ecx, byte [0x14056eb80]
add cl, 0xd4
shl r15, cl
mov rcx, r13
xor edx, edx
mov r8, r15
call fcn.140430d20
mov qword [rsi + 0x48], rbx
cmp dword [rsp + 0x90], 0
jle 0x1403511a1
mov rax, qword [rsp + 0x90]
mov rsi, rax
movabs rcx, 0xffffffff00000000
xor rsi, rcx
and rsi, rax
dec rsi
mov r15d, 0x44
xor ebx, ebx
mov r13, qword [rsp + 0x68]
nop word cs:[rax + rax]
mov rax, qword [r13]
mov r14, qword [rax + 0x370]
mov dword [rsp + 0x20], 0xee219309
mov rcx, r14
mov rdx, rbx
mov r8, rbp
mov r9d, 0xae5ee1bd
call fcn.1403536a0
mov rax, qword [rsp + 0x58]
mov ecx, dword [r14 + r15*2 - 0x70]
mov rdx, qword [r13 + 0x10]
mov qword [rdx + r15 - 0x44], 1
add rdx, r15
mov qword [rsp + 0x40], rbp
lea r8, [rsp + 0x60]
mov qword [rsp + 0x38], r8
mov r8, qword [rsp + 0xc0]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x50], 0x55f3ed00
mov dword [rsp + 0x48], 0x43a77977
mov r8, qword [rsp + 0x70]
mov r9, rbx
call fcn.140353700
movsxd rax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x58]
mov rdx, qword [r12]
movzx r8d, word [rdx + rax*2]
mov r9d, ecx
xor r9d, ecx
not r9d
and r9d, r8d
xor r9d, ecx
and r8d, ecx
lea ecx, [r9 + r8*2]
mov word [rdx + rax*2], cx
cmp rsi, rbx
je 0x1403511a1
add r15, 0x50
inc rbx
jmp 0x1403510e0
xor r15d, r15d
mov rsi, qword [rsp + 0xa0]
test esi, esi
jle 0x1403513e1
mov dword [rsp + 0x20], 0xc9ef8f30
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0x58]
mov rcx, rsi
mov r9d, 0xa2b725d8
call fcn.140353090
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x70], rax
mov rdx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0x494a0720
lea rbx, [rsp + 0x58]
mov rcx, rsi
mov r8, rbx
mov r9d, 0xc50d6d86
call fcn.140353520
mov rcx, qword [rsp + 0x58]
test al, 1
mov qword [rsp + 0xa0], rcx
je 0x14035121a
xor r13d, r13d
jmp 0x140351353
sub qword [rsp + 0x70], rcx
xor r13d, r13d
movabs rsi, 0x7ffffffffffffffe
xor r15d, r15d
xor ebp, ebp
nop word cs:[rax + rax]
mov rax, qword [r12]
movzx ecx, word [rax + r13*2]
add ecx, r15d
mov word [rax + r13*2], cx
mov rax, r13
xor rax, rsi
and rax, r13
mov edx, r13d
not edx
and edx, 1
mov r8, r13
and r8, rsi
or r8, rdx
xor r8, rax
mov rax, qword [r12]
movzx edx, word [rax + r8*2]
add edx, ecx
mov word [rax + r8*2], dx
mov rax, qword [0x14056eb80]
movabs rcx, 0xf40012ab9e742ad5
add rax, rcx
or rax, r13
mov rcx, qword [r12]
movzx r15d, word [rcx + rax*2]
add r15d, edx
mov word [rcx + rax*2], r15w
mov r14, qword [0x14056eb80]
movabs rax, 0xf40012ab9e742ad6
add r14, rax
mov rax, r13
and rax, r14
xor r14, r13
xor r14, rax
add r14, r14
add r14, qword [r12]
mov rcx, r14
mov rdx, rbx
mov r8d, 0x95000eb5
mov r9d, 0x8cd7c1a8
call fcn.140134840
movzx ecx, word [rsp + 0x58]
mov dword [rsp + 0x20], 0xefd4ea6e
mov edx, r15d
mov r8, rbx
mov r9d, 0x84aac234
call fcn.1403531d0
mov r15d, dword [rsp + 0x58]
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 0x7dbf74a4
mov dword [rsp + 0x38], 0xf66d32db
mov ecx, r15d
mov rdx, r14
mov r8, r13
mov r9, rbp
call fcn.1403534d0
mov r13, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
test al, 1
je 0x140351240
mov rsi, qword [rsp + 0xa0]
mov rcx, rsi
mov edx, 0xc2ffe6ac
mov r8d, 0xdcf86882
call fcn.140353100
test al, 1
jne 0x1403513c3
xor eax, eax
movabs rcx, 0xf40012ab9e742ad4
movabs rdx, 0x740012ab9e742ad4
nop dword [rax + rax]
mov r8, qword [r12]
movzx r9d, word [r8 + r13*2]
add r15d, r9d
mov word [r8 + r13*2], r15w
mov r8, qword [0x14056eb80]
add r13, rcx
add r13, r8
mov r9, r8
xor r9, rcx
and r8, rdx
lea r8, [r9 + r8*2]
add rax, r8
cmp rax, rsi
jne 0x140351390
lea rdx, [rsp + 0x58]
mov ecx, r15d
mov r8d, 0x272e1316
mov r9d, 0x6ed926ba
call fcn.1402d9b40
mov r15, qword [rsp + 0x58]
mov rax, qword [rsp + 0xa8]
mov r14, qword [rax]
mov rsi, qword [rdi]
mov rax, r14
sub rax, rsi
movabs rdx, 0xf40012ab9e742b23
mov rcx, qword [0x14056eb80]
add rcx, rdx
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x14035141f
cqo
idiv rcx
mov rbx, rax
jmp 0x140351425
xor edx, edx
div ecx
mov ebx, eax
mov r9d, dword [0x14056eb78]
mov eax, r9d
xor eax, 0xd9028a79
mov ecx, r9d
and ecx, 0x59028a79
lea r8d, [rax + rcx*2]
add r9d, 0xcdaab6da
mov rcx, r15
mov rdx, rbx
call fcn.14012b260
test al, 1
je 0x14035149f
lea rax, [r15 + r15*4]
shl rax, 4
lea rcx, [rsi + rax]
cmp rcx, r14
je 0x1403514fa
add rax, rsi
add rax, 0x50
xorps xmm0, xmm0
nop word cs:[rax + rax]
movups xmmword [rax - 0x14], xmm0
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x30], xmm0
movups xmmword [rax - 0x40], xmm0
movups xmmword [rax - 0x50], xmm0
cmp rax, r14
je 0x1403514fa
add rax, 0x50
jmp 0x140351480
cmp r15, rbx
jbe 0x140351513
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov r8d, 0xa8710e2
mov r9d, 0x7383bfce
call fcn.14020c4a0
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
sub rax, rsi
sar rax, 4
movabs rcx, 0xcccccccccccccccd
imul rcx, rax
cmp rcx, r15
jae 0x140351979
lea r8, [rsp + 0x88]
mov rcx, rdi
mov rdx, r15
call fcn.1403522f0
jmp 0x140351513
mov rdx, qword [rsp + 0xa8]
mov r8d, 0x2ad8e784
mov r9d, 0x153c3254
call fcn.14012b360
mov rax, qword [rsp + 0x90]
test eax, eax
jle 0x1403518bc
movabs rcx, 0xffffffff00000000
xor rcx, rax
and rcx, rax
mov qword [rsp + 0x70], rcx
mov rax, qword [rsp + 0xc8]
mov ebp, eax
and ebp, 0x7ffffffe
test al, 1
sete al
movzx ecx, byte [0x14058f410]
mov r8d, ecx
xor r8b, al
or al, cl
xor al, 1
or al, r8b
mov ecx, eax
xor cl, 1
mov edx, ecx
and dl, r8b
and al, r8b
xor r8b, 1
and r8b, cl
or r8b, al
xor r8b, dl
mov byte [rsp + 0x90], r8b
xor r14d, r14d
lea r15, [rsp + 0x58]
movabs rsi, 0x4005d5a1844d6240
xor ebx, ebx
jmp 0x1403515b4
add ebx, dword [0x14058f144]
inc r14
cmp r14, qword [rsp + 0x70]
je 0x1403518bc
mov rdx, qword [rsp + 0x68]
mov rax, qword [rdx]
mov rcx, qword [rax + 0x370]
cmp dword [rdx + 8], 0
movsxd r12, ebx
mov r10, qword [rsp + 0xc0]
jle 0x140351620
lea rax, [r14 + r14*4]
shl rax, 5
add rax, rcx
lea rdx, [r12 + r12*4]
shl rdx, 4
add rdx, 0x10
mov r8d, 1
nop word cs:[rax + rax]
mov r9, qword [rdi]
mov qword [r9 + rdx], rax
movsxd r9, dword [r10]
cmp r8, r9
jge 0x140351620
add rdx, 0x50
inc r8
jmp 0x140351600
mov dword [rsp + 0x20], 0x6008327c
mov rdx, r14
mov r8, r15
mov r9d, 0x9d21c523
call fcn.1403530e0
mov rax, qword [rsp + 0x58]
mov edx, dword [rax]
mov eax, edx
not eax
mov r8d, edx
and r8d, 0x30000000
mov ecx, dword [0x14056eb78]
lea r9d, [rcx - 0x4783867f]
xor r9d, edx
mov r10d, eax
and r10d, 0xffbfc000
mov r11d, edx
and r11d, 0x403fff
or r11d, r10d
and r9d, 0x403fff
xor eax, r11d
and eax, r9d
xor eax, r11d
and r11d, r9d
or eax, r11d
not eax
cmp r8d, 0x20000000
cmove eax, edx
lea edx, [rcx - 0x47c3867f]
not eax
xor edx, eax
not edx
mov r13d, 0x47c3867e
sub r13d, ecx
and r13d, edx
or r13d, eax
not r13d
mov rax, qword [rdi]
lea rcx, [r12 + r12*4]
shl rcx, 4
mov qword [rax + rcx], 6
lea rdx, [rax + rcx]
add rdx, 0x44
mov dword [rsp + 0x28], 0xe9b8fd33
mov dword [rsp + 0x20], 0x3c5f5205
mov ecx, r13d
mov r8d, r12d
mov r9, r15
call fcn.140353820
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rdi]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 2
mov dword [rcx + rax + 0x44], r13d
mov ecx, r12d
mov rdx, r15
mov r8d, 0x45eca86b
mov r9d, 0x1d12aae1
call fcn.1403530d0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rdi]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 3
lea rdx, [rcx + rax]
add rdx, 0x44
mov dword [rsp + 0x28], 0xce3303bd
mov dword [rsp + 0x20], 0x433e01c1
mov ecx, r13d
mov r8d, r12d
mov r9, r15
call fcn.1403531e0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rdi]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 7
mov dword [rcx + rax + 0x44], r13d
lea eax, [r12 + 4]
cdqe
mov rcx, qword [rdi]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 5
mov dword [rcx + rax + 0x44], r13d
lea eax, [r12 + 5]
cdqe
mov rcx, qword [rdi]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 1
mov dword [rcx + rax + 0x44], r13d
mov eax, r12d
not eax
mov ecx, r12d
mov edx, r12d
xor r12d, 0xfffffff9
and r12d, eax
and eax, 6
and ecx, 0xfffffff9
or ecx, eax
xor edx, 6
or r12d, edx
not r12d
mov eax, dword [0x14056eb78]
mov edx, 0xb87c7984
add eax, edx
imul eax, r12d
add eax, ecx
movsxd rbx, eax
xor r12d, r12d
nop word [rax + rax]
mov rax, qword [rdi]
lea rcx, [rbx + rbx*4]
shl rcx, 4
mov qword [rax + rcx], 1
mov dword [rax + rcx + 0x44], r13d
mov rax, qword [0x14056eb80]
add rax, rbx
lea rax, [rax + rax*4]
shl rax, 4
add rax, qword [rdi]
mov qword [rsi + rax], 1
mov dword [rsi + rax + 0x44], r13d
mov rcx, rbx
mov rdx, r15
mov r8d, 0x1f0ba55e
mov r9d, 0xc2ffe6ac
call fcn.1401645f0
mov rbx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0xe6d6f3db
mov ecx, r12d
mov edx, ebp
mov r8, r15
mov r9d, 0xd5e2f754
call fcn.140352da0
mov r12d, dword [rsp + 0x58]
test al, 1
je 0x140351800
test byte [rsp + 0x90], 1
jne 0x1403515a0
mov rcx, qword [rdi]
lea rax, [rbx + rbx*4]
shl rax, 4
mov qword [rcx + rax], 1
mov dword [rsp + 0x20], 0x13b125e9
mov rdx, rbx
mov r8d, r13d
mov r9d, 0xc1e395d6
call fcn.1403538e0
inc rbx
jmp 0x1403515a0
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov rcx, qword [rdi]
sub rax, rcx
mov r8, qword [0x14056eb80]
movabs rsi, 0xf40012ab9e742b23
add r8, rsi
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1403518f4
cqo
idiv r8
jmp 0x1403518f9
xor edx, edx
div r8d
mov r11, qword [rsp + 0x68]
test eax, eax
jle 0x1403509f5
mov r8d, 0x18
mov r9d, 1
nop word cs:[rax + rax]
mov rax, qword [r11]
mov rax, qword [rax + 0x3a8]
mov qword [rcx + r8], rax
mov rcx, qword [r11 + 0x28]
mov rax, qword [r11 + 0x30]
sub rax, rcx
mov r10, qword [0x14056eb80]
add r10, rsi
mov rdx, rax
or rdx, r10
shr rdx, 0x20
je 0x140351960
cqo
idiv r10
jmp 0x140351965
xor edx, edx
div r10d
cdqe
cmp r9, rax
jge 0x1403509f5
add r8, 0x50
inc r9
jmp 0x140351920
mov rsi, r15
sub rsi, rbx
je 0x140351a06
movabs rax, 0xf40012ab9e742ad2
add rax, qword [0x14056eb80]
xor rax, rbx
add rax, r15
mov rdx, rsi
not rdx
mov rcx, rsi
xor rcx, 7
and rdx, 0xfffffffffffffff8
or rdx, rcx
cmp rdx, 0xffffffffffffffff
je 0x140351a00
add r14, 0x50
mov rcx, 0xfffffffffffffffe
sub rcx, rdx
xor esi, esi
xorps xmm0, xmm0
nop dword [rax]
movups xmmword [r14 - 0x14], xmm0
movups xmmword [r14 - 0x20], xmm0
movups xmmword [r14 - 0x30], xmm0
movups xmmword [r14 - 0x40], xmm0
movups xmmword [r14 - 0x50], xmm0
cmp rcx, rsi
je 0x1403519f7
inc rsi
add r14, 0x50
jmp 0x1403519d0
sub r15, rbx
not rsi
add rsi, r15
cmp rax, 7
jae 0x140351a16
mov rax, qword [rsp + 0xa8]
mov qword [rax], r14
jmp 0x140351513
xorps xmm6, xmm6
lea r15, [rsp + 0x58]
mov ebp, 0xb87c79ac
jmp 0x140351aba
movups xmmword [r13 + 0x3c], xmm6
movups xmmword [r13 + 0x30], xmm6
movups xmmword [r13 + 0x20], xmm6
movups xmmword [r13 + 0x10], xmm6
movups xmmword [r13], xmm6
movups xmmword [r14 + 0x21c], xmm6
movups xmmword [r14 + 0x210], xmm6
movups xmmword [r14 + 0x200], xmm6
movups xmmword [r14 + 0x1f0], xmm6
movups xmmword [r14 + 0x1e0], xmm6
movups xmmword [r14 + 0x230], xmm6
movups xmmword [r14 + 0x240], xmm6
movups xmmword [r14 + 0x250], xmm6
movups xmmword [r14 + 0x260], xmm6
movups xmmword [r14 + 0x26c], xmm6
add r14, 0x280
add rsi, qword [0x14056eb80]
movabs rax, 0xf40012ab9e742acb
add rsi, rax
je 0x140351a06
movups xmmword [r14 + 0x3c], xmm6
movups xmmword [r14 + 0x30], xmm6
movups xmmword [r14 + 0x20], xmm6
movups xmmword [r14 + 0x10], xmm6
movups xmmword [r14], xmm6
movups xmmword [r14 + 0x50], xmm6
movups xmmword [r14 + 0x60], xmm6
movups xmmword [r14 + 0x70], xmm6
movups xmmword [r14 + 0x80], xmm6
movups xmmword [r14 + 0x8c], xmm6
movups xmmword [r14 + 0xa0], xmm6
movups xmmword [r14 + 0xb0], xmm6
movups xmmword [r14 + 0xc0], xmm6
movups xmmword [r14 + 0xd0], xmm6
movups xmmword [r14 + 0xdc], xmm6
movups xmmword [r14 + 0xf0], xmm6
movups xmmword [r14 + 0x100], xmm6
movups xmmword [r14 + 0x110], xmm6
movups xmmword [r14 + 0x120], xmm6
movups xmmword [r14 + 0x12c], xmm6
mov rcx, r14
mov rdx, r15
mov r8d, 0xe3ec8e1a
mov r9d, 0xa385b372
call fcn.1403530c0
mov rax, qword [rsp + 0x58]
movups xmmword [rax + 0x3c], xmm6
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x20], xmm6
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax], xmm6
lea r13, [r14 + 0x190]
mov ecx, 0xae4770f8
mov edx, 0x95000eb5
call fcn.140097530
test al, 1
je 0x140351bf0
nop word [rax + rax]
movzx r12d, byte [0x14046ff74]
mov ebx, dword [0x140591788]
mov ecx, ebx
mov rdx, r15
mov r8d, 0x8c3e7f24
mov r9d, 0xdf887db0
call fcn.140164590
imul ebx, dword [rsp + 0x58]
mov ecx, ebx
mov edx, 0xfaaaa78b
mov r8d, 0x5147ec9b
call fcn.140164520
test al, 1
je 0x140351bf0
mov eax, dword [0x14059178c]
cmp eax, 0x50
mov rdx, qword [rsp + 0xb8]
mov r8d, dword [rsp + 0x9c]
jg 0x140351c60
jmp 0x140351c10
movzx eax, byte [0x14046ff74]
cmp dword [0x14056eb78], 0x4783867e
jne 0x140351bf0
jmp 0x140351b90
test edx, r8d
setne bl
mov eax, dword [0x14059178c]
mov ecx, dword [0x14056eb78]
add ecx, ebp
cmp eax, ecx
jge 0x140351c60
lea eax, [rbx - 1]
mov ecx, dword [rsp + 0xb4]
sub cl, r12b
mov edx, ecx
neg dl
xor dl, al
dec cl
neg bl
and bl, cl
or bl, dl
not bl
mov eax, dword [0x14059178c]
cmp eax, 0x39
jg 0x140351ca0
jmp 0x140351c70
mov eax, dword [0x14059178c]
cmp eax, 0x37
jge 0x140351c60
jmp 0x140351c10
test bl, bl
setne cl
or cl, byte [0x14058f410]
mov edx, 0x9343c0dd
mov r8d, 0x6c9c307e
call fcn.140353830
test al, 1
jne 0x140351a30
nop word cs:[rax + rax]
test bl, bl
setne dl
movzx eax, byte [0x14058f410]
mul dl
mov ecx, eax
sub al, dl
mul dl
add cl, al
mul cl
and al, 1
mov byte [0x14058f410], al
mov eax, dword [0x14059178c]
cmp eax, 0x32
jge 0x140351ca0
jmp 0x140351c70
movabs rax, 0xf40012ab9e742ad3
add rax, qword [0x14056eb80]
cmp r15, rax
jne 0x140351d0f
nop word cs:[rax + rax]
mov dword [0x14059178c], 0x4a
mov ecx, 0xcfcfb872
mov edx, 0xd9fbcafe
call fcn.140353010
test al, 1
je 0x140351cf0
jmp 0x140351ccd
mov eax, dword [rsp + 0x9c]
test dword [rsp + 0xb8], eax
je 0x140351d27
xor r9d, r9d
jmp 0x140351e1f
mov r14d, 0xb87c7983
mov eax, dword [0x14056eb78]
add eax, r14d
lea rcx, [fcn.1403509d0]
add ecx, ecx
add ecx, 0x2a60
mov edx, ecx
xor edx, eax
or eax, ecx
not eax
or eax, edx
cmp eax, 0xffffffff
jne 0x140351d88
lea rdx, [rsp + 0x58]
mov ecx, ebp
mov r8d, 0x62a6caca
mov r9d, 0x7d36c250
call fcn.1403535a0
mov eax, dword [0x14056eb78]
add eax, r14d
lea rcx, [fcn.1403509d0]
add ecx, ecx
add ecx, 0x3a80
test ecx, eax
je 0x140351db7
lea rax, [fcn.1403509d0]
lea ecx, [rax + rax]
add ecx, 0x3d81
add eax, eax
add eax, 0x3d80
not eax
mov edx, eax
and edx, ecx
and eax, 0xfffffffe
xor eax, ecx
or eax, edx
nop dword [rax]
cmp eax, 0xffffffff
jne 0x140351db0
jmp 0x140351d54
xor eax, eax
test byte [rsp + 0x58], 1
mov r9d, 0
jne 0x140351e1f
xor r9d, r9d
nop dword [rax]
cdqe
xor r9b, byte [rbx + rax]
mov ecx, dword [0x14056eb78]
mov edx, ecx
xor edx, 0x487d6d01
not ecx
and ecx, 0x378292fe
or ecx, edx
not ecx
add ecx, ecx
mov r8d, edx
xor r8d, ecx
and ecx, edx
lea ecx, [r8 + rcx*2]
mov edx, ecx
not edx
mov r8d, edx
xor r8d, ecx
and r8d, eax
xor r8d, ecx
xor edx, eax
and edx, eax
lea eax, [r8 + rdx*2]
add eax, 0x6fff0c82
cmp eax, ebp
jl 0x140351dd0
mov dword [rsp + 0xb4], r9d
shr rsi, 4
imul eax, esi, 0xcccccccd
test eax, eax
jle 0x140350fa2
xor ebx, ebx
lea rbp, [rsp + 0x60]
movabs rsi, 0xbdfd8868de9a9109
movabs r14, 0x4202779721656ef6
nop word cs:[rax + rax]
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x30], 0x6804bee6
mov dword [rsp + 0x28], 0x575244b3
mov rcx, r15
mov rdx, r13
mov r8, rbx
mov r9, rbp
call fcn.140353570
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov qword [rcx], rax
inc rbx
mov r13, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
mov dword [rsp + 0x28], 0x5f69b5c0
mov dword [rsp + 0x20], 0x194e6671
mov rcx, r13
mov r8, rbp
mov r9, r12
call fcn.1403535f0
mov rax, qword [rsp + 0x58]
sub rax, qword [rsp + 0x60]
mov rcx, rax
xor rcx, rsi
not rax
and rax, r14
or rax, rcx
not rax
lea rax, [rcx + rax*2]
shr rax, 4
imul eax, eax, 0xcccccccd
cdqe
cmp rbx, rax
jl 0x140351e60
jmp 0x140350fa2