Skip to content

Instantly share code, notes, and snippets.

@hkoba
Created September 7, 2015 15:14
Show Gist options
  • Save hkoba/246241c3ae0992067bae to your computer and use it in GitHub Desktop.
Save hkoba/246241c3ae0992067bae to your computer and use it in GitHub Desktop.
.file "petithtmlescaper.c"
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "\">``{}"
.section .text.unlikely,"ax",@progbits
.LCOLDB1:
.text
.LHOTB1:
.p2align 4,,15
.globl phe_escape_html
.type phe_escape_html, @function
phe_escape_html:
.LFB4864:
.cfi_startproc
pushq %r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
pushq %r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
movq %rcx, %r14
pushq %r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
pushq %r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
xorl %r13d, %r13d
pushq %rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
pushq %rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
movq %rdi, %r12
movq %rdx, %rbp
subq $24, %rsp
.cfi_def_cfa_offset 80
movdqu .LC0(%rip), %xmm0
jmp .L16
.p2align 4,,10
.p2align 3
.L24:
movslq %ecx, %r15
movslq %r13d, %rdi
movq %rbp, %rsi
addq %r12, %rdi
movq %r15, %rdx
addl %ebx, %r13d
movaps %xmm0, (%rsp)
call memcpy@PLT
movzbl 0(%rbp,%r15), %eax
movdqa (%rsp), %xmm0
cmpb $60, %al
je .L4
jle .L21
cmpb $96, %al
je .L9
jle .L22
cmpb $123, %al
je .L12
cmpb $125, %al
jne .L3
movslq %r13d, %rax
movl $15157, %edx
addl $6, %r13d
addq %r12, %rax
movl $842081062, (%rax)
movw %dx, 4(%rax)
.p2align 4,,10
.p2align 3
.L14:
addl $1, %ebx
movslq %ebx, %rbx
subq %rbx, %r14
addq %rbx, %rbp
testl %r14d, %r14d
jle .L23
.L16:
movl $16, %edx
movl $6, %eax
pcmpestri $4, 0(%rbp), %xmm0
cmpl $16, %ecx
movl %ecx, %ebx
jne .L24
movq 0(%rbp), %rcx
movq 8(%rbp), %rbx
subq $16, %r14
movslq %r13d, %rax
addq $16, %rbp
addl $16, %r13d
testl %r14d, %r14d
movq %rcx, (%r12,%rax)
movq %rbx, 8(%r12,%rax)
jg .L16
.L23:
addq $24, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 56
popq %rbx
.cfi_def_cfa_offset 48
popq %rbp
.cfi_def_cfa_offset 40
popq %r12
.cfi_def_cfa_offset 32
popq %r13
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %r15
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L21:
.cfi_restore_state
cmpb $38, %al
je .L6
cmpb $39, %al
je .L7
cmpb $34, %al
je .L25
.L3:
movslq %r13d, %rdx
addl $1, %r13d
movb %al, (%r12,%rdx)
jmp .L14
.p2align 4,,10
.p2align 3
.L22:
cmpb $62, %al
jne .L3
movslq %r13d, %rax
addl $4, %r13d
movl $997484326, (%r12,%rax)
jmp .L14
.p2align 4,,10
.p2align 3
.L4:
movslq %r13d, %rax
addl $4, %r13d
movl $997485606, (%r12,%rax)
jmp .L14
.p2align 4,,10
.p2align 3
.L9:
movslq %r13d, %rax
addl $5, %r13d
addq %r12, %rax
movl $909714214, (%rax)
movb $59, 4(%rax)
jmp .L14
.p2align 4,,10
.p2align 3
.L12:
movslq %r13d, %rax
movl $15155, %ecx
addl $6, %r13d
addq %r12, %rax
movl $842081062, (%rax)
movw %cx, 4(%rax)
jmp .L14
.p2align 4,,10
.p2align 3
.L25:
movslq %r13d, %rax
movl $15220, %esi
addl $6, %r13d
addq %r12, %rax
movl $1869967654, (%rax)
movw %si, 4(%rax)
jmp .L14
.p2align 4,,10
.p2align 3
.L7:
movslq %r13d, %rax
addl $5, %r13d
addq %r12, %rax
movl $959652646, (%rax)
movb $59, 4(%rax)
jmp .L14
.p2align 4,,10
.p2align 3
.L6:
movslq %r13d, %rax
addl $5, %r13d
addq %r12, %rax
movl $1886216486, (%rax)
movb $59, 4(%rax)
jmp .L14
.cfi_endproc
.LFE4864:
.size phe_escape_html, .-phe_escape_html
.section .text.unlikely
.LCOLDE1:
.text
.LHOTE1:
.ident "GCC: (GNU) 5.1.1 20150618 (Red Hat 5.1.1-4)"
.section .note.GNU-stack,"",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment