Function at 0x14002f730
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r14
mov rbp, rsp
sub rsp, 0x40
mov r14, rcx
mov ecx, 0x7fd7
call fcn.140063af4
mov rsi, rax
test rax, rax
jne 0x14002f75a
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret
mov qword [rsp + 0x60], rbx
mov eax, 0x55555556
mov qword [rsp + 0x70], rdi
xor ebx, ebx
mov qword [rsp + 0x38], r12
mov edi, 0xffffffff
mov qword [rsp + 0x30], r15
mov dword [rbp + 0x28], 0x7bf480
mov ecx, dword [rbp + 0x28]
imul ecx
movaps xmmword [rsp + 0x20], xmm6
movss xmm6, dword [0x1400864b8]
lea r12d, [rdi + 3]
mov eax, edx
lea r15d, [rdi + 6]
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x14002f7f2
mov ecx, dword [rbp + 0x28]
add ecx, r12d
add ecx, esi
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
and eax, 0x80000003
jge 0x14002f7c5
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x14002fdde
nop dword [rax]
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000003
jge 0x14002f7e9
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x14002f7d0
jmp 0x14002fdde
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
mov eax, dword [rbp + 0x28]
je 0x14002f855
mov ecx, r12d
sub ecx, esi
add ecx, eax
mov eax, 0x55555556
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14002fdde
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x14002f830
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
and eax, 0x80000003
je 0x14002f8d0
add ecx, r12d
lea eax, [rsi + 3]
imul ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x14002f87c
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14002fdde
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rbp + 0x28]
je 0x14002f8b1
dec eax
jmp 0x14002f8b3
inc eax
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x14002f8c7
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x14002f890
jmp 0x14002fdde
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x14002f955
mov eax, dword [rbp + 0x28]
lea ecx, [rsi + 0x17]
add eax, 0xb
cdq
idiv ecx
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rbp + 0x28]
je 0x14002f933
inc eax
jmp 0x14002f935
dec eax
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x14002f912
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x14002f9ac
mov eax, dword [rbp + 0x28]
mov ecx, esi
or ecx, 1
xor ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
test al, 1
jne 0x14002fdde
nop word [rax + rax]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x28]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
test al, 1
je 0x14002f990
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xb
cmp ecx, eax
je 0x14002fa4e
movd xmm0, dword [rbp + 0x28]
mov eax, 0x55555556
imul esi
cvtdq2ps xmm0, xmm0
mov eax, edx
mulss xmm0, dword [0x1400864bc]
shr eax, 0x1f
add edx, eax
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rbp + 0x28], edx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r12d
je 0x14002fdde
movd xmm0, dword [rbp + 0x28]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r12d
jne 0x14002fa12
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x14002faa7
mov r8d, dword [rbp + 0x28]
mov rdx, r15
imul ecx, esi
or r8d, 3
mov eax, ecx
and eax, 7
xor r8d, eax
lea eax, [r8*4]
xor eax, ecx
mov ecx, edi
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
add eax, ecx
add ecx, r8d
mov dword [rbp + 0x28], eax
sub rdx, 1
jne 0x14002fa91
jmp 0x14002fdde
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1d
cmp ecx, eax
je 0x14002fb07
mov eax, 0x92492493
mov ecx, esi
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov dword [rbp + 0x28], ecx
mov ecx, ebx
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
add eax, eax
xor eax, ecx
add ecx, 0x1d
mov dword [rbp + 0x28], eax
cmp ecx, 0x57
jl 0x14002faf0
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x14002fb55
mov eax, dword [rbp + 0x28]
not eax
add eax, 0x1f
add eax, esi
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x14002fb45
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14002fdde
mov dword [rbp + 0x28], ecx
jmp 0x14002fdde
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x14002fbac
mov eax, dword [rbp + 0x28]
add ecx, 0x25
add eax, 0x25
add ecx, esi
xor eax, ecx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cmp eax, 0x3fffffff
jge 0x14002fdde
mov eax, dword [rbp + 0x28]
lea eax, [rax*2 - 0x25]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cmp eax, 0x3fffffff
jl 0x14002fb90
jmp 0x14002fdde
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x14002fc29
mov eax, 0x63e7063f
mov ecx, esi
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rbp + 0x28]
add ecx, eax
mov eax, 0x63e7063f
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x14002fc0d
mov eax, dword [rbp + 0x28]
imul edx, eax, 0x29
mov dword [rbp + 0x28], edx
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x28], edx
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x2b
cmp ecx, eax
je 0x14002fc94
mov eax, dword [rbp + 0x28]
mov ecx, esi
add eax, 0x2b
mov dword [rbp + 0x28], eax
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rbp + 0x28]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x14002fdde
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
mov eax, dword [rbp + 0x28]
imul edx, ecx
add eax, edx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
test edx, edx
jne 0x14002fc74
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
cmp ecx, eax
je 0x14002fcf8
mov eax, dword [rbp + 0x28]
mov ecx, esi
dec eax
mov dword [rbp + 0x28], eax
mov eax, 0x4d4873ed
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rbp + 0x28]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x14002fdde
nop
mov eax, dword [rbp + 0x28]
sub eax, 0x35
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
test edx, edx
jne 0x14002fce0
jmp 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14002fd55
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rbp + 0x28]
inc ecx
jmp 0x14002fd7a
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rbp + 0x28]
not r8d
add ecx, r8d
mov eax, 0x92492493
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x14002fdde
mov ecx, dword [rbp + 0x28]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x14002fda0
mov edx, 0xf
xor ecx, ecx
mov r8d, 0x3fd9cc6a
lea r9d, [rdx + 0x48]
call fcn.140018170
mov rdx, r14
mov rcx, rsi
call rax
mov dword [rbp + 0x28], 0x7bf480
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x14002fe62
mov ecx, dword [rbp + 0x28]
add ecx, r12d
add ecx, esi
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
and eax, 0x80000003
jge 0x14002fe37
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x14003044e
nop
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000003
jge 0x14002fe59
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x14002fe40
jmp 0x14003044e
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
mov eax, dword [rbp + 0x28]
je 0x14002fec5
mov ecx, r12d
sub ecx, esi
add ecx, eax
mov eax, 0x55555556
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14003044e
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x14002fea0
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
and eax, 0x80000003
je 0x14002ff40
add ecx, r12d
lea eax, [rsi + 3]
imul ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x14002feec
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14003044e
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rbp + 0x28]
je 0x14002ff21
dec eax
jmp 0x14002ff23
inc eax
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x14002ff37
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x14002ff00
jmp 0x14003044e
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x14002ffc5
mov eax, dword [rbp + 0x28]
lea ecx, [rsi + 0x17]
add eax, 0xb
cdq
idiv ecx
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rbp + 0x28]
je 0x14002ffa3
inc eax
jmp 0x14002ffa5
dec eax
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x14002ff82
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x14003001c
mov eax, dword [rbp + 0x28]
mov ecx, esi
or ecx, 1
xor ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
test al, 1
jne 0x14003044e
nop word [rax + rax]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x28]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
test al, 1
je 0x140030000
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xb
cmp ecx, eax
je 0x1400300be
movd xmm0, dword [rbp + 0x28]
mov eax, 0x55555556
imul esi
cvtdq2ps xmm0, xmm0
mov eax, edx
mulss xmm0, dword [0x1400864bc]
shr eax, 0x1f
add edx, eax
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rbp + 0x28], edx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r12d
je 0x14003044e
movd xmm0, dword [rbp + 0x28]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r12d
jne 0x140030082
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x140030117
mov r8d, dword [rbp + 0x28]
mov rdx, r15
imul ecx, esi
or r8d, 3
mov eax, ecx
and eax, 7
xor r8d, eax
lea eax, [r8*4]
xor eax, ecx
mov ecx, edi
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
add eax, ecx
add ecx, r8d
mov dword [rbp + 0x28], eax
sub rdx, 1
jne 0x140030101
jmp 0x14003044e
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1d
cmp ecx, eax
je 0x140030177
mov eax, 0x92492493
mov ecx, esi
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov dword [rbp + 0x28], ecx
mov ecx, ebx
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
add eax, eax
xor eax, ecx
add ecx, 0x1d
mov dword [rbp + 0x28], eax
cmp ecx, 0x57
jl 0x140030160
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x1400301c5
mov eax, dword [rbp + 0x28]
not eax
add eax, 0x1f
add eax, esi
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x1400301b5
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14003044e
mov dword [rbp + 0x28], ecx
jmp 0x14003044e
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x14003021c
mov eax, dword [rbp + 0x28]
add ecx, 0x25
add eax, 0x25
add ecx, esi
xor eax, ecx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cmp eax, 0x3fffffff
jge 0x14003044e
mov eax, dword [rbp + 0x28]
lea eax, [rax*2 - 0x25]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cmp eax, 0x3fffffff
jl 0x140030200
jmp 0x14003044e
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x140030299
mov eax, 0x63e7063f
mov ecx, esi
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rbp + 0x28]
add ecx, eax
mov eax, 0x63e7063f
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x14003027d
mov eax, dword [rbp + 0x28]
imul edx, eax, 0x29
mov dword [rbp + 0x28], edx
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x28], edx
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x2b
cmp ecx, eax
je 0x140030304
mov eax, dword [rbp + 0x28]
mov ecx, esi
add eax, 0x2b
mov dword [rbp + 0x28], eax
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rbp + 0x28]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x14003044e
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
mov eax, dword [rbp + 0x28]
imul edx, ecx
add eax, edx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
test edx, edx
jne 0x1400302e4
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
cmp ecx, eax
je 0x140030368
mov eax, dword [rbp + 0x28]
mov ecx, esi
dec eax
mov dword [rbp + 0x28], eax
mov eax, 0x4d4873ed
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rbp + 0x28]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x14003044e
nop
mov eax, dword [rbp + 0x28]
sub eax, 0x35
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
test edx, edx
jne 0x140030350
jmp 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400303c5
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rbp + 0x28]
inc ecx
jmp 0x1400303ea
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rbp + 0x28]
not r8d
add ecx, r8d
mov eax, 0x92492493
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x14003044e
mov ecx, dword [rbp + 0x28]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x140030410
mov edx, 0xf
xor ecx, ecx
mov r8d, 0xd1da9915
lea r9d, [rdx + 0x4d]
call fcn.140018170
lea rdx, str..XFUN
mov rcx, rsi
call rax
mov dword [rbp + 0x28], 0x7bf480
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x1400304e2
mov ecx, dword [rbp + 0x28]
add ecx, r12d
add ecx, r14d
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
and eax, 0x80000003
jge 0x1400304ac
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x140030b0e
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000003
jge 0x1400304d9
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x1400304c0
jmp 0x140030b0e
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
mov eax, dword [rbp + 0x28]
je 0x140030545
sub r12d, r14d
add r12d, eax
mov eax, 0x55555556
mov dword [rbp + 0x28], r12d
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140030b0e
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140030520
jmp 0x140030b0e
mov ecx, dword [rbp + 0x28]
and eax, 0x80000003
je 0x1400305c0
add ecx, r12d
lea eax, [r14 + 3]
imul ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x14003056d
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x140030b0e
nop word [rax + rax]
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rbp + 0x28]
je 0x1400305a1
dec eax
jmp 0x1400305a3
inc eax
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x1400305b7
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x140030580
jmp 0x140030b0e
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x140030653
mov eax, dword [rbp + 0x28]
lea ecx, [r14 + 0x17]
add eax, 0xb
cdq
idiv ecx
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140030b0e
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rbp + 0x28]
je 0x140030631
inc eax
jmp 0x140030633
dec eax
mov dword [rbp + 0x28], eax
mov eax, 0x55555556
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140030610
jmp 0x140030b0e
mov ecx, dword [rbp + 0x28]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x1400306ac
mov eax, dword [rbp + 0x28]
mov ecx, r14d
or ecx, 1
xor ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
test al, 1
jne 0x140030b0e
nop dword [rax]
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x28]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
test al, 1
je 0x140030690
jmp 0x140030b0e
mov r8d, dword [rbp + 0x28]
mov eax, 0x2e8ba2e9
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0xb
cmp r8d, ecx
je 0x14003075c
movd xmm0, dword [rbp + 0x28]
mov eax, 0x55555556
imul r14d
cvtdq2ps xmm0, xmm0
mov eax, edx
mulss xmm0, dword [0x1400864bc]
shr eax, 0x1f
add edx, eax
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rbp + 0x28], edx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r12d
je 0x140030b0e
nop word [rax + rax]
movd xmm0, dword [rbp + 0x28]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r12d
jne 0x140030720
jmp 0x140030b0e
mov ecx, dword [rbp + 0x28]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
je 0x1400307b5
mov ecx, dword [rbp + 0x28]
mov edx, dword [rbp + 0x28]
imul ecx, r14d
or edx, 3
mov eax, ecx
and eax, 7
xor edx, eax
lea eax, [rdx*4]
xor eax, ecx
mov dword [rbp + 0x28], eax
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
add eax, edi
add edi, edx
mov dword [rbp + 0x28], eax
sub r15, 1
jne 0x1400307a0
jmp 0x140030b0e
mov r8d, dword [rbp + 0x28]
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1d
cmp r8d, ecx
je 0x140030817
mov eax, 0x92492493
mov ecx, r14d
imul r14d
add edx, r14d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rbp + 0x28]
imul ecx, eax
mov dword [rbp + 0x28], ecx
nop dword [rax]
mov eax, dword [rbp + 0x28]
add eax, eax
xor eax, ebx
add ebx, 0x1d
mov dword [rbp + 0x28], eax
cmp ebx, 0x57
jl 0x140030800
jmp 0x140030b0e
mov ecx, dword [rbp + 0x28]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x140030866
mov eax, dword [rbp + 0x28]
not eax
add eax, 0x1f
add eax, r14d
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
and eax, 0x80000001
jge 0x140030856
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x140030b0e
mov dword [rbp + 0x28], ecx
jmp 0x140030b0e
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rbp + 0x28]
je 0x1400308cc
mov eax, dword [rbp + 0x28]
add ecx, 0x25
add eax, 0x25
add ecx, r14d
xor eax, ecx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cmp eax, 0x3fffffff
jge 0x140030b0e
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rbp + 0x28]
lea eax, [rax*2 - 0x25]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cmp eax, 0x3fffffff
jl 0x1400308b0
jmp 0x140030b0e
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x14003094b
mov eax, 0x63e7063f
mov ecx, r14d
imul r14d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rbp + 0x28]
add ecx, eax
mov eax, 0x63e7063f
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x14003092f
mov eax, dword [rbp + 0x28]
imul edx, eax, 0x29
mov dword [rbp + 0x28], edx
jmp 0x140030b0e
mov ecx, dword [rbp + 0x28]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x28], edx
jmp 0x140030b0e
mov r8d, dword [rbp + 0x28]
mov eax, 0x2fa0be83
imul r8d
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x2b
cmp r8d, ecx
je 0x1400309c0
mov ecx, dword [rbp + 0x28]
mov eax, 0x66666667
imul r14d
add ecx, 0x2b
sar edx, 1
mov eax, edx
mov dword [rbp + 0x28], ecx
shr eax, 0x1f
mov ecx, r14d
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rbp + 0x28]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x140030b0e
nop dword [rax + rax]
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
mov eax, dword [rbp + 0x28]
imul edx, ecx
add eax, edx
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
test edx, edx
jne 0x1400309a0
jmp 0x140030b0e
mov r8d, dword [rbp + 0x28]
mov eax, 0x4d4873ed
imul r8d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x35
cmp r8d, ecx
mov ecx, dword [rbp + 0x28]
je 0x140030a28
dec ecx
mov eax, 0x4d4873ed
imul r14d
mov dword [rbp + 0x28], ecx
mov ecx, r14d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rbp + 0x28]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x140030b0e
mov eax, dword [rbp + 0x28]
sub eax, 0x35
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
cdq
idiv ecx
test edx, edx
jne 0x140030a10
jmp 0x140030b0e
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x140030b0e
mov ecx, dword [rbp + 0x28]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140030a82
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rbp + 0x28]
inc ecx
jmp 0x140030aa7
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rbp + 0x28]
not r8d
add ecx, r8d
mov eax, 0x92492493
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x140030b0e
nop dword [rax]
mov ecx, dword [rbp + 0x28]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rbp + 0x28], ecx
mov ecx, dword [rbp + 0x28]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x140030ad0
mov edx, 0xf
xor ecx, ecx
mov r8d, 0x102e520c
lea r9d, [rdx + 0x47]
call fcn.140018170
mov rdx, rsi
mov rcx, r14
call rax
mov rcx, rsi
call fcn.140061668
movaps xmm6, xmmword [rsp + 0x20]
mov eax, 1
mov r15, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret