Actions

Work Header

Rating:
Archive Warning:
Category:
Fandom:
Relationship:
Characters:
Additional Tags:
Language:
English
Stats:
Published:
2022-02-27
Words:
8,300
Chapters:
1/1
Comments:
30
Kudos:
183
Bookmarks:
34
Hits:
1,717

Evil Maid Attack

Summary:

Dinesh still maintains that he won by knowing that at least there is something on Gilfoyle's phone he doesn't want anyone to see. And he tries to hold onto that, but unfortunately, Gilfoyle is right, and the secret does end up driving him to do something stupid.

Notes:

An "evil maid attack" is an attack on an unattended device, in which an attacker with physical access alters it in some undetectable way so that they can later access the device, or the data on it.

The name refers to the scenario where a maid could subvert a device left unattended in a hotel room – but the concept itself also applies to situations such as a device being intercepted while in transit, or taken away temporarily by airport or law enforcement personnel.

---

Work Text:

So Gilfoyle might have been right. Whatever. Dinesh still won in the sense that he knows there’s something Gilfoyle is hiding from the rest of them, but maybe it is eating at him a little what that thing might be.

The thing is, nobody really knows anything about Gilfoyle aside from the fact that he’s a Satanist, a coder and Canadian. Even that last one is a recent revelation. Dinesh didn’t even learn his first name until catching a glimpse of his license at a bar their first year working together in the incubator. He never offers anything up about his personal life, and half the shit that comes out of his mouth is an outright lie, and the other half is cryptic ironic bullshit. As far as Dinesh knows, whatever he’s keeping secret on his phone could be literally anything. Maybe he has a five-year-old son in Detroit. Maybe he’s a serial killer. Who fucking knows.

But Dinesh wants to know. That’s the problem. It’s killing him. He knows he should just take the win. He wants to take the win. But he can’t feel like he’s won unless he knows what it is. Is it something dangerous, or something he can make fun of? Serial killer is probably too on the nose, but maybe the guy writes fucking blackout poetry with Kindle downloads. There has to be something.

It’s unfair, really, because Dinesh fucking won. But each and every time Dinesh sees Gilfoyle scroll through his phone, he’s consumed with frustration that he was so close to learning something that could give him the upper hand, and he didn’t get to see.

For a few weeks, that’s really all there is to it. Just the all-encompassing curiosity that eats Dinesh’s time but goes nowhere. One night, drunk and angry with Gilfoyle for mocking his work again, Dinesh goes so far as to whip up a rootkit to install onto Gilfoyle’s phone. It’s honestly not a bad idea. With root access he could copy-paste all the files from Gilfoyle’s phone to Dinesh’s remotely, just like before, undetectable by whatever insane security protocols that paranoid psycho has on his phone.

Except Gilfoyle never leaves his phone out of his immediate reach, and it probably has some long alphanumeric password, and there’s no way Dinesh can easily install the rootkit onto Gilfoyle’s phone unnoticed, so nothing more comes of it after that.

At least, until he and Gilfoyle decide to stay at Keenan’s place.

Dinesh isn’t quite sure what it is that makes Gilfoyle uncommonly ditzy while they’re staying with Keenan for the weekend. Maybe it’s Keenan’s odd but persuasive charisma. Maybe it’s the working heat pulsing from the floors of every room in Keenan’s home, but Dinesh thinks maybe it’s the inordinate amounts of takeout they’re allowed to order on Keenan’s dime.

Gilfoyle doesn’t have much variety back at the incubator, and Dinesh always assumed that was by choice. When Dinesh thinks about it, Gilfoyle eats about a box of cereal a day, and Dinesh has never seen him so much as boil water for pasta, so he doubts the moron can cook. He always just seemed to prefer cereal to anything else. Like Rain Man with fish sticks on Wednesdays.

But while staying with Keenan, the guy shares the password to his DoorDash account and tells them to go wild, and honestly, it’s hard not to with that kind of encouragement. Dinesh has always thought he can pack away a lot of food, but Gilfoyle eats like he’s been starving on an island for the past ten years. And more than that, he nods off so quickly afterward, and really, it’s his own fault when he passes out on the couch right in front of Dinesh.

He sleeps like the fucking dead. Dinesh is able to fish Gilfoyle’s phone out of his pocket with relative ease. Doesn’t even twitch when Dinesh pulls on his wrist to activate the thumbprint lock. He resists the urge to just go through Gilfoyle’s phone now, and quickly moves to install the software on his phone and delete the message Dinesh sent him to get it there.

Dinesh is still sliding Gilfoyle’s phone back into his pocket when he hears a noise from downstairs, someone knocking before barging into the house. Quick as he can, Dinesh flees from the room and races downstairs, heart pounding when he hears Gilfoyle grumble awake behind him.

After everything that happens with Keenan, Dinesh forgets about Gilfoyle’s phone for a while. It’s several days after Erlich burns down the palapa in their yard that Dinesh even sees the notification, tucked in innocuously amongst about twenty others he’d left ignored: download complete: Gilfoyle_phone2. Would you like to open?

For a moment, Dinesh’s heart is in his throat. Somehow, he knows, Gilfoyle is going to find out. He just knows. Surely Gilfoyle has about thirty different protections on his phone, maybe something that works as a countervirus. What if Gilfoyle will only find out if Dinesh opens it?

Worth it.

Clicking yes, Dinesh watches the loading bar zoom from one end of the dialogue box to the other, and places various little bets for himself on what Gilfoyle could possibly be ashamed of enough and still keep on his phone. He wonders if maybe it’s something he should alert authorities about, but then the used space on his phone’s storage almost doubles, and Dinesh forgets to care.

Scrolling through his files, Dinesh is immediately frustrated when nothing seems out of the ordinary. As he scours through the erratically labeled folders of Gilfoyle’s photos, he starts to think maybe Gilfoyle was just fucking with him. There really aren’t any selfies. That’s not fair, that Gilfoyle would act as if something was hidden here when there isn’t. Gilfoyle is a dick, but Dinesh hadn’t figured he would stoop to the level of flushing his phone down the fucking toilet and losing his own in the process without real reason. He had also clocked Dinesh in the ear pretty damn hard. Not that he doesn’t expect as much from Gilfoyle, but it had hurt. All for nothing.

Growing bored, Dinesh clicks on the next folder. It’s one of the last ones in the list, and is unhelpfully labeled “80dc”

Password Locked

That piques Dinesh’s interest a bit, but not much. It’s not the first password-protected file he’s had to click through, but the other two were just various Pied Piper files. Luckily, the way the rootkit works, all the password locks are pre-filled. All Dinesh has to hit is enter.

So he does.

Immediate regret settles on his shoulders as a page of photo thumbnails load. Every photo in this folder all seems to have one thing in common.

“What… the fuck…”

It’s him. They’re all photos of Dinesh. Why are they all photos of Dinesh? Morbidly curious, he clicks one at random. Richard is in this one, too, faced away from the camera. He has his hands out, marking that flaily way he talks, and Dinesh is smirking at him. Dinesh doesn’t even recognize the moment, let alone Gilfoyle being there to take a photo. Why would he take a photo of this? Has Gilfoyle put a hit out on him? No, that’s stupid. If Gilfoyle wanted him dead, he’d do it himself. What if that’s what this is? Maybe Dinesh abandoned the idea of Gilfoyle being a serial killer too early. Probably not, but maybe this is like some sort of Satanic curse. Is Dinesh going to die in the next seven days?

Probably not. It’s been longer than seven days since Gilfoyle bashed Dinesh’s ear to keep him from seeing this, and there are way more photos than Gilfoyle can take in a day, anyway. But maybe it’s a fate worse than death. Making him invisible to women or something. He scrolls to the next photo. Still him. Face looking at something out of frame, holding a PS4 controller. Dinesh swipes to the next photo. He recognizes the angle, it must’ve been taken from Gilfoyle’s dark little corner of the incubator. Dinesh is at his monitor, in this one. Probably coding. Is Gilfoyle trying to curse his code, too? Can he do that? He would certainly try.

D.C. Dinesh Chugtai. 1980, the year he was born. For one wild moment, Dinesh is convinced there’s no way that Gilfoyle would know that without hacking government files, but then he remembers his Facebook is public for his family back in Karachi. Still, it seems weird that he’d know. Gilfoyle doesn’t even have a Facebook. How much information does Gilfoyle need to get this voodoo curse shit to work?

He continues to scroll through the photos out of some sort of deranged fascination. There’s several from the party they threw in the palapa after Keenan promised them twenty-five million. Dinesh excitedly waving a champagne glass, Dinesh arguing with Elrich about something, Dinesh struggling to balance on his own two feet after three drinks. To his credit, Dinesh notices that as the night progresses, the photos begin to get a little blurrier, so at least Gilfoyle was finally getting drunk on that champagne, too.

Scrolling through the party photos, Dinesh reaches the end of the night, and swipes to the next photo. The lighting and Dinesh’s same clothes from the night before suggests this one was taken early the following morning. Somehow, it’s the eeriest photo out of all of them.

Dinesh is asleep. Sprawled out over the couch with a blanket haphazardly over his middle.

No one has taken a photo of him sleeping before. Or at least not that he has ever found out about. It’s weird to find out about this one. It could be worse, sure — it could be a photo taken from Dinesh’s room. But he was too drunk to make it to his room that night and decided to crash on the couch when everyone else went to bed. By the time he woke up, Gilfoyle and Richard were already awake.

This photo feels starkly different from any of the others, though maybe that’s just because compared to the increasing blurriness from the last few photos, this one looks like it was taken carefully. Natural lighting coming in from the window, the angle unnervingly close. Something about this one feels like it’s a very different secret.

Panicked, Dinesh scrolls backward into the celebration photos, but after seeing the one of him sleeping, all the other photos are tainted, too. Aside from the ones Gilfoyle took while obviously drunk, these are all pretty good photos of him. If he weren’t terrified, maybe he’d steal a few for his Tinder profile. But he’s afraid to say or do anything. He’s afraid to move. Is Gilfoyle in the house? How long until he finds out what Dinesh is doing? Then Gilfoyle really is going to kill him.

He hears someone shuffling around in the kitchen and can’t shake the feeling that it’s GIlfoyle. He slips his phone back into his pocket and sneaks out into the hallway, poking his head around the corner to see Jared at the stove.

Without turning around, Jared chirps, “Hello, Dinesh!”

It’s unnerving how he does that. He and Gilfoyle have speculated that Jared may be some sort of android prototype, just short of passing the Turing Test. The thought of Gilfoyle lands a hollow sort of pit in his stomach, and he shakes the thought away.

“Jared,” he says by way of greeting.

“I’m making fried rice,” he says pleasantly, finally looking over his shoulder to meet Dinesh’s eyes. “Will you be joining us?”

“Uh…” He’s not hungry. His stomach is still lurching. He shakes his head.

“Suit yourself,” Jared answers with a bouncy little shrug, turning back to stir at the rice. “Richard says he’ll take some when he gets home. Have you seen Gil —”

“No.”

Dinesh flinches. Answering that fast was way too obvious, and Jared is a fucking bloodhound about this sort of thing. As if reading his mind, Jared glances back at Dinesh again, this time his long face contorted into over-involved concern.

“Is everything alright?” he asks mildly, “You two didn’t have another fight, did you?”

“We’re not fighting. What makes you say that? We don’t even like each other enough to fight.”

He’s still talking too quickly. He stops to take a breath. Jared narrows his eyes, a frown settling on his face. To Dinesh’s horror, he turns the heat off the stove and turns around to face Dinesh in full. “You seem very tense, Dinesh. Did something happen?”

