Function at 0x1400797e8
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x398
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x2c0], r9
mov qword [rbp + 0x280], r8
mov qword [rbp + 0x288], rdx
mov qword [rbp + 0x290], rcx
mov rax, qword [rbp + 0x380]
mov qword [rbp + 0x2c8], rax
mov rax, qword [rbp + 0x378]
mov qword [rbp + 0x298], rax
mov rax, qword [rbp + 0x370]
mov qword [rbp + 0x2a0], rax
mov eax, 0x10
mov qword [rbp + 0x2a8], rax
call fcn.140195b60
sub rsp, rax
mov rax, qword [rbp + 0x2a8]
mov rcx, rsp
mov qword [rbp + 0x2b0], rcx
call fcn.140195b60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x2b8], rax
mov rax, qword [0x1401a1928]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000a414
mov r9, qword [rbp + 0x2c0]
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x2c8]
add rcx, 0x60
mov qword [rbp + 0x2d0], rcx
mov ecx, 0x789c0886
xor ecx, 0x789c0887
mov dword [r9 + 0x400], ecx
cmp rax, 5
jge 0x140079ba6
mov rax, qword [rbp + 0x2c8]
cmp rax, 0
setg cl
mov byte [rbp + 0x277], cl
xor eax, eax
test cl, 1
mov qword [rbp + 0x278], rax
jne 0x140079962
mov rax, qword [rbp + 0x2c0]
mov rdx, qword [rbp + 0x2c8]
mov rcx, qword [rax + 0x4f0]
movabs r8, 0x7310c1576146a8f9
movabs r9, 0x8cef3ea89eb95706
xor r8, r9
xor rdx, r8
movabs r8, 0xf8b550a4d7dbcb39
movabs r9, 0xf8b550a4d7dbcb39
xor r8, r9
movabs r9, 0x5471589740580c6f
movabs r10, 0x5471589740580c6e
xor r9, r10
sub r8, r9
sub rdx, r8
sub rcx, rdx
mov qword [rax + 0x4f0], rcx
jmp 0x140079b4d
mov rax, qword [rbp + 0x278]
mov rcx, qword [rbp + 0x2c8]
mov rdx, qword [rbp + 0x2c0]
mov r8, qword [rbp + 0x2a0]
mov r11, qword [rbp + 0x298]
xor r9d, r9d
mov r10d, r9d
sub r10, rax
xor r9d, r9d
sub r9, r11
add r10, r9
xor r9d, r9d
sub r9, r10
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
mov r10d, 0xfdbda702
xor r10d, 0xfdbda703
add r9d, r10d
mov dword [rdx + r8*4], r9d
add rax, 1
cmp rax, rcx
mov qword [rbp + 0x278], rax
jne 0x140079962
mov al, byte [rbp + 0x277]
mov rcx, qword [rbp + 0x2c0]
mov r9, qword [rbp + 0x2c8]
mov rdx, qword [rcx + 0x4f0]
mov r8, rdx
and r8, r9
movabs r10, 0x2043de86f82c9b0a
movabs r11, 0x2043de86f82c9b08
xor r10, r11
imul r8, r10
xor rdx, r9
add rdx, r8
mov qword [rcx + 0x4f0], rdx
test al, 1
jne 0x140079a24
jmp 0x140079b4d
mov rax, qword [rbp + 0x2c8]
mov rcx, qword [rbp + 0x288]
mov rdx, qword [rbp + 0x290]
add rdx, 8
mov qword [rbp + 0x258], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x260], rcx
mov qword [rbp + 0x268], rax
mov rcx, qword [rbp + 0x290]
mov rax, qword [rbp + 0x260]
mov rdx, qword [rbp + 0x268]
mov qword [rbp + 0x240], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x248], rcx
cmp rcx, rax
mov qword [rbp + 0x250], rax
jg 0x140079acb
mov rcx, qword [rbp + 0x290]
mov r8, qword [rbp + 0x248]
mov rax, r8
shl rax, 1
mov edx, 2
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.14002aea3
mov rax, qword [rbp + 0x288]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x250], rax
mov rax, qword [rbp + 0x240]
mov rdx, qword [rbp + 0x288]
mov r9, qword [rbp + 0x258]
mov rcx, qword [rbp + 0x250]
mov r8d, 0x7fff
mov r10, rax
sub r10, r8
cmovl r8, rax
mov r10w, r8w
mov r9, qword [r9]
mov word [r9 + rcx*2 + 8], r10w
add rcx, 1
mov qword [rdx], rcx
mov rdx, rax
xor rdx, 0xffffffffffffffff
and rdx, r8
xor r8, 0xffffffffffffffff
and rax, r8
sub rax, rdx
movabs rdx, 0x2d290ecd1934317e
movabs r8, 0x2d290ecd1934317e
xor rdx, r8
cmp rax, rdx
mov qword [rbp + 0x260], rcx
mov qword [rbp + 0x268], rax
jg 0x140079a55
mov qword [rbp + 0x308], 0
mov qword [rbp + 0x310], 0
lea rcx, [rbp + 0x308]
sub rsp, 0x20
call fcn.14002b221
add rsp, 0x20
mov qword [rbp + 0x2f8], 0
mov qword [rbp + 0x300], 0
lea rcx, [rbp + 0x2f8]
sub rsp, 0x20
call fcn.14002b221
add rsp, 0x20
jmp 0x14007ae78
mov rcx, qword [rbp + 0x2b0]
movabs rdx, 0x8dca470d2be3662b
movabs rax, 0x8dca470d2be1662b
xor rdx, rax
sub rsp, 0x20
call fcn.14002b267
mov rax, qword [rbp + 0x2b0]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x1e0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x1e8], rax
lea rcx, [rbp + 0x2e8]
mov edx, 0x8000
sub rsp, 0x20
call fcn.14002b267
mov r10, qword [rbp + 0x2c8]
mov r8, qword [rbp + 0x280]
mov rdx, qword [rbp + 0x2c0]
mov rax, qword [rbp + 0x290]
mov rcx, qword [rbp + 0x298]
add rsp, 0x20
mov r9, qword [rbp + 0x2e8]
mov qword [rbp + 0x1f0], r9
mov r9, qword [rbp + 0x2f0]
mov qword [rbp + 0x1f8], r9
mov r9, r10
and r9, rcx
or r10, rcx
add r9, r10
mov qword [rbp + 0x200], r9
mov r9, r8
add r9, 0x18
mov qword [rbp + 0x208], r9
add r8, 0x10
mov qword [rbp + 0x210], r8
add rdx, 0x4f0
mov qword [rbp + 0x218], rdx
add rax, 8
mov qword [rbp + 0x220], rax
xor eax, eax
mov rdx, rax
mov qword [rbp + 0x228], rdx
mov qword [rbp + 0x230], rcx
mov qword [rbp + 0x238], rax
mov rax, qword [rbp + 0x200]
mov rdx, qword [rbp + 0x228]
mov rcx, qword [rbp + 0x230]
mov r8, qword [rbp + 0x238]
mov qword [rbp + 0x1c8], r8
mov qword [rbp + 0x1d0], rcx
mov qword [rbp + 0x1d8], rdx
movabs rdx, 0xab2770b6d8d61346
movabs r8, 0xab2770b6d8d61342
xor rdx, r8
add rcx, rdx
cmp rax, rcx
jg 0x140079fbd
mov rcx, qword [rbp + 0x1c8]
mov rdx, qword [rbp + 0x1d0]
mov rax, qword [rbp + 0x200]
sub rax, rdx
add rax, rcx
mov qword [rbp + 0x1b8], rax
cmp rax, 0
setg al
mov byte [rbp + 0x1c7], al
test al, 1
jne 0x140079d48
mov rax, qword [rbp + 0x218]
mov rcx, qword [rbp + 0x1b8]
add rcx, qword [rax]
mov qword [rax], rcx
jmp 0x14007ae1f
mov rcx, qword [rbp + 0x1d8]
mov rax, qword [rbp + 0x1d0]
movabs rdx, 0xf3b7340585504ba1
movabs r8, 0xda61cd011b7498c
xor rdx, r8
sub rax, rdx
add rax, rcx
movabs rcx, 0xce6e7b504195b703
movabs rdx, 0x307f5385d572b52e
xor rcx, rdx
add rax, rcx
mov qword [rbp + 0x1a8], rax
xor eax, eax
mov qword [rbp + 0x1b0], rax
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x1b8]
mov rdx, qword [rbp + 0x2c0]
mov r8, qword [rbp + 0x2a0]
mov r9, qword [rbp + 0x1a8]
mov r10, rax
xor r10, 0xffffffffffffffff
movabs r11, 0x49a2d70c77a87870
movabs rsi, 0x49a2d70c77a87870
xor r11, rsi
movabs rsi, 0x7934384b030667ca
movabs rdi, 0x7934384b030667cb
xor rsi, rdi
sub r11, rsi
sub r10, r11
sub r9, r10
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
add r9d, 1
mov dword [rdx + r8*4], r9d
movabs rdx, 0xbb3995fd8bfc74df
movabs r8, 0xbb3995fd8bfc74de
xor rdx, r8
add rax, rdx
cmp rax, rcx
mov qword [rbp + 0x1b0], rax
jl 0x140079d9d
mov al, byte [rbp + 0x1c7]
mov rcx, qword [rbp + 0x218]
mov rdx, qword [rbp + 0x1b8]
add rdx, qword [rcx]
mov qword [rcx], rdx
test al, 1
jne 0x140079e60
jmp 0x14007ae1f
mov rax, qword [rbp + 0x1b8]
mov rcx, qword [rbp + 0x288]
mov rcx, qword [rcx]
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
mov rcx, qword [rbp + 0x290]
mov rax, qword [rbp + 0x198]
mov rdx, qword [rbp + 0x1a0]
mov qword [rbp + 0x180], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x188], rcx
cmp rcx, rax
mov qword [rbp + 0x190], rax
jg 0x140079f21
mov r8, qword [rbp + 0x188]
movabs rcx, 0xd4d55727b3cf8aaf
movabs rax, 0xd4d55727b3cf8aae
xor rcx, rax
mov rax, r8
shl rax, cl
mov rcx, qword [rbp + 0x290]
movabs r9, 0x99b0c8d02910dc96
movabs rdx, 0x99b0c8d02910dc96
xor r9, rdx
mov edx, 2
cmp r8, r9
cmovg rdx, rax
sub rsp, 0x20
call fcn.14002aea3
mov rax, qword [rbp + 0x288]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x190], rax
mov rax, qword [rbp + 0x180]
mov r8, qword [rbp + 0x288]
mov r9, qword [rbp + 0x220]
mov rcx, qword [rbp + 0x190]
mov edx, 0x7fff
mov r10, rax
sub r10, rdx
cmovl rdx, rax
mov r10w, dx
mov r9, qword [r9]
mov word [r9 + rcx*2 + 8], r10w
movabs r9, 0xa0012f43056099a4
movabs r10, 0xa0012f43056099a5
xor r9, r10
add rcx, r9
mov qword [r8], rcx
movabs r8, 0x13b4cf80b5aaf733
add rax, r8
sub rax, rdx
movabs rdx, 0xe75b8a0ef7e113bd
movabs r8, 0xf4ef458e424be48e
xor rdx, r8
sub rax, rdx
cmp rax, 0
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jg 0x140079e7f
jmp 0x14007ae1f
mov rax, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x298]
mov rcx, qword [rbp + 0x1d0]
sub rcx, rdx
mov qword [rbp + 0x170], rcx
mov dx, 0x4915
xor dx, 0x36ea
and cx, dx
mov word [rbp + 0x17e], cx
mov al, byte [rax]
mov cl, 0xa3
xor cl, 0xa3
cmp al, cl
jne 0x14007ae1f
mov rax, qword [rbp + 0x1d0]
mov rcx, qword [rbp + 0x208]
mov r9, qword [rbp + 0x200]
mov rdx, qword [rbp + 0x1f8]
mov r10, qword [rbp + 0x1e8]
mov si, word [rbp + 0x17e]
mov r8, qword [rbp + 0x170]
mov r11, qword [rbp + 0x2a0]
mov r11d, dword [r11 + rax]
mov edi, 0xbd5dcf87
xor edi, 0xa368683a
imul r11d, edi
shr r11d, 0xf
mov r11d, r11d
mov di, word [r10 + r11*2 + 8]
and r8, 0x7fff
mov word [rdx + r8*2 + 8], di
mov word [r10 + r11*2 + 8], si
mov dx, word [rdx + r8*2 + 8]
movabs r10, 0x806b885af3a84cb
movabs r8, 0x806b885af3a85c9
xor r10, r8
mov r8, rax
add r8, r10
mov r10, r9
sub r10, r8
cmovl r8, r9
mov qword [rbp + 0x138], r8
mov rcx, qword [rcx]
add r8, 0xfffffffffffffff8
mov qword [rbp + 0x140], r8
cmp rax, r8
setg al
mov byte [rbp + 0x14d], al
xor eax, eax
mov word [rbp + 0x14e], dx
mov qword [rbp + 0x150], rcx
mov rcx, rax
mov qword [rbp + 0x158], rcx
mov rcx, rax
mov qword [rbp + 0x160], rcx
mov qword [rbp + 0x168], rax
mov r8w, word [rbp + 0x14e]
mov rdx, qword [rbp + 0x150]
mov r9, qword [rbp + 0x158]
mov rax, qword [rbp + 0x160]
mov rcx, qword [rbp + 0x168]
mov qword [rbp + 0x100], rcx
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x110], r9
mov qword [rbp + 0x118], rdx
mov word [rbp + 0x126], r8w
test rdx, rdx
setg dl
test r8w, r8w
setne r8b
and dl, r8b
test dl, 1
mov qword [rbp + 0x128], rcx
mov qword [rbp + 0x130], rax
jne 0x14007a157
jmp 0x14007a64a
mov rax, qword [rbp + 0x108]
mov rcx, qword [rbp + 0x100]
mov r8, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x118]
mov si, word [rbp + 0x126]
mov r11w, word [rbp + 0x17e]
mov r9w, r11w
sub r9w, si
mov r10w, r9w
mov r9d, r10d
add r9d, 0xffff8000
sub r11w, si
cmovb r10d, r9d
dec rdx
mov qword [rbp + 0xf0], rdx
mov dx, r10w
mov r9d, r10d
movzx r9d, r9w
mov qword [rbp + 0xf8], r9
test dx, dx
sete dl
sub r8, r9
seta r8b
or dl, r8b
test dl, 1
mov qword [rbp + 0x128], rcx
mov qword [rbp + 0x130], rax
jne 0x14007a64a
mov rax, qword [rbp + 0x1d0]
mov rcx, qword [rbp + 0xf8]
sub rax, rcx
mov qword [rbp + 0xd0], rax
mov rax, qword [0x1401a1928]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000a414
mov dl, byte [rbp + 0x14d]
mov rcx, qword [rbp + 0x1d0]
add rsp, 0x20
mov qword [rbp + 0xd8], rax
xor eax, eax
test dl, 1
mov qword [rbp + 0xe0], rcx
mov qword [rbp + 0xe8], rax
jne 0x14007a429
mov rax, qword [rbp + 0x1d0]
mov rcx, qword [rbp + 0xd8]
cmp byte [rcx + 0x60], 0
sete cl
mov byte [rbp + 0xbf], cl
xor ecx, ecx
mov qword [rbp + 0xc0], rcx
mov qword [rbp + 0xc8], rax
mov cl, byte [rbp + 0xbf]
mov rax, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0xc8]
mov qword [rbp + 0xa0], rdx
mov qword [rbp + 0xa8], rax
xor eax, eax
test cl, 1
mov qword [rbp + 0xb0], rax
jne 0x14007a2a2
jmp 0x14007a527
mov rax, qword [rbp + 0x2a0]
mov r8, qword [rbp + 0xd0]
mov rcx, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0xa0]
mov rdx, qword [rax + rdx]
add rcx, r8
mov rcx, qword [rax + rcx]
mov rax, rcx
xor rax, 0xffffffffffffffff
mov r8, rcx
xor r8, 0xffffffffffffffff
or rax, r8
and rax, rdx
movabs r8, 0x2641e87074b7142e
movabs r9, 0xd9be178f8b48ebd1
xor r8, r9
xor rax, r8
and rdx, rdx
movabs r8, 0x10ca2745312342ed
movabs r9, 0xef35d8bacedcbd12
xor r8, r9
xor rdx, r8
and rcx, rdx
movabs rdx, 0xb30eb667f55b0859
movabs r8, 0x4cf149980aa4f7a6
xor rdx, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0xdca6375bbdf23b8d
movabs rdx, 0x2359c8a4420dc472
xor rcx, rdx
xor rax, rcx
mov qword [rbp + 0x98], rax
cmp rax, 0
je 0x14007a3a6
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0x98]
bsf rax, rax
movabs rcx, 0xdefb9029b46681ab
movabs r8, 0xdefb9029b46681a8
xor rcx, r8
shr rax, cl
mov rcx, rax
mov rax, rcx
and rax, rdx
xor rcx, rdx
or rax, rcx
mov qword [rbp + 0xb0], rax
jmp 0x14007a527
mov rdx, qword [rbp + 0x140]
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rbp + 0xa0]
movabs r8, 0x223cc0256734a10a
movabs r9, 0x223cc0256734a102
xor r8, r9
add rcx, r8
xor r8d, r8d
sub r8, rax
xor eax, eax
sub rax, 8
add r8, rax
movabs rax, 0x57ba360ad106b2a0
movabs r9, 0x57ba360ad106b2a0
xor rax, r9
sub rax, r8
cmp rcx, rdx
mov rdx, rax
mov qword [rbp + 0xc0], rdx
mov rdx, rcx
mov qword [rbp + 0xc8], rdx
mov qword [rbp + 0xe0], rcx
mov qword [rbp + 0xe8], rax
jle 0x14007a269
mov rcx, qword [rbp + 0x138]
mov rdx, qword [rbp + 0xe0]
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x90], rdx
cmp rcx, rdx
mov qword [rbp + 0xb0], rax
jle 0x14007a527
mov rax, qword [rbp + 0x90]
mov rcx, qword [rbp + 0x88]
mov rdx, qword [rbp + 0x138]
mov r8, rax
xor r8, 0xffffffffffffffff
add rdx, r8
movabs r8, 0xbad9f0c70a5b3bff
movabs r9, 0xbad9f0c70a5b3bfe
xor r8, r9
add rdx, r8
add rdx, rcx
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], rcx
mov qword [rbp + 0x80], rax
mov rdx, qword [rbp + 0x2a0]
mov r9, qword [rbp + 0xd0]
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x80]
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rax
mov cl, byte [rdx + rcx]
mov r8, rax
add r8, r9
cmp cl, byte [rdx + r8]
mov qword [rbp + 0xb0], rax
jne 0x14007a527
mov rax, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x60]
movabs r8, 0xd4133cbb0cbe9f73
movabs r9, 0xd4133cbb0cbe9f72
xor r8, r9
add rcx, r8
add rdx, 1
cmp rdx, rax
mov qword [rbp + 0x78], rdx
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0xb0], rax
jne 0x14007a4a7
mov rax, qword [rbp + 0x2d0]
mov rcx, qword [rbp + 0xb0]
mov qword [rbp + 0x58], rcx
cmp byte [rax], 0
jne 0x14007ae1f
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp + 0x108]
mov rdx, qword [rbp + 0xf0]
mov r8, qword [rbp + 0x58]
cmp rax, r8
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x48], rcx
mov qword [rbp + 0x50], rax
jge 0x14007a5a6
mov rax, qword [rbp + 0x58]
mov rcx, qword [rbp + 0xf8]
mov r8, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0x280]
mov r9, qword [rdx]
mov rdx, r8
sar rdx, 2
cmp r9, rax
cmovg rdx, r8
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x48], rcx
mov qword [rbp + 0x50], rax
mov rdx, qword [rbp + 0x210]
mov r8, qword [rbp + 0x40]
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x50]
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], r8
cmp qword [rdx], rcx
mov qword [rbp + 0x128], rcx
mov qword [rbp + 0x130], rax
jle 0x14007a64a
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x28]
mov rdx, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x38]
mov r10w, word [rbp + 0x126]
mov r9, qword [rbp + 0x1f8]
movzx r11d, r10w
mov r9w, word [r9 + r11*2 + 8]
cmp r10w, r9w
mov word [rbp + 0x14e], r9w
mov qword [rbp + 0x150], r8
mov qword [rbp + 0x158], rdx
mov rdx, rax
mov qword [rbp + 0x160], rdx
mov rdx, rcx
mov qword [rbp + 0x168], rdx
mov qword [rbp + 0x128], rcx
mov qword [rbp + 0x130], rax
jne 0x14007a0e2
mov rax, qword [rbp + 0x128]
mov rcx, qword [rbp + 0x130]
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
cmp rax, 4
jle 0x14007ad65
mov rax, qword [rbp + 0x1c8]
movabs rcx, 0x145412b9e38930f5
movabs rdx, 0x145412b9e38930f5
xor rcx, rdx
cmp rax, rcx
mov qword [rbp + 0x10], rax
jle 0x14007a8eb
mov rdx, qword [rbp + 0x1d8]
mov rax, qword [rbp + 0x1d0]
movabs rcx, 0xf62c810c4b9c9ff1
movabs r8, 0xf62c810c4b9c9ff1
xor rcx, r8
sub rcx, rax
movabs rax, 0xe7f55f0fd3b6046b
movabs r8, 0xe7f55f0fd3b6046b
xor rax, r8
sub rax, rdx
add rcx, rax
movabs rax, 0xdfcb145db6d61c5a
movabs rdx, 0xdfcb145db6d61c5a
xor rax, rdx
sub rax, rcx
mov qword [rbp], rax
xor eax, eax
mov qword [rbp + 8], rax
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x1c8]
mov rdx, qword [rbp + 0x2c0]
mov r8, qword [rbp + 0x2a0]
mov r9, qword [rbp]
movabs r11, 0x34aa7c951d843522
movabs r10, 0xcb55836ae27bcadd
xor r11, r10
mov r10, rax
xor r10, r11
xor r11d, r11d
sub r11, 1
sub r10, r11
sub r9, r10
movzx r8d, byte [r8 + r9]
mov r10d, dword [rdx + r8*4]
mov r9d, r10d
and r9d, 1
mov r11d, 0x341c6e5a
xor r11d, 0x341c6e5b
or r10d, r11d
add r9d, r10d
mov dword [rdx + r8*4], r9d
add rax, 1
cmp rax, rcx
mov qword [rbp + 8], rax
jne 0x14007a6fe
mov rax, qword [rbp + 0x1c8]
mov rcx, qword [rbp + 0x288]
mov rdx, qword [rbp + 0x218]
mov r8, qword [rdx]
movabs r9, 0xd3a182ea93004cd4
movabs r10, 0xefd8f83b3575b873
xor r9, r10
sub r8, r9
add r8, rax
movabs r9, 0xee0f0a213274a6d7
movabs r10, 0xd27670f094015270
xor r9, r10
add r8, r9
mov qword [rdx], r8
mov rcx, qword [rcx]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov rcx, qword [rbp + 0x290]
mov rax, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
mov qword [rbp - 0x28], rdx
mov rcx, qword [rcx]
mov qword [rbp - 0x20], rcx
cmp rcx, rax
mov qword [rbp - 0x18], rax
jg 0x14007a863
mov r8, qword [rbp - 0x20]
movabs rcx, 0x8a785634916c8848
movabs rax, 0x8a785634916c8849
xor rcx, rax
mov rax, r8
shl rax, cl
mov rcx, qword [rbp + 0x290]
movabs rdx, 0x12f6010cb7622f82
movabs r9, 0x12f6010cb7622f80
xor rdx, r9
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.14002aea3
mov rax, qword [rbp + 0x288]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x18], rax
mov rcx, qword [rbp - 0x28]
mov r8, qword [rbp + 0x288]
mov r9, qword [rbp + 0x220]
mov rdx, qword [rbp - 0x18]
mov eax, 0x7fff
mov r10, rcx
sub r10, rax
cmovl rax, rcx
mov r10w, ax
mov r9, qword [r9]
mov word [r9 + rdx*2 + 8], r10w
movabs r9, 0x9afdcdac7f0d75b2
movabs r10, 0x9afdcdac7f0d75b3
xor r9, r10
add rdx, r9
mov qword [r8], rdx
movabs r8, 0x2d0d1002c8b73888
movabs r9, 0xd2f2effd3748c777
xor r8, r9
xor rax, r8
add rcx, rax
add rcx, 1
xor eax, eax
cmp rcx, 0
mov qword [rbp - 0x10], rdx
mov qword [rbp - 8], rcx
mov qword [rbp + 0x10], rax
jg 0x14007a7da
mov rcx, qword [rbp + 0x288]
mov rax, qword [rbp + 0x290]
mov rdx, qword [rbp + 0x10]
mov qword [rbp - 0x40], rdx
mov rax, qword [rax]
mov qword [rbp - 0x38], rax
mov rcx, qword [rcx]
mov rdx, rcx
and rdx, 3
movabs r8, 0x888cfdfdaa1ef756
movabs r9, 0x888cfdfdaa1ef754
xor r8, r9
imul rdx, r8
movabs r8, 0x9f4145d1282e2fcd
movabs r9, 0x9f4145d1282e2fce
xor r8, r9
xor rcx, r8
add rcx, rdx
mov qword [rbp - 0x30], rcx
cmp rax, rcx
jge 0x14007a981
mov rcx, qword [rbp + 0x290]
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x38]
shl rax, 1
mov r8, rax
sub r8, rdx
cmovg rdx, rax
sub rsp, 0x20
call fcn.14002aea3
add rsp, 0x20
mov rax, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x20]
mov rcx, qword [0x1401a1870]
mov cl, byte [rcx + rdx - 3]
mov byte [rbp - 0x45], cl
mov cx, ax
mov word [rbp - 0x44], cx
mov dx, 0x66da
xor dx, 0x9925
mov ax, cx
and ax, dx
mov dx, 0xdf0f
xor dx, 0xdf0d
imul ax, dx
xor cx, 0xffff
add cx, ax
sub rsp, 0x20
call fcn.140079128
add rsp, 0x20
mov cx, ax
mov rax, qword [rbp + 0x2d0]
mov word [rbp - 0x42], cx
mov al, byte [rax]
mov cl, 0xd1
xor cl, 0xd1
cmp al, cl
jne 0x14007ae1f
mov rax, qword [rbp - 0x40]
mov r8, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x288]
mov r11w, word [rbp - 0x44]
mov r9, qword [rbp + 0x220]
mov si, word [rbp - 0x42]
mov cl, byte [rbp - 0x45]
mov r10, qword [rbp + 0x2c0]
movzx edi, cl
mov rbx, rdi
and rbx, 0x101
movabs r14, 0x441b698dd1b7c9cc
movabs r15, 0x441b698dd1b7c9ce
xor r14, r15
imul rbx, r14
movabs r14, 0x6fa89f64ef4ad87a
movabs r15, 0x6fa89f64ef4ad97b
xor r14, r15
xor rdi, r14
add rdi, rbx
mov ebx, dword [r10 + rdi*4]
mov r14d, 0x4fcb1f43
xor r14d, 0x2ef36654
sub ebx, r14d
add ebx, 1
mov r14d, 0xbbec1323
xor r14d, 0xdad46a34
add ebx, r14d
mov dword [r10 + rdi*4], ebx
movzx edi, si
mov ebx, dword [r10 + rdi*4 + 0x478]
mov r14d, 0xc035d221
xor r14d, 0x3104c49c
sub ebx, r14d
add ebx, 1
add ebx, 0xf13116bd
mov dword [r10 + rdi*4 + 0x478], ebx
movzx ecx, cl
mov r10w, cx
mov cx, 0x9532
xor cx, 0x953a
shl r10w, cl
mov rcx, qword [rbp + 0x1d0]
or si, r10w
or si, 0x8000
mov r10, qword [r9]
mov r9, qword [rdx]
mov word [r10 + r9*2 + 8], si
mov word [r10 + r9*2 + 0xa], r11w
mov si, r8w
movabs rdi, 0x8186f8a055e139cd
movabs r11, 0x8186f8a055e139cd
xor rdi, r11
movabs r11, 0x992f14a55fc99f81
movabs rbx, 0x992f14a55fc99f83
xor r11, rbx
sub rdi, r11
mov r11, r9
sub r11, rdi
mov word [r10 + r11*2 + 8], si
movabs r10, 0x155b7713f62f1c90
sub r9, r10
movabs r10, 0xce7db3ea1a5e9819
movabs r11, 0xce7db3ea1a5e981a
xor r10, r11
add r9, r10
movabs r10, 0x155b7713f62f1c90
add r9, r10
mov qword [rdx], r9
mov edx, 1
cmp r8, 1
mov qword [rbp - 0x68], rdx
mov rdx, rcx
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rax
jle 0x14007ada6
mov rcx, qword [rbp + 0x200]
mov rdx, qword [rbp - 0x68]
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x78], rdx
movabs rdx, 0x1dc1bf0efda83815
movabs r8, 0x1dc1bf0efda83814
xor rdx, r8
mov r8, rax
and r8, rdx
movabs rdx, 0x761c94307992852c
movabs r9, 0x761c94307992852e
xor rdx, r9
imul r8, rdx
movabs r9, 0x99e104d77c4614be
movabs rdx, 0x99e104d77c4614bf
xor r9, rdx
mov rdx, rax
xor rdx, r9
add rdx, r8
mov qword [rbp - 0x70], rdx
add rax, 5
cmp rax, rcx
jge 0x14007ad0b
mov rax, qword [rbp + 0x1e8]
mov r8, qword [rbp + 0x1f8]
mov r11, qword [rbp - 0x70]
mov rcx, qword [rbp + 0x2a0]
mov dx, r11w
mov r10w, 0x197a
xor r10w, 0x6685
mov r9w, dx
xor r9w, r10w
mov r10w, 0x427
xor r10w, 0xfbd8
xor r9w, r10w
mov r10w, 0x3881
xor r10w, 0x477e
or dx, r10w
and dx, r9w
mov r9d, dword [rcx + r11]
mov ecx, 0xf31c79a
xor ecx, 0x11046027
imul r9d, ecx
mov ecx, 0x6022e964
xor ecx, 0x6022e96b
shr r9d, cl
mov ecx, r9d
mov ecx, ecx
mov r10w, word [rax + rcx*2 + 8]
mov r9, r11
and r9, 0x7fff
movabs rsi, 0xdbef10c5855d1996
movabs rdi, 0x2410ef3a7aa2e669
xor rsi, rdi
xor r9, rsi
movabs rsi, 0x893d65b08340c620
movabs rdi, 0x76c29a4f7cbf39df
xor rsi, rdi
xor r11, rsi
mov rsi, 0xffffffffffffffff
xor rsi, 0x7fff
or r11, rsi
movabs rsi, 0x8b4d987467284dea
movabs rdi, 0x74b2678b98d7b215
xor rsi, rdi
xor r9, rsi
movabs rsi, 0x4e2a6f3a2a1e2b37
movabs rdi, 0xb1d590c5d5e1d4c8
xor rsi, rdi
xor r11, rsi
or r9, r11
mov word [r8 + r9*2 + 8], r10w
mov word [rax + rcx*2 + 8], dx
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x70]
mov r8, qword [rbp + 0x20]
mov rdx, qword [rbp - 0x78]
xor r9d, r9d
sub r9, rdx
xor edx, edx
sub rdx, 1
add r9, rdx
movabs rdx, 0xb364bb9beb15175e
movabs r10, 0xb364bb9beb15175e
xor rdx, r10
sub rdx, r9
cmp rdx, r8
mov qword [rbp - 0x68], rdx
mov rdx, rcx
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rax
je 0x14007ada6
jmp 0x14007ab80
mov rcx, qword [rbp + 0x1d0]
mov rax, qword [rbp + 0x1c8]
movabs rdx, 0xc807715f5899de6b
add rax, rdx
add rax, 1
movabs rdx, 0xb166ae60e7630a9c
movabs r8, 0x7961df3fbffad4f7
xor rdx, r8
sub rax, rdx
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rax
mov r8, qword [rbp + 0x200]
mov rcx, qword [rbp - 0x58]
mov rax, qword [rbp - 0x50]
movabs rdx, 0x7db5ef67cdda4fbc
movabs r9, 0x7db5ef67cdda4fbd
xor rdx, r9
add rcx, rdx
mov r9, 0xffffffffffffffff
xor r9, 0
and r9, rax
movabs r10, 0xf5d109282343734c
movabs rdx, 0xa2ef6d7dcbc8cb3
xor r10, rdx
mov rdx, rax
xor rdx, r10
and rdx, 0
sub rdx, r9
cmp r8, rcx
mov qword [rbp + 0x228], rdx
mov qword [rbp + 0x230], rcx
mov qword [rbp + 0x238], rax
jg 0x140079ca4
mov rcx, qword [rbp + 0x2b8]
mov rax, qword [rbp + 0x1f8]
mov rdx, qword [rbp + 0x1f0]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14002b221
mov rcx, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1e8]
add rsp, 0x20
mov qword [rbp + 0x2d8], rcx
mov qword [rbp + 0x2e0], rax
lea rcx, [rbp + 0x2d8]
sub rsp, 0x20
call fcn.14002b221
add rsp, 0x20
lea rsp, [rbp + 0x318]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret