Function at 0x14015f3b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2f8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x270], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
cmp qword [0x14055bd90], 0
jne 0x14015f439
mov ecx, 0xe8
mov edx, 0xa234284a
mov r8d, 0x948ded90
call fcn.1400a9550
lea rcx, [0x140427ad8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x140427b38]
mov qword [rax + 0x10], rcx
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x14055bd90], rax
mov rax, qword [0x14055bd90]
mov rbx, qword [rax + 0x38]
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0x7fffffff
mov byte [rbp - 0x10], 1
lea r14, [0x140429748]
mov qword [rbp - 0x28], r14
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov rcx, rbx
call fcn.14025b620
movsxd rax, dword [rax + 0x3c]
movabs rcx, 0x731794e2e597ee6f
add rcx, qword [0x14055bf28]
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea rax, [rdx + rcx*2]
add rax, rbx
movabs rcx, 0x8ce86b1d1a681191
xor edx, edx
cmp dword [rcx + rax], 0x4550
lea rax, [rax + rcx]
cmove rdx, rax
mov r15d, dword [rdx + 0xd8]
mov eax, 0xf7e38293
add eax, dword [0x140505924]
cmp r15d, eax
je 0x14015f509
mov eax, dword [0x140505924]
mov ecx, eax
xor ecx, 0xf7e38304
and eax, 0x77e38304
lea eax, [rcx + rax*2]
cmp dword [rbx + r15], eax
jb 0x14015f509
mov r8, qword [rbx + r15 + 0x70]
lea rdx, [0x1404eb400]
mov rcx, rbx
call fcn.140164ec0
mov r8, qword [rbx + r15 + 0x78]
lea rdx, case.0x140303ece.0
mov rcx, rbx
call fcn.140164ec0
mov qword [rbp - 0x28], r14
mov rbx, qword [rbp]
test rbx, rbx
je 0x14015f55d
lock dec dword [rbx + 8]
jne 0x14015f55d
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
call qword [case.0x140303ece.0]
mov eax, dword [0x140505924]
mov ecx, eax
xor ecx, 0xf7e38294
and eax, 0x77e38294
lea eax, [rcx + rax*2]
neg eax
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14015f55d
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov rcx, rbx
call qword [case.0x140303ece.0]
mov eax, dword [rsi + 0xc134]
mov ecx, dword [rsi]
movups xmm0, xmmword [rsi + 0xc124]
or dword [rdi + 0x164], ecx
movups xmmword [rdi + 0x168], xmm0
mov dword [rdi + 0x178], eax
mov eax, dword [rdi + 0x160]
or eax, dword [rsi + 0xc114]
mov dword [rdi + 0x160], eax
lea rbx, [rsi + 0x40]
shr eax, 0x1f
add al, byte [0x14055bf20]
lea r14, [rdi + 0x50]
mov byte [rdi + 0x58], al
movups xmm0, xmmword [rsi + 0x40]
movups xmm1, xmmword [rsi + 0x50]
movups xmm2, xmmword [rsi + 0x60]
movups xmm3, xmmword [rsi + 0x70]
movups xmmword [rdi + 0x59], xmm0
movups xmmword [rdi + 0x69], xmm1
movups xmmword [rdi + 0x79], xmm2
movups xmmword [rdi + 0x89], xmm3
mov dword [rsp + 0x20], 0x7cd617da
mov rcx, r14
mov rdx, rbx
mov r8d, 0xda6181a6
mov r9d, 0xce1cad1
call fcn.14016b520
mov dword [rsp + 0x20], 0xc1b7c623
mov rcx, r14
mov rdx, rbx
mov r8d, 0x73d0deeb
mov r9d, 0x7af3176e
call fcn.14016b280
xorps xmm0, xmm0
movaps xmmword [rbp + 0x1e0], xmm0
mov qword [rbp + 0x1f0], 0
call fcn.1400ae090
mov r14, rax
lea rdx, [rbp + 0x1e0]
mov rcx, rax
call fcn.140160840
cmp qword [0x14055bdb8], 0
jne 0x14015f663
mov ecx, 0x160
call fcn.1403e4d2c
mov qword [rbp + 0x238], rax
mov rcx, rax
call fcn.140132840
mov rax, qword [rbp + 0x238]
mov qword [0x14055bdb8], rax
mov rbx, qword [0x14055bdb8]
mov r9, qword [rdi + 0x190]
mov edx, dword [rdi + 0x160]
shr edx, 0x10
and edx, 1
mov rcx, rbx
mov r8, rsi
call fcn.140132ee0
lea rcx, [rbp - 0x28]
mov r8d, 0x200
xor edx, edx
call fcn.14040d340
mov edx, dword [rsi]
mov rcx, rdi
call fcn.1400addb0
mov r13, qword [0x140504d30]
movsxd r12, dword [r13]
mov ecx, dword [0x14042c1d8]
mov dword [rbp + 0x238], ecx
test al, al
je 0x14016018d
mov rcx, rbx
call fcn.1401356c0
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1401357f0
test al, al
je 0x14015f76a
mov r15, qword [rdi + 0x108]
mov ecx, dword [rbp - 0x24]
mov eax, ecx
not eax
mov edx, ecx
xor edx, 1
mov r8d, eax
and r8d, 0xfffffffe
or r8d, edx
cmp r8d, 0xffffffff
je 0x14015f708
mov edx, dword [rbp - 0x20]
mov dword [r15 + 8], edx
test cl, 2
je 0x14015f725
movzx edx, word [rbp - 0x1a]
mov word [r15 + 0xc], dx
mov edx, dword [rbp - 0x18]
mov dword [r15 + 0x10], edx
mov byte [r15 + 0x90], 1
test cl, 4
je 0x14015f731
mov ecx, dword [rbp - 0x14]
mov dword [r15 + 0x14], ecx
or eax, 0xfffffff7
cmp eax, 0xffffffff
je 0x14015f746
lea rdx, [rbp - 0x10]
lea rcx, [r15 + 0x18]
call fcn.14026fdb0
mov eax, dword [rbp - 0x24]
mov ecx, eax
not ecx
xor eax, 0x10
and ecx, 0xffffffef
or ecx, eax
cmp ecx, 0xffffffff
je 0x14015f76a
lea rdx, [rbp + 0x70]
add r15, 0x68
mov rcx, r15
call fcn.14026fdb0
mov eax, 0xf8238293
add eax, dword [0x140505924]
mov ecx, dword [rdi + 0x160]
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
je 0x14015f79a
mov rax, qword [rdi + 0x108]
mov byte [rax + 0x90], 1
mov rcx, rdi
mov rdx, rsi
call fcn.140112690
test al, al
je 0x14016018d
mov rax, qword [rdi + 0x108]
mov qword [rax + 0x3c0], 0x3e8
lea rdx, [rbp + 0x1e0]
mov rcx, r14
call fcn.140160940
mov eax, 0xf7e38294
add eax, dword [0x140505924]
test dword [rdi + 0x160], eax
je 0x14015f87d
mov edx, dword [rsi + 0x38]
mov rcx, rdi
xor r8d, r8d
call fcn.1400ae1c0
test al, al
je 0x14016018d
mov r15d, dword [rsi + 0xc138]
mov rcx, rdi
call fcn.140165010
mov r14, rax
lea rax, [rsi + 0xc124]
mov qword [rbp + 0x1d8], rax
add r12, r13
mov r13d, dword [rdi + 0x118]
mov dword [r14 + 0x87c], r15d
lea rcx, [r14 + 0x840]
mov r15, qword [r14 + 0x840]
mov r8, qword [r15 + 8]
mov rdx, rcx
call fcn.14013e500
mov qword [r15 + 8], r15
mov qword [r15], r15
mov qword [r15 + 0x10], r15
mov qword [r14 + 0x848], 0
mov dword [r14 + 0x880], r13d
mov eax, dword [0x14055bf18]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14015ff9b
jmp 0x14015ff8f
mov rcx, rdi
call fcn.140165010
mov rbx, rax
mov r14d, dword [rdi + 0x118]
mov dword [rax + 0x87c], 0
lea rcx, [rax + 0x840]
mov r15, qword [rax + 0x840]
mov r8, qword [r15 + 8]
mov rdx, rcx
call fcn.14013e500
mov qword [r15 + 8], r15
mov qword [r15], r15
mov qword [r15 + 0x10], r15
mov qword [rbx + 0x848], 0
mov dword [rbx + 0x880], r14d
mov rcx, rbx
call fcn.1400715b0
mov rcx, rbx
mov rdx, rdi
call fcn.140072800
mov rcx, rbx
add rcx, 8
call fcn.140167100
mov rcx, rbx
call fcn.140080710
cmp qword [0x14055bd90], 0
jne 0x14015f949
mov ecx, 0xe8
call fcn.1403e4d2c
lea rcx, [0x140427ad8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x140427b38]
mov qword [rax + 0x10], rcx
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x14055bd90], rax
mov rax, qword [0x14055bd90]
mov rcx, qword [rax + 0x38]
lea rdx, [0x14055b8a2]
call fcn.1401ebdb0
mov r9d, dword [rdi + 0x160]
mov eax, dword [rdi + 0x164]
mov ecx, eax
not ecx
and ecx, 0xfffffeff
and eax, 0x100
or eax, ecx
xor eax, 0x100
xor ecx, 0xfffffeff
or ecx, eax
xor ecx, 0xffffffff
setne dl
sete al
mov r8d, r9d
shr r8d, 0xd
and r8d, 1
and r8b, al
lea rbx, [rdi + 0x308]
mov rax, qword [rdi + 0x190]
mov r11d, dword [0x14055b51e]
mov r10d, r11d
not r10d
mov ecx, r11d
and ecx, 2
shr ecx, 1
xor r11d, 1
and r10d, 0xfffffffe
or r10d, r11d
mov r11d, r9d
and r11d, 8
shr r11d, 3
mov r14d, r9d
shr r14d, 0x17
and r14d, 1
mov r15d, r9d
shr r15d, 0x1d
and r15d, 1
mov r12d, r9d
and r12d, 4
shr r12d, 2
shr r9d, 0xc
and r9d, 1
cmp r10d, 0xffffffff
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x48], cl
setne byte [rsp + 0x40]
mov byte [rsp + 0x38], r11b
mov byte [rsp + 0x30], r14b
mov byte [rsp + 0x28], r15b
mov byte [rsp + 0x20], r12b
mov rcx, rbx
call fcn.1401bbe30
mov rcx, rdi
call fcn.14015e220
test al, al
je 0x14016018d
mov eax, dword [rdi + 0x160]
mov ecx, dword [0x140505924]
mov edx, ecx
xor edx, 0xf7e39293
and ecx, 0x77e39293
lea ecx, [rdx + rcx*2]
xor ecx, eax
not ecx
test ecx, eax
je 0x14015fb08
call fcn.140160e50
mov r14, rax
mov rax, qword [rsi + 0xc1bb]
mov qword [r14 + 0x40], rax
movups xmm0, xmmword [rsi + 0xc1ab]
movups xmmword [r14 + 0x30], xmm0
cmp qword [0x14055bd90], 0
jne 0x14015fadc
mov ecx, 0xe8
call fcn.1403e4d2c
lea rcx, [0x140427ad8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x140427b38]
mov qword [rax + 0x10], rcx
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x14055bd90], rax
mov rax, qword [0x14055bd90]
mov rax, qword [rax + 0x38]
movsxd rcx, dword [rax + 0x3c]
mov ecx, dword [rax + rcx + 0x98]
add rax, rcx
test rcx, rcx
cmove rax, rcx
mov qword [r14 + 0x18], rax
mov rcx, r14
call fcn.1401679a0
mov rax, qword [rdi + 0x108]
mov rcx, qword [rax + 0x3a8]
lea rdx, [rsi + 0xc1ab]
mov r8d, 0x18
call fcn.140142930
mov eax, dword [rdi + 0x160]
mov ecx, 0x37e38293
add ecx, dword [0x140505924]
test ecx, eax
jne 0x14015fb64
mov ecx, eax
not ecx
xor eax, 0x1000
and ecx, 0xffffefff
or ecx, eax
cmp ecx, 0xffffffff
setne dl
mov rcx, rbx
call fcn.1401d06a0
mov rcx, rbx
call fcn.1401d14e0
mov eax, dword [rdi + 0x160]
xor eax, 0xfffffffe
mov ecx, 0xf7e38294
add ecx, dword [0x140505924]
test eax, ecx
je 0x14015fb9c
mov rcx, rdi
call fcn.1400b38d0
test al, al
je 0x14015fc54
mov rcx, rdi
call fcn.1400b39c0
test al, al
je 0x14015fd45
lea r9, [rsi + 0xc553]
mov rcx, qword [rdi + 0x108]
mov r8, qword [rdi + 0x198]
mov rdx, rsi
call fcn.1401444f0
test al, al
je 0x14015fcb7
mov r8d, dword [rsi + 0xc55f]
test r8, r8
je 0x14015fc29
mov edx, dword [rsi + 0xc563]
add rdx, qword [0x14055be08]
add rdx, qword [rdi + 0x198]
lea rax, [0x14042b4b8]
mov qword [rbp + 0x240], rax
mov dword [rbp + 0x248], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x250], xmm0
mov byte [rbp + 0x260], 0
lea rcx, [rbp + 0x240]
call fcn.14013a280
mov byte [rbp + 0x260], 0
lea rcx, [rbp + 0x240]
call fcn.14013f8b0
mov rax, qword [rdi + 0x108]
mov rcx, qword [rax + 0x3a8]
add rsi, 0xc22b
mov dil, 1
mov r8d, 0x304
mov rdx, rsi
call fcn.140142930
jmp 0x1401601e7
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e1]
call fcn.140266550
lea rcx, [rbp + 0x240]
mov rdx, rax
call fcn.1400ad750
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e9]
call fcn.140266550
lea rcx, [rbp + 0x210]
mov rdx, rax
call fcn.1400ad750
lea rcx, [rbp + 0x208]
lea rdx, [rbp + 0x210]
lea r8, [rbp + 0x240]
call fcn.140124790
jmp 0x14015fda3
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc601]
call fcn.140266550
mov r14, rax
test rax, rax
lea rbx, [0x140428418]
cmove r14, rbx
lea r15, [rbp + 0x248]
mov qword [rbp + 0x258], 0
mov qword [rbp + 0x260], 0xf
mov byte [rbp + 0x248], 0
mov rcx, r14
mov edx, 0x93ebbcfe
mov r8d, 0xad55a064
call fcn.1400abe80
mov r12, rax
movabs r13, 0x52e25dd2fc3998b3
mov rax, qword [0x140505928]
add rax, r13
cmp r12, rax
jbe 0x14015fdc0
mov rcx, r15
mov rdx, r12
mov r9, r14
call fcn.140086c60
jmp 0x14015fdde
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e3]
call fcn.140266550
lea rcx, [rbp + 0x240]
mov rdx, rax
call fcn.1400ad750
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e9]
call fcn.140266550
lea rcx, [rbp + 0x210]
mov rdx, rax
call fcn.1400ad750
lea rcx, [rbp + 0x208]
lea rdx, [rbp + 0x210]
lea r8, [rbp + 0x240]
call fcn.140124790
lea rcx, [rbp + 0x210]
call fcn.140071500
lea rcx, [rbp + 0x240]
call fcn.140071500
jmp 0x14016018d
mov qword [rbp + 0x258], r12
mov rcx, r15
mov rdx, r14
mov r8, r12
call fcn.14040cc90
mov byte [rbp + r12 + 0x248], 0
lea r12, [0x140427b38]
mov qword [rbp + 0x240], r12
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5e9]
call fcn.140266550
test rax, rax
cmovne rbx, rax
lea r14, [rbp + 0x218]
mov qword [rbp + 0x228], 0
mov qword [rbp + 0x230], 0xf
mov byte [rbp + 0x218], 0
mov rcx, rbx
mov edx, 0x93ebbcfe
mov r8d, 0xad55a064
call fcn.1400abe80
mov r15, rax
cmp rax, 0xf
jbe 0x14015fe56
mov rcx, r14
mov rdx, r15
mov r9, rbx
call fcn.140086c60
jmp 0x14015fe7c
mov qword [rbp + 0x228], r15
mov rcx, r14
mov rdx, rbx
mov r8, r15
call fcn.14040cc90
movzx eax, byte [0x140505920]
add al, 0xd2
mov byte [rbp + r15 + 0x218], al
mov qword [rbp + 0x210], r12
lea rcx, [rbp + 0x208]
lea rdx, [rbp + 0x210]
lea r8, [rbp + 0x240]
call fcn.140124790
mov rax, qword [rbp + 0x230]
cmp rax, 0x10
jb 0x14015ff17
mov rcx, qword [rbp + 0x218]
lea rdx, [rax + 1]
movabs r8, 0x52e25dd2fc39a8a3
add r8, qword [0x140505928]
cmp rdx, r8
jbe 0x14015ff12
mov r8, qword [rcx - 8]
movabs rdx, 0x9debd2bd110d0d2b
add rdx, rcx
mov rcx, rdx
xor rcx, 0xfffffffffffffff8
not edx
and edx, 7
or rdx, rcx
not rdx
lea rcx, [rcx + rdx*2]
sub rcx, r8
movabs rdx, 0x62142d42eef2f2d5
add rdx, rcx
cmp rdx, 0x20
jae 0x14015ff85
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
mov rax, qword [rbp + 0x260]
add r13, qword [0x140505928]
cmp rax, r13
jbe 0x14016018d
mov rcx, qword [rbp + 0x248]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x14015ff7b
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x52e25dd2fc3998c4
add rdx, qword [0x140505928]
cmp rcx, rdx
jae 0x14015ff8a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a7e90
jmp 0x14016018d
call fcn.1403c4adc
call fcn.1403c4adc
cmp dword [0x140505924], 0x81c7d6d
je 0x14015ffa6
mov al, 1
nop dword [rax]
test al, al
je 0x14015ffa0
jmp 0x14015ff8f
mov eax, dword [0x140504d14]
lea ecx, [rax + rax]
mov edx, eax
sub edx, ecx
mov r8d, 1
sub r8d, edx
mov dword [0x140504d14], r8d
neg ecx
add ecx, eax
add ecx, 0xfffffffe
xor r8d, eax
not eax
and ecx, eax
or r8d, ecx
xor r15d, r15d
xor r8d, 0xffffffff
mov dword [rbp + 0x204], r8d
mov r13d, dword [rbp + 0x238]
jne 0x14015ffff
mov eax, 0xf7e38293
add eax, dword [0x140505924]
cmp eax, r13d
jl 0x1401602b0
mov rcx, r14
call fcn.1400715b0
mov rcx, r14
mov rdx, rdi
call fcn.140072800
mov rcx, r14
add rcx, 8
call fcn.140167100
mov rcx, r14
call fcn.140080710
xorps xmm0, xmm0
mov rax, qword [rbp + 0x1d8]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov rcx, rdi
call fcn.1400aeb20
test al, al
je 0x14016018d
mov eax, dword [rsi + 0xc148]
mov rcx, qword [rsi + 0xc140]
mov qword [rdi + 0x184], rcx
mov dword [rdi + 0x18c], eax
mov byte [rbp + 0x26f], 0
lea rdx, [rbp + 0x26f]
mov rcx, rdi
call fcn.1400aec20
test al, al
je 0x14016018d
mov qword [rsi + 0xc140], 0
mov dword [rsi + 0xc148], 0
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
mov rcx, rdi
mov rdx, rsi
call qword [case.0x140303ece.0]
test al, al
je 0x14016018d
mov edx, dword [rsi + 0xc118]
mov rcx, rdi
call fcn.140160ac0
mov eax, dword [rsi + 0xc11c]
mov dword [rdi + 0x180], eax
mov dword [rdi + 0x130], eax
mov qword [rsi + 0xc118], 0
mov r14d, dword [rsi + 0xc52f]
mov edx, dword [rsi + 0xc533]
mov rcx, rdi
call fcn.1401124d0
mov rcx, rdi
mov rdx, rax
mov r8d, r14d
call fcn.1400aeb90
test al, al
je 0x14016018d
mov rcx, qword [rdi + 0x108]
add rcx, 8
lea rdx, [rbp - 0x28]
call fcn.140160be0
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1401358f0
movzx r8d, word [rsi + 0xc607]
mov r9d, dword [0x14042c1e8]
cmp dword [rbp + 0x204], 1
mov eax, dword [0x140505924]
mov ecx, eax
adc ecx, 0xffffffff
mov edx, 0x81c7d6c
sub edx, ecx
sub r9d, r15d
mov r10d, r9d
not r10d
add ecx, 0xf7e38293
and ecx, r10d
xor r9d, edx
or r9d, ecx
not r9d
mov ecx, dword [0x14055bf18]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
add eax, 0xf7e38293
cmp edx, eax
je 0x14016035d
jmp 0x140160379
mov eax, dword [rdi + 0x164]
mov ecx, eax
not ecx
and ecx, 0xfffffdff
and eax, 0x200
or eax, ecx
xor eax, 0x200
xor ecx, 0xfffffdff
or ecx, eax
not ecx
xor eax, eax
sub eax, dword [0x140505924]
mov edx, eax
xor edx, 0x81c7d6d
and eax, 0x81c7d6d
lea eax, [rdx + rax*2]
add eax, ecx
jne 0x1401601e1
mov rax, qword [rdi]
mov rax, qword [rax + 0x30]
mov rcx, rdi
call qword [case.0x140303ece.0]
jmp 0x1401601e5
or byte [rsi + 4], 0x10
xor edi, edi
mov rcx, qword [rbp + 0x1e0]
test rcx, rcx
je 0x14016029a
mov rax, qword [rbp + 0x1f0]
movabs rdx, 0xf506c1ccd8175478
xor rdx, rax
movabs r8, 0x7506c1ccd8175478
and r8, rax
add r8, r8
mov rax, rdx
xor rax, r8
and r8, rdx
lea rax, [rax + r8*2]
sub rax, rcx
movabs rdx, 0xaf93e3327e8ab88
mov r8, rax
xor r8, rdx
and rax, rdx
lea rdx, [r8 + rax*2]
cmp rdx, 0x1000
jb 0x140160295
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
movabs r8, 0x43c7a2382724a9d8
mov r9, rcx
xor r9, r8
and rcx, r8
lea rcx, [r9 + rcx*2]
sub rcx, rax
movabs r8, 0xbc385dc7d8db5628
add r8, rcx
cmp r8, 0x20
jae 0x140160358
mov rcx, qword [0x14055bf30]
add rdx, rcx
add rdx, 0x27
mov rcx, rax
call fcn.1400a7e90
mov eax, edi
add rsp, 0x2f8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor eax, eax
lea rcx, [fcn.14015f3b0]
add ecx, ecx
add ecx, 0x43c0
mov edx, ecx
not edx
xor r8d, r8d
xor r15d, r15d
nop dword [rax + rax]
movsxd r9, r8d
test al, al
jne 0x140160330
nop word [rax + rax]
mov r10d, dword [r12 + r9]
mov r11d, dword [0x14055bf1c]
cmp r11d, 0x42
jge 0x140160330
nop word cs:[rax + rax]
test edx, ecx
jne 0x140160300
xor r15d, r10d
add r8d, 0x63f73f33
mov r9d, r8d
xor r9d, 4
and r8d, 4
lea r8d, [r9 + r8*2]
add r8d, 0x9c08c0cd
cmp r8d, r13d
jl 0x1401602d0
jmp 0x14015ffff
mov r10d, dword [r12 + r9]
mov r10d, dword [0x14055bf18]
mov r11d, dword [0x140505924]
neg r11d
add r11d, r10d
add r11d, 2
imul r11d, r10d
test r11b, 1
jne 0x140160330
jmp 0x1401602e0
call fcn.1403c4adc
add qword [0x14055bf30], r9
mov eax, dword [0x14055bf18]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140160429
movabs r10, 0x52e25dd2fc3998a4
nop word cs:[rax + rax]
mov rax, qword [0x140505928]
sub rax, r9
add rax, r10
imul rax, r9
mov rcx, rax
neg rcx
imul rcx, rax
mov r14, qword [0x14055bf30]
add r14, rcx
imul r14, rcx
sub r14, rcx
mov rax, rcx
neg rax
mov ecx, eax
shl r14, cl
mov r11, rax
sub r11, r14
mov rdx, r11
shl rdx, cl
mov r15, r11
mov ecx, edx
shl r15, cl
mov rcx, r11
neg rcx
xor rcx, r15
neg r14
add rax, r14
dec rax
not r15
and r15, rax
or r15, rcx
not r15
lea rax, [rcx + r15*2]
sub r11, rax
imul r11, rax
sub r11, rax
mov qword [0x14055bf30], r11
mov eax, dword [0x14055bf18]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
jne 0x140160390
jmp 0x14016035d
test r8w, r8w
jne 0x140160444
mov rcx, rbx
mov edx, 0x61e0000
call fcn.1401355c0
test al, al
je 0x14015f8f7
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc607]
call fcn.140266550
lea rbx, [rbp + 0x240]
mov rcx, rbx
mov rdx, rax
call fcn.1400ad750
mov rcx, qword [rdi + 0x190]
movzx edx, word [rsi + 0xc5cf]
call fcn.140266550
lea r14, [rbp + 0x210]
mov rcx, r14
mov rdx, rax
call fcn.1400ad750
mov edx, dword [rdi + 0x118]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x40], 1
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0x186a3
lea rcx, [rbp + 0x208]
xor r8d, r8d
mov r9d, 1
call fcn.140123c80
lea rcx, [rbp + 0x210]
call fcn.140071500
lea rcx, [rbp + 0x240]
call fcn.140071500
jmp 0x14015f8f7