“Nothing happened.”

“Is this about Gilfoyle’s phone?”

“What? No. Why would you think it has anything to do with stupid Gilfoyle or his stupid phone?”

Jared shrugs. He’s pouting the way he does when he’s not being taken seriously. “Your anxiety seemed to be triggered by mention of Gilfoyle. After what happened last month, it’s a natural assumption.”

“Why would that be a natural assumption? I don’t know what’s on Gilfoyle’s phone.”

Jared’s pout deepens. He drums his fingers on the edge of the stove at his back. “I know it still bothers you that you were close to learning something new about Gilfoyle and he denied you the chance.”

Dinesh rolls his eyes. “Denied me the — he punched me and flushed my phone down the toilet.

“Mm,” Jared gives him a solemn nod. “That was a regrettable outburst. But on the other hand, he did make it clear beforehand that he did not want you going through his files.”

“Do you…” Dinesh doesn’t want to admit anything. He struggles to think of a way to phrase it without giving away that he’s been snooping. “Jared, do you know what’s on his phone?”

Jared waves a hand dismissively. “I would never betray the trust the two of you put in me, Dinesh. I didn’t go through either of your phones.”

Raising his eyebrows, Dinesh points out, “Well, that’s not a no.”

Jared’s expression lands somewhere between frustrated and concerned. He looks like a cornered pigeon. His bony shoulders sag. “I may have an assumption as to what he wants kept private, but my knowledge is unintentional.”

This is getting ridiculous. “Would you fucking — what does that mean?

Jared shakes his head. “It certainly means I’m not going to discuss this topic with you unless you admit to me you went behind GIlfoyle’s back and betrayed his trust in you to find out what he wanted secret from the rest of the house.”

He’s trying to make Dinesh feel guilty. Dinesh isn’t going to admit that it’s working. He chews his lip awkwardly. “I may have done that,” he says finally, “but he’s the one taking photos of me when I’m sleeping.

There’s nothing short of disgust in Dinesh’s voice, but Jared’s only response is to tilt his head with a crooked little smile on his face. “Aw.”

Blinking, Dinesh frowns. “No, Jared.”

Jared shakes his head, waving his hand dismissively again. “It’s sweet, isn’t it? He has a crush on you.”

“Did you say ‘sweet’?” Dinesh asks before trying to process anything else Jared just said. “Are we talking about the same Gilfoyle?”

Clicking his tongue, Jared awkwardly turns back to the saucepan and scrapes at the cold rice. When he turns back around, he’s looking serious again. “If you’d like to take out a complaint with HR, you’d have to be willing to accept that you'll be reprimanded as well for hacking Gilfoyle’s phone.

“Jared, you are HR. I’m complaining to you right now.

“Is this a formal complaint?”

“No.”

Jared’s trying to hold in a smile on his weird starved-imp face. “Do you want it to be?”

“Jared…” Sighing, Dinesh takes out his phone, because this conversation isn’t going how he expected it to at all. He goes back to scrolling through the photos, and waves one at random in Jared’s face. “Look, this is weird, right? This isn’t like this is coming from well, no offense, but I’d expect this sort of weird obsessive behavior from you. Not toward me, hopefully, but, yanno. With someone.”

Despite the look on Jared’s face clearly experiencing offense, he says brightly, “No, none taken.”

Dinesh presses on. “But this is Gilfoyle. You don’t know him like I do. I’ve lived with him for like four years. I don’t think I’ve ever heard him say anything nice to anyone. He just lives to be fucking contrarian. He’s a dick. To everyone. Especially me,” he adds. “He’s like an extra big dick to… me.”

“I believe, metaphorically, he’s pulling your pigtails, Dinesh,” Jared offers as Dinesh trails off. His voice is somewhere between matter-of-fact and chipper, and it’s making Dinesh nervous. “It’s a vulnerable feeling, attraction.”

“Gross,” Dinesh wrinkles his nose as he looks back at his phone. “Don’t talk about ‘vulnerable feelings’ in the same sentence as fucking GIlfoyle.”

“If anything,” Jared chirps, ignoring him, “Gilfoyle would probably feel more vulnerable with affectionate feelings than you or I would, considering the way he portrays himself.”

Dinesh clicks his tongue. He doesn’t like being grouped in with Jared about how he supposedly expresses his feelings, but that’s not really the important argument right now. He opens his phone again to see the photo he’d shoved in Jared’s face. Dinesh singing karaoke. Gilfoyle always tells him not only that he can’t sing, but that he shouldn’t. Maybe they’re for blackmail.

“That’s not the way he portrays himself,” Dinesh says before looking up from his phone. “It’s just the way he is.”

“Mm,” Jared turns the stove back on, turning back to his rice. Almost sing-songy, he adds, “I don’t think you believe that, now.”

Incensed, Dinesh makes a face, but Jared is apparently done with the conversation. “If you see Gilfoyle or Elrich, ask if they’d like some fried rice.”

Dinesh can’t remember the last time he’s seen Elrich, and if he sees Gilfoyle ever again, he’s going to run in the other direction. Turning on his heel he grumbles, “I’ll do that.”

For most of the day, Dinesh stays in his room. He’s not sure how busy the rest of the guys are, but he sees no point in going out into the shared space of the incubator, maybe even for the rest of his life. He does some programming on the old tablet he keeps under his bed, but it’s frustratingly difficult on a touch-screen keyboard, and he gives up after too long. He only braves leaving his room to use the bathroom, and tries to act normal when running into anyone else in the house. It’s easy enough with Erlich and Richard — at least he hopes so — but twice, he sees Gilfoyle at the end of the hall, and darts right back into his room with a panicked gasp.

