Function at 0x140366830
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov r12, r8
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x70], rcx
mov rax, qword [rsp + 0x1d0]
mov rcx, qword [0x140682ee8]
xor rcx, rsp
mov qword [rsp + 0x160], rcx
mov rdi, r9
test rax, rax
je 0x14036687e
mov rdi, rax
cmp rax, r9
jne 0x140367b83
lea rsi, [r9*4]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
xor edx, edx
mov r8, rsi
mov r13, r9
call fcn.140512320
mov eax, 0x7900e2ba
add eax, dword [0x14064d750]
mov dword [rbx], eax
cmp r13, 0x20
ja 0x140367b83
mov rcx, r13
cmp rdi, r13
jb 0x140367b83
lea rcx, [rsp + 0xd0]
mov rdx, r12
mov r8, rsi
call fcn.140511c70
mov rax, r13
mov qword [rsp + r13*4 + 0xd0], 0
mov eax, edi
xor eax, 0xdea7d776
and edi, 0x5ea7d776
lea eax, [rax + rdi*2]
mov ecx, eax
not ecx
lea r12d, [rcx + rax*2]
add r12d, 0x2158288a
js 0x140366af9
mov eax, r12d
xor ecx, ecx
mov r8d, 0x7900e2ba
test cl, cl
jne 0x14036691f
movsxd rdx, dword [0x1405484f4]
test cl, cl
je 0x140366949
mov edx, dword [0x1405484f4]
mov edx, dword [0x140695fa0]
mov r9d, edx
not r9d
imul r9d, edx
and r9d, 1
mov edx, dword [0x14064d750]
add edx, r8d
cmp r9d, edx
jne 0x140366910
jmp 0x140366914
movabs r8, 0xa40126f17a95f09b
mov ecx, dword [0x140695fa0]
mov r9d, 0x2d2a5dad
sub r9d, ecx
imul r9d, ecx
test r9b, 1
jne 0x140366980
mov ecx, dword [0x140695fa0]
lea r9d, [rcx - 1]
imul r9d, ecx
test r9b, 1
je 0x14036698d
mov ecx, dword [0x140695fa4]
cmp ecx, 0x32
jge 0x140366980
jmp 0x14036696c
sub rdx, r8
lea rcx, [0x1405484f4]
add rcx, rdx
add rcx, r8
mov r8d, dword [0x140548500]
mov rdx, qword [rsp + 0x30]
lea rax, [rdx + rax*4]
mov edx, dword [rax]
test edx, edx
je 0x140366ae4
mov r9d, 0x80000000
mov r14d, 0x1f
nop word cs:[rax + rax]
mov r11d, r9d
not r11d
mov r10d, edx
not r10d
and r11d, r10d
mov edi, edx
xor edi, r9d
or edi, r11d
not edi
or edi, r11d
mov r11d, r10d
xor r11d, edi
mov ebx, r11d
and r11d, edi
xor edi, edx
not ebx
or r11d, ebx
not r11d
or r11d, edi
cmp r11d, 0xffffffff
jne 0x140366b42
mov r11d, r9d
shr r11d, 1
mov edi, edx
or edi, r11d
xor r11d, edx
not edi
or edi, r11d
mov r11d, dword [0x14064d750]
mov ebx, r11d
xor ebx, 0x7900e2b9
and r11d, 0x7900e2b9
lea r11d, [rbx + r11*2]
xor r11d, edi
jne 0x140366b2e
mov r15, r14
mov edi, r9d
shr edi, 2
mov r11d, edi
not r11d
mov ebx, dword [0x14064d750]
lea ebp, [rbx + 0x7900e2b9]
mov r14d, 0x86ff1d46
sub r14d, ebx
and ebp, r10d
and r14d, edx
or r14d, ebp
mov ebp, r11d
and ebp, edx
and edi, r10d
or edi, ebp
xor r11d, r14d
not r11d
and r11d, r14d
or r11d, edi
not r11d
add ebx, 0x7900e2ba
cmp r11d, ebx
jne 0x140366b3b
mov r10d, r9d
shr r10d, 3
mov r11d, edx
or r11d, r10d
xor r10d, edx
not r11d
or r11d, r10d
cmp r11d, 0xffffffff
jne 0x140366ce6
mov r10d, dword [0x14064d750]
mov r14, r15
lea r14d, [r15 + r10]
add r14d, 0x7900e2b6
mov r10d, r9d
shr r10d, 4
cmp r9d, 0xf
mov r9d, r10d
ja 0x1403669d0
add rax, 0xfffffffffffffffc
lea edx, [r12 - 1]
test r12d, r12d
mov r12d, edx
jg 0x1403669ad
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.1404e9d20
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov r8, rsi
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140511c70
dec r14d
dec r13d
jns 0x140366b4b
jmp 0x140367b83
mov r14, r15
add r14d, 0xfffffffe
dec r13d
js 0x140367b83
mov qword [rsp + 0x28], r13
mov eax, r13d
lea r10, [rsp + rax*4]
add r10, 0xd0
xor eax, eax
test al, al
jne 0x140366b60
mov edx, 0x7900e2ea
nop dword [rax]
mov eax, dword [0x14064c468]
mov r9d, dword [0x140695fa4]
mov r11d, dword [0x14064d750]
add r11d, edx
cmp r9d, r11d
jge 0x140366b70
lea edx, [rax + 1]
mov dword [0x14064c468], edx
mov r9d, dword [0x140695fa0]
not edx
mov r11d, edx
xor r11d, eax
not eax
xor r11d, eax
and r11d, eax
or r11d, edx
not r11d
nop word cs:[rax + rax]
mov esi, dword [0x14064d750]
mov edx, dword [0x140695fa0]
mov eax, edx
not eax
lea eax, [rax + rdx*2]
imul eax, edx
lea r9d, [rsi + 0x7900e2bc]
xor edx, edx
div r9d
test edx, edx
jne 0x140366bc0
add esi, 0x7900e2ba
mov qword [rsp + 0x98], rsi
cmp r11d, esi
mov dword [rsp + 0x64], r11d
je 0x140366c02
xor ebx, ebx
jmp 0x140366c12
xor esi, esi
mov ebx, 0
test r8d, r8d
jg 0x140366cfb
mov dword [rsp + 0x84], ebx
xor r9d, r9d
mov rdi, qword [rsp + 0x28]
mov eax, dword [r10]
test eax, eax
je 0x140366ccd
mov ecx, 0x80000000
mov r15d, 0x1f
nop word [rax + rax]
mov edx, eax
not edx
mov r8d, ecx
xor r8d, edx
mov r11d, ecx
xor r11d, eax
and r8d, edx
or r8d, r11d
cmp r8d, 0xffffffff
jne 0x140366de3
mov r8d, ecx
shr r8d, 1
test eax, r8d
jne 0x140366dd4
mov r8d, ecx
shr r8d, 2
test r8d, eax
jne 0x140366dd9
mov r8d, ecx
shr r8d, 3
mov r11d, r8d
not r11d
mov esi, r11d
and esi, eax
mov ebx, r8d
xor ebx, edx
mov ebp, eax
xor ebp, r8d
and ebp, eax
or ebp, ebx
not ebp
or ebp, esi
xor r11d, edx
and r8d, eax
or r8d, r11d
not r8d
or r8d, ebp
cmp r8d, 0xffffffff
jne 0x140366ddf
cmp ecx, 0x10
jb 0x140366ccd
shr ecx, 4
add r15d, 0xfffffffc
jmp 0x140366c40
add r10, 0xfffffffffffffffc
lea eax, [rdi - 1]
inc r9
test edi, edi
mov edi, eax
jg 0x140366c21
jmp 0x140367b83
mov r14, r15
add r14d, 0xfffffffd
dec r13d
jns 0x140366b4b
jmp 0x140367b83
lea rax, [fcn.140366830]
lea r9d, [rax + rax]
add r9d, 0xe00
mov r11d, 0x7900e2bc
xor ebx, ebx
jmp 0x140366d2f
add esi, 0x65e931fc
cmp esi, r8d
jge 0x140366c12
movsxd rax, esi
movzx edx, word [rcx + rax]
mov esi, edx
not esi
mov edi, ebx
xor edi, esi
and esi, ebx
not ebx
mov ebp, ebx
and ebp, edx
xor ebx, edx
or esi, ebx
not esi
or esi, edi
not esi
or esi, ebp
mov ebx, esi
mov edx, dword [0x14064d750]
mov esi, edx
xor esi, 0xdeea14b6
and edx, 0x5eea14b6
lea edx, [rsi + rdx*2]
neg edx
lea esi, [rax + rdx]
add esi, 2
nop word cs:[rax + rax]
mov eax, dword [0x140695fa0]
mov edx, dword [0x14064d750]
mov edi, 0x86ff1d45
sub edi, edx
add edx, 0x7900e2ba
xor edx, edi
and edx, eax
xor edx, edi
imul edx, eax
test dl, 1
jne 0x140366db5
mov eax, r9d
not eax
test eax, r9d
je 0x140366d20
mov edx, dword [0x140695fa0]
lea eax, [rdx - 1]
imul eax, edx
mov edi, dword [0x14064d750]
add edi, r11d
xor edx, edx
div edi
test edx, edx
jne 0x140366d80
jmp 0x140366da7
dec r15d
jmp 0x140366de3
add r15d, 0xfffffffe
jmp 0x140366de3
add r15d, 0xfffffffd
mov ebp, r12d
sub ebp, edi
jg 0x140366df9
jne 0x140367b83
cmp r14d, r15d
jl 0x140367b83
mov eax, r14d
sub eax, r15d
shl ebp, 5
movabs r13, 0x970ef2cd58dd7345
cmp r12d, edi
jne 0x140366edc
mov r12, rax
test eax, eax
setne al
sete dl
inc edi
sete cl
setne r8b
mov r9d, edx
xor r9b, r8b
test r9b, dl
jne 0x140367042
and r8b, dl
jne 0x140367042
and cl, al
jne 0x140367042
mov dword [rsp + 0x24], r15d
mov r9, r12
movsxd r8, r9d
mov rdx, qword [0x14064d748]
movabs r10, 0x970ef2cd58dd7345
lea eax, [r10 + 5]
mov ecx, eax
xor ecx, edx
and eax, edx
lea ecx, [rcx + rax*2]
mov r15, r8
shr r15, cl
mov rcx, r8
not rcx
mov rax, rcx
and rax, 0xffffffffffffffe0
and r9d, 0x1f
or r9, rax
mov rax, r9
xor r9, r8
movsxd r8, edi
not rax
and rax, rcx
or rax, r9
not rax
add rdx, r10
cmp rax, rdx
jne 0x140367057
lea rcx, [rsp + r15*4]
add rcx, 0xd0
sub r8, r15
shl r8, 2
lea rdx, [rsp + 0xd0]
call fcn.140511c70
lea r10, [rsp + r15*4]
add r10, 0xcc
jmp 0x140367116
mov qword [rsp + 0x40], rax
lea esi, [rdi + 2]
inc r12d
mov qword [rsp + 0x50], r12
mov eax, r12d
sub eax, esi
movsxd rbx, eax
movsxd r10, edi
mov rax, qword [0x14064d748]
movabs rcx, 0x7f9a2eddd617c4
mov rdx, r13
sub rdx, rcx
add rdx, r10
add rdx, rax
lea r8, [rcx + rdx]
add r8, 3
mov edi, r14d
sub edi, r15d
add edi, 0x20
sete dl
movabs rcx, 0xbb3bffc82e49e257
sub rax, rcx
add rcx, r13
add rcx, rax
cmp r8, rcx
sete al
mov ecx, eax
and cl, dl
xor al, dl
test cl, al
jne 0x1403673c5
xor cl, al
jne 0x1403673c5
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x38], r14
movsxd rcx, edi
mov rdx, qword [0x140694268]
movabs rax, 0x987c2a0d9c125c4a
mov r11, rdx
xor r11, rax
and rdx, rax
lea rdx, [r11 + rdx*2]
mov r11, rdx
not r11
mov rsi, rcx
not rsi
mov r14, rsi
xor r14, r11
and r11, rcx
and r14, rsi
or r14, r11
and rdx, rcx
add rdx, rdx
xor rdx, r14
mov rcx, rdx
not rcx
and rcx, r14
lea rcx, [rdx + rcx*2]
movabs rdx, 0x7d972607b731ee81
add rcx, rdx
sub rdx, rcx
movabs r12, 0xa122442bc45617d7
add rax, r12
add rax, rdx
sub r12, rax
mov rdx, r12
xor rdx, 0xffffffffffffffe0
and rdx, r12
shr r12, 5
mov rax, qword [0x14064d748]
mov rcx, rax
xor rcx, rax
not rcx
and rcx, r13
xor rcx, rax
and rax, r13
lea rax, [rcx + rax*2]
cmp rdx, rax
jne 0x140367143
mov dword [rsp + 0x24], r15d
lea rcx, [rsp + r12*4]
add rcx, 0xd0
sub r8, r12
shl r8, 2
lea rdx, [rsp + 0xd0]
call fcn.140511c70
mov qword [rsp + 0x48], r12
lea r11, [rsp + r12*4]
add r11, 0xcc
jmp 0x140367302
mov rax, r12
mov r14d, eax
mov esi, edi
mov rdi, r12
mov r8, qword [rsp + 0x30]
jmp 0x1403673db
lea r9, [rsp + r8*4]
add r9, 0xcc
cmp r15, r8
jae 0x14036731d
lea rdx, [r15*4]
mov rcx, rdx
neg rcx
mov r10d, dword [r9 + rcx]
mov ecx, eax
shl r10d, cl
lea r11, [r8 - 1]
mov dword [r9], r10d
lea r10, [r9 - 4]
cmp r11, r15
jbe 0x140367116
sub r9, rdx
mov edx, 0x20
sub edx, eax
mov rcx, r15
not rcx
add rcx, r8
mov rsi, 0xfffffffffffffffe
sub rsi, r15
mov rbx, rcx
not rbx
mov r14d, ebx
and r14d, 1
and rcx, 0xfffffffffffffffe
or rcx, r14
and rbx, 0xfffffffffffffffe
or rbx, rcx
cmp rbx, 0xffffffffffffffff
je 0x14036710d
mov r11d, dword [r9 - 4]
mov ecx, edx
shr r11d, cl
or dword [rsp + r8*4 + 0xcc], r11d
mov r11d, dword [r9 - 4]
add r9, 0xfffffffffffffffc
mov ecx, eax
shl r11d, cl
mov dword [rsp + r8*4 + 0xc8], r11d
mov rcx, qword [0x1406951e8]
lea r11, [r8 + rcx]
add r11, 0xfffffffffffffffe
add r10, 0xfffffffffffffffc
add rsi, r8
jne 0x140367ba8
mov r9, r10
mov rsi, r12
cmp esi, 0x20
jae 0x140367323
mov r14d, esi
mov eax, edi
mov r8, qword [rsp + 0x30]
mov rdi, rsi
mov esi, eax
movabs r13, 0x970ef2cd58dd7345
jmp 0x14036737e
lea rax, [rsp + r10*4]
add rax, 0xd8
cmp r8, r12
jbe 0x140367385
mov dword [rsp + 0x24], r15d
lea r8, [r12*4]
mov rcx, r8
neg rcx
mov r11d, dword [rax + rcx]
mov ecx, edx
shl r11d, cl
lea r15, [r10 + 2]
mov dword [rax], r11d
lea r11, [rax - 4]
cmp r15, r12
mov qword [rsp + 0x48], r12
jbe 0x140367302
mov qword [rsp + 0x58], rbx
sub rax, r8
mov r8d, 0x20
sub r8d, edx
mov rcx, r10
sub rcx, r12
movsxd rsi, dword [rsp + 0x28]
inc rsi
mov qword [rsp + 0x28], rsi
mov r14, qword [0x14064d748]
mov rbx, r13
xor rbx, r14
and r14, r13
add r14, r14
mov r13, rbx
xor r13, r14
and r14, rbx
lea r14, [r14*2]
add r14, r13
sub r12, r14
add r9, r12
mov r14, rcx
not r14
mov r12, rcx
xor r12, 0xfffffffffffffffe
and r12, r14
mov r13d, ecx
and r13d, 1
mov rsi, r12
not rsi
or r12, r13
not r13
and r13, rsi
or r13, r12
not r13
or r13, r12
xor rcx, r14
and rcx, r13
xor rcx, r14
test rcx, r13
je 0x14036724e
mov esi, dword [rax - 4]
mov ecx, r8d
shr esi, cl
or dword [rsp + r10*4 + 0xd8], esi
mov esi, dword [rax - 4]
add rax, 0xfffffffffffffffc
mov ecx, edx
shl esi, cl
mov dword [rsp + r10*4 + 0xd4], esi
mov rcx, qword [0x140693de8]
lea r15, [r10 + rcx]
inc r15
add r11, 0xfffffffffffffffc
mov r14, qword [rsp + 0x38]
movabs r13, 0x970ef2cd58dd7345
mov esi, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x28]
cmp rcx, r9
je 0x14036730b
add rax, 0xfffffffffffffffc
add r11, 0xfffffffffffffff8
add r15, 0xfffffffffffffffe
mov rbx, qword [rsp + 0x48]
mov r9d, dword [rax]
mov ecx, r8d
shr r9d, cl
or dword [r11 + 0xc], r9d
mov r9d, dword [rax]
mov ecx, edx
shl r9d, cl
mov dword [r11 + 8], r9d
mov r10d, dword [rax - 4]
mov ecx, r8d
shr r10d, cl
mov ecx, r9d
not ecx
mov esi, r10d
not esi
mov r14d, r9d
xor r14d, r10d
mov r12d, ecx
and r12d, esi
or r12d, r14d
not r12d
xor r10d, ecx
and r9d, esi
or r9d, r10d
not r9d
xor ecx, esi
and ecx, esi
or ecx, r9d
or ecx, r12d
mov dword [r11 + 8], ecx
mov r9d, dword [rax - 4]
mov ecx, edx
shl r9d, cl
mov dword [r11 + 4], r9d
cmp r15, rbx
jbe 0x140367c1b
add rax, 0xfffffffffffffff8
add r11, 0xfffffffffffffff8
add r15, 0xfffffffffffffffe
jmp 0x140367285
mov r14, qword [rsp + 0x38]
mov esi, dword [rsp + 0x20]
mov rax, r11
cmp edi, 0x20
mov r15d, dword [rsp + 0x24]
jae 0x140367393
jmp 0x1403673c5
mov r15, r8
mov rsi, r12
shl r15, 2
movabs rax, 0x79a289614eb419ec
movabs r13, 0x970ef2cd58dd7345
mov rcx, r13
sub rcx, rax
movabs rdx, 0x7aeb87b6da09125f
sub rcx, rdx
add rcx, qword [0x14064d748]
add rcx, rdx
add rcx, 4
add rcx, rax
sub rcx, r15
add rcx, r9
xor edx, edx
mov r8, r15
call fcn.140512320
mov r14d, esi
mov eax, edi
mov r8, qword [rsp + 0x30]
mov rdi, rsi
mov esi, eax
mov r15d, dword [rsp + 0x24]
jmp 0x1403673db
mov qword [rsp + 0x48], r8
mov r14, qword [rsp + 0x38]
mov esi, dword [rsp + 0x20]
movabs rdx, 0x1e03ef8354d0c344
lea ecx, [rdx + r13]
add ecx, dword [0x14064d748]
sub ecx, edx
add cl, 2
mov r8, qword [rsp + 0x48]
shl r8, cl
sub rax, r8
add rax, 4
mov rcx, rax
xor edx, edx
call fcn.140512320
mov rax, qword [rsp + 0x30]
lea r8, [rax + rbx*4]
cmp dword [rsp + 0x50], esi
cmove r14d, edi
mov rdi, qword [rsp + 0x40]
add edi, ebp
movabs r9, 0xc9a5199734a218be
movabs r10, 0x8faeb99f1045d942
movabs r11, 0x78e4079e060a8ee7
movsxd rbx, esi
mov eax, dword [0x14064d750]
lea ecx, [rax + 0x7900e2ba]
mov dword [rsp + 0x24], ecx
mov ecx, eax
xor ecx, 0x1d0cb215
not eax
and eax, 0x62f34dea
or eax, ecx
not eax
lea eax, [rcx + rax*2]
add eax, 0x5bf430a5
mov dword [rsp + 0x80], eax
mov eax, 0x3f
sub eax, r15d
mov dword [rsp + 0x7c], eax
mov rax, qword [0x14064d748]
add rax, r13
movabs rcx, 0xd8ca6c9689caa243
add rax, rcx
movabs r15, 0xa25991f8a135d8e6
lea rdx, [rbx + r15]
sub r15, rax
add r15, rcx
not r15
add r15, rdx
mov rax, r15
not rax
mov rcx, r15
or rcx, 0xfffffffffffffffe
mov r12, rcx
not r12
mov rdx, r15
and rdx, 0xfffffffffffffffe
or r12, rdx
not rdx
and rdx, rcx
mov qword [rsp + 0x48], r15
xor r15, 1
and rax, 0xfffffffffffffffe
or r15, rax
or rdx, r12
or r12, rax
mov rax, rbx
xor rax, 0xfffffffffffffffe
mov qword [rsp + 0x58], rax
not rdx
or r12, rdx
mov rdx, rbx
and rdx, 0xfffffffffffffffe
not r15
mov qword [rsp + 0xc8], r15
not r12
mov qword [rsp + 0xb8], r12
movabs r12, 0x4729aa81728868c4
movabs rbp, 0xe34e54e27a98a71
lea rax, [rbx - 1]
mov qword [rsp + 0x50], rax
lea eax, [rbx - 1]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + rbx*4 + 0xcc]
mov qword [rsp + 0x88], rax
lea rax, [rbx - 2]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xc0], rbx
lea rax, [rsp + rbx*4 + 0xc8]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x28], r8
lea rax, [r8 + 8]
mov qword [rsp + 0xa0], rax
xor ecx, ecx
mov dword [rsp + 0x20], esi
jmp 0x140367589
mov r14d, dword [0x14064d750]
mov eax, 0x7900e2d9
add r14d, eax
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x30]
cmove r14d, dword [rsp + 0x7c]
add qword [rsp + 0xa0], 0xfffffffffffffffc
mov rdi, qword [rsp + 0x40]
mov esi, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x90]
xor eax, eax
test ecx, ecx
sete al
lea r15d, [rax + rax + 1]
jne 0x1403675f0
test esi, esi
jle 0x1403675f0
mov rax, qword [rsp + 0xa8]
nop word cs:[rax + rax]
mov rcx, qword [rsp + 0x28]
mov ecx, dword [rcx + rax*4]
mov esi, dword [rsp + rax*4 + 0xd0]
cmp ecx, esi
ja 0x1403675d2
mov esi, dword [rsp + 0x20]
jb 0x1403675de
test eax, eax
jle 0x1403675e3
dec rax
jmp 0x1403675b0
mov r15d, 1
mov esi, dword [rsp + 0x20]
jmp 0x1403675f0
xor r15d, r15d
jmp 0x1403675f0
mov r15d, 3
nop dword [rax]
movsxd rdi, edi
jmp 0x140367600
mov r15d, 1
nop dword [rax + rax]
test r15d, r15d
je 0x140367774
mov qword [rsp + 0x38], r14
test esi, esi
je 0x140367701
cmp qword [rsp + 0x48], 0
je 0x14036780d
mov qword [rsp + 0x40], rdi
xor esi, esi
lea r14, [rsp + 0xd8]
mov rcx, qword [rsp + 0xa0]
xor eax, eax
add esi, dword [r14 - 8]
jb 0x140367657
nop word cs:[rax + rax]
xor edi, edi
cmp dword [rcx - 8], esi
jae 0x14036765c
mov edi, 1
sub dword [rcx - 8], esi
mov r8d, dword [r14 - 4]
mov r15d, r8d
not r15d
mov r13d, edi
not r13d
mov ebx, r15d
xor ebx, edi
mov esi, r8d
and esi, r13d
or esi, ebx
not esi
xor r13d, r8d
and r15d, edi
or r15d, r13d
not r15d
or r15d, esi
and edi, r8d
lea edi, [r15 + rdi*2]
cmp edi, r8d
jb 0x1403676a0
xor esi, esi
cmp dword [rcx - 4], edi
jae 0x1403676a5
mov esi, 1
sub dword [rcx - 4], edi
add rax, rbp
neg rax
mov r8, rax
xor r8, 0xfffffffffffffffe
movabs rdi, 0x7ffffffffffffffe
and rax, rdi
lea rax, [r8 + rax*2]
add rax, rbp
neg rax
cmp rax, rdx
je 0x1403676f0
add rcx, 8
add r14, 8
add esi, dword [r14 - 8]
jae 0x140367650
jmp 0x140367657
mov rdi, qword [rsp + 0x40]
test byte [rsp + 0x58], 1
je 0x140367701
add esi, dword [r14]
sub dword [rcx], esi
mov ecx, dword [0x14064d748]
movabs rax, 0x970ef2cd58dd7345
add ecx, eax
add cl, 5
mov rax, rdi
shr rax, cl
mov ecx, dword [0x14064d750]
mov r8d, ecx
xor r8d, 0x7900e2d9
and ecx, 0x7900e2d9
add ecx, ecx
mov esi, r8d
xor esi, ecx
and ecx, r8d
lea ecx, [rsi + rcx*2]
xor ecx, edi
not ecx
and ecx, edi
mov rbx, rdi
mov rdi, qword [rsp + 0x70]
mov r8d, dword [rdi + rax*4]
mov esi, r8d
not esi
btc r8d, ecx
btr esi, ecx
or esi, r8d
not esi
or esi, r8d
mov dword [rdi + rax*4], esi
mov rdi, rbx
mov r14, qword [rsp + 0x38]
mov esi, dword [rsp + 0x20]
dec rdi
test r14d, r14d
jle 0x140367980
dec r14d
mov r15d, 3
test esi, esi
je 0x140367600
mov qword [rsp + 0x40], rdi
mov rbx, r14
shr dword [rsp + 0xd0], 1
cmp qword [rsp + 0x50], 0
je 0x140367930
mov ecx, dword [rsp + 0xd0]
cmp qword [rsp + 0xc8], 0
je 0x14036782c
mov eax, dword [rsp + 0xd4]
mov r8d, eax
shl r8d, 0x1f
mov esi, r8d
xor esi, r8d
not esi
and esi, ecx
and ecx, r8d
xor esi, r8d
or esi, ecx
mov dword [rsp + 0xd0], esi
shr eax, 1
mov dword [rsp + 0xd4], eax
mov ecx, eax
lea rax, [rsp + 0xd4]
mov r14, rax
mov r8, qword [rsp + 0x68]
mov rsi, r8
test r8, r8
jne 0x14036784a
jmp 0x140367930
xor esi, esi
mov rcx, qword [rsp + 0x28]
lea r14, [rsp + 0xd0]
test byte [rsp + 0x58], 1
jne 0x1403676fc
jmp 0x140367701
lea rax, [rsp + 0xd0]
mov r14, rax
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x140367930
xor r13d, r13d
nop dword [rax]
mov r8d, dword [r14 + r13 + 4]
shl r8d, 0x1f
or r8d, ecx
mov dword [rax + r13], r8d
mov r8d, dword [r14 + r13 + 4]
movzx ecx, byte [0x14064d750]
add cl, 0xbb
shr r8d, cl
mov dword [rax + r13 + 4], r8d
mov ecx, dword [0x14064d750]
mov edi, ecx
xor edi, 0xd9
and ecx, 0x59
lea ecx, [rdi + rcx*2]
mov edi, dword [r14 + r13 + 8]
shl edi, cl
or edi, r8d
mov dword [rax + r13 + 4], edi
mov rdi, qword [0x14064d748]
sub rsi, rdi
movabs rcx, 0xaed7fcbbae963b77
add rsi, rcx
mov rcx, rsi
xor rcx, 0xfffffffffffffffe
not esi
and esi, 1
or rsi, rcx
not rsi
movabs r8, 0xdd20f083e2c29745
add rcx, r8
lea rsi, [rcx + rsi*2]
movabs rcx, 0x970ef2cd58dd7345
add rcx, r11
sub rcx, r12
add rcx, r10
sub rcx, r11
sub rcx, r10
sub rcx, r9
add rdi, r9
add rdi, rcx
mov ecx, dword [r14 + r13 + 8]
shr ecx, 1
mov dword [rax + r13 + 8], ecx
sub rsi, r8
movabs r8, 0xba191076f88c5144
add rsi, r8
add rdi, r12
cmp rsi, rdi
je 0x140367930
add r13, 8
jmp 0x140367850
mov esi, dword [rsp + 0x20]
cmp esi, dword [rsp + 0x24]
mov r14, rbx
mov rdi, qword [rsp + 0x40]
jle 0x140367600
mov rax, qword [rsp + 0xa8]
nop
mov rcx, qword [rsp + 0x28]
mov ecx, dword [rcx + rax*4]
mov r8d, dword [rsp + rax*4 + 0xd0]
cmp ecx, r8d
ja 0x1403675f5
jb 0x140367978
test eax, eax
jle 0x140367600
dec rax
jmp 0x140367950
xor r15d, r15d
jmp 0x140367600
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x30]
je 0x140367b83
mov rcx, qword [rsp + 0xc0]
cmp dword [rax + rcx*4 - 4], 0
mov qword [rsp + 0x40], rdi
je 0x1403679c0
mov dword [rax + rcx*4 - 4], 0
mov ecx, 1
jmp 0x1403679c2
xor ecx, ecx
mov qword [rsp + 0x90], rcx
add rax, 0xfffffffffffffffc
mov qword [rsp + 0x28], rax
cmp esi, dword [rsp + 0x80]
je 0x140367550
mov r8, qword [rsp + 0x88]
mov eax, dword [r8]
mov ecx, dword [0x140695fa8]
not eax
add eax, dword [0x14064d750]
sub ecx, eax
shl ecx, 0x1f
add ecx, 0x80000000
mov dword [r8], ecx
cmp qword [rsp + 0x50], 0
je 0x140367550
mov r8, qword [rsp + 0x88]
mov rsi, r8
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0xb8], 0
mov rdi, qword [rsp + 0x68]
je 0x140367a59
mov eax, dword [r8 - 4]
mov ecx, eax
shr ecx, 1
or dword [r8], ecx
movzx ecx, byte [0x14064d750]
add cl, 0xd9
shl eax, cl
mov dword [r8 - 4], eax
mov rsi, qword [rsp + 0xb0]
mov rax, rdi
test rdi, rdi
mov r13d, dword [rsp + 0x64]
mov r8, qword [rsp + 0x98]
movabs r14, 0x970ef2cd58dd7345
movabs r15, 0x3277864fc7a57042
je 0x140367550
nop word cs:[rax + rax]
xor ecx, ecx
cmp r13d, r8d
setne cl
mov r8d, dword [rsi - 8]
mov edi, dword [rsi - 4]
mov ebx, edi
shr ebx, 1
or dword [rsi], ebx
shld edi, r8d, 0x1f
mov dword [rsi - 4], edi
shl r8d, 0x1f
mov dword [rsi - 8], r8d
lea r8, [rsi - 8]
mov qword [rsp + 0x38], r8
mov r8, qword [0x14064d748]
movabs rsi, 0x6c6c3b76cefa21f9
lea rdi, [r14 + rsi]
sub rdi, r15
sub rdi, rsi
movabs r13, 0xe70bc143f8ad2045
add rdi, r13
add rdi, r15
mov rbx, rdi
xor rbx, r8
not rdi
mov rsi, r14
mov r14, r8
not r14
and r14, rdi
or r14, rbx
not r14
lea r14, [rbx + r14*2]
sub r14, r13
add r8, rsi
mov edi, 2
sub rdi, r8
movzx r8d, word [0x140548506]
sub r8d, dword [rsp + 0x84]
dec ecx
mov ebx, r8d
not ebx
xor r8d, ecx
xor ecx, ebx
and ecx, ebx
mov ebx, r8d
not ebx
xor r8d, ecx
not ecx
and ecx, ebx
mov rbx, r14
xor rbx, rdi
or ecx, r8d
not ecx
or ecx, r8d
mov r8, qword [rsp + 0x98]
mov r13d, dword [rsp + 0x64]
not ecx
movzx ecx, cx
add dword [0x140695fa8], ecx
and rdi, r14
mov r14, rsi
lea rcx, [rbx + rdi*2]
mov rsi, qword [rsp + 0x38]
sub rax, rcx
jne 0x140367a90
jmp 0x140367550
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.1404e9d20
nop
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add r9, 0xfffffffffffffffc
add r10, 0xfffffffffffffff8
add r11, 0xfffffffffffffffe
mov r8d, dword [r9]
mov ecx, edx
shr r8d, cl
mov ecx, dword [r10 + 0xc]
mov esi, ecx
xor esi, r8d
or ecx, r8d
and r8d, esi
not esi
and esi, r8d
or esi, ecx
mov dword [r10 + 0xc], esi
mov r8d, dword [r9]
mov ecx, eax
shl r8d, cl
mov dword [r10 + 8], r8d
mov esi, dword [r9 - 4]
mov ecx, edx
shr esi, cl
mov ecx, esi
xor ecx, esi
not ecx
and ecx, r8d
and r8d, esi
xor ecx, esi
or ecx, r8d
mov dword [r10 + 8], ecx
mov r8d, dword [r9 - 4]
mov ecx, eax
shl r8d, cl
mov dword [r10 + 4], r8d
cmp r11, r15
jbe 0x140367116
add r9, 0xfffffffffffffff8
jmp 0x140367bac
mov r14, qword [rsp + 0x38]
movabs r13, 0x970ef2cd58dd7345
mov esi, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x58]
jmp 0x14036730b