Function at 0x1400d3b80
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r13
push r15
sub rsp, 0x68
mov r10, qword [rsp + 0xc8]
mov r13, rdx
mov rdx, qword [rdx]
mov ebp, 1
mov qword [rsp + 0x40], rdx
mov r15, rcx
mov rcx, qword [rsp + 0xc0]
mov rax, r9
mov rsi, r8
mov edi, ebp
test r10, r10
je 0x1400d3bd8
mov rax, qword [r15 + 0x1b0]
mov qword [r10], rax
mov rax, r9
cmp dword [r15 + 0x80], 0
jge 0x1400d3bf1
xor eax, eax
add rsp, 0x68
pop r15
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rax]
test rax, rax
je 0x1400d3c24
test rcx, rcx
je 0x1400d3c04
cmp qword [rcx], 0
jne 0x1400d3c24
sub rdx, qword [r13]
mov rcx, r15
mov r8, rdx
mov edx, 0xffffffec
add rsp, 0x68
pop r15
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1400d9be0
xor r11d, r11d
mov qword [rsp + 0x60], r12
test rax, rax
mov qword [rsp + 0x58], r14
mov rax, qword [r15 + 0x50]
lea r14, [r15 + 0x28]
cmovne r11, rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r11
lea r9, [r15 + 0x20]
mov qword [rsp + 0xa0], r9
test rax, rax
jne 0x1400d3cab
mov rax, qword [r13]
mov rcx, qword [r8]
mov qword [r15 + 0x18], rcx
test rax, rax
jne 0x1400d3c84
mov qword [r14], rcx
lea r12, [r15 + 0x310]
mov qword [r9], rcx
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
lea rdx, [rcx + rax]
inc rax
mov qword [r14], rdx
cmp rax, 0x1c
jbe 0x1400d3cec
lea rcx, [rdx - 0x1b]
mov qword [r9], rcx
lea r12, [r15 + 0x310]
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
lea rcx, [r15 + 0x48]
mov edi, 2
lea rdx, [rcx + rax]
mov qword [r15 + 0x18], rcx
inc rax
mov qword [r14], rdx
cmp rax, 0x1c
jbe 0x1400d3cdf
lea rcx, [rdx - 0x1b]
mov qword [r9], rcx
lea r12, [r15 + 0x310]
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x38], r14
mov qword [r9], rcx
lea r12, [r15 + 0x310]
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
mov r14, qword [rsp + 0x38]
lea r12, [r15 + 0x310]
mov ebp, 1
cmp edi, 1
je 0x1400d3e0d
cmp edi, 2
jne 0x1400d4e8f
cmp qword [r15 + 0x88], 0
je 0x1400d3d64
mov rdx, qword [rsp + 0xb8]
mov r9, r10
mov r8, r11
mov dword [rsp + 0x20], ebp
mov rcx, r15
call fcn.1400d9de0
test eax, eax
js 0x1400d4e24
mov r9, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x30]
mov rdx, qword [r15 + 0x50]
test rdx, rdx
je 0x1400d4e4f
mov rax, qword [r14]
cmp qword [r15 + 0x18], rax
jne 0x1400d3db5
mov qword [r15 + 0x50], 0
mov edi, ebp
mov rax, qword [r13]
mov rcx, qword [rsi]
mov qword [r15 + 0x18], rcx
test rax, rax
jne 0x1400d3d9c
mov qword [r14], rcx
mov qword [r9], rcx
jmp 0x1400d3e06
lea rdx, [rcx + rax]
inc rax
mov qword [r14], rdx
cmp rax, 0x1c
jbe 0x1400d3db0
lea rcx, [rdx - 0x1b]
mov qword [r9], rcx
jmp 0x1400d3e06
cmp qword [r13], 0
je 0x1400d4e26
mov rax, qword [rsi]
lea r8, [r15 + 0x48]
mov edi, ebp
movzx ecx, byte [rax]
mov rax, r8
mov byte [rdx + r15 + 0x48], cl
add qword [r15 + 0x50], 1
mov rdx, qword [r15 + 0x50]
mov qword [r15 + 0x18], r8
lea rcx, [r8 + rdx]
cmovne rax, rcx
add rcx, 0xffffffffffffffe5
mov qword [r14], rax
lea rax, [rdx + 1]
cmp rax, 0x1c
cmovbe rcx, r8
mov qword [r9], rcx
inc qword [rsi]
dec qword [r13]
lea rdx, [0x140000000]
movsxd rax, dword [r15]
cmp eax, 0x1a
ja case.default.0x1400d3e23
mov ecx, dword [rdx + rax*4 + 0xd4f0c]
add rcx, rdx
jmp rcx
lea rcx, [r15 + 8]
call fcn.1400d9f30
test eax, eax
jne 0x1400d3e3a
lea edi, [rax + 2]
jmp 0x1400d4e03
mov r8d, dword [r15 + 0x304]
mov eax, r8d
and eax, 0xffffffdf
mov dword [r15 + 0x304], eax
mov rdx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
mov rcx, rdx
and rcx, qword [0x140120838]
dec rax
shr rdx, 1
mov qword [r15 + 0x10], rax
mov qword [r15 + 8], rdx
test rcx, rcx
jne 0x1400d3e89
mov ecx, dword [r15 + 0x304]
and ecx, 0xfffff43f
bts ecx, 0xa
jmp 0x1400d3f61
mov rcx, rdx
add rax, 0xfffffffffffffffd
and rcx, qword [0x140120848]
shr rdx, 3
mov qword [r15 + 0x10], rax
mov qword [r15 + 8], rdx
test rcx, rcx
je 0x1400d3ec4
mov eax, dword [r15 + 0x304]
add ecx, 0x11
shl ecx, 6
xor ecx, eax
and ecx, 0xfc0
xor ecx, eax
jmp 0x1400d3f61
mov rcx, rdx
add rax, 0xfffffffffffffffd
and rcx, qword [0x140120848]
shr rdx, 3
mov qword [r15 + 0x10], rax
mov qword [r15 + 8], rdx
cmp rcx, 1
jne 0x1400d3f35
test r8b, 0x20
je 0x1400d3f08
mov rcx, rdx
shr rdx, 1
and rcx, qword [0x140120838]
dec rax
mov qword [r15 + 8], rdx
mov qword [r15 + 0x10], rax
cmp rcx, 1
jne 0x1400d3f12
mov edi, 0xfffffff3
jmp 0x1400d4e03
or dword [r15 + 0x304], 0x20
mov edi, ebp
mov ecx, dword [r15 + 0x304]
and cl, 0x20
neg cl
sbb eax, eax
add eax, 2
mov dword [r15], eax
jmp 0x1400d4e03
mov eax, dword [r15 + 0x304]
test rcx, rcx
je 0x1400d3f53
add ecx, 8
shl ecx, 6
xor ecx, eax
and ecx, 0xfc0
xor ecx, eax
jmp 0x1400d3f61
mov ecx, eax
and ecx, 0xfffff47f
or ecx, 0x440
mov dword [r15 + 0x304], ecx
mov edi, ebp
and cl, 0x20
neg cl
sbb eax, eax
add eax, 2
mov dword [r15], eax
jmp 0x1400d4e03
mov r8, qword [r15 + 0x10]
cmp r8, 6
jae 0x1400d3fc8
mov r9, qword [r14]
nop dword [rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1400d404d
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 6
jb 0x1400d3f90
mov r9, qword [rsp + 0xa0]
mov rcx, qword [r15 + 8]
lea rax, [r8 - 6]
mov rdx, rcx
shr rcx, 6
and rdx, qword [0x140120860]
mov qword [r15 + 0x10], rax
mov eax, edx
shl eax, 6
and edx, 0x3f
mov qword [r15 + 8], rcx
sub edx, 0xa
mov ecx, dword [r15 + 0x304]
xor eax, ecx
and eax, 0xfc0
xor eax, ecx
mov dword [r15 + 0x304], eax
cmp edx, 0x14
ja 0x1400d4066
mov dword [r15], 2
mov ecx, dword [r15 + 0x304]
mov eax, ebp
shr ecx, 6
mov edx, 0x3030
and ecx, 0x3f
shl eax, cl
mov rcx, qword [r15 + 0x40]
sub eax, 0x10
mov dword [r15 + 0x5c], eax
call qword [r15 + 0x30]
mov qword [r15 + 0x100], rax
test rax, rax
jne 0x1400d4077
lea edi, [rax - 0x1e]
jmp 0x1400d4e03
mov r9, qword [rsp + 0xa0]
lea rdx, [0x140000000]
mov edi, 2
jmp case.default.0x1400d3e23
mov edi, 0xfffffff3
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
add rax, 0x1da0
mov dword [r15], 3
mov qword [r15 + 0x108], rax
mov rcx, r15
call fcn.1400daba0
mov dword [r15], 4
lea rdx, [r15 + 8]
mov rcx, r15
call fcn.1400d5e10
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
test byte [r15 + 0x304], 6
je 0x1400d413e
mov rdx, qword [r15 + 0x10]
mov r8d, 0
mov rcx, rdx
and ecx, 7
je 0x1400d410d
mov rax, qword [r15 + 8]
lea r11, [0x140000000]
mov r8, qword [r11 + rcx*8 + 0x120830]
sub rdx, rcx
and r8, rax
mov qword [r15 + 0x10], rdx
shr rax, cl
mov qword [r15 + 8], rax
cmp rdx, 0x40
jae 0x1400d4123
mov rcx, rdx
mov rax, rbp
shl rax, cl
dec rax
and qword [r15 + 8], rax
test r8, r8
je 0x1400d413e
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
mov edi, 0xfffffff2
jmp case.default.0x1400d3e23
test byte [r15 + 0x304], 4
je 0x1400d4180
mov rax, qword [r15 + 0x2d0]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
mov dword [r15], 0xc
test rax, rax
je case.default.0x1400d3e23
movsxd rdx, dword [r15 + 0x84]
mov rcx, qword [r15 + 0x2e0]
call rax
jmp 0x1400d4e03
cmp dword [r15 + 0x84], 0
jne 0x1400d41a2
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
mov dword [r15], 0xe
jmp case.default.0x1400d3e23
mov rcx, r15
call fcn.1400d3a30
test byte [r15 + 0x304], 2
je 0x1400d41c0
mov dword [r15], 0xb
jmp 0x1400d4e03
mov r9, qword [rsp + 0xa0]
lea rdx, [0x140000000]
mov qword [r15], 0x12
lea rax, [r15 + 0x438]
mov qword [r15 + 0x410], rax
mov qword [r15 + 0x360], 0
mov qword [r15 + 0x354], 0
mov dword [r15 + 0x350], 0
movsxd rax, dword [r15 + 4]
cmp eax, 3
jl 0x1400d4227
mov r10, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x30]
mov dword [r15], 5
jmp case.default.0x1400d3e23
add rax, 0x27
lea rdx, [r15 + 8]
mov rcx, r15
lea r8, [r15 + rax*8]
call fcn.1400d63e0
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
movsxd rax, dword [r15 + 4]
inc qword [r15 + rax*8 + 0x138]
movsxd rcx, dword [r15 + 4]
cmp qword [r15 + rcx*8 + 0x138], 2
jae 0x1400d4290
lea eax, [rcx + 1]
mov dword [r15 + 4], eax
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
mov dword [r15], 0x13
movsxd rdx, dword [r15 + 4]
xor r9d, r9d
imul eax, edx, 0x278
mov qword [rsp + 0x20], r15
mov rcx, qword [r15 + rdx*8 + 0x138]
add rcx, 2
movsxd rdx, eax
mov rax, qword [r15 + 0x100]
lea r8, [rax + rdx*4]
mov rdx, rcx
call fcn.1400d78d0
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
mov dword [r15], 0x14
imul eax, dword [r15 + 4], 0x18c
mov edx, 0x1a
xor r9d, r9d
mov qword [rsp + 0x20], r15
movsxd rcx, eax
mov rax, qword [r15 + 0x108]
lea r8, [rax + rcx*4]
mov ecx, edx
call fcn.1400d78d0
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
mov dword [r15], 0x15
movsxd rdx, dword [r15 + 4]
imul eax, edx, 0x18c
cmp dword [r15 + 0x2fc], 0
lea rsi, [r15 + rdx*8]
movsxd rcx, eax
mov rax, qword [r15 + 0x108]
lea r11, [rax + rcx*4]
jne 0x1400d4448
mov r8, qword [r15 + 0x10]
cmp r8, 0xf
jae 0x1400d43c0
mov r9, qword [r14]
nop dword [rax + rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1400d4428
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 0xf
jb 0x1400d4390
mov r10, qword [0x1401208a8]
and r10, qword [r15 + 8]
movzx eax, r10b
lea r9, [r11 + rax*4]
movzx eax, byte [r11 + rax*4]
cmp al, 8
jbe 0x1400d4413
shr qword [r15 + 8], 8
lea r11, [0x140000000]
sub eax, 8
shr r10, 8
add r8, 0xfffffffffffffff8
mov qword [r15 + 0x10], r8
mov rdx, qword [r11 + rax*8 + 0x120830]
movzx eax, word [r9 + 2]
and rdx, r10
add rdx, rax
movzx eax, byte [r9 + rdx*4]
lea r9, [r9 + rdx*4]
movzx ecx, al
sub r8, rcx
shr qword [r15 + 8], cl
mov qword [r15 + 0x10], r8
movzx r10d, word [r9 + 2]
jmp 0x1400d444f
lea r8, [rsp + 0x48]
mov rcx, r11
lea rdx, [r15 + 8]
call fcn.1400d8aa0
test eax, eax
je 0x1400d450a
mov r10, qword [rsp + 0x48]
jmp 0x1400d4454
mov r10, qword [r15 + 0x130]
mov qword [rsp + 0x48], r10
mov rcx, qword [r15 + 0x10]
lea rax, [0x140000000]
movzx r9d, byte [rax + r10*4 + 0x121362]
movzx r11d, word [rax + r10*4 + 0x121360]
cmp rcx, r9
jae 0x1400d44af
mov r8, qword [r14]
nop dword [rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r8
je 0x1400d44fc
movzx eax, byte [rdx]
shl rax, cl
add rcx, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], rcx
cmp rcx, r9
jb 0x1400d4480
lea rax, [0x140000000]
mov rax, qword [rax + r9*8 + 0x120830]
sub rcx, r9
mov rdx, qword [r15 + 8]
mov qword [r15 + 0x10], rcx
and rax, rdx
add rax, r11
mov rcx, r9
shr rdx, cl
mov qword [r15 + 8], rdx
mov qword [rsi + 0x118], rax
inc dword [r15 + 4]
mov rsi, qword [rsp + 0xb0]
mov dword [r15 + 0x2fc], 0
mov dword [r15], 0x12
jmp 0x1400d4e03
mov qword [r15 + 0x130], r10
mov dword [r15 + 0x2fc], ebp
mov rsi, qword [rsp + 0xb0]
mov edi, 2
jmp 0x1400d4e03
mov rcx, qword [rsp + 0xb8]
mov r9, r15
mov r8, r10
mov rdx, r11
call fcn.1400d5120
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
mov dword [r15], 0xe
lea rdx, [0x140000000]
jmp case.default.0x1400d3e23
mov rcx, r15
call fcn.1400d9c30
jmp 0x1400d4532
mov r8, qword [r15 + 0x10]
cmp r8, 6
jae 0x1400d45b3
mov r9, qword [r14]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1400d404d
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 6
jb 0x1400d4583
mov rcx, qword [r15 + 8]
lea rax, [r8 - 6]
mov rdx, rcx
shr rcx, 6
and rdx, qword [0x140120860]
mov qword [r15 + 8], rcx
mov rcx, rdx
mov qword [r15 + 0x10], rax
and rcx, qword [0x140120840]
shr rdx, 2
shl rdx, cl
mov qword [r15 + 0x180], rcx
mov rcx, qword [r15 + 0x40]
mov qword [r15 + 0x188], rdx
mov rdx, qword [r15 + 0x138]
call qword [r15 + 0x30]
mov qword [r15 + 0x318], rax
test rax, rax
jne 0x1400d4613
lea edi, [rax - 0x15]
jmp 0x1400d4e03
mov qword [r15], 6
movsxd r10, dword [r15 + 4]
cmp r10d, dword [r15 + 0x138]
jge 0x1400d46a8
mov r11, r10
nop
mov r8, qword [r15 + 0x10]
cmp r8, 2
jae 0x1400d4670
mov r9, qword [r14]
nop dword [rax]
mov rdx, qword [r15 + 0x18]
cmp rdx, r9
je 0x1400d4800
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r15 + 8], rax
lea rax, [rdx + 1]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x10], r8
cmp r8, 2
jb 0x1400d4640
mov rcx, qword [r15 + 8]
lea rax, [r8 - 2]
mov rdx, rcx
inc r10d
and rdx, qword [0x140120840]
mov qword [r15 + 0x10], rax
shr rcx, 2
mov qword [r15 + 8], rcx
mov rax, qword [r15 + 0x318]
mov byte [r11 + rax], dl
inc r11
cmp r10d, dword [r15 + 0x138]
jl 0x1400d4630
mov dword [r15], 0x16
mov rcx, qword [r15 + 0x138]
lea rdx, [r15 + 0x308]
shl rcx, 6
mov r9, r15
mov r8, r12
call fcn.1400d5500
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
xorps xmm0, xmm0
xor esi, esi
movups xmmword [r15 + 0x330], xmm0
movups xmmword [r15 + 0x340], xmm0
cmp qword [r15 + 0x138], rsi
jbe 0x1400d47b0
nop word [rax + rax]
mov r14, qword [r12]
mov r11, rsi
shl r11, 6
xor edi, edi
xor r10d, r10d
movzx r9d, byte [r11 + r14]
nop word [rax + rax]
lea rdx, [r14 + r10]
add r10, 4
add rdx, r11
movzx r8d, byte [rdx + 3]
movzx ecx, byte [rdx + 2]
xor r8, r9
movzx eax, byte [rdx]
xor rcx, r9
or r8, rcx
movzx ecx, byte [rdx + 1]
xor rcx, r9
or r8, rcx
mov rcx, r9
xor rcx, rax
or r8, rcx
or rdi, r8
cmp r10, 0x40
jb 0x1400d4740
test rdi, rdi
jne 0x1400d47a0
mov rax, rsi
mov ecx, esi
shr rax, 5
and ecx, 0x1f
lea rdx, [r15 + rax*4]
mov eax, dword [rdx + 0x330]
bts eax, ecx
mov dword [rdx + 0x330], eax
inc rsi
cmp rsi, qword [r15 + 0x138]
jb 0x1400d4720
mov rsi, qword [rsp + 0xb0]
mov dword [r15], 0x17
mov r10, qword [r15 + 0x180]
mov eax, 0x18
mov r8, qword [r15 + 0x188]
lea rcx, [r10 + 1]
shl eax, cl
lea rbp, [r8 + 0x10]
add rbp, rax
test byte [r15 + 0x304], 0x20
mov r12, rbp
je 0x1400d4876
cmp r8d, 0x7ffffffc
jb 0x1400d480e
mov edx, 0x8000000c
jmp 0x1400d4861
mov dword [r15 + 4], r10d
mov edi, 2
jmp 0x1400d4e03
mov ecx, r10d
mov edx, 0x7ffffffc
sub edx, r8d
mov r9d, 1
shr edx, cl
xor eax, eax
shl r9d, cl
add edx, 4
mov ecx, edx
dec r9d
shr ecx, 1
je 0x1400d4838
inc eax
shr ecx, 1
jne 0x1400d4832
lea ecx, [rax - 1]
shr edx, cl
lea eax, [rax*2 - 4]
and edx, 1
or edx, eax
jne 0x1400d4851
lea edx, [r8 + 0x10]
jmp 0x1400d4861
dec edx
mov ecx, r10d
shl edx, cl
or edx, r9d
add edx, 0x11
add edx, r8d
mov ebp, 0x3e
mov r12d, edx
lea rcx, [r10 + 1]
shl ebp, cl
add rbp, 0x10
add rbp, r8
mov rcx, qword [r15 + 0x148]
lea r8, [r15 + 0x198]
shl rcx, 2
lea rdx, [r15 + 0x190]
mov r9, r15
call fcn.1400d5500
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne 0x1400d3d00
mov rax, qword [r15 + 0x308]
lea rdx, [r15 + 0xb8]
mov r9d, 0x100
mov qword [rsp + 0x20], rax
mov r8d, r9d
mov rcx, r15
call fcn.1400da7f0
mov rcx, qword [r15 + 0x140]
lea rdx, [r15 + 0xd0]
mov r9d, 0x2c0
mov qword [rsp + 0x20], rcx
mov rcx, r15
mov r8d, r9d
mov edi, eax
call fcn.1400da7f0
mov rcx, qword [r15 + 0x190]
lea rdx, [r15 + 0xe8]
mov qword [rsp + 0x20], rcx
mov esi, eax
mov rcx, r15
mov r9, r12
mov r8, rbp
and esi, edi
call fcn.1400da7f0
and eax, esi
test al, 1
je 0x1400d4ef5
mov rsi, qword [rsp + 0xb0]
mov qword [r15], 0x18
mov ecx, dword [r15 + 4]
test ecx, ecx
je 0x1400d496a
sub ecx, 1
je 0x1400d4963
cmp ecx, 1
jne 0x1400d4eff
mov eax, 0xe8
jmp 0x1400d496f
mov eax, 0xd0
jmp 0x1400d496f
mov eax, 0xb8
lea rcx, [r15 + rax]
mov rdx, r15
call fcn.1400d65a0
mov r14, qword [rsp + 0x38]
mov edi, eax
mov r9, qword [rsp + 0xa0]
lea r12, [r15 + 0x310]
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne 0x1400d3d0c
inc dword [r15 + 4]
lea r12, [r15 + 0x310]
cmp dword [r15 + 4], 3
lea rdx, [0x140000000]
jl 0x1400d3d0c
mov dword [r15], 0x19
lea r12, [r15 + 0x310]
mov r9, qword [r15 + 0x158]
movzx ecx, r9b
mov r8, r9
and cl, 0x1f
shl r8, 6
add r8, qword [r12]
mov rax, r9
shr rax, 5
mov qword [r15 + 0xa8], r8
mov edx, dword [r15 + rax*4 + 0x330]
mov rax, qword [r15 + 0xb8]
shr rdx, cl
and edx, 1
mov dword [r15 + 0x110], edx
movzx ecx, byte [r8]
mov rcx, qword [rax + rcx*8]
mov rax, qword [r15 + 0x318]
mov qword [r15 + 0x1a0], rcx
movzx ecx, byte [rax + r9]
lea rax, [0x1401213d0]
and ecx, 3
shl rcx, 9
add rcx, rax
mov rax, qword [r15 + 0x198]
mov qword [r15 + 0xb0], rax
mov rax, qword [r15 + 0xd0]
mov qword [r15 + 0xa0], rcx
mov rcx, qword [rax]
mov qword [r15 + 0x98], rcx
mov rcx, r15
call fcn.1400d4f80
test eax, eax
jne 0x1400d4a8a
mov r14, qword [rsp + 0x38]
lea edi, [rax - 0x1b]
lea ebp, [rax + 1]
jmp 0x1400d4e03
mov r12, qword [r15 + 0x180]
lea r11, [r15 + 0x350]
mov r13, qword [r15 + 0x188]
mov edx, 1
movzx r14d, word [r15 + 0xfa]
mov rcx, r12
mov edi, edx
xor ebp, ebp
shl edi, cl
mov r9d, edx
lea r8d, [rdx + 0xf]
test r13, r13
je 0x1400d4af7
mov rsi, 0xfffffffffffffff1
lea rcx, [r11 + 0x10]
sub rsi, r11
lea rdx, [r11 + 0x2a0]
mov r10, r13
lea r8, [r13 + 0x10]
nop dword [rax]
mov byte [rcx], bpl
lea rax, [rsi + rcx]
mov qword [rdx], rax
lea rdx, [rdx + 8]
lea rcx, [rcx + 1]
sub r10, r9
jne 0x1400d4ae0
cmp r8, r14
jae 0x1400d4b56
nop dword [rax]
mov rcx, r9
lea r10, [rbp + 2]
shl r10, cl
mov rcx, r12
sub r10, 4
shl r10, cl
xor ecx, ecx
inc r10
add r10, r13
test rdi, rdi
je 0x1400d4b4a
lea rdx, [r11 + 0x220]
lea rdx, [rdx + r8*8]
nop dword [rax]
mov byte [r8 + r11], r9b
lea rax, [r10 + rcx]
inc r8
mov qword [rdx], rax
inc rcx
lea rdx, [rdx + 8]
cmp rcx, rdi
jb 0x1400d4b30
add r9, rbp
xor rbp, 1
cmp r8, r14
jb 0x1400d4b00
mov r13, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov dword [r15], 7
mov rcx, r15
call fcn.1400d6c10
mov r14, qword [rsp + 0x38]
mov edi, eax
mov r9, qword [rsp + 0xa0]
mov ebp, 1
mov r10, qword [rsp + 0xc8]
lea r12, [r15 + 0x310]
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
cmp eax, 2
jne case.default.0x1400d3e23
mov rcx, r15
call fcn.1400d8b40
mov edi, eax
lea r12, [r15 + 0x310]
jmp 0x1400d4e03
mov rdx, qword [rsp + 0xb8]
mov r9, r10
mov r8, r11
mov dword [rsp + 0x20], 0
mov rcx, r15
call fcn.1400d9de0
mov r9, qword [rsp + 0xa0]
mov edi, eax
mov r10, qword [rsp + 0xc8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1400d3e23
mov rcx, r15
call fcn.1400d9da0
mov ecx, dword [r15 + 0x304]
mov eax, ebp
shr ecx, 6
and ecx, 0x3f
shl eax, cl
cmp dword [r15 + 0x64], eax
jne 0x1400d4c2f
mov eax, dword [r15 + 0x5c]
mov dword [r15 + 0x60], eax
mov eax, dword [r15]
cmp eax, 0xf
jne 0x1400d4ca2
mov rcx, qword [r15 + 0x328]
test rcx, rcx
je 0x1400d4c85
mov eax, dword [rcx + 0x14]
cmp dword [rcx + 0x10], eax
je 0x1400d4c85
mov edx, dword [r15 + 0x58]
mov rcx, r15
call fcn.1400d5050
add dword [r15 + 0x58], eax
lea rdx, [0x140000000]
mov eax, dword [r15 + 0x58]
mov r9, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x30]
cmp eax, dword [r15 + 0x64]
jge case.default.0x1400d3e23
cmp dword [r15 + 0x84], 0
mov eax, 0xe
mov ecx, 7
cmovne eax, ecx
mov dword [r15], eax
jmp 0x1400d4e03
cmp eax, 0x10
jne 0x1400d4cb4
mov eax, 0xa
mov dword [r15], eax
jmp 0x1400d4e03
cmp dword [r15 + 4], 0
jne 0x1400d4cd8
cmp dword [r15 + 0x84], 0
mov eax, 0xe
mov ecx, 9
cmovne eax, ecx
mov dword [r15], eax
jmp 0x1400d4e03
mov eax, 8
mov dword [r15], eax
jmp 0x1400d4e03
cmp dword [r15 + 0x84], 0
jge 0x1400d4cf9
mov edi, 0xfffffff6
jmp case.default.0x1400d3e23
mov rcx, r15
call fcn.1400da960
test byte [r15 + 0x304], 1
jne 0x1400d4d17
mov dword [r15], 3
jmp 0x1400d4e03
mov r9, qword [r15 + 0x10]
mov edx, 0
mov rcx, r9
and ecx, 7
je 0x1400d4d4c
mov rax, qword [r15 + 8]
lea r11, [0x140000000]
mov rdx, qword [r11 + rcx*8 + 0x120830]
sub r9, rcx
and rdx, rax
mov qword [r15 + 0x10], r9
shr rax, cl
mov qword [r15 + 8], rax
cmp r9, 0x40
jae 0x1400d4d62
mov rcx, r9
mov rax, rbp
shl rax, cl
dec rax
and qword [r15 + 8], rax
test rdx, rdx
je 0x1400d4d71
mov edi, 0xfffffff1
jmp 0x1400d4e03
cmp qword [r15 + 0x50], 0
jne 0x1400d4dca
mov r10, qword [r15 + 0x18]
mov rdx, r9
shr rdx, 3
mov rax, r10
sub rax, rdx
test rdx, rdx
cmovne r10, rax
lea r8, [rdx*8]
sub r9, r8
mov qword [r15 + 0x18], r10
mov qword [r15 + 0x10], r9
cmp r9, 0x40
jae 0x1400d4db9
mov rcx, r9
mov rax, rbp
shl rax, cl
dec rax
and qword [r15 + 8], rax
mov rax, qword [r14]
sub rax, r10
mov qword [r13], rax
mov rax, qword [r15 + 0x18]
mov qword [rsi], rax
mov dword [r15], 0x1a
cmp qword [r15 + 0x88], 0
je 0x1400d4e26
mov r9, qword [rsp + 0xc8]
mov rcx, r15
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xb8]
mov dword [rsp + 0x20], ebp
call fcn.1400d9de0
mov edi, eax
cmp eax, 1
je 0x1400d4e26
mov r9, qword [rsp + 0xa0]
lea rdx, [0x140000000]
mov r10, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x30]
jmp case.default.0x1400d3e23
mov edi, eax
mov edx, edi
mov r8, qword [rsp + 0x40]
mov rcx, r15
sub r8, qword [r13]
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
add rsp, 0x68
pop r15
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1400d9be0
mov rax, qword [r15 + 0x18]
mov qword [rsi], rax
mov rax, qword [r14]
sub rax, qword [r15 + 0x18]
mov qword [r13], rax
je 0x1400d4e26
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsi]
mov rcx, qword [r15 + 0x50]
movzx eax, byte [rax]
mov byte [r15 + rcx + 0x48], al
inc qword [r15 + 0x50]
inc qword [rsi]
sub qword [r13], 1
jne 0x1400d4e70
jmp 0x1400d4e26
cmp qword [r15 + 0x50], 0
je 0x1400d4ea0
mov qword [r15 + 0x50], 0
jmp 0x1400d4e26
mov rcx, qword [r15 + 0x10]
mov r9, qword [r15 + 0x18]
mov rdx, rcx
shr rdx, 3
mov rax, r9
sub rax, rdx
test rdx, rdx
cmovne r9, rax
lea r8, [rdx*8]
sub rcx, r8
mov qword [r15 + 0x18], r9
mov qword [r15 + 0x10], rcx
cmp rcx, 0x40
jae 0x1400d4edf
shl rbp, cl
dec rbp
and qword [r15 + 8], rbp
mov rax, qword [r14]
sub rax, r9
mov qword [r13], rax
mov rax, qword [r15 + 0x18]
mov qword [rsi], rax
jmp 0x1400d4e26
mov edx, 0xffffffea
jmp 0x1400d4e28
mov edx, 0xffffffe1
jmp 0x1400d4e28
add qword [rcx + 0x2e8], r8
cmp qword [rcx + 0x50], 0
mov dword [rcx + 0x80], edx
je 0x1400d9c06
mov rax, qword [rcx + 0x28]
cmp qword [rcx + 0x18], rax
jne 0x1400d9c06
mov qword [rcx + 0x50], 0
sub edx, 1
je 0x1400d9c24
sub edx, 1
je 0x1400d9c1e
cmp edx, 1
je 0x1400d9c18
xor eax, eax
ret
mov eax, 3
ret
mov eax, 2
ret
mov eax, 1
ret