It’s hunger that finally drives him into the kitchen. He moves quickly, hoping not to run into anyone, but as he rounds the corner, he freezes. Gilfoyle stands by the fridge with a bowl of cereal, shoving a bite into his mouth like a fucking goblin before he notices Dinesh at all.

To Dinesh’s horror, he raises his eyebrows and sets the bowl down.

“What have you been up to all day? It feels like you’re avoiding me.”

“I hate you?”

He doesn't mean for it to come out like a question, but after the shit Jared said he’s not as sure as he was this morning. It does, he notices, annoy him that Gilfoyle doesn’t seem at all bothered by that response.

“Sure, but you spend every waking moment with me anyway,” Gilfoyle argues flatly. It’s unnerving to hear him point that out right now. Is that something that makes him happy? Gilfoyle being happy is a difficult image to conjure. He’s only ever smiled at Dinesh’s expense.

It takes Dinesh a moment to realize Gilfoyle is still talking. “...like you’re hiding something. You didn’t unwittingly fund another pedophile ring, did you?”

“No.”

Gilfoyle rolls his eyes. “Convincing.”

“Some balls you have, giving me shit when you’re the pervert!” Dinesh blurts eloquently.

Tilting his head, Gilfoyle stares at him in that off-putting way he does. “What?”

Oh God. This is it. Dinesh can’t keep a secret to save his life. This is worse than what happened with Mia. Gilfoyle is going to murder him, and he can’t even send Gilfoyle to prison and avoid it. Sweat runs down his neck and down his back under his shirt. He has to do something. GIlfoyle isn’t going to let that comment go. He’s just standing there. Staring. Fuck.

Dinesh has never thrown a real punch in his adult life, and when he swings and his knuckles lopsidedly connect with the side of GIlfoyle’s face, he isn’t expecting it to hurt him. Crying out, he flings his hand back and clutches at it before GIlfoyle even has the time to catch himself, stumbling backward into a kitchen chair.

“What the fuck?

Clutching his knuckles, Dinesh tries to think quickly of what he can say that doesn’t make it obvious he installed a rootkit on Gilfoyle’s phone.

“I know what’s on your phone,” is what Dinesh admits, his hand in too much pain to think of anything intelligent. “You creep.”

Squinting, Gilfoyle asks, “What?”

“Yeah yeah, I know, you won. I wanted to know.”

He expects Gilfoyle to take the bait, and maybe assume Dinesh is lying, but he doesn’t. “What do you mean you know what’s on my phone?”

Well, fuck.

“Look, okay, you deserve it,” Dinesh rambles, still rubbing at his knuckles even though the pain has mostly faded by now. “You flushed my phone down the fucking toilet! After punching me in the face!”

Gilfoyle says nothing, but as Dinesh glares back at him his mouth twists. For just a moment, Dinesh sees his eyes go wide. He’s actually shocked. But then his face relaxes as if nothing is out of the ordinary. He still doesn’t say anything. Dinesh flinches, expecting to be hit, but Gilfoyle just stares at him. Dinesh tries to gauge what’s going through his head, but there’s nothing. His expression is just the same impassive stare he’s always got on his face.

Finally, Gilfoyle says, “Okay.”

Dinesh doesn’t know what that means. Before he can ask, Gilfoyle turns on his heel and leaves the kitchen.

“Hey wait,” Dinesh starts, following Gilfoyle down the hall, “where are you —?”

Gilfoyle’s bedroom door slams before Dinesh can stop him. He gives Gilfoyle’s door an awkward knock. He wants to say something, but has no idea where to go with this. Shifting from one foot to the other he says eloquently, “Gilfoyle?”

There’s no answer. From the living room, the front door slams shut. Dinesh just hopes it isn’t Jared.

“Hey.” Elrich’s voice behind him makes him jump, and he wheels around to face him. “Where’s Gilfoyle going?”

“Huh?”

“I just watched him tear ass around to the back yard with a Go Bag,” Elrich explains, jabbing his thumb over his shoulder. “Is there going to be an earthquake or something?”

“What the — fuck,”

Shoving past Erlich, Dinesh ignores the further questions being shouted after him about earthquakes and races outside. The gate is swung open to the backyard, and Dinesh sees Gilfoyle at the far end of the pool, flinging a black duffel bag over the fence.

“Hey!”

Gilfoyle’s head swivels around to see Dinesh, genuine shock on his face before he turns back to the fence and jumps up to try and climb over the planks.

“You fucker!” Dinesh bursts forward as fast as he can manage, pitiful muscles burning by the time he reaches GIlfoyle, latching onto his ankle and tugging down. “Get down here and face me, you coward!”

“Fuck you,” Gilfoyle growls through clenched teeth as he struggles to keep his hold on the top of the planks as Dinesh drags his leg down with all the weight he can. “And no.”

“You can’t climb this fence, asshole.”

“I can if you let go of me.

“Oh, shut up.

Using his full weight, Dinesh rips downward on Gilfoyle’s leg, and they both topple to the ground with a loud crash.

In a heap on the ground, they both groan. From underneath him, Gilfoyle is panting, and a spike of panic makes Dinesh’s whole body run cold. He sits up and tries to punch Gilfoyle again, but this time Gilfoyle shoves him, sending Dinesh rolling off of him and into the grass. Before Gilfoyle can get to his feet, Dinesh grapples for him again, swinging blindly into Gilfoyle’s head.

“Fuck you, you sneaky fucking cyberterrorist,” Gilfoyle says through gritted teeth, flailing in an attempt to fling Dinesh off of him. All it results in is a knee clocked hard into Dinesh’s hip, and Dinesh scrambles for the upper hand while he can still manage it.

“You’d like to, wouldn’t you?”

It’s too far. Hits too close. Gilfoyle’s whole body pulls tense, and Dinesh can feel the heartbeat in his chest stutter under Dinesh’s awkwardly splayed arm. Gilfoyle is still panting, but he has nothing to say. Frantically, Dinesh wishes he could think of another time Gilfoyle has ever been at a loss for words. He doesn’t want this to be the only time.

“Why do you have all those pictures?” Dinesh asks finally, leaving no doubt of what he knows.

“Get off me.”

He sounds unnervingly pitiful, but Dinesh doesn’t budge. “Why do you have all those pictures of me?”

At the specification, Gilfoyle squeezes his eyes shut. Something twinges at the top of Dinesh’s spine, an unfamiliar, fluttering sort of guilt. It’s not fair that Gilfoyle has all those sneaky, creepy photos and still somehow it’s Dinesh who crossed the line. For a moment neither of them move or speak. It’s excruciating.

With a heavy breath, Gilfoyle finally says again, “Get… just get off me.”

He’s just short of pleading. It’s jarring. His eyes are still closed, and Dinesh asks, “Are you gonna run away like a little bitch again?”

“Probably. And fuck you.”

There’s instant regret in saying it a second time, Dinesh can tell. Gilfoyle’s body goes immediately tense underneath him as if bracing for a punch. It’s fucking weird, but Dinesh is too guilty to point out his phrasing again. That only makes it weirder, really.

“Why do you have all those pictures of me on your phone?” Dinesh asks again.

“You know why,” Gilfoyle admits through clenched teeth and blinking his eyes open, “you just want to make me say it.”

“Maybe.”

“I’m not going to. Get off me.”

“I’m not going to,” Dinesh parrots.

He feels childish even as he says it, but Gilfoyle looks ready to crack. Whether he’s going to hit Dinesh or start shouting, the tension in the air says that it's close. This is what he wanted. The upper hand. And Gilfoyle started it, taking secret photos like a stalker when Dinesh wasn’t paying attention. So why does Dinesh feel like such a fucking dick?

Dinesh tries not to think of Jared and his diatribe about how vulnerable Gilfoyle is, but then Gilfoyle breaks eye contact, focusing past Dinesh and his jaw clenches hard.

God, he feels like a dick.

Before he can stop himself, Dinesh asks, "Are you about to cry?"

There's a sudden change in Dinesh's vantage point, and his back slams against the dirt as Gilfoyle's full weight drops onto him.

"Oof, fuck."

Dinesh's heart is abruptly in his throat. Gilfoyle is leaning close — too fucking close — and his eyes are on fire. Panicking, Dinesh flinches. Gilfoyle is going to punch him. Or maybe kiss him. He's not sure which he prefers. Maybe Gilfoyle will make this easier and just fucking kill him.

Except, Gilfoyle does none of it. Breathless, he just gets to his feet. He busies himself with straightening his flannel and then turns on his heel and walks back into the house. Dinesh stares after him a moment before getting up and following after him.

"You forgot your bag outside," Dinesh offers, somewhere between awkward and snide as he makes his way through the glass door.

"I didn't," is Gilfoyle's immediate response. "But I might as well take everything else, now."

"What does that mean?"

"It means you finally get to be second best coder," Gilfoyle mutters as he tries to lose Dinesh down the hall. Dinesh moves quickly enough that he makes it through Gilfoyle's doorway before the door can be slammed in his face again.

Gilfoyle glares at him before turning back and digging a red and black suitcase out from under his bed. "At least until Richard replaces me."

“You’re seriously going to just move out because I learned you have a gay little crush on me?”

The instant the words are out of Dinesh’s mouth, the air of the room changes. Gilfoyle’s whole body pulls tense, and he freezes halfway through throwing clothes into his suitcase. Dinesh’s throat feels tight. He hadn’t realized just how harsh it would sound to verbalize it after convincing himself there had to be another reason all this time. He hadn’t really understood until now how much he was still telling himself it must be a different excuse. He suddenly wants very much to leave Gilfoyle’s doorway, but his feet won’t lift from the floor.

It’s been quiet too long for Gilfoyle to come off as flippant in any way. By the time the strain in his shoulders relaxes, he has nothing to say in response. He plucks a heavy hardback book from his dresser and tosses it in the suitcase.

Dinesh tries to will away the tendril of guilt curling in his stomach like food poisoning. With the edgelord shit they tend to hurl at each other with ease, it’s unnatural that something feels so abruptly off-limits. Especially considering it directly involves Dinesh. Honestly, the unfairness of it all is starting to piss him off.

“So that’s it? You’re just gonna leave! All that acting like a loner badass and you’re nothing but a chicken!”

“I’m not a teen protagonist in some eighties movie,” Gilfoyle says, moving to his drawers, “You’re not going to get a reaction out of me by spouting PG insults.”

“Still,” Dinesh says with a smirk, “you’ll run away like a bitch to avoid talking about your feelings. What decade of movie protagonists is that?”

Gilfoyle isn’t looking at him when he throws a handful of flannel in the direction of his suitcase. “Nineties.”

Dinesh isn’t going to let him off the hook by laughing at his stupid joke. Gilfoyle doesn’t deserve to think Dinesh finds him funny just because he tried self-depracating humor one fucking time.

“Honestly, I can’t believe you never did anything about it,” Dinesh says, leaning against Gilfoyle’s doorframe. He feels a twinge of success when Gilfoyle stops moving. “I mean, all these years are one thing, but just now I was literally on top of you and you didn’t even do anything about it.”

“It’s against the Eleven Satanic Rules of Earth to make advances on another person without explicit consent,” Gilfoyle admits. Dinesh notices he’s moving slower as he pulls open his next drawer.

“Except take photos of me while I’m sleeping,” Dinesh grumbles.

Gilfoyle’s shoulders tense. “Sexual advances,” he specifies to his socks.

“That’s bullshit anyway,” Dinesh argues, shoving himself off of the doorjamb to step further into Gilfoyle’s room. “You’re such a chickenshit you wouldn’t kiss me if I told you to.”

Finally, Gilfoyle stops what he’s doing and turns to him. “Are you telling me to?”

There’s an odd sort of thrill to this now, and Dinesh isn’t going to step down first. “Sure, Gilfoyle, why not? It’s not going to change anything.”

Gilfoyle drops the balled-up jacket in his hand, and bows forward, pressing a kiss to Dinesh’s mouth.

The most jarring thing about the kiss is how gentle it is. Dinesh is too taken aback to respond, and Gilfoyle’s hand reaches up to cup Dinesh’s face. His beard tickles. It’s so delicate that Dinesh’s head spins a little. There’s no way this is really happening.

Dinesh isn’t sure what it is that keeps him from pulling away. Curiosity, maybe. Or just the fact that no one has so much as held his hand since Mia was carted off to prison. But Dinesh kisses back, tentatively, and Gilfoyle reacts like the crack of a whip, and he drives forward, Dinesh tripping over himself as he stumbles backward just fast enough to keep them from falling over.

With a heavy thump, Dinesh’s back slams against the wall, Gilfoyle’s hands grappling at his thighs until Dinesh gets the hint and wraps his legs haphazardly around Gilfoyle’s waist. What a fucking romantic. Dinesh wants to mock him about that, he really does, but then Gilfoyle’s stupid ugly ring presses warm and solid just behind Dinesh’s ear and a syrupy feeling in his gut makes him whimper before he can stop himself.

He expects Gilfoyle to pull back at that, to latch onto something to mock Dinesh for after everything that’s happened, but it only seems to encourage him. He kisses Dinesh hungrily, but carefully, and Dinesh forgets to be embarrassed that he likes it. He’s not even had a girl kiss him this gently. Dinesh wonders if that’s something he should say in an attempt to rile Gilfoyle up, but before he can, Gilfoyle pulls back to kiss Dinesh’s neck, and his mind goes blank. It’s surprising how good it feels to have a beard scratching against his pulse. This has to be a sign that it’s been far too long since Dinesh got laid.

He’s already comparing this to the last time he got laid. That’s not great. Careful not to panic, Dinesh shoves Gilfoyle off of him. “Okay, okay, you win.”

Gilfoyle drops him to the floor and stumbles back, and Dinesh wishes his skin would stop tingling in all the spots they’d been touching. He tries not to ruminate on the twinge of disappointment that Gilfoyle pulled away from him so easily. This was a bad idea. Dinesh always goes too far with this sort of thing. Gilfoyle is staring at him, his head tilted the way it does when he concentrates on what someone else is telling him. That’s definitely guilt sitting heavy in Dinesh’s chest. This was stupid.

“Right,” Gilfoyle says at last, “I’m definitely leaving.”

“Don’t — c'mon, don’t fucking do that.”

“It’s happening.”

“I don’t want that,” Dinesh admits petulantly.

“I could give a fuck what you want, Dinesh.”

“You could, though,” Dinesh argues. “You like me!”

“Debatable.”

“It’s not debatable, you have a whole folder of secret creepy photos on your phone.”

Dinesh waves his phone around as if that proves something, but his screen is off. GIlfoyle looks down at his pocket, but doesn’t say anything.

“Look, I don’t want you to leave, that’s weird. Don’t just… leave.”

“Compelling argument, but I’m not going to stick around just so you can know what it feels like for someone to be interested in you.”

“That’s not why I don’t want you to leave,” Dinesh pouts. Gilfoyle actually turns to look at him then, expression neutral, arms crossed over his chest. Fine. Dinesh rolls his eyes. “Okay, it’s not the only reason.”

“Beg me,” Gilfoyle responds flatly.

That’s not fair. Dinesh had the upper hand for once in this stupid repartee between them, and somehow the tables have been turned right back around so quickly he didn’t even get to enjoy it.

“I’m not going to beg —”

“Then I’m leaving.”

Without missing a beat Gilfoyle is back to packing. Unfair. Unfair that he’s doing it, unfair that it’s working. Dinesh crosses his arms over his chest.

“Okay fine, please don’t leave.”

“Why not?” That stuns Dinesh. He’s not sure he wants to answer. Gilfoyle cocks his head to the side, crossing his arms over his chest to mirror Dinesh. “You said there were multiple reasons, not counting that you’re a narcissist who likes knowing you’re attractive to at least one person in this universe and holding it over me. So what’s the other reason? Reasons?

“I lied,” Dinesh says at last, scrunching up his nose. “I’m just a narcissist.”

“I don’t think that’s true,” Gilfoyle shoots back so quickly he’s practically talking over Dinesh. Dinesh misses when he’d been shamed into awkward silence. “Why’d you tell me to kiss you?”

“'Cause I didn’t think you would.

“I don’t think that’s true, either. I was onto something back at TechCrunch, wasn’t I?” Gilfoyle asks, stepping back into Dinesh’s personal space. “You have a thing for me. Maybe not fully realized, ‘cause you’re not as emotionally advanced, but it’s there, isn’t it?”

“Emotionally ad— you kept secret photos of me in a password-locked folder on your phone, you emotionally-constipated douchebag.”

“Stop changing the subject.”

Dinesh rolls his eyes. “Are you ever going to drop the fucking TechCrunch thing?”

Gilfoyle shrugs. “When it stops serving a purpose for me, maybe. You wanted to kiss me just now. You wanted to see if you’d like it.”

“I changed my mind,” Dinesh grumbles, feeling cornered. “Leave. Great idea. None of us will miss you.”

He turns toward Gilfoyle’s door, but it slams in his face. He turns to see Gilfoyle looming over him, his hand pressed flat against the door above Dinesh’s head.

Eyes narrowed, scanning Dinesh for something, Gilfoyle asks, “Did you?”

“Did I what?

“Like it. When I kissed you. You did, didn’t you? That’s why you’re all flustered.”

“I’m not flus—”

“I’ve had time to come to terms with my predicament,” Gilfoyle admits, referring to it as if a crush on Dinesh is stage 4 cancer. “But you’re still struggling at step one, aren’t you?”

Dinesh wishes Gilfoyle weren’t quite so close. “I’m not — I don’t even know what you mean by ‘step one’.”

“Admitting that you want me.”

“I want you to go away,” Dinesh grumbles petulantly.

“Then why beg me to stay? Something’s not adding up. And you know it. That’s why you’re blushing.”

“I’m not blushing,” Dinesh argues quickly, though he does feel warm. “And I didn’t beg you, I just said please.”

“After I told you to beg me.”

Heat is radiating off of Gilfoyle like he’s just run a mile. Suddenly, Dinesh’s mouth goes dry. What’s happening here? What is this? Why is Dinesh even here? Why is he following Gilfoyle around, asking him not to leave? Isn’t having him out of his immediate space meant to be ideal?

“You liked kissing me, didn’t you?” Dinesh doesn’t answer, heart pounding in his throat, and Gilfoyle leans close. “Tell me if you don’t want me to do it again.”

If he doesn’t say anything at all, will Gilfoyle kiss him again? Is that what he wants? That can’t be why he’s doing this. Dinesh takes a breath, ready to say as much aloud, but it’s too late, and Gilfoyle’s mouth is on him before he can speak.

It’s instantly fervent, and the hand not braced against the door moves to cup the back of Dinesh’s neck. The touch sends a warm swoop through Dinesh’s gut, and he gasps involuntarily in a very humiliating way. Carefully, Gilfoyle leads Dinesh’s head back, and Dinesh is swept into it in a way he hadn’t quite expected. It feels doting, which isn’t something that Dinesh ever thought he would enjoy, certainly not from his fucking mean roommate, but it’s a little intoxicating coming from someone who has never outwardly cared for anything. Ringed fingers creep up to card through Dinesh’s hair and Dinesh feels as if he just missed a step on a staircase. Gilfoyle pulls away to kiss his neck again, trailing down the other side, and Dinesh doesn’t stop to think before reaching up and taking a fistful of Gilfoyle’s hair. For a split second, Gilfoyle goes still. Panicked, Dinesh doesn’t do anything else.

“If you want to pull my hair,” Gilfoyle murmurs, his voice low in Dinesh’s ear, “I like that.”

A daunting spike of arousal shoots through Dinesh’s stomach. “Really?”

“Yeah,” Gilfoyle says breathlessly. “Do it.”

It’s exciting, being given permission. He tugs experimentally at the handful he has of Gilfoyle’s hair. Gilfoyle whimpers, sagging into Dinesh, and Dinesh feels another shock of pleasure from his reaction. He does it again, harder this time, and jerking downward. Gilfoyle takes the movement as a suggestion and drops to his knees.

“Holy shit,” Dinesh whispers under his breath. “Are you about to suck me off?”

Gilfoyle swallows. Cocking his head, he manages to sound as deadpan as usual when he says, “If you’re interested.” He looks up at Dinesh expectantly and asks, “Are you?”

Clicking his tongue against his teeth, Dinesh hesitates, considering. “Have — um — have you done it before?”

Gilfoyle looks offended. “Are you seriously asking me if I’ve ever given a blowjob?”

“I — does that mean you have?”

“Fuck you for assuming I haven’t had a cock in every orifice of my body by now. And I am fantastic at blowjobs,” Gilfoyle huffs, “Have you ever received one?”

The insult fails to land when Dinesh’s brain gets caught on the idea of Gilfoyle getting fucked from both ends. There’s a ringing in Dinesh’s ears suddenly, and it takes him a moment to notice Gilfoyle’s expression has changed into a slightly graver smirk.

“You’re thinking about me sucking dick, aren’t you? I didn’t know your skin could turn that red.”

“Fuck off,” Dinesh snaps.

It’s still a little jarring to see Gilfoyle at this angle. He looks bizarrely comfortable kneeling at Dinesh’s feet, which Dinesh wouldn’t have assumed before now. Gilfoyle’s smirk is still on his face. He tilts his head to the side again.

“Should I show you how good I am?”

An excited little thrill pulls behind Dinesh’s navel. He remembers, suddenly, viscerally, listing off his rules to Tara about how the two of them could sleep together. As long as Gilfoyle is not in the room… This all feels like a very cruel irony.

“Uh… I — yeah, okay.”

Instantly, Gilfoyle starts on Dinesh’s jeans. “Keep pulling my hair. If you want me to pull off, my safeword is ‘crypto’.”

Dinesh raises an eyebrow. “Really? Blurting that out during sex doesn’t just make you hornier?”

“Shut the fuck up,” Gilfoyle answers, but there’s a hint of a smirk on his face.

It’s disarming, the smirk. Like he’s happy. Dinesh is still processing what that means when Gilfoyle manages to yank his pants off his hips. He opens his mouth to ask Gilfoyle how long he’s wanted to do this, how desperate he’s been to suck Dinesh off like some horny teenage girl afraid of getting pregnant. But Gilfoyle wraps his mouth around Dinesh’s cock before he can speak, and any and all words fly out of Dinesh’s head in an instant.

Fuck —”

Well, almost every word.

Every inch of Dinesh is abruptly searing. He falls back against the wall, grip tensing in Gilfoyle’s hair. Gilfoyle moans around his cock like a fucking pornstar, and Dinesh clenches his jaw at the way it trills over his skin. Gilfoyle’s hands grapple at Dinesh’s hips, nails digging hard into the flesh peeking out from Dinesh’s rucked clothes. Gilfoyle swallows down hard, and Dinesh’s knees give out from underneath him. Gilfoyle catches him firmly against the wall without missing a beat. It’s so surreal that Dinesh is almost certain by now that he’s dreaming. He attempts to catch his breath, his eyes watering. He tugs hard at Gilfoyle’s hair, and Gilfoyle groans against him again. Dinesh doesn’t want it to stop.

