Skip to content

Instantly share code, notes, and snippets.

@Kentzo
Created September 2, 2011 15:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kentzo/1188869 to your computer and use it in GitHub Desktop.
Save Kentzo/1188869 to your computer and use it in GitHub Desktop.
-[CATextLayer drawInContext:]
;return address *(long*)$esp
;first parameter $rdi
;second parameter $rsi
;third parameter $rdx
;fourth parameter $rcx
;fifth parameter $r8
;sixth parameter $r9
;-[CATextLayer drawInContext:]
0x7fff83d23858: pushq %rbp
0x7fff83d23859: movq %rsp, %rbp
0x7fff83d2385c: pushq %r15
0x7fff83d2385e: pushq %r14
0x7fff83d23860: pushq %rbx
0x7fff83d23861: subq $104, %rsp
0x7fff83d23865: movq %rdx, %rbx
0x7fff83d23868: movq %rdi, %r14
0x7fff83d2386b: movb 1403607(%rip), %al ; 0x7fff83e7a348 -[IKProgressIndicator draw] + 382
0x7fff83d23871: testb %al, %al
0x7fff83d23873: jne 0x7fff83d23897 ; -[CATextLayer drawInContext:] + 63
0x7fff83d23875: leaq 1390796(%rip), %rdi ; 0x7fff83e77148
0x7fff83d2387c: callq 0x7fff83de6b6c ; NSClassFromString ----- NSGraphicsContext
0x7fff83d23881: leaq 1403592(%rip), %rsi ; 0x7fff83e7a350 -[IKProgressIndicator draw] + 390
0x7fff83d23888: movq %rax, %rdi
0x7fff83d2388b: callq 0x7fff83de6e2a ; objc_assign_global ----- something related to Garbabe Collector
0x7fff83d23890: movb $1, 1403569(%rip) ; 0x7fff83e7a348 -[IKProgressIndicator draw] + 382
0x7fff83d23897: movq 1403570(%rip), %rdi ; 0x7fff83e7a350 -[IKProgressIndicator draw] + 390
0x7fff83d2389e: testq %rdi, %rdi
0x7fff83d238a1: je 0x7fff83d238de ; -[CATextLayer drawInContext:] + 134
0x7fff83d238a3: movq 1339158(%rip), %rsi ; 0x7fff83e6a7c0
0x7fff83d238aa: callq 0x7fff83de6e60 ; objc_msgSend ----- saveGraphicsContext
0x7fff83d238af: movq 1339138(%rip), %rsi ; 0x7fff83e6a7b8
0x7fff83d238b6: movq 1403539(%rip), %r15 ; 0x7fff83e7a350 -[IKProgressIndicator draw] + 390
0x7fff83d238bd: xorl %ecx, %ecx
0x7fff83d238bf: xorb %al, %al
0x7fff83d238c1: movq %r15, %rdi
0x7fff83d238c4: movq %rbx, %rdx
0x7fff83d238c7: callq 0x7fff83de6e60 ; objc_msgSend ----- graphicsContextWithGraphicsPort:flipped:
0x7fff83d238cc: movq 1339101(%rip), %rsi ; 0x7fff83e6a7b0
0x7fff83d238d3: movq %r15, %rdi
0x7fff83d238d6: movq %rax, %rdx
0x7fff83d238d9: callq 0x7fff83de6e60 ; objc_msgSend ----- setCurrentContext: <NSBitmapGraphicsContext *>
0x7fff83d238de: movq 1335891(%rip), %rsi ; 0x7fff83e69b38
0x7fff83d238e5: movq %r14, %rdi
0x7fff83d238e8: callq 0x7fff83de6e60 ; objc_msgSend ----- [self contentsAreFlipped]
0x7fff83d238ed: testb %al, %al
0x7fff83d238ef: je 0x7fff83d2397a ; -[CATextLayer drawInContext:] + 290
0x7fff83d238f5: movabsq $4607182418800017408, %rax
0x7fff83d238ff: movq %rax, -72(%rbp)
0x7fff83d23903: movq $0, -56(%rbp)
0x7fff83d2390b: movq $0, -64(%rbp)
0x7fff83d23913: movabsq $-4616189618054758400, %rax
0x7fff83d2391d: movq %rax, -48(%rbp)
0x7fff83d23921: movq $0, -40(%rbp)
0x7fff83d23929: movq 1336632(%rip), %rsi ; 0x7fff83e69e68
0x7fff83d23930: movq %r14, %rdi
0x7fff83d23933: callq 0x7fff83de6e60 ; objc_msgSend ----- [self size]
0x7fff83d23938: movsd %xmm1, -32(%rbp)
0x7fff83d2393d: movq -32(%rbp), %rax
0x7fff83d23941: movq %rax, 40(%rsp)
0x7fff83d23946: movq -40(%rbp), %rax
0x7fff83d2394a: movq %rax, 32(%rsp)
0x7fff83d2394f: movq -48(%rbp), %rax
0x7fff83d23953: movq %rax, 24(%rsp)
0x7fff83d23958: movq -56(%rbp), %rax
0x7fff83d2395c: movq %rax, 16(%rsp)
0x7fff83d23961: movq -72(%rbp), %rax
0x7fff83d23965: movq -64(%rbp), %rdx
0x7fff83d23969: movq %rdx, 8(%rsp)
0x7fff83d2396e: movq %rax, (%rsp)
0x7fff83d23972: movq %rbx, %rdi
0x7fff83d23975: callq 0x7fff83de62a2 ; CGContextConcatCTM
0x7fff83d2397a: movq 1338919(%rip), %rsi ; 0x7fff83e6a7a8
0x7fff83d23981: leaq 1130(%rip), %rdx ; 0x7fff83d23df2 _ZL8drawLineP11objc_objectPv7CGPointPK8__CTLine
0x7fff83d23988: movq %r14, %rdi
0x7fff83d2398b: movq %rbx, %rcx
0x7fff83d2398e: callq 0x7fff83de6e60 ; objc_msgSend ----- [self _applyLinesToFunction:info:<CGContextRef>]
0x7fff83d23993: movq 1403318(%rip), %rdi ; 0x7fff83e7a350 -[IKProgressIndicator draw] + 390
0x7fff83d2399a: testq %rdi, %rdi
0x7fff83d2399d: je 0x7fff83d239ab ; -[CATextLayer drawInContext:] + 339
0x7fff83d2399f: movq 1338874(%rip), %rsi ; 0x7fff83e6a7a0
0x7fff83d239a6: callq 0x7fff83de6e60 ; objc_msgSend
0x7fff83d239ab: addq $104, %rsp
0x7fff83d239af: popq %rbx
0x7fff83d239b0: popq %r14
0x7fff83d239b2: popq %r15
0x7fff83d239b4: popq %rbp
0x7fff83d239b5: ret
0x7fff83d239b6: nop
0x7fff83d239b7: nop
0x7fff83d239b8: nop
;-[CATextLayer applyLinesToFunction:info:]
0x7fff83d239d4: pushq %rbp
0x7fff83d239d5: movq %rsp, %rbp
0x7fff83d239d8: pushq %r15
0x7fff83d239da: pushq %r14
0x7fff83d239dc: pushq %r13
0x7fff83d239de: pushq %r12
0x7fff83d239e0: pushq %rbx
0x7fff83d239e1: subq $232, %rsp
0x7fff83d239e8: movq %rcx, -224(%rbp)
0x7fff83d239ef: movq %rdx, -232(%rbp)
0x7fff83d239f6: movq %rdi, -176(%rbp)
0x7fff83d239fd: movq 1338852(%rip), %rsi ; 0x7fff83e6a7e8
0x7fff83d23a04: xorb %al, %al
0x7fff83d23a06: callq 0x7fff83de6e60 ; objc_msgSend ----- [self _retainTypesetter]
0x7fff83d23a0b: movq %rax, -216(%rbp)
0x7fff83d23a12: testq %rax, %rax
0x7fff83d23a15: je 0x7fff83d23dc2 ; -[CATextLayer _applyLinesToFunction:info:] + 1006
0x7fff83d23a1b: movq 1335390(%rip), %rdx ; 0x7fff83e69a80
0x7fff83d23a22: leaq -104(%rbp), %rdi
0x7fff83d23a26: movq -176(%rbp), %rbx
0x7fff83d23a2d: movq %rbx, %rsi
0x7fff83d23a30: callq 0x7fff83de6e72 ; objc_msgSend_stret ----- [self bounds]
0x7fff83d23a35: movsd -104(%rbp), %xmm0
0x7fff83d23a3a: movsd %xmm0, -72(%rbp)
0x7fff83d23a3f: movsd -96(%rbp), %xmm0
0x7fff83d23a44: movsd %xmm0, -64(%rbp)
0x7fff83d23a49: movsd -88(%rbp), %xmm0
0x7fff83d23a4e: movsd %xmm0, -56(%rbp)
0x7fff83d23a53: movsd -80(%rbp), %xmm0
0x7fff83d23a58: movsd %xmm0, -48(%rbp)
0x7fff83d23a5d: movq 1335444(%rip), %rsi ; 0x7fff83e69af8
0x7fff83d23a64: movq %rbx, %rdi
0x7fff83d23a67: callq 0x7fff83de6e60 ; objc_msgSend ----- [self bounds]
0x7fff83d23a6c: movq -48(%rbp), %rax
0x7fff83d23a70: movq %rax, 24(%rsp)
0x7fff83d23a75: movq -56(%rbp), %rax
0x7fff83d23a79: movq %rax, 16(%rsp)
0x7fff83d23a7e: movq -72(%rbp), %rax
0x7fff83d23a82: movq -64(%rbp), %rdx
0x7fff83d23a86: movq %rdx, 8(%rsp)
0x7fff83d23a8b: movq %rax, (%rsp)
0x7fff83d23a8f: leaq -136(%rbp), %rdi
0x7fff83d23a96: callq 0x7fff83de6806 ; CGRectInset
0x7fff83d23a9b: movsd -136(%rbp), %xmm0
0x7fff83d23aa3: movsd %xmm0, -72(%rbp)
0x7fff83d23aa8: movsd -128(%rbp), %xmm0
0x7fff83d23aad: movsd %xmm0, -64(%rbp)
0x7fff83d23ab2: movsd -120(%rbp), %xmm0
0x7fff83d23ab7: movsd %xmm0, -56(%rbp)
0x7fff83d23abc: movsd -112(%rbp), %xmm0
0x7fff83d23ac1: movsd %xmm0, -48(%rbp)
0x7fff83d23ac6: movq 1338699(%rip), %rsi ; 0x7fff83e6a818
0x7fff83d23acd: movq %rbx, %rdi
0x7fff83d23ad0: callq 0x7fff83de6e60 ; objc_msgSend ----- [self isWrapped]
0x7fff83d23ad5: movb %al, -233(%rbp)
0x7fff83d23adb: movq 1336606(%rip), %rsi ; 0x7fff83e6a000
0x7fff83d23ae2: movq %rbx, %rdi
0x7fff83d23ae5: xorb %al, %al
0x7fff83d23ae7: callq 0x7fff83de6e60 ; objc_msgSend ----- [self string]
0x7fff83d23aec: leaq 1340317(%rip), %rsi ; 0x7fff83e6ae90
0x7fff83d23af3: movq %rax, %rdi
0x7fff83d23af6: callq 0x7fff83e6ae90 ; ----- [[self string] length]
0x7fff83d23afc: movq %rax, -200(%rbp)
0x7fff83d23b03: movq -48(%rbp), %rax
0x7fff83d23b07: movq %rax, 24(%rsp)
0x7fff83d23b0c: movq -56(%rbp), %rax
0x7fff83d23b10: movq %rax, 16(%rsp)
0x7fff83d23b15: movq -72(%rbp), %rax
0x7fff83d23b19: movq -64(%rbp), %rdx
0x7fff83d23b1d: movq %rdx, 8(%rsp)
0x7fff83d23b22: movq %rax, (%rsp)
0x7fff83d23b26: callq 0x7fff83de6800 ; CGRectGetMaxY
0x7fff83d23b2b: movsd %xmm0, -168(%rbp)
0x7fff83d23b33: movq 1338534(%rip), %rsi ; 0x7fff83e6a7e0
0x7fff83d23b3a: movq %rbx, %rdi
0x7fff83d23b3d: xorb %al, %al
0x7fff83d23b3f: callq 0x7fff83de6e60 ; objc_msgSend ------ [self alignmentMode]
0x7fff83d23b44: xorl %esi, %esi
0x7fff83d23b46: movq %rax, %rdi
0x7fff83d23b49: callq 0x7fff83cbd125 ; CAInternAtom
0x7fff83d23b4e: cmpl $54, %eax
0x7fff83d23b51: je 0x7fff83d23b7b ; -[CATextLayer _applyLinesToFunction:info:] + 423
0x7fff83d23b53: cmpl $197, %eax
0x7fff83d23b58: je 0x7fff83d23b8c ; -[CATextLayer _applyLinesToFunction:info:] + 440
0x7fff83d23b5a: cmpl $291, %eax
0x7fff83d23b5f: je 0x7fff83d23b6a ; -[CATextLayer _applyLinesToFunction:info:] + 406
0x7fff83d23b61: movb $1, -201(%rbp)
0x7fff83d23b68: jmp 0x7fff83d23b93 ; -[CATextLayer _applyLinesToFunction:info:] + 447
0x7fff83d23b6a: movb $1, -201(%rbp)
0x7fff83d23b71: movsd 807527(%rip), %xmm0 ; 0x7fff83de8de0
0x7fff83d23b79: jmp 0x7fff83d23b97 ; -[CATextLayer _applyLinesToFunction:info:] + 451
0x7fff83d23b7b: movb $1, -201(%rbp)
0x7fff83d23b82: movsd 807550(%rip), %xmm0 ; 0x7fff83de8e08
0x7fff83d23b8a: jmp 0x7fff83d23b97 ; -[CATextLayer _applyLinesToFunction:info:] + 451
0x7fff83d23b8c: movb $0, -201(%rbp)
0x7fff83d23b93: pxor %xmm0, %xmm0
0x7fff83d23b97: movsd %xmm0, -192(%rbp)
0x7fff83d23b9f: xorl %ebx, %ebx
0x7fff83d23ba1: cmpb $0, -233(%rbp)
0x7fff83d23ba8: jne 0x7fff83d23bb4 ; -[CATextLayer _applyLinesToFunction:info:] + 480
0x7fff83d23baa: movsd 834030(%rip), %xmm0 ; 0x7fff83def5a0 +[CAShapeLayer defaultValueForKey:]::values + 48
0x7fff83d23bb2: jmp 0x7fff83d23bb9 ; -[CATextLayer _applyLinesToFunction:info:] + 485
0x7fff83d23bb4: movsd -56(%rbp), %xmm0
0x7fff83d23bb9: movq -216(%rbp), %r14
0x7fff83d23bc0: movq %r14, %rdi
0x7fff83d23bc3: movq %rbx, %rsi
0x7fff83d23bc6: callq 0x7fff83de6a5e ; CTTypesetterSuggestLineBreak
0x7fff83d23bcb: movq %rax, %r15
0x7fff83d23bce: movq %r14, %rdi
0x7fff83d23bd1: movq %rbx, %rsi
0x7fff83d23bd4: movq %r15, %rdx
0x7fff83d23bd7: callq 0x7fff83de6a52 ; CTTypesetterCreateLine
0x7fff83d23bdc: testq %rax, %rax
0x7fff83d23bdf: je 0x7fff83d23db6 ; -[CATextLayer _applyLinesToFunction:info:] + 994
0x7fff83d23be5: movq %rax, %r14
0x7fff83d23be8: movq 1338345(%rip), %rsi ; 0x7fff83e6a7d8
0x7fff83d23bef: xorb %al, %al
0x7fff83d23bf1: movq -176(%rbp), %rdi
0x7fff83d23bf8: callq 0x7fff83de6e60 ; objc_msgSend
0x7fff83d23bfd: xorl %esi, %esi
0x7fff83d23bff: movq %rax, %rdi
0x7fff83d23c02: callq 0x7fff83cbd125 ; CAInternAtom
0x7fff83d23c07: cmpl $124, %eax
0x7fff83d23c0a: je 0x7fff83d23c27 ; -[CATextLayer _applyLinesToFunction:info:] + 595
0x7fff83d23c0c: cmpl $231, %eax
0x7fff83d23c11: je 0x7fff83d23c1f ; -[CATextLayer _applyLinesToFunction:info:] + 587
0x7fff83d23c13: cmpl $329, %eax
0x7fff83d23c18: jne 0x7fff83d23c7c ; -[CATextLayer _applyLinesToFunction:info:] + 680
0x7fff83d23c1a: xorl %r12d, %r12d
0x7fff83d23c1d: jmp 0x7fff83d23c2d ; -[CATextLayer _applyLinesToFunction:info:] + 601
0x7fff83d23c1f: movl $2, %r12d
0x7fff83d23c25: jmp 0x7fff83d23c2d ; -[CATextLayer _applyLinesToFunction:info:] + 601
0x7fff83d23c27: movl $1, %r12d
0x7fff83d23c2d: movq 1338268(%rip), %rsi ; 0x7fff83e6a7d0
0x7fff83d23c34: xorb %al, %al
0x7fff83d23c36: movq -176(%rbp), %rdi
0x7fff83d23c3d: callq 0x7fff83de6e60 ; objc_msgSend ----- [self truncationMode]
0x7fff83d23c42: testq %rax, %rax
0x7fff83d23c45: je 0x7fff83d23c7c ; -[CATextLayer _applyLinesToFunction:info:] + 680
0x7fff83d23c47: movq %rax, %r13
0x7fff83d23c4a: movsd -56(%rbp), %xmm0
0x7fff83d23c4f: movq %r14, %rdi
0x7fff83d23c52: movl %r12d, %esi
0x7fff83d23c55: movq %r13, %rdx
0x7fff83d23c58: callq 0x7fff83de6a1c ; CTLineCreateTruncatedLine
0x7fff83d23c5d: movq %rax, %r12
0x7fff83d23c60: movq %r13, %rdi
0x7fff83d23c63: callq 0x7fff83de5f90 ; CFRelease
0x7fff83d23c68: movq %r14, %rdi
0x7fff83d23c6b: callq 0x7fff83de5f90 ; CFRelease
0x7fff83d23c70: testq %r12, %r12
0x7fff83d23c73: je 0x7fff83d23db6 ; -[CATextLayer _applyLinesToFunction:info:] + 994
0x7fff83d23c79: movq %r12, %r14
0x7fff83d23c7c: testb $1, -201(%rbp)
0x7fff83d23c83: jne 0x7fff83d23cbe ; -[CATextLayer _applyLinesToFunction:info:] + 746
0x7fff83d23c85: leaq (%r15,%rbx), %rax
0x7fff83d23c89: cmpq -200(%rbp), %rax
0x7fff83d23c90: jge 0x7fff83d23cbe ; -[CATextLayer _applyLinesToFunction:info:] + 746
0x7fff83d23c92: movsd -56(%rbp), %xmm1
0x7fff83d23c97: movq %r14, %rdi
0x7fff83d23c9a: movsd 807230(%rip), %xmm0 ; 0x7fff83de8de0
0x7fff83d23ca2: callq 0x7fff83de6a16 ; CTLineCreateJustifiedLine
0x7fff83d23ca7: movq %rax, %r12
0x7fff83d23caa: movq %r14, %rdi
0x7fff83d23cad: callq 0x7fff83de5f90 ; CFRelease
0x7fff83d23cb2: testq %r12, %r12
0x7fff83d23cb5: je 0x7fff83d23db6 ; -[CATextLayer _applyLinesToFunction:info:] + 994
0x7fff83d23cbb: movq %r12, %r14
0x7fff83d23cbe: movq %r14, %rdi
0x7fff83d23cc1: leaq -144(%rbp), %rsi
0x7fff83d23cc8: leaq -152(%rbp), %rdx
0x7fff83d23ccf: leaq -160(%rbp), %rcx
0x7fff83d23cd6: callq 0x7fff83de6a34 ; CTLineGetTypographicBounds
0x7fff83d23cdb: movsd -192(%rbp), %xmm0
0x7fff83d23ce3: ucomisd 807181(%rip), %xmm0 ; 0x7fff83de8df8
0x7fff83d23ceb: jne 0x7fff83d23cf5 ; -[CATextLayer _applyLinesToFunction:info:] + 801
0x7fff83d23ced: jp 0x7fff83d23cf5 ; -[CATextLayer _applyLinesToFunction:info:] + 801
0x7fff83d23cef: pxor %xmm0, %xmm0
0x7fff83d23cf3: jmp 0x7fff83d23d0a ; -[CATextLayer _applyLinesToFunction:info:] + 822
0x7fff83d23cf5: movsd -56(%rbp), %xmm1
0x7fff83d23cfa: movq %r14, %rdi
0x7fff83d23cfd: movsd -192(%rbp), %xmm0
0x7fff83d23d05: callq 0x7fff83de6a2e ; CTLineGetPenOffsetForFlush
0x7fff83d23d0a: movsd %xmm0, -184(%rbp)
0x7fff83d23d12: movsd -144(%rbp), %xmm0
0x7fff83d23d1a: movsd -168(%rbp), %xmm1
0x7fff83d23d22: subsd %xmm0, %xmm1
0x7fff83d23d26: movsd %xmm1, -168(%rbp)
0x7fff83d23d2e: movapd %xmm1, %xmm0
0x7fff83d23d32: addsd 807118(%rip), %xmm0 ; 0x7fff83de8e08
0x7fff83d23d3a: callq 0x7fff83de6d28 ; floor
0x7fff83d23d3f: movapd %xmm0, %xmm1
0x7fff83d23d43: movsd -184(%rbp), %xmm0
0x7fff83d23d4b: addsd -72(%rbp), %xmm0
0x7fff83d23d50: movq -176(%rbp), %rdi
0x7fff83d23d57: movq -224(%rbp), %rsi
0x7fff83d23d5e: movq %r14, %rdx
0x7fff83d23d61: callq *-232(%rbp)
0x7fff83d23d67: movsd -152(%rbp), %xmm0
0x7fff83d23d6f: addsd -160(%rbp), %xmm0
0x7fff83d23d77: movsd %xmm0, -184(%rbp)
0x7fff83d23d7f: movq %r14, %rdi
0x7fff83d23d82: callq 0x7fff83de5f90 ; CFRelease
0x7fff83d23d87: movsd -168(%rbp), %xmm1
0x7fff83d23d8f: subsd -184(%rbp), %xmm1
0x7fff83d23d97: movsd %xmm1, -168(%rbp)
0x7fff83d23d9f: ucomisd -64(%rbp), %xmm1
0x7fff83d23da4: jb 0x7fff83d23db6 ; -[CATextLayer _applyLinesToFunction:info:] + 994
0x7fff83d23da6: addq %r15, %rbx
0x7fff83d23da9: cmpq -200(%rbp), %rbx
0x7fff83d23db0: jl 0x7fff83d23ba1 ; -[CATextLayer _applyLinesToFunction:info:] + 461
0x7fff83d23db6: movq -216(%rbp), %rdi
0x7fff83d23dbd: callq 0x7fff83de5f90 ; CFRelease
0x7fff83d23dc2: addq $232, %rsp
0x7fff83d23dc9: popq %rbx
0x7fff83d23dca: popq %r12
0x7fff83d23dcc: popq %r13
0x7fff83d23dce: popq %r14
0x7fff83d23dd0: popq %r15
0x7fff83d23dd2: popq %rbp
0x7fff83d23dd3: ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment