Function at 0x1400d0cd0
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 0x1400d1f8f
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 0x1400d1051
mov r8, r13
mov rdx, rdi
call fcn.1400d20f0
test al, al
je 0x1400d0db9
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.1400d20f0
test al, al
je 0x1400d0dea
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.1400d20f0
test al, al
je 0x1400d0e21
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.1400d20f0
test al, al
je 0x1400d0e5c
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.1400d20f0
test al, al
je 0x1400d0e9c
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.1400d20f0
test al, al
je 0x1400d0ed7
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.1400d20f0
test al, al
je 0x1400d0f12
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.1400d20f0
test al, al
je 0x1400d0f52
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.1400d20f0
test al, al
je 0x1400d0f8d
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.1400d20f0
test al, al
je 0x1400d0fc1
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.1400d20f0
test al, al
je 0x1400d0ff5
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.1400d20f0
test al, al
je 0x1400d1029
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 0x1400d10ec
mov r8, rdi
mov rdx, r13
call fcn.1400d20f0
test al, al
je 0x1400d107e
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.1400d20f0
test al, al
je 0x1400d10b5
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.1400d20f0
test al, al
je 0x1400d10ec
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 0x1400d1231
lea rdx, [r13 - 6]
mov r8, r13
lea rcx, [rbp + 0x150]
call fcn.1400d20f0
test al, al
jne 0x1400d1231
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.1400d20f0
test al, al
jne 0x1400d1140
cmp rsi, qword [rsp + 0x58]
jne 0x1400d1190
cmp rdi, r14
jae 0x1400d120e
add rdi, 6
lea rdx, [rbp - 0x80]
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.1400d20f0
test al, al
je 0x1400d1163
jmp 0x1400d11a9
add rdi, 6
lea rdx, [rbp - 0x80]
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.1400d20f0
test al, al
je 0x1400d1190
cmp rdi, r14
jae 0x1400d120e
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.1400d20f0
test al, al
jne 0x1400d11d0
nop dword [rax]
add rdi, 6
lea rdx, [rbp - 0x80]
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.1400d20f0
test al, al
je 0x1400d11f0
cmp rdi, r14
jb 0x1400d11b0
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 0x1400d1e3a
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.1400d20f0
test al, al
jne 0x1400d1260
cmp rsi, r13
jne 0x1400d12b1
nop word [rax + rax]
cmp r14, rdi
jae 0x1400d12cb
sub rdi, 6
lea r8, [rsp + 0x3c]
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.1400d20f0
test al, al
je 0x1400d1290
jmp 0x1400d12cb
sub rdi, 6
lea r8, [rsp + 0x3c]
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.1400d20f0
test al, al
je 0x1400d12b1
mov qword [rsp + 0x30], rdi
mov r8, rdi
cmp r14, rdi
jae 0x1400d186e
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 0x1400d1bb5
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 0x1400d1386
mov rbx, rcx
test r15, r15
jne 0x1400d1396
shr rbx, 1
sub rcx, rbx
mov qword [rbp - 0x50], rcx
jmp 0x1400d139e
xor ebx, ebx
test r15, r15
jne 0x1400d1396
sub rcx, rbx
mov qword [rbp - 0x50], rcx
jmp 0x1400d139e
mov qword [rbp - 0x50], 0
cmp rbx, 0x40
jb 0x1400d14f8
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
movzx r12d, al
xor r12, 1
add r12, rsi
add r14, 0x30
cmp rbx, 0x40
jb 0x1400d13b0
jmp 0x1400d1540
xor esi, esi
test rbx, rbx
je 0x1400d1547
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.1400d20f0
movzx eax, al
add r14, 6
xor rax, 1
add r12, rax
cmp rsi, rbx
jb 0x1400d1510
mov r8, r13
mov qword [rbp - 0x48], r12
mov rax, qword [rbp - 0x50]
cmp rax, 0x40
jb 0x1400d1679
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
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.1400d20f0
movzx r15d, al
add r15, rsi
cmp r12, 0x40
jb 0x1400d1560
mov r12, qword [rbp - 0x48]
mov r8, qword [rsp + 0x70]
jmp 0x1400d16c6
xor esi, esi
test rax, rax
je 0x1400d16c2
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.1400d20f0
movzx eax, al
add r15, rax
cmp rsi, rbx
jb 0x1400d1690
mov r8, qword [rsp + 0x70]
mov rbx, r13
jmp 0x1400d16c6
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 0x1400d1af2
test r11, r11
je 0x1400d1754
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 0x1400d1700
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 0x1400d17a5
xor r10d, r10d
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x40], r10
mov rsi, rdi
cmp r14, rdi
jb 0x1400d1350
mov rbx, qword [rbp + 0x150]
mov r13, qword [rbp - 0x70]
test r12, r12
je 0x1400d180f
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 0x1400d17d0
test r15, r15
je 0x1400d185f
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 0x1400d1820
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 0x1400d1bbd
cmp r10, rax
jl 0x1400d1bbd
cmp r15, r8
jb 0x1400d1e1a
mov qword [rsp + 0x30], rbx
cmp r13, r14
je 0x1400d19e2
xor r12d, r12d
lea r15, [r13 + 6]
cmp r15, r14
je 0x1400d19e2
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.1400d20f0
test al, al
je 0x1400d19c7
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 0x1400d198e
sub rsi, 6
lea rdx, [rbp - 0x38]
mov r8, rsi
lea rcx, [rsp + 0x30]
call fcn.1400d20f0
test al, al
jne 0x1400d1960
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 0x1400d1e15
mov rax, qword [rsp + 0x78]
add r15, 6
add rax, 6
mov qword [rsp + 0x78], rax
cmp r15, r14
jne 0x1400d1920
mov rax, qword [rsp + 0x58]
lea r12, [r14 + 6]
mov qword [rsp + 0x30], rbx
cmp r12, rax
je 0x1400d20be
lea r15, [r12 + 6]
mov qword [rsp + 0x78], 0
cmp r15, rax
je 0x1400d20be
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.1400d20f0
test al, al
je 0x1400d1ad2
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 0x1400d1a8f
sub rsi, 6
lea rdx, [rsp + 0x50]
mov r8, rsi
lea rcx, [rsp + 0x30]
call fcn.1400d20f0
test al, al
jne 0x1400d1a60
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 0x1400d1e15
mov rax, qword [rbp - 0x60]
add r15, 6
add rax, 6
mov qword [rbp - 0x60], rax
cmp r15, qword [rsp + 0x58]
jne 0x1400d1a20
jmp 0x1400d20be
test r11, r11
je 0x1400d1754
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 0x1400d1b9c
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 0x1400d1b50
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 0x1400d1759
mov r8, rdi
jmp 0x1400d1864
sub dword [rbp - 0x64], 1
je 0x1400d1e76
cmp r9, 0x18
jl 0x1400d1ce2
mov r11, r9
test r9, r9
jns 0x1400d1bdd
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 0x1400d1ce2
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 0x1400d1e1a
mov r9, r10
test r10, r10
jns 0x1400d1cf8
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 0x1400d1e1a
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 0x1400d1e1a
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.1400d0cd0
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 0x1400d203d
mov rsi, qword [rbp - 0x30]
mov qword [rbp - 0x70], r13
jmp 0x1400d0d60
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 0x1400d1eee
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.1400e3990
test rdi, rdi
jg 0x1400d1eb0
movabs r11, 0x2aaaaaaaaaaaaaab
cmp r14, 2
jl 0x1400d20be
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 0x1400d1f7c
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.1400e3990
movabs r11, 0x2aaaaaaaaaaaaaab
sub rsi, 6
lea rax, [rdi + rsi]
cmp rax, 0xc
jge 0x1400d1f10
jmp 0x1400d20be
cmp byte [rbp + 0x160], 0
je 0x1400d203d
mov qword [rbp - 0x70], rbx
cmp r13, r12
je 0x1400d20be
lea rsi, [r13 + 6]
cmp rsi, r12
je 0x1400d20be
mov r14, r13
nop dword [rax]
mov r8, r14
lea rcx, [rbp - 0x70]
mov rdx, rsi
mov rbx, rsi
mov rdi, r14
call fcn.1400d20f0
test al, al
je 0x1400d202b
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 0x1400d201e
sub rdi, 6
lea rdx, [rsp + 0x50]
mov r8, rdi
lea rcx, [rbp - 0x70]
call fcn.1400d20f0
test al, al
jne 0x1400d1ff0
mov dword [rbx], r15d
mov word [rbx + 4], r12w
mov r12, qword [rsp + 0x58]
add rsi, 6
add r14, 6
cmp rsi, r12
jne 0x1400d1fc0
jmp 0x1400d20be
mov qword [rbp - 0x70], rbx
cmp r13, r12
je 0x1400d20be
lea rsi, [r13 + 6]
cmp rsi, r12
je 0x1400d20be
nop
mov r8, r13
lea rcx, [rbp - 0x70]
mov rdx, rsi
mov rdi, rsi
mov rbx, r13
call fcn.1400d20f0
test al, al
je 0x1400d20b1
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.1400d20f0
test al, al
jne 0x1400d2080
mov dword [rdi], r14d
mov word [rdi + 4], r15w
add rsi, 6
add r13, 6
cmp rsi, r12
jne 0x1400d2050
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