“I’m — fuck…”

Even with the way GIlfoyle is holding him up, Dinesh can’t manage to stand any longer, sliding down along the wall. Dragging his mouth off of Dinesh, Gilfoyle rips Dinesh back from the wall and swings him around so that he topples backward, falling onto his elbows.

“Shit —”

He feels like dead weight as Gilfoyle rips Dinesh’s pants off the rest of the way. He kicks them off his feet pitifully. Should he say something?

“Is this happening right now?”

That was a fucking stupid thing to say. Gilfoyle laughs at him.

“Not if you’re going to ask me stupid fucking questions,” he answers before he swallows him back down.

Dinesh’s legs kick over Gilfoyle’s back. His head spins from the soft-slick feeling of Gilfoyle’s tongue rolling over his skin. His hands find purchase in Gilfoyle’s hair and tug, eliciting a moan that vibrates electric through Dinesh’s body.

Fuck, that’s — s’good…”

His eyes are screwed shut as if he’s afraid to look. It still feels, somehow, as if this isn’t happening. It feels too good to be actually happening. This isn’t where he is. This isn’t what he’s doing. This is just a wild, insane dream that will make it impossible to look Gilfoyle in the eye for a few weeks. But it’s not real. It can’t be.

A strong hand wraps around his thigh and swings his leg up until it rests over Gilfoyle’s shoulder. Tension drops instantly from Dinesh’s body. Being physically manhandled is more enjoyable than he thought it would be. He lets Gilfoyle throw his other leg to match. Stars explode behind Dinesh’s eyes as he’s folded in half, his hands still clenched in Gilfoyle’s hair. He thinks he’s going to faint.

“Holy shit, I’m — I…”

It can’t stop, he’ll probably fucking die if it stops, so he decides not to say anything at all. Instead he just keeps his hands balled tight in Gilfoyle’s hair, something to cling to as the waves of pleasure rock him off balance. The room is spinning. He’s so close. He’s on fire and it’s all so fucking close.

“I’m — It’s…”

It’s all the warning he can manage, but Gilfoyle doesn’t seem to need one as it is. Dinesh’s eyes roll back as Gilfoyle swallows hard, again and again, and he feels his cock at the back of Gilfoyle’s throat, tightening around him until his edges seem to fade. Eyes flying open, all Dinesh sees is white.

Shit…

The orgasm overwhelms him, and Dinesh loses a handful of seconds to a searing sort of pleasure. When he comes back to himself he’s staring at Gilfoyle’s ceiling, and his whole body feels wrung out as if he’d just sprinted a mile. Or just had his soul sucked out through his dick.

“Holy shit.”

It takes him a moment to realize Gilfoyle’s hair is still in his hands, and he looks down himself to see Gilfoyle still bowed over him, panting like a dog. Dinesh swallows against a raw sensation in his throat that tells him he may have screamed at some point. Gilfoyle is trembling under Dinesh’s grip.

As casually as he can, Dinesh tries, “You, uh —” his voice is gone, so he clears his throat to bring it back. “You okay?”

“Yeah,” Gilfoyle answers without looking up at him. Hair falls over his eyes. His voice is barely a rasp over his heavy breathing. “I just, uh… yeah. I’m fine.”

Dinesh tries to blink the fog back as he watches Gilfoyle catch his breath. He sounds almost embarrassed, and it takes Dinesh a dazed moment to realize why.

“Did — did you come in your pants?”

Gilfoyle wipes his mouth on the back of his hand and looks up at Dinesh, his expression uncharacteristically sheepish. “Huh?”

Still a little breathless, Dinesh huffs an attempt at a laugh. “You — oh my God, you did.”

“Fuck off.”

Laughing, Dinesh shuffles himself back into his jeans, but doesn’t bother sitting up. He doesn’t want to dislodge Gilfoyle from where he’s curled practically in Dinesh’s lap. “How long have you — wanted to suck my dick, Gilfoyle?”

Gilfoyle is quiet for a moment, and Dinesh expects him to just change the subject, but instead he at last admits, “Three years.”

“I — oh.”

He hadn’t expected Gilfoyle to just answer him like that. It throws Dinesh off completely, and he doesn’t know what to say. They lapse into silence. After catching his breath, Gilfoyle takes the silence as a chance to lean forward and takes Dinesh’s mouth in his own. The kiss is warm, but is too brief for Dinesh to react before Gilfoyle pulls away and gets to his feet.

Flabbergasted, Dinesh watches as Gilfoyle casually faces away from him and changes out of his pants.

“Oh my God. Those photos aren’t for jacking off or anything. You’re like… in love with me.”

“I absolutely do jack off to those photos,” Gilfoyle responds plainly.

The bottom of Dinesh’s stomach falls away so fast he gags a little. He blinks, trying to imagine what that would look like. “Are — are you serious?”

“Yes.” Gilfoyle finally turns to stare at him blankly. After a too-long beat, he extends his hand to help Dinesh off the floor. As Dinesh takes it, he adds, “I mean, for what it’s worth, that doesn’t mean you’re wrong about the second part.”

Dinesh stumbles getting to his feet. “Oh my God.”

“What?”

“I was joking. You’re in love with me?”

“Yes,” Gilfoyle says incredulously, cocking his head to the side. “You didn’t realize that until just now?”

“I mean, I realized it, I just didn’t expect you to admit it,” Dinesh answers, defensive. “You literally ran out of the house with a go bag when I confronted you about this like two hours ago.”

Gilfoyle shrugs. “That was before I had your dick in my mouth,” he says offhandedly, “and before you fucking loved it.”

“I — shut up. You just came in your pants from sucking me off, you don’t get to be smug.”

“And yet I am,” Gilfoyle smirks at him. “You’re blushing again.”

Dinesh shoves him. "Go get your fucking bag from outside."

-----------