Skip to content

Instantly share code, notes, and snippets.

@gmbeard
Created November 8, 2017 09:21
Show Gist options
  • Save gmbeard/48ce5280ecb63f8e475722228ee2e296 to your computer and use it in GitHub Desktop.
Save gmbeard/48ce5280ecb63f8e475722228ee2e296 to your computer and use it in GitHub Desktop.
.text
.def _ZN50_$LT$asm_bug..Rot13$u20$as$u20$asm_bug..Crypto$GT$7encrypt17hbaabafb2f8efe03fE;
.scl 2;
.type 32;
.endef
.globl __xmm@bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf
.section .rdata,"dr",discard,__xmm@bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf
.p2align 4
__xmm@bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf:
.zero 16,191
.globl __xmm@19191919191919191919191919191919
.section .rdata,"dr",discard,__xmm@19191919191919191919191919191919
.p2align 4
__xmm@19191919191919191919191919191919:
.zero 16,25
.globl __xmm@1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a
.section .rdata,"dr",discard,__xmm@1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a
.p2align 4
__xmm@1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a:
.zero 16,26
.globl __xmm@9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f
.section .rdata,"dr",discard,__xmm@9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f
.p2align 4
__xmm@9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f:
.zero 16,159
.globl __xmm@acacacacacacacacacacacacacacacac
.section .rdata,"dr",discard,__xmm@acacacacacacacacacacacacacacacac
.p2align 4
__xmm@acacacacacacacacacacacacacacacac:
.zero 16,172
.globl __xmm@004f004f004f004f004f004f004f004f
.section .rdata,"dr",discard,__xmm@004f004f004f004f004f004f004f004f
.p2align 4
__xmm@004f004f004f004f004f004f004f004f:
.byte 79
.byte 0
.byte 79
.byte 0
.byte 79
.byte 0
.byte 79
.byte 0
.byte 79
.byte 0
.byte 79
.byte 0
.byte 79
.byte 0
.byte 79
.byte 0
.globl __xmm@1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f
.section .rdata,"dr",discard,__xmm@1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f
.p2align 4
__xmm@1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f:
.zero 16,31
.globl __xmm@00ff00ff00ff00ff00ff00ff00ff00ff
.section .rdata,"dr",discard,__xmm@00ff00ff00ff00ff00ff00ff00ff00ff
.p2align 4
__xmm@00ff00ff00ff00ff00ff00ff00ff00ff:
.short 255
.short 255
.short 255
.short 255
.short 255
.short 255
.short 255
.short 255
.globl __xmm@61616161616161616161616161616161
.section .rdata,"dr",discard,__xmm@61616161616161616161616161616161
.p2align 4
__xmm@61616161616161616161616161616161:
.zero 16,97
.globl __xmm@cccccccccccccccccccccccccccccccc
.section .rdata,"dr",discard,__xmm@cccccccccccccccccccccccccccccccc
.p2align 4
__xmm@cccccccccccccccccccccccccccccccc:
.zero 16,204
.globl __xmm@41414141414141414141414141414141
.section .rdata,"dr",discard,__xmm@41414141414141414141414141414141
.p2align 4
__xmm@41414141414141414141414141414141:
.zero 16,65
.globl __xmm@80808080808080808080808080808080
.section .rdata,"dr",discard,__xmm@80808080808080808080808080808080
.p2align 4
__xmm@80808080808080808080808080808080:
.zero 16,128
.globl __xmm@99999999999999999999999999999999
.section .rdata,"dr",discard,__xmm@99999999999999999999999999999999
.p2align 4
__xmm@99999999999999999999999999999999:
.zero 16,153
.globl __xmm@00000000000000000000000000000000
.section .rdata,"dr",discard,__xmm@00000000000000000000000000000000
.p2align 4
__xmm@00000000000000000000000000000000:
.zero 16
.section .text,"xr",one_only,_ZN50_$LT$asm_bug..Rot13$u20$as$u20$asm_bug..Crypto$GT$7encrypt17hbaabafb2f8efe03fE
.globl _ZN50_$LT$asm_bug..Rot13$u20$as$u20$asm_bug..Crypto$GT$7encrypt17hbaabafb2f8efe03fE
.p2align 4, 0x90
_ZN50_$LT$asm_bug..Rot13$u20$as$u20$asm_bug..Crypto$GT$7encrypt17hbaabafb2f8efe03fE:
.Lcfi0:
.seh_proc _ZN50_$LT$asm_bug..Rot13$u20$as$u20$asm_bug..Crypto$GT$7encrypt17hbaabafb2f8efe03fE
subq $168, %rsp
.Lcfi1:
.seh_stackalloc 168
movdqa %xmm15, 144(%rsp)
.Lcfi2:
.seh_savexmm 15, 144
movdqa %xmm14, 128(%rsp)
.Lcfi3:
.seh_savexmm 14, 128
movdqa %xmm13, 112(%rsp)
.Lcfi4:
.seh_savexmm 13, 112
movdqa %xmm12, 96(%rsp)
.Lcfi5:
.seh_savexmm 12, 96
movdqa %xmm11, 80(%rsp)
.Lcfi6:
.seh_savexmm 11, 80
movdqa %xmm10, 64(%rsp)
.Lcfi7:
.seh_savexmm 10, 64
movdqa %xmm9, 48(%rsp)
.Lcfi8:
.seh_savexmm 9, 48
movdqa %xmm8, 32(%rsp)
.Lcfi9:
.seh_savexmm 8, 32
movdqa %xmm7, 16(%rsp)
.Lcfi10:
.seh_savexmm 7, 16
movdqa %xmm6, (%rsp)
.Lcfi11:
.seh_savexmm 6, 0
.Lcfi12:
.seh_endprologue
movq 16(%rcx), %r9
testq %r9, %r9
je .LBB0_9
movq (%rcx), %r10
cmpq $15, %r9
movq %r10, %r11
jbe .LBB0_2
movq %r9, %rax
andq $-16, %rax
movq %r9, %r8
andq $-16, %r8
movq %r10, %r11
je .LBB0_2
movq %rax, %r11
addq %r10, %r11
movdqa __xmm@1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a(%rip), %xmm13
movdqa __xmm@acacacacacacacacacacacacacacacac(%rip), %xmm12
movdqa __xmm@004f004f004f004f004f004f004f004f(%rip), %xmm6
movdqa __xmm@1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f(%rip), %xmm7
movdqa %xmm13, %xmm3
psraw $8, %xmm3
movdqa __xmm@00ff00ff00ff00ff00ff00ff00ff00ff(%rip), %xmm1
movdqa __xmm@61616161616161616161616161616161(%rip), %xmm14
movdqa __xmm@cccccccccccccccccccccccccccccccc(%rip), %xmm15
movdqa __xmm@41414141414141414141414141414141(%rip), %xmm10
movdqa __xmm@80808080808080808080808080808080(%rip), %xmm11
movdqa __xmm@99999999999999999999999999999999(%rip), %xmm2
movq %r8, %rax
movq %r10, %rcx
.p2align 4, 0x90
.LBB0_7:
movdqu (%rcx), %xmm9
movdqa %xmm9, %xmm4
paddb %xmm12, %xmm4
movdqa %xmm4, %xmm0
punpckhbw %xmm0, %xmm0
psrlw $8, %xmm0
pmullw %xmm6, %xmm0
psrlw $8, %xmm0
movdqa %xmm4, %xmm5
punpcklbw %xmm5, %xmm5
psrlw $8, %xmm5
pmullw %xmm6, %xmm5
psrlw $8, %xmm5
packuswb %xmm0, %xmm5
psrlw $3, %xmm5
pand %xmm7, %xmm5
movdqa %xmm5, %xmm0
punpckhbw %xmm0, %xmm0
psraw $8, %xmm0
pmullw %xmm3, %xmm0
pand %xmm1, %xmm0
punpcklbw %xmm5, %xmm5
psraw $8, %xmm5
pmullw %xmm3, %xmm5
pand %xmm1, %xmm5
packuswb %xmm0, %xmm5
psubb %xmm5, %xmm4
movdqa %xmm9, %xmm8
paddb %xmm15, %xmm8
movdqa %xmm8, %xmm0
punpckhbw %xmm0, %xmm0
psrlw $8, %xmm0
pmullw %xmm6, %xmm0
psrlw $8, %xmm0
movdqa %xmm8, %xmm5
punpcklbw %xmm5, %xmm5
psrlw $8, %xmm5
pmullw %xmm6, %xmm5
psrlw $8, %xmm5
packuswb %xmm0, %xmm5
psrlw $3, %xmm5
pand %xmm7, %xmm5
movdqa %xmm5, %xmm0
punpckhbw %xmm0, %xmm0
psraw $8, %xmm0
pmullw %xmm3, %xmm0
pand %xmm1, %xmm0
punpcklbw %xmm5, %xmm5
psraw $8, %xmm5
pmullw %xmm3, %xmm5
pand %xmm1, %xmm5
packuswb %xmm0, %xmm5
movdqa %xmm9, %xmm0
paddb __xmm@bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf(%rip), %xmm0
psubb %xmm5, %xmm8
movdqa %xmm0, %xmm5
pmaxub %xmm13, %xmm5
pcmpeqb %xmm0, %xmm5
psubusb __xmm@19191919191919191919191919191919(%rip), %xmm0
pcmpeqb __xmm@00000000000000000000000000000000(%rip), %xmm0
paddb %xmm14, %xmm4
paddb %xmm10, %xmm8
pand %xmm0, %xmm8
pandn %xmm4, %xmm0
por %xmm8, %xmm0
movdqa %xmm9, %xmm4
paddb __xmm@9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f(%rip), %xmm4
pxor %xmm11, %xmm4
pcmpgtb %xmm2, %xmm4
pand %xmm5, %xmm4
pand %xmm4, %xmm9
pandn %xmm0, %xmm4
por %xmm9, %xmm4
movdqu %xmm4, (%rcx)
addq $16, %rcx
addq $-16, %rax
jne .LBB0_7
cmpq %r8, %r9
je .LBB0_9
.LBB0_2:
addq %r9, %r10
movb $26, %r8b
.p2align 4, 0x90
.LBB0_3:
movq %r11, %rdx
leaq 1(%rdx), %r11
movb (%rdx), %cl
movl %ecx, %eax
addb $-65, %al
cmpb $25, %al
ja .LBB0_11
addb $-52, %cl
movzbl %cl, %ecx
imull $79, %ecx, %eax
andl $30720, %eax
shrl $11, %eax
mulb %r8b
subb %al, %cl
addb $65, %cl
jmp .LBB0_12
.p2align 4, 0x90
.LBB0_11:
movl %ecx, %eax
addb $-97, %al
cmpb $26, %al
jae .LBB0_12
addb $-84, %cl
movzbl %cl, %ecx
imull $79, %ecx, %eax
andl $30720, %eax
shrl $11, %eax
mulb %r8b
subb %al, %cl
addb $97, %cl
.LBB0_12:
movb %cl, (%rdx)
cmpq %r11, %r10
jne .LBB0_3
.LBB0_9:
xorl %eax, %eax
movaps (%rsp), %xmm6
movaps 16(%rsp), %xmm7
movaps 32(%rsp), %xmm8
movaps 48(%rsp), %xmm9
movaps 64(%rsp), %xmm10
movaps 80(%rsp), %xmm11
movaps 96(%rsp), %xmm12
movaps 112(%rsp), %xmm13
movaps 128(%rsp), %xmm14
movaps 144(%rsp), %xmm15
addq $168, %rsp
retq
.seh_handlerdata
.section .text,"xr",one_only,_ZN50_$LT$asm_bug..Rot13$u20$as$u20$asm_bug..Crypto$GT$7encrypt17hbaabafb2f8efe03fE
.Lcfi13:
.seh_endproc
.def _ZN58_$LT$asm_bug..Rot13$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1695a17e29e80338E;
.scl 2;
.type 32;
.endef
.section .text,"xr",one_only,_ZN58_$LT$asm_bug..Rot13$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1695a17e29e80338E
.globl _ZN58_$LT$asm_bug..Rot13$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1695a17e29e80338E
.p2align 4, 0x90
_ZN58_$LT$asm_bug..Rot13$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1695a17e29e80338E:
movq (%rcx), %rax
movq 16(%rcx), %rdx
retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment