Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- entry0 (char *arg1, int arg2, int arg4);
- | ; var char *local_38h @ rbp-0x38
- | ; var int local_30h @ rbp-0x30
- | ; var int local_2eh @ rbp-0x2e
- | ; var int local_2ch @ rbp-0x2c
- | ; arg char *arg1 @ rdi
- | ; arg int arg2 @ rsi
- | ; arg int arg4 @ rcx
- | 0x100000c3f 55 push rbp ; [00] -r-x section size 577 named 0.__TEXT.__text
- | 0x100000c40 4889e5 mov rbp, rsp
- | 0x100000c43 4157 push r15
- | 0x100000c45 4156 push r14
- | 0x100000c47 4155 push r13
- | 0x100000c49 4154 push r12
- | 0x100000c4b 53 push rbx
- | 0x100000c4c 4883ec18 sub rsp, 0x18
- | 0x100000c50 4889f3 mov rbx, rsi ; arg2
- | 0x100000c53 4189ff mov r15d, edi ; arg1
- | 0x100000c56 66c745d02000 mov word [local_30h], 0x20 ; 32
- | 0x100000c5c 66c745d20a00 mov word [local_2eh], 0xa
- | 0x100000c62 4c8b33 mov r14, qword [rbx]
- | 0x100000c65 488b7b08 mov rdi, qword [rbx + 8] ; [0x8:8]=-1 ; 8
- | 0x100000c69 4c8d6b08 lea r13, [rbx + 8] ; 8
- | 0x100000c6d 4531e4 xor r12d, r12d
- | 0x100000c70 4885ff test rdi, rdi
- | 0x100000c73 4c8975c8 mov qword [local_38h], r14
- | ,=< 0x100000c77 7410 je 0x100000c89
- | | 0x100000c79 488d35180300. lea rsi, [0x100000f98] ; section.4.__TEXT.__cstring ; "-n" ; const char *s2
- | | 0x100000c80 e80d020000 call sym.imp.strcmp ; int strcmp(const char *s1, const char *s2)
- | | 0x100000c85 85c0 test eax, eax
- | ,==< 0x100000c87 7409 je 0x100000c92
- | || ; CODE XREF from entry0 (0x100000c77)
- | |`-> 0x100000c89 c745d4000000. mov dword [local_2ch], 0
- | |,=< 0x100000c90 eb11 jmp 0x100000ca3
- | || ; CODE XREF from entry0 (0x100000c87)
- | `--> 0x100000c92 4883c310 add rbx, 0x10
- | | 0x100000c96 41ffcf dec r15d
- | | 0x100000c99 c745d4010000. mov dword [local_2ch], 1
- | | 0x100000ca0 4989dd mov r13, rbx
- | | ; CODE XREF from entry0 (0x100000c90)
- | `-> 0x100000ca3 4183ff01 cmp r15d, 1 ; 1
- | 0x100000ca7 438d443ffd lea eax, [r15 + r15 - 3]
- | 0x100000cac 440f4fe0 cmovg r12d, eax
- | 0x100000cb0 4963fc movsxd rdi, r12d
- | 0x100000cb3 48c1e704 shl rdi, 4
- | 0x100000cb7 4883c710 add rdi, 0x10 ; size_t size
- | 0x100000cbb e8cc010000 call sym.imp.malloc ; void *malloc(size_t size)
- | 0x100000cc0 4989c6 mov r14, rax
- | 0x100000cc3 4d85f6 test r14, r14
- | ,=< 0x100000cc6 0f84f2000000 je 0x100000dbe
- | | 0x100000ccc 498b5d00 mov rbx, qword [r13]
- | | 0x100000cd0 4885db test rbx, rbx
- | ,==< 0x100000cd3 7473 je 0x100000d48
- | || 0x100000cd5 4983c508 add r13, 8
- | || 0x100000cd9 4d89f7 mov r15, r14
- | || 0x100000cdc 4983c710 add r15, 0x10
- | ,===< 0x100000ce0 eb1a jmp 0x100000cfc
- | ||| ; CODE XREF from entry0 (0x100000d44)
- | .----> 0x100000ce2 488d45d0 lea rax, [local_30h]
- | :||| 0x100000ce6 498907 mov qword [r15], rax
- | :||| 0x100000ce9 49c747080100. mov qword [r15 + 8], 1
- | :||| 0x100000cf1 4983c508 add r13, 8
- | :||| 0x100000cf5 4983c720 add r15, 0x20
- | :||| 0x100000cf9 4889cb mov rbx, rcx ; arg4
- | :||| ; CODE XREF from entry0 (0x100000ce0)
- | :`---> 0x100000cfc 4889df mov rdi, rbx ; const char *s
- | : || 0x100000cff e89a010000 call sym.imp.strlen ; size_t strlen(const char *s)
- | : || 0x100000d04 498b4d00 mov rcx, qword [r13]
- | : || 0x100000d08 4883f802 cmp rax, 2 ; 2
- | :,===< 0x100000d0c 7227 jb 0x100000d35
- | :||| 0x100000d0e 4885c9 test rcx, rcx
- | ,=====< 0x100000d11 7522 jne 0x100000d35
- | |:||| 0x100000d13 807c03fe5c cmp byte [rbx + rax - 2], 0x5c ; '\'
- | ,======< 0x100000d18 751b jne 0x100000d35
- | ||:||| 0x100000d1a 488d50fe lea rdx, [rax - 2]
- | ||:||| 0x100000d1e 807c03ff63 cmp byte [rbx + rax - 1], 0x63 ; 'c'
- | ||:||| 0x100000d23 8b75d4 mov esi, dword [local_2ch]
- | ||:||| 0x100000d26 bf01000000 mov edi, 1
- | ||:||| 0x100000d2b 0f44f7 cmove esi, edi
- | ||:||| 0x100000d2e 8975d4 mov dword [local_2ch], esi
- | ||:||| 0x100000d31 480f44c2 cmove rax, rdx
- | ||:||| ; CODE XREFS from entry0 (0x100000d0c, 0x100000d11, 0x100000d18)
- | ``-`---> 0x100000d35 4885c9 test rcx, rcx
- | : || 0x100000d38 498b55f8 mov rdx, qword [r13 - 8]
- | : || 0x100000d3c 498957f0 mov qword [r15 - 0x10], rdx
- | : || 0x100000d40 498947f8 mov qword [r15 - 8], rax
- | `====< 0x100000d44 759c jne 0x100000ce2
- | ,===< 0x100000d46 eb03 jmp 0x100000d4b
- | ||| ; CODE XREF from entry0 (0x100000cd3)
- | |`--> 0x100000d48 4d89f7 mov r15, r14
- | | | ; CODE XREF from entry0 (0x100000d46)
- | `---> 0x100000d4b 8b45d4 mov eax, dword [local_2ch]
- | | 0x100000d4e 85c0 test eax, eax
- | ,==< 0x100000d50 7512 jne 0x100000d64
- | || 0x100000d52 41ffc4 inc r12d
- | || 0x100000d55 488d45d2 lea rax, [local_2eh]
- | || 0x100000d59 498907 mov qword [r15], rax
- | || 0x100000d5c 49c747080100. mov qword [r15 + 8], 1
- | || ; CODE XREF from entry0 (0x100000d50)
- | `--> 0x100000d64 4585e4 test r12d, r12d
- | ,==< 0x100000d67 7434 je 0x100000d9d
- | || ; CODE XREF from entry0 (0x100000d9b)
- | .---> 0x100000d69 4181fc010400. cmp r12d, 0x401 ; 1025
- | :|| 0x100000d70 bb00040000 mov ebx, 0x400 ; 1024
- | :|| 0x100000d75 410f4cdc cmovl ebx, r12d
- | :|| 0x100000d79 bf01000000 mov edi, 1
- | :|| 0x100000d7e 4c89f6 mov rsi, r14
- | :|| 0x100000d81 89da mov edx, ebx
- | :|| 0x100000d83 e822010000 call sym.imp.writev
- | :|| 0x100000d88 4883f8ff cmp rax, 0xffffffffffffffff
- | ,====< 0x100000d8c 7420 je 0x100000dae
- | |:|| 0x100000d8e 4863c3 movsxd rax, ebx
- | |:|| 0x100000d91 48c1e004 shl rax, 4
- | |:|| 0x100000d95 4901c6 add r14, rax ; '#'
- | |:|| 0x100000d98 4129dc sub r12d, ebx
- | |`===< 0x100000d9b 75cc jne 0x100000d69
- | | || ; CODE XREF from entry0 (0x100000d67)
- | | `--> 0x100000d9d 31c0 xor eax, eax
- | | | 0x100000d9f 4883c418 add rsp, 0x18
- | | | 0x100000da3 5b pop rbx
- | | | 0x100000da4 415c pop r12
- | | | 0x100000da6 415d pop r13
- | | | 0x100000da8 415e pop r14
- | | | 0x100000daa 415f pop r15
- | | | 0x100000dac 5d pop rbp
- | | | 0x100000dad c3 ret
- | | | ; CODE XREF from entry0 (0x100000d8c)
- | `----> 0x100000dae 488d35ed0100. lea rsi, str.write ; 0x100000fa2 ; "write"
- | | 0x100000db5 488b7dc8 mov rdi, qword [local_38h]
- | | 0x100000db9 e810000000 call sym.func.100000dce
- | | ; CODE XREF from entry0 (0x100000cc6)
- | `-> 0x100000dbe 488d35d60100. lea rsi, str.malloc ; 0x100000f9b ; "malloc"
- | 0x100000dc5 488b7dc8 mov rdi, qword [local_38h]
- | 0x100000dc9 e800000000 call sym.func.100000dce
- | ;-- func.100000dce:
- | ; CALL XREFS from entry0 (0x100000db9, 0x100000dc9)
- | 0x100000dce 55 push rbp
- | 0x100000dcf 4889e5 mov rbp, rsp
- | 0x100000dd2 4157 push r15
- | 0x100000dd4 4156 push r14
- | 0x100000dd6 53 push rbx
- | 0x100000dd7 50 push rax
- | 0x100000dd8 4989f7 mov r15, rsi
- | 0x100000ddb 4889fb mov rbx, rdi
- | 0x100000dde e89d000000 call sym.imp.__error
- | 0x100000de3 8b38 mov edi, dword [rax] ; int errnum
- | 0x100000de5 e8ae000000 call sym.imp.strerror ; char *strerror(int errnum)
- | 0x100000dea 4989c6 mov r14, rax
- | 0x100000ded 4889df mov rdi, rbx ; const char *s
- | 0x100000df0 e8a9000000 call sym.imp.strlen ; size_t strlen(const char *s)
- | 0x100000df5 bf02000000 mov edi, 2 ; int fd
- | 0x100000dfa 4889de mov rsi, rbx ; void *ptr
- | 0x100000dfd 4889c2 mov rdx, rax ; size_t nbytes
- | 0x100000e00 e89f000000 call sym.imp.write ; ssize_t write(int fd, void *ptr, size_t nbytes)
- | 0x100000e05 488d1d9c0100. lea rbx, [0x100000fa8] ; ": " ; 4294971304
- | 0x100000e0c bf02000000 mov edi, 2 ; int fd
- | 0x100000e11 ba02000000 mov edx, 2 ; size_t nbytes
- | 0x100000e16 4889de mov rsi, rbx ; void *ptr
- | 0x100000e19 e886000000 call sym.imp.write ; ssize_t write(int fd, void *ptr, size_t nbytes)
- | 0x100000e1e 4c89ff mov rdi, r15 ; const char *s
- | 0x100000e21 e878000000 call sym.imp.strlen ; size_t strlen(const char *s)
- | 0x100000e26 bf02000000 mov edi, 2 ; int fd
- | 0x100000e2b 4c89fe mov rsi, r15 ; void *ptr
- | 0x100000e2e 4889c2 mov rdx, rax ; size_t nbytes
- | 0x100000e31 e86e000000 call sym.imp.write ; ssize_t write(int fd, void *ptr, size_t nbytes)
- | 0x100000e36 bf02000000 mov edi, 2 ; int fd
- | 0x100000e3b ba02000000 mov edx, 2 ; size_t nbytes
- | 0x100000e40 4889de mov rsi, rbx ; void *ptr
- | 0x100000e43 e85c000000 call sym.imp.write ; ssize_t write(int fd, void *ptr, size_t nbytes)
- | 0x100000e48 4c89f7 mov rdi, r14 ; const char *s
- | 0x100000e4b e84e000000 call sym.imp.strlen ; size_t strlen(const char *s)
- | 0x100000e50 bf02000000 mov edi, 2 ; int fd
- | 0x100000e55 4c89f6 mov rsi, r14 ; void *ptr
- | 0x100000e58 4889c2 mov rdx, rax ; size_t nbytes
- | 0x100000e5b e844000000 call sym.imp.write ; ssize_t write(int fd, void *ptr, size_t nbytes)
- | 0x100000e60 488d35440100. lea rsi, [0x100000fab] ; "\n" ; 4294971307 ; void *ptr
- | 0x100000e67 bf02000000 mov edi, 2 ; int fd
- | 0x100000e6c ba01000000 mov edx, 1 ; size_t nbytes
- | 0x100000e71 e82e000000 call sym.imp.write ; ssize_t write(int fd, void *ptr, size_t nbytes)
- | 0x100000e76 bf01000000 mov edi, 1 ; int status
- \ 0x100000e7b e806000000 call sym.imp.exit ; void exit(int status)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement