Function at 0x1400a3930
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2d8
mov qword [rsp + 0x1e8], r8
mov qword [rsp + 0x110], rcx
lea rax, [rdx + 0x38]
mov qword [rsp + 0x1e0], rax
mov rsi, qword [rdx + 0x38]
mov qword [rsp + 0x50], rdx
mov qword [rdx + 0x38], 0
test rsi, rsi
je 0x1400a3c63
mov qword [rsp + 0x1f0], rsi
movzx eax, byte [rsi + 0x78]
test al, al
jne 0x1400a39e1
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
call qword [rdx]
mov cl, 1
xchg byte [rsi + 0x58], cl
test cl, cl
je 0x1400a39ae
mov rcx, rdx
call qword [rax + 0x18]
jmp 0x1400a39e1
mov r14, rdx
mov r15, rax
mov rax, qword [rsi + 0x48]
test rax, rax
je 0x1400a39c8
lea rdi, [rsi + 0x58]
mov rcx, qword [rsi + 0x50]
call qword [rax + 0x18]
mov qword [rsi + 0x48], r15
mov qword [rsi + 0x50], r14
xor eax, eax
xchg byte [rsi + 0x58], al
movzx eax, byte [rsi + 0x78]
test al, al
je 0x1400a4b0e
mov bl, 1
mov al, 1
xchg byte [rsi + 0x40], al
test al, al
jne 0x1400a4aee
lea rax, [rsi + 0x10]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
mov byte [rsi + 0x39], 2
add rsi, 0x40
movzx eax, byte [rsp + 0xa9]
cmp al, 2
jne 0x1400a3a47
lea rcx, [rsp + 0x80]
call fcn.140087c40
xor eax, eax
xchg byte [rsi], al
jmp 0x1400a4aee
movups xmm0, xmmword [rsp + 0x99]
movups xmmword [rsp + 0x1b9], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x1b0], xmm1
movaps xmmword [rsp + 0x1a0], xmm0
mov ecx, dword [rsp + 0xaa]
mov dword [rsp + 0x70], ecx
movzx ecx, word [rsp + 0xae]
mov word [rsp + 0x74], cx
xor ecx, ecx
xchg byte [rsi], cl
movaps xmm0, xmmword [rsp + 0x1a0]
movdqa xmm1, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x150], xmm0
movdqu xmm0, xmmword [rsp + 0x1b9]
movdqu xmmword [rsp + 0x169], xmm0
movdqa xmmword [rsp + 0x160], xmm1
mov byte [rsp + 0x179], al
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x17a], eax
movzx eax, word [rsp + 0x74]
mov word [rsp + 0x17e], ax
mov rax, qword [rsp + 0x150]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x1400a4aa2
mov r8, qword [rsp + 0x50]
mov rdx, qword [r8 + 0x30]
lea rcx, [rsp + 0x80]
lea r9, [rsp + 0x150]
call fcn.1400a9c20
movzx ebx, byte [rsp + 0x80]
movups xmm0, xmmword [rsp + 0x81]
movaps xmmword [rsp + 0x260], xmm0
movups xmm0, xmmword [rsp + 0x91]
movaps xmmword [rsp + 0x270], xmm0
movups xmm0, xmmword [rsp + 0xa1]
movaps xmmword [rsp + 0x280], xmm0
movups xmm0, xmmword [rsp + 0xb1]
movaps xmmword [rsp + 0x290], xmm0
movups xmm0, xmmword [rsp + 0xc1]
movaps xmmword [rsp + 0x2a0], xmm0
movdqu xmm0, xmmword [rsp + 0xd1]
movdqa xmmword [rsp + 0x2b0], xmm0
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x2bf], rax
movzx esi, byte [rsp + 0xe8]
mov eax, dword [rsp + 0xe9]
mov dword [rsp + 0x120], eax
mov eax, dword [rsp + 0xec]
mov dword [rsp + 0x123], eax
lea rcx, [rsp + 0x1f0]
call fcn.1400a9b80
cmp esi, 4
je 0x1400a4ed1
cmp esi, 3
je 0x1400a3c63
cmp esi, 2
je 0x1400a4afb
mov rax, qword [rsp + 0x2bf]
mov rdx, qword [rsp + 0x110]
mov qword [rdx + 0x60], rax
movaps xmm0, xmmword [rsp + 0x2b0]
movups xmmword [rdx + 0x51], xmm0
movaps xmm0, xmmword [rsp + 0x2a0]
movups xmmword [rdx + 0x41], xmm0
movdqa xmm0, xmmword [rsp + 0x260]
movdqa xmm1, xmmword [rsp + 0x270]
movdqa xmm2, xmmword [rsp + 0x280]
movdqa xmm3, xmmword [rsp + 0x290]
movdqu xmmword [rdx + 0x31], xmm3
movdqu xmmword [rdx + 0x21], xmm2
movdqu xmmword [rdx + 0x11], xmm1
movdqu xmmword [rdx + 1], xmm0
mov eax, dword [rsp + 0x120]
mov ecx, dword [rsp + 0x123]
mov dword [rdx + 0x69], eax
mov dword [rdx + 0x6c], ecx
mov byte [rdx], bl
mov byte [rdx + 0x68], sil
jmp 0x1400a4edd
mov rax, qword [rsp + 0x50]
mov rbx, qword [rax + 0x30]
test rbx, rbx
je 0x1400a4ec5
lea rsi, [rbx + 0x10]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rbx + 0x10], cl
jne 0x1400a4f61
movabs rcx, 0x8000000000000001
mov rax, qword [0x1402f31c8]
add rcx, 0xfffffffffffffffe
mov qword [rsp + 0x250], rcx
test rax, rcx
jne 0x1400a4f6e
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x118], rsi
movzx eax, byte [rbx + 0x11]
test al, al
jne 0x1400a4f8d
cmp qword [rbx + 0x70], 0
mov qword [rsp + 0x40], rbx
je 0x1400a4247
mov rax, qword [rbx + 0xd8]
mov qword [rsp + 0x38], rax
mov eax, dword [rbx + 0xe0]
mov dword [rsp + 0x108], eax
mov rcx, qword [rbx + 0x78]
mov rdx, qword [rbx + 0x80]
mov rsi, qword [rsp + 0x50]
mov r8, rsi
call fcn.1400a8120
mov rcx, qword [rbx + 0x58]
mov rdx, qword [rbx + 0x60]
mov r8, rax
shr r8, 0x39
movd xmm0, r8d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movzx r9d, byte [rsi]
mov r8, qword [rsi + 8]
mov qword [rsp + 0x60], r8
movzx r8d, byte [rsi + 1]
mov byte [rsp + 0x58], r8b
mov r11, qword [rsi + 0x18]
mov rsi, qword [rsi + 0x20]
xor r8d, r8d
mov qword [rsp + 0x48], r8
pcmpeqd xmm1, xmm1
mov dword [rsp + 0x68], r9d
and rax, rdx
movdqu xmm2, xmmword [rcx + rax]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb edi, xmm3
test edi, edi
jne 0x1400a3dcd
pcmpeqb xmm2, xmm1
pmovmskb edi, xmm2
test edi, edi
mov rbx, qword [rsp + 0x40]
jne 0x1400a4247
mov r8, qword [rsp + 0x48]
add rax, r8
add rax, 0x10
add r8, 0x10
mov qword [rsp + 0x48], r8
jmp 0x1400a3d5d
test bl, bl
je 0x1400a518a
lea edi, [rbp - 1]
and edi, ebp
test di, di
mov rcx, rdx
mov rdx, r12
mov r9d, dword [rsp + 0x68]
je 0x1400a3d75
mov ebp, edi
tzcnt edi, ebp
add rdi, rax
mov r12, rdx
and rdi, rdx
neg rdi
lea rdi, [rdi + rdi*8]
mov rdx, rcx
lea rcx, [rcx + rdi*8]
cmp r9d, 1
je 0x1400a3e80
cmp r9d, 2
jne 0x1400a518a
mov r8, rcx
movzx ebx, byte [r8 - 0x48]
cmp bl, 2
jne 0x1400a3db0
mov rcx, r8
mov r9, qword [rsp + 0x60]
mov rbx, qword [r9 + 0x10]
mov r14, qword [r8 - 0x40]
cmp rbx, qword [r14 + 0x10]
jne 0x1400a3db8
mov rcx, qword [rsp + 0x60]
mov rdi, qword [rcx + 8]
mov r13, qword [r14 + 8]
xor r14d, r14d
nop word cs:[rax + rax]
cmp rbx, r14
je 0x1400a3eac
movzx r15d, byte [rdi + r14]
movzx r10d, byte [r13 + r14]
inc r14
lea r9d, [r15 - 0x41]
cmp r9b, 0x1a
setb r9b
shl r9b, 5
lea ecx, [r10 - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or r9b, r15b
or cl, r10b
cmp r9b, cl
je 0x1400a3e40
jmp 0x1400a3db8
movzx ebx, byte [rcx - 0x48]
cmp bl, 1
jne 0x1400a3db0
mov r8, rcx
movzx ebx, byte [rcx - 0x47]
cmp byte [rsp + 0x58], 0
je 0x1400a3ea4
test bl, bl
jne 0x1400a3eac
jmp 0x1400a3db8
test bl, bl
jne 0x1400a3db8
cmp rsi, qword [r8 - 0x28]
jne 0x1400a3db8
mov rdi, qword [r8 - 0x30]
xor ebx, ebx
nop dword [rax]
cmp rsi, rbx
je 0x1400a3f02
movzx ecx, byte [r11 + rbx]
movzx r9d, byte [rdi + rbx]
inc rbx
lea r10d, [rcx - 0x41]
cmp r10b, 0x1a
setb r10b
shl r10b, 5
lea r14d, [r9 - 0x41]
cmp r14b, 0x1a
setb r14b
shl r14b, 5
or r10b, cl
or r14b, r9b
cmp r10b, r14b
je 0x1400a3ec0
jmp 0x1400a3db8
mov rax, qword [r8 - 8]
test rax, rax
mov edi, dword [rsp + 0x108]
je 0x1400a421d
mov r14, r8
dec rax
mov qword [r8 - 8], rax
mov rcx, qword [r8 - 0x10]
shl rax, 6
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm1, xmmword [rcx + rax + 0x10]
movdqu xmm2, xmmword [rcx + rax + 0x20]
movdqu xmm3, xmmword [rcx + rax + 0x30]
movdqa xmmword [rsp + 0x180], xmm3
movdqa xmmword [rsp + 0x170], xmm2
movdqa xmmword [rsp + 0x160], xmm1
movdqa xmmword [rsp + 0x150], xmm0
cmp dword [rsp + 0x188], 0x3b9aca00
je 0x1400a4228
add rcx, rax
movdqu xmm0, xmmword [rcx]
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm2, xmmword [rcx + 0x20]
movdqu xmm3, xmmword [rcx + 0x30]
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmmword [rsp + 0xb0], xmm3
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x1400a4044
mov rsi, qword [rsp + 0xb0]
mov ebx, dword [rsp + 0xb8]
cmp edi, 0x3b9aca00
je 0x1400a4b34
call fcn.14016ea40
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x128], edx
lea rcx, [rsp + 0x120]
mov rdx, rsi
mov r8d, ebx
call fcn.14016ebc0
xor ecx, ecx
cmp edx, 0x3b9aca00
cmove edx, ecx
cmove rax, rcx
xor ecx, ecx
cmp rax, qword [rsp + 0x38]
setne cl
mov eax, 0xff
cmovb ecx, eax
xor r8d, r8d
cmp edx, edi
setne r8b
cmovb r8d, eax
test cl, cl
cmovne r8d, ecx
cmp r8b, 1
jne 0x1400a4b34
mov rsi, qword [rsp + 0x98]
test rsi, rsi
je 0x1400a4083
mov r13, qword [rsp + 0xa0]
mov rcx, rsi
call qword [r13]
cmp qword [r13 + 8], 0
je 0x1400a4083
cmp qword [r13 + 0x10], 0x11
jb 0x1400a4072
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402f3170]
xor edx, edx
mov r8, rsi
call fcn.1401d7c44
lea rcx, [rsp + 0x80]
call fcn.1400853b0
mov rax, qword [r14 - 8]
test rax, rax
je 0x1400a421d
lea r12, [rsp + 0x120]
xor ebp, ebp
mov r15d, 0xff
dec rax
mov qword [r14 - 8], rax
mov rcx, qword [r14 - 0x10]
shl rax, 6
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm1, xmmword [rcx + rax + 0x10]
movdqu xmm2, xmmword [rcx + rax + 0x20]
movdqu xmm3, xmmword [rcx + rax + 0x30]
movdqa xmmword [rsp + 0x180], xmm3
movdqa xmmword [rsp + 0x170], xmm2
movdqa xmmword [rsp + 0x160], xmm1
movdqa xmmword [rsp + 0x150], xmm0
cmp dword [rsp + 0x188], 0x3b9aca00
je 0x1400a4228
add rcx, rax
movdqu xmm0, xmmword [rcx]
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm2, xmmword [rcx + 0x20]
movdqu xmm3, xmmword [rcx + 0x30]
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmmword [rsp + 0xb0], xmm3
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x1400a41c4
mov rsi, qword [rsp + 0xb0]
mov ebx, dword [rsp + 0xb8]
cmp edi, 0x3b9aca00
je 0x1400a4b34
call fcn.14016ea40
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x128], edx
mov rcx, r12
mov rdx, rsi
mov r8d, ebx
call fcn.14016ebc0
cmp edx, 0x3b9aca00
cmove edx, ebp
cmove rax, rbp
xor ecx, ecx
cmp rax, qword [rsp + 0x38]
setne cl
cmovb ecx, r15d
xor eax, eax
cmp edx, edi
setne al
cmovb eax, r15d
test cl, cl
cmovne eax, ecx
cmp al, 1
jne 0x1400a4b34
mov rsi, qword [rsp + 0x98]
test rsi, rsi
je 0x1400a4203
mov r13, qword [rsp + 0xa0]
mov rcx, rsi
call qword [r13]
cmp qword [r13 + 8], 0
je 0x1400a4203
cmp qword [r13 + 0x10], 0x11
jb 0x1400a41f2
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402f3170]
xor edx, edx
mov r8, rsi
call fcn.1401d7c44
lea rcx, [rsp + 0x80]
call fcn.1400853b0
mov rax, qword [r14 - 8]
test rax, rax
jne 0x1400a40ad
mov dword [rsp + 0x188], 0x3b9aca00
lea rcx, [rsp + 0x150]
call fcn.1400a9ce0
mov dword [rsp + 0x188], 0x3b9aca00
mov rbx, qword [rsp + 0x40]
jmp 0x1400a4252
mov dword [rsp + 0x188], 0x3b9aca00
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x1d0], rax
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x1c0], xmm2
movdqa xmmword [rsp + 0x1b0], xmm1
movdqa xmmword [rsp + 0x1a0], xmm0
mov dword [rsp + 0x1d8], 0x3b9aca00
mov dword [rsp + 0x38], 0x3b9aca00
mov dword [rsp + 0x7c], 0
mov rcx, qword [rbx + 0x78]
mov rdx, qword [rbx + 0x80]
mov rdi, qword [rsp + 0x50]
mov r8, rdi
call fcn.1400a8120
mov rcx, qword [rbx + 0x58]
mov r8, qword [rbx + 0x60]
mov qword [rsp + 0x68], r8
and r8, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movzx r9d, byte [rdi]
mov rax, qword [rdi + 8]
mov qword [rsp + 0x48], rax
movzx eax, byte [rdi + 1]
mov byte [rsp + 0x108], al
mov rsi, qword [rdi + 0x18]
mov r15, qword [rdi + 0x20]
xor edx, edx
pcmpeqd xmm1, xmm1
mov qword [rsp + 0x58], rcx
movdqu xmm2, xmmword [rcx + r8]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb eax, xmm3
test eax, eax
mov qword [rsp + 0x60], rdx
jne 0x1400a437f
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x1400a4625
add r8, rdx
add r8, 0x10
add rdx, 0x10
and r8, qword [rsp + 0x68]
jmp 0x1400a431c
test dil, dil
je 0x1400a516d
lea eax, [r13 - 1]
and eax, r13d
test ax, ax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
je 0x1400a4337
mov r13d, eax
tzcnt ebx, r13d
add rbx, r8
and rbx, qword [rsp + 0x68]
mov rax, rbx
neg rax
lea rax, [rax + rax*8]
lea rax, [rcx + rax*8]
cmp r9d, 1
je 0x1400a4420
cmp r9d, 2
jne 0x1400a516d
movzx edi, byte [rax - 0x48]
cmp dil, 2
jne 0x1400a4360
mov rcx, qword [rsp + 0x48]
mov rbp, qword [rcx + 0x10]
mov r14, qword [rax - 0x40]
cmp rbp, qword [r14 + 0x10]
jne 0x1400a4369
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rcx + 8]
mov r14, qword [r14 + 8]
xor r12d, r12d
nop
cmp rbp, r12
je 0x1400a444f
movzx r11d, byte [rdi + r12]
movzx r10d, byte [r14 + r12]
inc r12
lea ecx, [r11 - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
lea edx, [r10 - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or cl, r11b
or dl, r10b
cmp cl, dl
je 0x1400a43e0
jmp 0x1400a4369
movzx edi, byte [rax - 0x48]
cmp dil, 1
jne 0x1400a4360
movzx edi, byte [rax - 0x47]
cmp byte [rsp + 0x108], 0
je 0x1400a4446
test dil, dil
jne 0x1400a444f
jmp 0x1400a4369
test dil, dil
jne 0x1400a4369
cmp r15, qword [rax - 0x28]
jne 0x1400a4369
mov rdi, qword [rax - 0x30]
xor r14d, r14d
cmp r15, r14
je 0x1400a44a2
movzx ecx, byte [rsi + r14]
movzx edx, byte [rdi + r14]
inc r14
lea r10d, [rcx - 0x41]
cmp r10b, 0x1a
setb r10b
shl r10b, 5
lea r11d, [rdx - 0x41]
cmp r11b, 0x1a
setb r11b
shl r11b, 5
or r10b, cl
or r11b, dl
cmp r10b, r11b
je 0x1400a4460
jmp 0x1400a4369
shl rbx, 3
lea rcx, [rbx + rbx*8]
sar rcx, 3
movabs r8, 0x8e38e38e38e38e39
imul r8, rcx
lea r9, [r8 - 0x10]
and r9, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x58]
movdqu xmm0, xmmword [rsi + r9]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb r10d, xmm0
movdqu xmm0, xmmword [rsi + r8]
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
test r10d, r10d
je 0x1400a4500
bsr r10w, r10w
xor r10d, 0xf
jmp 0x1400a4505
mov r10w, 0x10
mov r11, qword [rsp + 0x40]
or edx, 0x10000
tzcnt ecx, edx
add r10d, ecx
mov dl, pe_nt_image_headers64
cmp r10w, 0xf
ja 0x1400a4526
inc qword [r11 + 0x68]
mov dl, 0xff
mov byte [rsi + r8], dl
mov byte [rsi + r9 + 0x10], dl
dec qword [r11 + 0x70]
movdqu xmm0, xmmword [rax - 0x48]
movdqu xmm1, xmmword [rax - 0x38]
movdqu xmm2, xmmword [rax - 0x28]
movdqu xmm3, xmmword [rax - 0x18]
movdqa xmmword [rsp + 0xb0], xmm3
mov rax, qword [rax - 8]
mov qword [rsp + 0xc0], rax
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
movabs rax, 0x8000000000000001
dec rax
cmp qword [rsp + 0xb0], rax
je 0x1400a4625
mov rdi, rax
lea rax, [rsp + 0xb0]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x130], rcx
movdqu xmm0, xmmword [rax]
movdqa xmmword [rsp + 0x120], xmm0
cmp byte [rsp + 0x80], 2
jb 0x1400a45eb
mov rsi, qword [rsp + 0x88]
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
lea rcx, [rsi + 0x18]
mov r8, qword [rsi + 0x10]
call qword [rax + 0x18]
mov rcx, qword [0x1402f3170]
xor edx, edx
mov r8, rsi
call fcn.1401d7c44
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
lea rcx, [rsp + 0xa8]
mov r8, qword [rsp + 0xa0]
call qword [rax + 0x18]
cmp qword [rsp + 0x120], rdi
je 0x1400a4625
lea rcx, [rsp + 0x120]
call fcn.140085270
mov ecx, dword [rsp + 0x38]
cmp ecx, 0x3b9aca00
mov rax, qword [rsp + 0x1e0]
jne 0x1400a4a9b
cmp qword [rax], 0
mov ebx, ecx
jne 0x1400a4db6
mov qword [rsp + 0x80], 1
mov qword [rsp + 0x88], 1
mov byte [rsp + 0xb9], 2
mov byte [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov byte [rsp + 0xf0], 0
mov byte [rsp + 0xf8], 0
movzx eax, byte [0x1402f31d1]
mov edx, pe_nt_image_headers64
xor ecx, ecx
call fcn.14018e330
test rax, rax
je 0x1400a51be
mov rdi, rax
movups xmm0, xmmword [rsp + 0xf0]
movups xmmword [rax + 0x70], xmm0
movups xmm0, xmmword [rsp + 0xe0]
movups xmmword [rax + 0x60], xmm0
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rax + 0x50], xmm0
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rax + 0x40], xmm0
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqu xmm3, xmmword [rsp + 0xb0]
movdqu xmmword [rax + 0x30], xmm3
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
lock inc qword [rax]
mov rsi, qword [rsp + 0x40]
jle 0x1400a5211
mov qword [rsp + 0x258], rdi
mov qword [rsp + 0x70], rdi
mov bl, 1
lea rcx, [rsp + 0x80]
mov rdx, qword [rsp + 0x50]
call fcn.1400a22d0
mov qword [rsp + 0x108], rdi
lea rax, [rsi + 0x88]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0xa8]
mov qword [rsp + 0x238], rax
mov rcx, qword [rsi + 0xa8]
mov rdx, qword [rsi + 0xb0]
lea r8, [rsp + 0x80]
call fcn.1400a8120
mov rcx, rax
shr rcx, 0x39
mov r8, qword [rsi + 0x88]
mov r9, qword [rsi + 0x90]
mov rdx, r9
mov qword [rsp + 0x230], rax
and rdx, rax
mov rax, r8
mov qword [rsp + 0x248], rcx
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movzx r8d, byte [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x60], rcx
movzx ecx, byte [rsp + 0x81]
mov byte [rsp + 0x58], cl
mov r11, qword [rsp + 0x98]
xor ecx, ecx
mov r12, qword [rsp + 0xa0]
pcmpeqd xmm1, xmm1
mov qword [rsp + 0x240], rdx
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x48], rcx
movdqu xmm2, xmmword [rax + rdx]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb edi, xmm3
test edi, edi
jne 0x1400a4882
pcmpeqb xmm2, xmm1
pmovmskb r10d, xmm2
test r10d, r10d
mov rcx, qword [rsp + 0x48]
jne 0x1400a5015
add rdx, rcx
add rdx, 0x10
add rcx, 0x10
and rdx, r9
jmp 0x1400a481a
cmp r8d, 1
je 0x1400a4920
test r8d, r8d
je 0x1400a51a4
lea edi, [rbx - 1]
and edi, ebx
test di, di
mov r9, qword [rsp + 0x68]
je 0x1400a4834
mov ebx, edi
tzcnt r10d, ebx
add r10, rdx
and r10, r9
neg r10
lea r10, [r10 + r10*4]
shl r10, 4
lea r15, [rax + r10]
movzx r10d, byte [rax + r10 - 0x50]
cmp r10d, 1
je 0x1400a4860
cmp r10d, 2
jne 0x1400a51a4
cmp r8d, 2
jne 0x1400a486a
mov r10, qword [r15 - 0x48]
mov rdi, qword [r10 + 0x10]
mov rcx, qword [rsp + 0x60]
cmp rdi, qword [rcx + 0x10]
jne 0x1400a4873
mov rbp, qword [r10 + 8]
mov rcx, qword [rsp + 0x60]
mov r14, qword [rcx + 8]
xor r10d, r10d
nop dword [rax]
cmp rdi, r10
je 0x1400a493e
movzx r13d, byte [rbp + r10]
movzx r9d, byte [r14 + r10]
inc r10
lea esi, [r13 - 0x41]
cmp sil, 0x1a
setb sil
shl sil, 5
lea ecx, [r9 - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or sil, r13b
or cl, r9b
cmp sil, cl
je 0x1400a48e0
jmp 0x1400a4873
cmp byte [r15 - 0x4f], 0
je 0x1400a4933
cmp byte [rsp + 0x58], 0
jne 0x1400a493e
jmp 0x1400a4873
cmp byte [rsp + 0x58], 0
jne 0x1400a4873
cmp qword [r15 - 0x30], r12
jne 0x1400a4873
mov rdi, qword [r15 - 0x38]
xor r10d, r10d
nop
cmp r12, r10
je 0x1400a4991
movzx ecx, byte [rdi + r10]
movzx r9d, byte [r11 + r10]
inc r10
lea esi, [rcx - 0x41]
cmp sil, 0x1a
setb sil
shl sil, 5
lea ebp, [r9 - 0x41]
cmp bpl, 0x1a
setb bpl
shl bpl, 5
or sil, cl
or bpl, r9b
cmp sil, bpl
je 0x1400a4950
jmp 0x1400a4873
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x140], xmm2
movdqa xmmword [rsp + 0x130], xmm1
movdqa xmmword [rsp + 0x120], xmm0
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0xb0], r15
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xb8], rax
lea rcx, [rsp + 0x80]
mov bl, 1
call fcn.1400a8ad0
mov rdi, qword [rsp + 0x108]
mov qword [rsp + 0x80], rdi
mov rcx, qword [r15 - 0x20]
mov rax, qword [r15 - 8]
mov rsi, rdi
cmp rax, rcx
jne 0x1400a4a3c
lea rcx, [r15 - 0x20]
call fcn.14015d6f0
mov rcx, qword [r15 - 0x20]
mov rax, qword [r15 - 8]
mov rsi, qword [rsp + 0x70]
mov rdx, qword [r15 - 0x10]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [r15 - 0x18]
mov qword [rcx + rdx*8], rdi
inc rax
mov qword [r15 - 8], rax
movzx eax, byte [rsi + 0x78]
test al, al
jne 0x1400a4ce3
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
xor ebx, ebx
call qword [rdx]
mov cl, 1
xchg byte [rsi + 0x58], cl
test cl, cl
je 0x1400a4cb0
xor ebx, ebx
mov rcx, rdx
call qword [rax + 0x18]
jmp 0x1400a4ce3
mov ebx, ecx
jmp 0x1400a4db6
mov rsi, qword [rsp + 0x168]
test rsi, rsi
je 0x1400a4adf
mov rdi, qword [rsp + 0x170]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1400a4adf
cmp qword [rdi + 0x10], 0x11
jb 0x1400a4ace
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402f3170]
xor edx, edx
mov r8, rsi
call fcn.1401d7c44
mov bl, 2
lea rcx, [rsp + 0x150]
call fcn.1400853b0
lea rcx, [rsp + 0x1f0]
call fcn.1400a9b80
mov rax, qword [rsp + 0x110]
mov byte [rax], bl
mov byte [rax + 0x68], 2
jmp 0x1400a4edd
mov rsi, qword [rsp + 0x1f0]
mov rdi, qword [rsp + 0x1e0]
cmp qword [rdi], 0
je 0x1400a4b2c
mov rcx, rdi
call fcn.1400a9b80
mov qword [rdi], rsi
jmp 0x1400a4ed1
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x140], xmm2
movaps xmmword [rsp + 0x130], xmm1
movups xmm1, xmmword [rsp + 0x138]
movups xmmword [rsp + 0x1b8], xmm1
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x1c8], rax
movaps xmmword [rsp + 0x1a0], xmm0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x1b0], rax
cmp qword [r14 - 8], 0
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x160], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x168], rax
movaps xmmword [rsp + 0x150], xmm0
mov qword [rsp + 0x180], rsi
mov dword [rsp + 0x188], ebx
sete byte [rsp + 0x190]
mov eax, dword [rsp + 0x18c]
mov qword [rsp + 0x1d0], rsi
movaps xmm0, xmmword [rsp + 0x150]
mov rcx, qword [rsp + 0x160]
mov rdx, qword [rsp + 0x168]
mov r8, qword [rsp + 0x170]
mov qword [rsp + 0x1c0], r8
mov r8, qword [rsp + 0x178]
mov qword [rsp + 0x1c8], r8
mov qword [rsp + 0x1b0], rcx
mov qword [rsp + 0x1b8], rdx
movaps xmmword [rsp + 0x1a0], xmm0
mov dword [rsp + 0x1d8], ebx
mov dword [rsp + 0x1dc], eax
je 0x1400a4fd9
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x220], rax
movaps xmm0, xmmword [rsp + 0x150]
movaps xmm1, xmmword [rsp + 0x160]
movaps xmm2, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x210], xmm2
movaps xmmword [rsp + 0x200], xmm1
movaps xmmword [rsp + 0x1f0], xmm0
jmp 0x1400a4e0d
mov r14, rdx
mov r15, rax
mov rax, qword [rsi + 0x48]
test rax, rax
je 0x1400a4cca
lea rdi, [rsi + 0x58]
mov rcx, qword [rsi + 0x50]
call qword [rax + 0x18]
mov qword [rsi + 0x48], r15
mov qword [rsi + 0x50], r14
xor eax, eax
xchg byte [rsi + 0x58], al
movzx eax, byte [rsi + 0x78]
test al, al
je 0x1400a4fed
mov al, 1
xchg byte [rsi + 0x40], al
test al, al
jne 0x1400a51e0
lea rax, [rsi + 0x10]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
mov byte [rsi + 0x39], 2
add rsi, 0x40
cmp byte [rsp + 0xa9], 2
je 0x1400a51cf
movdqa xmm0, xmmword [rsp + 0x80]
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm2, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x140], xmm2
movdqa xmmword [rsp + 0x130], xmm1
movdqa xmmword [rsp + 0x120], xmm0
xor eax, eax
xchg byte [rsi], al
cmp byte [rsp + 0x149], 3
jne 0x1400a51e8
xor ebx, ebx
lea rcx, [rsp + 0x120]
call fcn.1400aa510
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x1e0]
cmp qword [rdi], 0
je 0x1400a4da5
mov rcx, rdi
call fcn.1400a9b80
mov qword [rdi], rsi
mov ebx, dword [rsp + 0x1d8]
mov ecx, dword [rsp + 0x188]
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x220], rax
movdqa xmm0, xmmword [rsp + 0x1a0]
movdqa xmm1, xmmword [rsp + 0x1b0]
movdqa xmm2, xmmword [rsp + 0x1c0]
movdqa xmmword [rsp + 0x210], xmm2
movdqa xmmword [rsp + 0x200], xmm1
movdqa xmmword [rsp + 0x1f0], xmm0
cmp ecx, 0x3b9aca00
sete al
mov ecx, dword [rsp + 0x7c]
or cl, al
je 0x1400a4e17
mov rsi, qword [rsp + 0x118]
jmp 0x1400a4e69
mov rsi, qword [rsp + 0x168]
test rsi, rsi
je 0x1400a4e54
mov rdi, qword [rsp + 0x170]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1400a4e54
cmp qword [rdi + 0x10], 0x11
jb 0x1400a4e43
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402f3170]
xor edx, edx
mov r8, rsi
call fcn.1401d7c44
lea rcx, [rsp + 0x150]
mov rsi, qword [rsp + 0x118]
call fcn.1400853b0
cmp byte [rsp + 0x34], 0
jne 0x1400a4e85
mov rax, qword [0x1402f31c8]
test qword [rsp + 0x250], rax
jne 0x1400a4ffa
xor eax, eax
xchg byte [rsi], al
cmp al, 2
jne 0x1400a4e95
mov rcx, rsi
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
cmp ebx, 0x3b9aca00
je 0x1400a4ec5
mov r8, qword [rsp + 0x50]
mov rdx, qword [r8 + 0x30]
lea rcx, [rsp + 0x260]
lea r9, [rsp + 0x1f0]
call fcn.1400a9c20
cmp byte [rsp + 0x2c8], 2
jne 0x1400a4f01
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x30], 0
je 0x1400a4ef1
mov rax, qword [rsp + 0x110]
mov byte [rax + 0x68], 3
add rsp, 0x2d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x110]
mov byte [rax], 0
jmp 0x1400a4b05
movups xmm0, xmmword [rsp + 0x2c0]
mov rax, qword [rsp + 0x110]
movups xmmword [rax + 0x60], xmm0
movups xmm0, xmmword [rsp + 0x2b0]
movups xmmword [rax + 0x50], xmm0
movups xmm0, xmmword [rsp + 0x2a0]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x260]
movups xmm1, xmmword [rsp + 0x270]
movups xmm2, xmmword [rsp + 0x280]
movups xmm3, xmmword [rsp + 0x290]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
jmp 0x1400a4edd
mov rcx, rsi
call fcn.140171b70
jmp 0x1400a3c88
call fcn.140171c20
xor al, 1
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x118], rsi
movzx eax, byte [rbx + 0x11]
test al, al
je 0x1400a3cca
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x34]
mov byte [rsp + 0x88], al
lea rax, str._home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_hyper_util_0.1.6_src_client_legacy_pool.rsunexpected_polling_after_handshake
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, fcn.14002a0f0
lea r8, [rsp + 0x80]
mov edx, 0x2b
call fcn.140033850
jmp 0x1400a5211
mov dword [rsp + 0x38], ebx
mov al, 1
mov dword [rsp + 0x7c], eax
mov rbx, qword [rsp + 0x40]
jmp 0x1400a42b3
mov byte [rsp + 0x149], 3
jmp 0x1400a4d7b
call fcn.140171c20
test al, al
jne 0x1400a4e85
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x11], 1
jmp 0x1400a4e85
mov rsi, qword [rsp + 0x40]
cmp qword [rsi + 0x98], 0
mov rcx, qword [rsp + 0x240]
jne 0x1400a5057
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x238]
call fcn.1400a9e10
mov rax, qword [rsi + 0x88]
mov r9, qword [rsi + 0x90]
mov rcx, qword [rsp + 0x230]
and rcx, r9
movups xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x140], xmm2
movdqa xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x120], xmm0
movdqu xmm0, xmmword [rax + rcx]
pmovmskb edx, xmm0
test edx, edx
mov rdi, qword [rsp + 0x108]
jne 0x1400a50bd
mov r8d, 0x10
add rcx, r8
and rcx, r9
movdqu xmm0, xmmword [rax + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x1400a50a6
tzcnt edx, edx
add rdx, rcx
and rdx, r9
movzx r8d, byte [rax + rdx]
test r8b, r8b
js 0x1400a50e2
movdqa xmm0, xmmword [rax]
pmovmskb ecx, xmm0
tzcnt edx, ecx
movzx r8d, byte [rax + rdx]
lea rcx, [rdx - 0x10]
and rcx, r9
mov r9, qword [rsp + 0x248]
mov byte [rax + rdx], r9b
mov byte [rax + rcx + 0x10], r9b
neg rdx
lea rcx, [rdx + rdx*4]
shl rcx, 4
lea r15, [rax + rcx]
and r8b, 1
movzx edx, r8b
sub qword [rsi + 0x98], rdx
movdqa xmm0, xmmword [rsp + 0x120]
movdqa xmm1, xmmword [rsp + 0x130]
movdqa xmm2, xmmword [rsp + 0x140]
movdqu xmmword [rax + rcx - 0x30], xmm2
movdqu xmmword [rax + rcx - 0x40], xmm1
movdqu xmmword [rax + rcx - 0x50], xmm0
mov qword [rax + rcx - 0x20], 0
mov qword [rax + rcx - 0x18], 8
pxor xmm0, xmm0
movdqu xmmword [rax + rcx - 0x10], xmm0
inc qword [rsi + 0xa0]
jmp 0x1400a4a0e
lea rcx, str.internal_error:_entered_unreachable_codeEndOfInput_home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rs_home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.102.5_src_der.rs
lea r8, str._home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_http_1.1.0_src_uri_scheme.rs
mov edx, 0x28
call fcn.14002e2c0
jmp 0x1400a5211
lea rcx, str.internal_error:_entered_unreachable_codeEndOfInput_home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rs_home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.102.5_src_der.rs
lea r8, str._home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_http_1.1.0_src_uri_scheme.rs
mov edx, 0x28
call fcn.14002e2c0
jmp 0x1400a5211
lea rcx, str.internal_error:_entered_unreachable_codeEndOfInput_home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rs_home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.102.5_src_der.rs
lea r8, str._home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_http_1.1.0_src_uri_scheme.rs
mov edx, 0x28
call fcn.14002e2c0
jmp 0x1400a5211
mov ecx, 8
mov edx, pe_nt_image_headers64
call fcn.140023f30
jmp 0x1400a5211
lea rcx, [rsp + 0x80]
call fcn.140087c40
xor eax, eax
xchg byte [rsi], al
mov byte [rsp + 0x149], 2
xor ebx, ebx
lea rcx, [rsp + 0x120]
call fcn.1400aa510
xor ebx, ebx
lea rcx, str.assertion_failed:_Pin::new_mut_rx_.poll_cx_.is_pending__
lea r8, str._home_rifat_.cargo_registry_src_index.crates.io_6f17d22bba15001f_hyper_util_0.1.6_src_client_legacy_pool.rsunexpected_polling_after_handshake
mov edx, 0x39
call fcn.14002e2c0
ud2