Function at 0x1400d2290
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf8]
sub rsp, 0x1f8
mov rax, qword [0x14143b040]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov r13, rcx
mov qword [rbp - 0x70], rcx
mov rcx, rdx
mov qword [rsp + 0x58], rdx
sub rcx, r13
mov dword [rbp - 0x64], r9d
movabs rax, 0x2aaaaaaaaaaaaaab
mov r12, rdx
imul rcx
mov rbx, r8
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
mov qword [rbp - 0x28], rcx
cmp rcx, 0x18
jl 0x1400d354f
movzx eax, byte [rbp + 0x160]
lea rsi, [r12 - 6]
mov qword [rbp - 0x30], rsi
mov byte [rsp + 0x38], al
nop word [rax + rax]
mov rax, rcx
mov qword [rsp + 0x30], rbx
shr rax, 1
lea rax, [rax + rax*2]
lea rdi, [rax*2]
add rdi, r13
cmp rcx, 0x80
lea rcx, [rsp + 0x30]
jbe 0x1400d2611
mov r8, r13
mov rdx, rdi
call fcn.1400d36b0
test al, al
je 0x1400d2379
mov eax, dword [rdi]
mov ecx, dword [r13]
movzx edx, word [r13 + 4]
mov dword [r13], eax
movzx eax, word [rdi + 4]
mov word [r13 + 4], ax
mov dword [rdi], ecx
mov word [rdi + 4], dx
mov r8, rdi
mov qword [rsp + 0x30], rbx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d23aa
mov eax, dword [rsi]
mov ecx, dword [rdi]
movzx edx, word [rdi + 4]
mov dword [rdi], eax
movzx eax, word [rsi + 4]
mov word [rdi + 4], ax
mov dword [rsi], ecx
mov word [rsi + 4], dx
mov r8, r13
mov qword [rsp + 0x30], rbx
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d23e1
mov eax, dword [rdi]
mov ecx, dword [r13]
movzx edx, word [r13 + 4]
mov dword [r13], eax
movzx eax, word [rdi + 4]
mov word [r13 + 4], ax
mov dword [rdi], ecx
mov word [rdi + 4], dx
lea r8, [r13 + 6]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi - 6]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d241c
mov eax, dword [rdi - 6]
mov ecx, dword [r13 + 6]
movzx edx, word [r13 + 0xa]
mov dword [r13 + 6], eax
movzx eax, word [rdi - 2]
mov word [r13 + 0xa], ax
mov dword [rdi - 6], ecx
mov word [rdi - 2], dx
lea r8, [rdi - 6]
mov qword [rsp + 0x30], rbx
lea rdx, [r12 - 0xc]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d245c
mov eax, dword [r12 - 0xc]
mov ecx, dword [rdi - 6]
movzx edx, word [rdi - 2]
mov dword [rdi - 6], eax
movzx eax, word [r12 - 8]
mov word [rdi - 2], ax
mov dword [r12 - 0xc], ecx
mov word [r12 - 8], dx
lea r8, [r13 + 6]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi - 6]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d2497
mov eax, dword [rdi - 6]
mov ecx, dword [r13 + 6]
movzx edx, word [r13 + 0xa]
mov dword [r13 + 6], eax
movzx eax, word [rdi - 2]
mov word [r13 + 0xa], ax
mov dword [rdi - 6], ecx
mov word [rdi - 2], dx
lea r8, [r13 + 0xc]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi + 6]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d24d2
mov eax, dword [rdi + 6]
mov ecx, dword [r13 + 0xc]
movzx edx, word [r13 + 0x10]
mov dword [r13 + 0xc], eax
movzx eax, word [rdi + 0xa]
mov word [r13 + 0x10], ax
mov dword [rdi + 6], ecx
mov word [rdi + 0xa], dx
lea r8, [rdi + 6]
mov qword [rsp + 0x30], rbx
lea rdx, [r12 - 0x12]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d2512
mov eax, dword [r12 - 0x12]
mov ecx, dword [rdi + 6]
movzx edx, word [rdi + 0xa]
mov dword [rdi + 6], eax
movzx eax, word [r12 - 0xe]
mov word [rdi + 0xa], ax
mov dword [r12 - 0x12], ecx
mov word [r12 - 0xe], dx
lea r8, [r13 + 0xc]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi + 6]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d254d
mov eax, dword [rdi + 6]
mov ecx, dword [r13 + 0xc]
movzx edx, word [r13 + 0x10]
mov dword [r13 + 0xc], eax
movzx eax, word [rdi + 0xa]
mov word [r13 + 0x10], ax
mov dword [rdi + 6], ecx
mov word [rdi + 0xa], dx
lea r8, [rdi - 6]
mov qword [rsp + 0x30], rbx
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d2581
mov eax, dword [rdi]
mov ecx, dword [rdi - 6]
movzx edx, word [rdi - 2]
mov dword [rdi - 6], eax
movzx eax, word [rdi + 4]
mov word [rdi - 2], ax
mov dword [rdi], ecx
mov word [rdi + 4], dx
mov r8, rdi
mov qword [rsp + 0x30], rbx
lea rdx, [rdi + 6]
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d25b5
mov eax, dword [rdi + 6]
mov ecx, dword [rdi]
movzx edx, word [rdi + 4]
mov dword [rdi], eax
movzx eax, word [rdi + 0xa]
mov word [rdi + 4], ax
mov dword [rdi + 6], ecx
mov word [rdi + 0xa], dx
lea r8, [rdi - 6]
mov qword [rsp + 0x30], rbx
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d25e9
mov eax, dword [rdi]
mov ecx, dword [rdi - 6]
movzx edx, word [rdi - 2]
mov dword [rdi - 6], eax
movzx eax, word [rdi + 4]
mov word [rdi - 2], ax
mov dword [rdi], ecx
mov word [rdi + 4], dx
mov eax, dword [rdi]
mov ecx, dword [r13]
movzx edx, word [r13 + 4]
mov r12, qword [rsp + 0x58]
mov dword [r13], eax
movzx eax, word [rdi + 4]
mov word [r13 + 4], ax
mov dword [rdi], ecx
mov word [rdi + 4], dx
jmp 0x1400d26ac
mov r8, rdi
mov rdx, r13
call fcn.1400d36b0
test al, al
je 0x1400d263e
mov eax, dword [r13]
mov ecx, dword [rdi]
movzx edx, word [rdi + 4]
mov dword [rdi], eax
movzx eax, word [r13 + 4]
mov word [rdi + 4], ax
mov dword [r13], ecx
mov word [r13 + 4], dx
mov r8, r13
mov qword [rsp + 0x30], rbx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d2675
mov eax, dword [rsi]
mov ecx, dword [r13]
movzx edx, word [r13 + 4]
mov dword [r13], eax
movzx eax, word [rsi + 4]
mov word [r13 + 4], ax
mov dword [rsi], ecx
mov word [rsi + 4], dx
mov r8, rdi
mov qword [rsp + 0x30], rbx
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
je 0x1400d26ac
mov eax, dword [r13]
mov ecx, dword [rdi]
movzx edx, word [rdi + 4]
mov dword [rdi], eax
movzx eax, word [r13 + 4]
mov word [rdi + 4], ax
mov dword [r13], ecx
mov word [r13 + 4], dx
cmp byte [rsp + 0x38], 0
jne 0x1400d27f1
lea rdx, [r13 - 6]
mov r8, r13
lea rcx, [rbp + 0x150]
call fcn.1400d36b0
test al, al
jne 0x1400d27f1
movzx r12d, word [r13 + 4]
mov rdi, r13
mov r15d, dword [r13]
mov r14, qword [rsp + 0x58]
mov word [rbp - 0x7c], r12w
mov qword [rsp + 0x60], rbx
mov dword [rbp - 0x80], r15d
nop dword [rax]
nop word [rax + rax]
mov rsi, r14
lea rdx, [rbp - 0x80]
sub r14, 6
lea rcx, [rsp + 0x60]
mov r8, r14
call fcn.1400d36b0
test al, al
jne 0x1400d2700
cmp rsi, qword [rsp + 0x58]
jne 0x1400d2750
cmp rdi, r14
jae 0x1400d27ce
add rdi, 6
lea rdx, [rbp - 0x80]
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.1400d36b0
test al, al
je 0x1400d2723
jmp 0x1400d2769
add rdi, 6
lea rdx, [rbp - 0x80]
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.1400d36b0
test al, al
je 0x1400d2750
cmp rdi, r14
jae 0x1400d27ce
nop
mov eax, dword [r14]
mov ecx, dword [rdi]
movzx edx, word [rdi + 4]
mov dword [rdi], eax
movzx eax, word [r14 + 4]
mov word [rdi + 4], ax
mov dword [r14], ecx
mov word [r14 + 4], dx
nop dword [rax]
sub r14, 6
lea rdx, [rbp - 0x80]
mov r8, r14
lea rcx, [rsp + 0x60]
call fcn.1400d36b0
test al, al
jne 0x1400d2790
nop dword [rax]
add rdi, 6
lea rdx, [rbp - 0x80]
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.1400d36b0
test al, al
je 0x1400d27b0
cmp rdi, r14
jb 0x1400d2770
mov eax, dword [r14]
mov dword [r13], eax
movzx eax, word [r14 + 4]
mov word [r13 + 4], ax
mov dword [r14], r15d
mov word [r14 + 4], r12w
mov r12, qword [rsp + 0x58]
jmp 0x1400d33fa
mov eax, dword [r13]
mov r14, r13
mov dword [rsp + 0x68], eax
mov rdi, r12
mov dword [rsp + 0x3c], eax
movzx eax, word [r13 + 4]
mov word [rsp + 0x44], ax
mov word [rsp + 0x40], ax
mov qword [rsp + 0x48], rbx
nop word [rax + rax]
mov rsi, r14
lea r8, [rsp + 0x3c]
add r14, 6
lea rcx, [rsp + 0x48]
mov rdx, r14
mov qword [rsp + 0x78], r14
mov r15, r14
call fcn.1400d36b0
test al, al
jne 0x1400d2820
cmp rsi, r13
jne 0x1400d2871
nop word [rax + rax]
cmp r14, rdi
jae 0x1400d288b
sub rdi, 6
lea r8, [rsp + 0x3c]
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.1400d36b0
test al, al
je 0x1400d2850
jmp 0x1400d288b
sub rdi, 6
lea r8, [rsp + 0x3c]
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.1400d36b0
test al, al
je 0x1400d2871
mov qword [rsp + 0x30], rdi
mov r8, rdi
cmp r14, rdi
jae 0x1400d2e2e
mov ecx, dword [r14]
lea r8, [rbp + 0x1f]
movzx edx, word [r14 + 4]
lea r9, [rbp + 0x9f]
mov eax, dword [rdi]
and r8, 0xffffffffffffffc0
mov dword [r14], eax
and r9, 0xffffffffffffffc0
movzx eax, word [rdi + 4]
xor r12d, r12d
mov word [r14 + 4], ax
xor r15d, r15d
add r14, 6
mov dword [rdi], ecx
mov word [rdi + 4], dx
mov qword [rsp + 0x70], r8
mov qword [rbp - 0x58], r9
mov qword [rbp - 0x78], r14
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x40], 0
mov qword [rbp - 0x60], 0
mov qword [rbp - 0x48], r12
cmp r14, rdi
jae 0x1400d3175
xor r9d, r9d
nop word [rax + rax]
mov rcx, rdi
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, r14
imul rcx
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
test r9, r9
jne 0x1400d2946
mov rbx, rcx
test r15, r15
jne 0x1400d2956
shr rbx, 1
sub rcx, rbx
mov qword [rbp - 0x50], rcx
jmp 0x1400d295e
xor ebx, ebx
test r15, r15
jne 0x1400d2956
sub rcx, rbx
mov qword [rbp - 0x50], rcx
jmp 0x1400d295e
mov qword [rbp - 0x50], 0
cmp rbx, 0x40
jb 0x1400d2ab8
mov r13, qword [rsp + 0x70]
xor ebx, ebx
nop
movzx eax, bl
lea r8, [rsp + 0x3c]
mov rdx, r14
mov byte [r12 + r13], al
lea rcx, [rsp + 0x48]
inc rbx
call fcn.1400d36b0
movzx esi, al
lea r8, [rsp + 0x3c]
movzx eax, bl
lea rdx, [r14 + 6]
xor rsi, 1
lea rcx, [rsp + 0x48]
add rsi, r12
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
xor rax, 1
lea rdx, [r14 + 0xc]
add rsi, rax
lea rcx, [rsp + 0x48]
movzx eax, bl
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
xor rax, 1
lea rdx, [r14 + 0x12]
add rsi, rax
lea rcx, [rsp + 0x48]
movzx eax, bl
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
xor rax, 1
lea rdx, [r14 + 0x18]
add rsi, rax
lea rcx, [rsp + 0x48]
movzx eax, bl
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
xor rax, 1
lea rdx, [r14 + 0x1e]
add rsi, rax
lea rcx, [rsp + 0x48]
movzx eax, bl
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
xor rax, 1
lea rdx, [r14 + 0x24]
add rsi, rax
lea rcx, [rsp + 0x48]
movzx eax, bl
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
xor rax, 1
lea rdx, [r14 + 0x2a]
add rsi, rax
lea rcx, [rsp + 0x48]
movzx eax, bl
inc rbx
mov byte [rsi + r13], al
call fcn.1400d36b0
movzx r12d, al
xor r12, 1
add r12, rsi
add r14, 0x30
cmp rbx, 0x40
jb 0x1400d2970
jmp 0x1400d2b00
xor esi, esi
test rbx, rbx
je 0x1400d2b07
mov r13, qword [rsp + 0x70]
nop dword [rax]
nop dword [rax + rax]
movzx eax, sil
lea r8, [rsp + 0x3c]
mov rdx, r14
mov byte [r12 + r13], al
lea rcx, [rsp + 0x48]
inc rsi
call fcn.1400d36b0
movzx eax, al
add r14, 6
xor rax, 1
add r12, rax
cmp rsi, rbx
jb 0x1400d2ad0
mov r8, r13
mov qword [rbp - 0x48], r12
mov rax, qword [rbp - 0x50]
cmp rax, 0x40
jb 0x1400d2c39
mov rbx, qword [rbp - 0x58]
xor r12d, r12d
nop dword [rax]
inc r12
lea r8, [rsp + 0x3c]
lea rdx, [rdi - 6]
mov byte [r15 + rbx], r12b
lea rcx, [rsp + 0x48]
call fcn.1400d36b0
movzx esi, al
lea r8, [rsp + 0x3c]
add rsi, r15
lea rdx, [rdi - 0xc]
inc r12
lea rcx, [rsp + 0x48]
mov byte [rsi + rbx], r12b
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
add rsi, rax
lea rdx, [rdi - 0x12]
inc r12
lea rcx, [rsp + 0x48]
mov byte [rsi + rbx], r12b
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
add rsi, rax
lea rdx, [rdi - 0x18]
inc r12
lea rcx, [rsp + 0x48]
mov byte [rsi + rbx], r12b
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
add rsi, rax
lea rdx, [rdi - 0x1e]
inc r12
lea rcx, [rsp + 0x48]
mov byte [rsi + rbx], r12b
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
add rsi, rax
lea rdx, [rdi - 0x24]
inc r12
lea rcx, [rsp + 0x48]
mov byte [rsi + rbx], r12b
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
add rsi, rax
lea rdx, [rdi - 0x2a]
inc r12
lea rcx, [rsp + 0x48]
mov byte [rbx + rsi], r12b
call fcn.1400d36b0
movzx eax, al
lea r8, [rsp + 0x3c]
add rsi, rax
lea rcx, [rsp + 0x48]
sub rdi, 0x30
inc r12
mov rdx, rdi
mov byte [rbx + rsi], r12b
call fcn.1400d36b0
movzx r15d, al
add r15, rsi
cmp r12, 0x40
jb 0x1400d2b20
mov r12, qword [rbp - 0x48]
mov r8, qword [rsp + 0x70]
jmp 0x1400d2c86
xor esi, esi
test rax, rax
je 0x1400d2c82
mov r13, qword [rbp - 0x58]
mov rbx, rax
nop word [rax + rax]
sub rdi, 6
lea r8, [rsp + 0x3c]
inc rsi
lea rcx, [rsp + 0x48]
mov rdx, rdi
mov byte [r15 + r13], sil
call fcn.1400d36b0
movzx eax, al
add r15, rax
cmp rsi, rbx
jb 0x1400d2c50
mov r8, qword [rsp + 0x70]
mov rbx, r13
jmp 0x1400d2c86
mov rbx, qword [rbp - 0x58]
mov r10, qword [rbp - 0x60]
cmp r15, r12
mov r13, qword [rbp - 0x78]
mov r11, r12
cmovb r11, r15
add rbx, qword [rbp - 0x40]
add r10, r8
mov qword [rbp - 0x50], r11
cmp r12, r15
jne 0x1400d30b2
test r11, r11
je 0x1400d2d14
mov rsi, r11
sub rbx, r10
mov r11, qword [rsp + 0x60]
nop dword [rax]
movzx eax, byte [rbx + r10]
lea r10, [r10 + 1]
mov r9, r11
lea rcx, [rax + rax*2]
movzx eax, byte [r10 - 1]
add rcx, rcx
sub r9, rcx
lea rcx, [rax + rax*2]
mov edx, dword [r13 + rcx*2]
mov eax, dword [r9]
movzx r8d, word [r13 + rcx*2 + 4]
mov dword [r13 + rcx*2], eax
movzx eax, word [r9 + 4]
mov word [r13 + rcx*2 + 4], ax
mov dword [r9], edx
mov word [r9 + 4], r8w
sub rsi, 1
jne 0x1400d2cc0
mov r11, qword [rbp - 0x50]
mov r8, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x60]
mov rax, qword [rbp - 0x60]
sub r12, r11
mov r10, qword [rbp - 0x40]
add rax, r11
add r10, r11
mov qword [rbp - 0x48], r12
sub r15, r11
mov qword [rbp - 0x40], r10
test r12, r12
mov r9, r12
cmove r13, r14
xor r11d, r11d
test r12, r12
mov qword [rbp - 0x78], r13
cmovne r11, rax
mov qword [rbp - 0x60], r11
test r15, r15
jne 0x1400d2d65
xor r10d, r10d
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x40], r10
mov rsi, rdi
cmp r14, rdi
jb 0x1400d2910
mov rbx, qword [rbp + 0x150]
mov r13, qword [rbp - 0x70]
test r12, r12
je 0x1400d2dcf
mov r9, qword [rbp - 0x78]
add r8, r11
mov qword [rsp + 0x70], r8
mov r14, rdi
nop dword [rax]
movzx eax, byte [r12 + r8 - 1]
sub r14, 6
dec r12
lea rcx, [rax + rax*2]
mov eax, dword [r14]
movzx r8d, word [r9 + rcx*2 + 4]
mov edx, dword [r9 + rcx*2]
mov dword [r9 + rcx*2], eax
movzx eax, word [r14 + 4]
mov word [r9 + rcx*2 + 4], ax
mov dword [r14], edx
mov word [r14 + 4], r8w
mov r8, qword [rsp + 0x70]
test r12, r12
jne 0x1400d2d90
test r15, r15
je 0x1400d2e1f
mov r9, qword [rbp - 0x58]
add r9, r10
nop dword [rax + rax]
movzx eax, byte [r9 + r15 - 1]
dec r15
mov r8, rsi
lea rcx, [rax + rax*2]
mov eax, dword [r14]
add rcx, rcx
sub r8, rcx
mov ecx, dword [r8]
movzx edx, word [r8 + 4]
mov dword [r8], eax
movzx eax, word [r14 + 4]
mov word [r8 + 4], ax
mov dword [r14], ecx
mov word [r14 + 4], dx
add r14, 6
test r15, r15
jne 0x1400d2de0
mov r8, qword [rsp + 0x30]
mov r12, qword [rsp + 0x58]
mov r15, qword [rsp + 0x78]
mov eax, dword [r14 - 6]
add r14, 0xfffffffffffffffa
mov dword [r13], eax
movabs r11, 0x2aaaaaaaaaaaaaab
mov rcx, r14
sub rcx, r13
movzx eax, word [r14 + 4]
mov word [r13 + 4], ax
mov eax, dword [rsp + 0x68]
mov dword [r14], eax
movzx eax, word [rsp + 0x44]
mov word [r14 + 4], ax
mov rax, r11
imul rcx
mov rcx, r12
mov rax, r11
mov r9, rdx
sub rcx, r14
shr r9, 0x3f
sub rcx, 6
add r9, rdx
imul rcx
mov rax, qword [rbp - 0x28]
mov r10, rdx
shr rax, 3
shr r10, 0x3f
add r10, rdx
cmp r9, rax
jl 0x1400d317d
cmp r10, rax
jl 0x1400d317d
cmp r15, r8
jb 0x1400d33da
mov qword [rsp + 0x30], rbx
cmp r13, r14
je 0x1400d2fa2
xor r12d, r12d
lea r15, [r13 + 6]
cmp r15, r14
je 0x1400d2fa2
mov rax, r13
mov qword [rsp + 0x78], rax
nop dword [rax + rax]
mov r8, rax
lea rcx, [rsp + 0x30]
mov rdx, r15
mov rdi, r15
mov rsi, rax
call fcn.1400d36b0
test al, al
je 0x1400d2f87
mov eax, dword [r15]
mov dword [rsp + 0x68], eax
mov dword [rbp - 0x38], eax
movzx eax, word [r15 + 4]
mov word [rsp + 0x44], ax
mov word [rbp - 0x34], ax
nop word [rax + rax]
mov eax, dword [rsi]
mov dword [rdi], eax
movzx eax, word [rsi + 4]
mov word [rdi + 4], ax
sub rdi, 6
cmp rdi, r13
je 0x1400d2f4e
sub rsi, 6
lea rdx, [rbp - 0x38]
mov r8, rsi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
jne 0x1400d2f20
mov eax, dword [rsp + 0x68]
mov rcx, r15
mov dword [rdi], eax
sub rcx, rdi
movzx eax, word [rsp + 0x44]
mov word [rdi + 4], ax
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
add r12, rdx
cmp r12, 8
ja 0x1400d33d5
mov rax, qword [rsp + 0x78]
add r15, 6
add rax, 6
mov qword [rsp + 0x78], rax
cmp r15, r14
jne 0x1400d2ee0
mov rax, qword [rsp + 0x58]
lea r12, [r14 + 6]
mov qword [rsp + 0x30], rbx
cmp r12, rax
je 0x1400d367e
lea r15, [r12 + 6]
mov qword [rsp + 0x78], 0
cmp r15, rax
je 0x1400d367e
mov rax, r12
mov qword [rbp - 0x60], rax
nop word [rax + rax]
mov r8, rax
lea rcx, [rsp + 0x30]
mov rdx, r15
mov rdi, r15
mov rsi, rax
call fcn.1400d36b0
test al, al
je 0x1400d3092
mov eax, dword [r15]
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x50], eax
movzx eax, word [r15 + 4]
mov word [rsp + 0x44], ax
mov word [rsp + 0x54], ax
nop dword [rax + rax]
mov eax, dword [rsi]
mov dword [rdi], eax
movzx eax, word [rsi + 4]
mov word [rdi + 4], ax
sub rdi, 6
cmp rdi, r12
je 0x1400d304f
sub rsi, 6
lea rdx, [rsp + 0x50]
mov r8, rsi
lea rcx, [rsp + 0x30]
call fcn.1400d36b0
test al, al
jne 0x1400d3020
mov eax, dword [rsp + 0x68]
mov rcx, r15
mov dword [rdi], eax
sub rcx, rdi
movzx eax, word [rsp + 0x44]
mov word [rdi + 4], ax
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, qword [rsp + 0x78]
add rax, rdx
mov qword [rsp + 0x78], rax
cmp rax, 8
ja 0x1400d33d5
mov rax, qword [rbp - 0x60]
add r15, 6
add rax, 6
mov qword [rbp - 0x60], rax
cmp r15, qword [rsp + 0x58]
jne 0x1400d2fe0
jmp 0x1400d367e
test r11, r11
je 0x1400d2d14
movzx eax, byte [r10]
mov rsi, qword [rsp + 0x60]
mov r8, rsi
lea rcx, [rax + rax*2]
movzx eax, byte [rbx]
lea rdx, [rcx*2]
add rdx, r13
lea rcx, [rax + rax*2]
add rcx, rcx
mov eax, dword [rdx]
sub r8, rcx
mov dword [rbp - 0x78], eax
movzx eax, word [rdx + 4]
mov word [rbp - 0x68], ax
mov eax, dword [r8]
mov dword [rdx], eax
movzx eax, word [r8 + 4]
mov word [rdx + 4], ax
cmp r11, 1
jbe 0x1400d315c
lea r9, [rbx + 1]
sub r10, rbx
lea rbx, [r11 - 1]
nop
movzx eax, byte [r10 + r9]
lea r9, [r9 + 1]
lea rcx, [rax + rax*2]
lea rdx, [rcx*2]
add rdx, r13
mov eax, dword [rdx]
mov dword [r8], eax
movzx eax, word [rdx + 4]
mov word [r8 + 4], ax
mov r8, rsi
movzx eax, byte [r9 - 1]
lea rcx, [rax + rax*2]
add rcx, rcx
sub r8, rcx
mov eax, dword [r8]
mov dword [rdx], eax
movzx eax, word [r8 + 4]
mov word [rdx + 4], ax
sub rbx, 1
jne 0x1400d3110
mov eax, dword [rbp - 0x78]
mov dword [r8], eax
movzx eax, word [rbp - 0x68]
mov word [r8 + 4], ax
mov r8, qword [rsp + 0x70]
jmp 0x1400d2d19
mov r8, rdi
jmp 0x1400d2e24
sub dword [rbp - 0x64], 1
je 0x1400d3436
cmp r9, 0x18
jl 0x1400d32a2
mov r11, r9
test r9, r9
jns 0x1400d319d
lea r11, [r9 + 3]
mov ecx, dword [r13]
mov rdi, r14
movzx edx, word [r13 + 4]
sar r11, 2
lea rax, [r11 + r11*2]
lea r8, [rax + rax]
mov eax, dword [r8 + r13]
sub rdi, r8
mov dword [r13], eax
movzx eax, word [r8 + r13 + 4]
mov word [r13 + 4], ax
mov dword [r8 + r13], ecx
mov word [r8 + r13 + 4], dx
mov eax, dword [rdi]
mov ecx, dword [r14 - 6]
movzx edx, word [r14 - 2]
mov dword [r14 - 6], eax
movzx eax, word [rdi + 4]
mov word [r14 - 2], ax
mov dword [rdi], ecx
mov word [rdi + 4], dx
cmp r9, 0x80
jle 0x1400d32a2
mov eax, dword [r8 + r13 + 6]
mov ecx, dword [r13 + 6]
movzx edx, word [r13 + 0xa]
mov dword [r13 + 6], eax
movzx eax, word [r8 + r13 + 0xa]
mov word [r13 + 0xa], ax
lea rax, [r11 + 2]
mov dword [r8 + r13 + 6], ecx
lea rax, [rax + rax*2]
mov word [r8 + r13 + 0xa], dx
lea r9, [rax + rax]
mov eax, dword [r9 + r13]
mov r8, r14
mov ecx, dword [r13 + 0xc]
sub r8, r9
movzx edx, word [r13 + 0x10]
mov dword [r13 + 0xc], eax
movzx eax, word [r9 + r13 + 4]
mov word [r13 + 0x10], ax
mov dword [r9 + r13], ecx
mov word [r9 + r13 + 4], dx
mov eax, dword [rdi - 6]
mov ecx, dword [r14 - 0xc]
movzx edx, word [r14 - 8]
mov dword [r14 - 0xc], eax
movzx eax, word [rdi - 2]
mov word [r14 - 8], ax
mov dword [rdi - 6], ecx
mov word [rdi - 2], dx
mov eax, dword [r8]
mov ecx, dword [r14 - 0x12]
movzx edx, word [r14 - 0xe]
mov dword [r14 - 0x12], eax
movzx eax, word [r8 + 4]
mov word [r14 - 0xe], ax
mov dword [r8], ecx
mov word [r8 + 4], dx
cmp r10, 0x18
jl 0x1400d33da
mov r9, r10
test r10, r10
jns 0x1400d32b8
lea r9, [r10 + 3]
mov ecx, dword [r14 + 6]
mov r11, r12
movzx edx, word [r14 + 0xa]
mov rsi, qword [rbp - 0x30]
sar r9, 2
lea rax, [r9 + r9*2]
lea r8, [rax + rax]
mov eax, dword [r14 + r8 + 6]
sub r11, r8
mov dword [r14 + 6], eax
movzx eax, word [r14 + r8 + 0xa]
mov word [r14 + 0xa], ax
mov dword [r14 + r8 + 6], ecx
mov word [r14 + r8 + 0xa], dx
mov eax, dword [r11]
mov ecx, dword [rsi]
movzx edx, word [rsi + 4]
mov dword [rsi], eax
movzx eax, word [r11 + 4]
mov word [rsi + 4], ax
mov dword [r11], ecx
mov word [r11 + 4], dx
cmp r10, 0x80
jle 0x1400d33da
movzx edx, word [r14 + 0x10]
lea rax, [r9 + 2]
mov ecx, dword [r14 + 0xc]
lea rax, [rax + rax*2]
lea r10, [rax + rax]
add r9, 3
mov eax, dword [r14 + r10]
mov dword [r14 + 0xc], eax
movzx eax, word [r14 + r10 + 4]
mov word [r14 + 0x10], ax
lea rax, [r9 + r9*2]
mov dword [r14 + r10], ecx
lea r8, [r14 + rax*2]
mov word [r14 + r10 + 4], dx
mov r9, r12
mov eax, dword [r8]
sub r9, r10
movzx edx, word [r14 + 0x16]
mov ecx, dword [r14 + 0x12]
mov dword [r14 + 0x12], eax
movzx eax, word [r8 + 4]
mov word [r14 + 0x16], ax
mov dword [r8], ecx
mov word [r8 + 4], dx
mov eax, dword [r11 - 6]
movzx edx, word [r12 - 8]
mov ecx, dword [r12 - 0xc]
mov dword [r12 - 0xc], eax
movzx eax, word [r11 - 2]
mov word [r12 - 8], ax
mov dword [r11 - 6], ecx
mov word [r11 - 2], dx
mov eax, dword [r9]
mov edx, dword [r12 - 0x12]
movzx r8d, word [r12 - 0xe]
mov dword [r12 - 0x12], eax
movzx eax, word [r9 + 4]
mov word [r12 - 0xe], ax
mov dword [r9], edx
mov word [r9 + 4], r8w
jmp 0x1400d33da
mov r12, qword [rsp + 0x58]
movzx eax, byte [rsp + 0x38]
mov r8, rbx
mov r9d, dword [rbp - 0x64]
mov rdx, r14
mov rcx, r13
mov byte [rsp + 0x20], al
call fcn.1400d2290
mov byte [rsp + 0x38], 0
lea r13, [r14 + 6]
mov rcx, r12
sub rcx, r13
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
mov qword [rbp - 0x28], rcx
cmp rcx, 0x18
jl 0x1400d35fd
mov rsi, qword [rbp - 0x30]
mov qword [rbp - 0x70], r13
jmp 0x1400d2320
sub r12, r13
mov rax, r11
imul r12
mov r14, rdx
shr r14, 0x3f
add r14, rdx
mov rdi, r14
sar rdi, 1
test rdi, rdi
jle 0x1400d34ae
lea rax, [rdi + rdi*2]
lea rsi, [rax*2]
add rsi, r13
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rsi - 6]
lea rsi, [rsi - 6]
mov dword [rsp + 0x50], eax
lea r9, [rsp + 0x50]
movzx eax, word [rsi + 4]
dec rdi
mov r8, r14
mov word [rsp + 0x54], ax
mov rdx, rdi
mov qword [rsp + 0x20], rbx
mov rcx, r13
call fcn.1400e3ae0
test rdi, rdi
jg 0x1400d3470
movabs r11, 0x2aaaaaaaaaaaaaab
cmp r14, 2
jl 0x1400d367e
mov rsi, qword [rbp - 0x30]
mov edi, 6
sub rdi, r13
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rdi + rsi]
mov rax, r11
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 2
jl 0x1400d353c
mov eax, dword [rsi]
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], eax
mov rcx, rsi
movzx eax, word [rsi + 4]
sub rcx, r13
mov word [rsp + 0x54], ax
mov eax, dword [r13]
mov dword [rsi], eax
movzx eax, word [r13 + 4]
mov word [rsi + 4], ax
mov rax, r11
imul rcx
mov rcx, r13
mov qword [rsp + 0x20], rbx
mov r8, rdx
shr r8, 0x3f
add r8, rdx
xor edx, edx
call fcn.1400e3ae0
movabs r11, 0x2aaaaaaaaaaaaaab
sub rsi, 6
lea rax, [rdi + rsi]
cmp rax, 0xc
jge 0x1400d34d0
jmp 0x1400d367e
cmp byte [rbp + 0x160], 0
je 0x1400d35fd
mov qword [rbp - 0x70], rbx
cmp r13, r12
je 0x1400d367e
lea rsi, [r13 + 6]
cmp rsi, r12
je 0x1400d367e
mov r14, r13
nop dword [rax]
mov r8, r14
lea rcx, [rbp - 0x70]
mov rdx, rsi
mov rbx, rsi
mov rdi, r14
call fcn.1400d36b0
test al, al
je 0x1400d35eb
movzx r12d, word [rsi + 4]
mov r15d, dword [rsi]
mov word [rsp + 0x54], r12w
mov dword [rsp + 0x50], r15d
nop dword [rax]
mov eax, dword [rdi]
mov dword [rbx], eax
movzx eax, word [rdi + 4]
mov word [rbx + 4], ax
sub rbx, 6
cmp rbx, r13
je 0x1400d35de
sub rdi, 6
lea rdx, [rsp + 0x50]
mov r8, rdi
lea rcx, [rbp - 0x70]
call fcn.1400d36b0
test al, al
jne 0x1400d35b0
mov dword [rbx], r15d
mov word [rbx + 4], r12w
mov r12, qword [rsp + 0x58]
add rsi, 6
add r14, 6
cmp rsi, r12
jne 0x1400d3580
jmp 0x1400d367e
mov qword [rbp - 0x70], rbx
cmp r13, r12
je 0x1400d367e
lea rsi, [r13 + 6]
cmp rsi, r12
je 0x1400d367e
nop
mov r8, r13
lea rcx, [rbp - 0x70]
mov rdx, rsi
mov rdi, rsi
mov rbx, r13
call fcn.1400d36b0
test al, al
je 0x1400d3671
movzx r15d, word [rsi + 4]
mov r14d, dword [rsi]
mov word [rsp + 0x54], r15w
mov dword [rsp + 0x50], r14d
nop dword [rax]
mov eax, dword [rbx]
lea rdx, [rsp + 0x50]
mov dword [rdi], eax
lea rcx, [rbp - 0x70]
movzx eax, word [rbx + 4]
sub rbx, 6
mov word [rdi + 4], ax
lea rdi, [rdi - 6]
mov r8, rbx
call fcn.1400d36b0
test al, al
jne 0x1400d3640
mov dword [rdi], r14d
mov word [rdi + 4], r15w
add rsi, 6
add r13, 6
cmp rsi, r12
jne 0x1400d3610
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1403f4b10
add rsp, 0x1f8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret