Advertisement
Guest User

SO 7379553 #1

a guest
Sep 13th, 2011
618
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text:0000000000400E63 main            proc near               ; DATA XREF: _start+1Do
  2. .text:0000000000400E63
  3. .text:0000000000400E63 var_160         = qword ptr -160h
  4. .text:0000000000400E63 var_154         = dword ptr -154h
  5. .text:0000000000400E63 name            = byte ptr -150h
  6. .text:0000000000400E63 addr            = sockaddr ptr -50h
  7. .text:0000000000400E63 fd              = dword ptr -3Ch
  8. .text:0000000000400E63 var_38          = qword ptr -38h
  9. .text:0000000000400E63 var_30          = qword ptr -30h
  10. .text:0000000000400E63 dest            = qword ptr -28h
  11. .text:0000000000400E63 s               = qword ptr -20h
  12. .text:0000000000400E63 src             = qword ptr -18h
  13. .text:0000000000400E63
  14. .text:0000000000400E63                 push    rbp
  15. .text:0000000000400E64                 mov     rbp, rsp
  16. .text:0000000000400E67                 push    rbx
  17. .text:0000000000400E68                 sub     rsp, 158h
  18. .text:0000000000400E6F                 mov     [rbp+var_154], edi
  19. .text:0000000000400E75                 mov     [rbp+var_160], rsi
  20. .text:0000000000400E7C                 cmp     [rbp+var_154], 2
  21. .text:0000000000400E83                 jz      short loc_400EB3
  22. .text:0000000000400E85                 mov     rax, cs:stderr@@GLIBC_2_2_5
  23. .text:0000000000400E8C                 mov     rdx, rax
  24. .text:0000000000400E8F                 mov     eax, offset aUsage ; "Usage"
  25. .text:0000000000400E94                 mov     rcx, rdx        ; s
  26. .text:0000000000400E97                 mov     edx, 5          ; n
  27. .text:0000000000400E9C                 mov     esi, 1          ; size
  28. .text:0000000000400EA1                 mov     rdi, rax        ; ptr
  29. .text:0000000000400EA4                 call    _fwrite
  30. .text:0000000000400EA9                 mov     edi, 1          ; status
  31. .text:0000000000400EAE                 call    _exit
  32. .text:0000000000400EB3 ; ---------------------------------------------------------------------------
  33. .text:0000000000400EB3
  34. .text:0000000000400EB3 loc_400EB3:                             ; CODE XREF: main+20j
  35. .text:0000000000400EB3                 lea     rax, [rbp+name]
  36. .text:0000000000400EBA                 mov     esi, 100h       ; len
  37. .text:0000000000400EBF                 mov     rdi, rax        ; name
  38. .text:0000000000400EC2                 call    _gethostname
  39. .text:0000000000400EC7                 lea     rax, [rbp+name]
  40. .text:0000000000400ECE                 mov     rdi, rax        ; name
  41. .text:0000000000400ED1                 call    _gethostbyname
  42. .text:0000000000400ED6                 mov     [rbp+var_30], rax
  43. .text:0000000000400EDA                 mov     rax, [rbp+var_30]
  44. .text:0000000000400EDE                 mov     rax, [rax+18h]
  45. .text:0000000000400EE2                 mov     rax, [rax]
  46. .text:0000000000400EE5                 mov     [rbp+var_38], rax
  47. .text:0000000000400EE9                 mov     [rbp+addr.sa_family], 2
  48. .text:0000000000400EEF                 mov     edi, 0          ; hostshort
  49. .text:0000000000400EF4                 call    _htons
  50. .text:0000000000400EF9                 mov     word ptr [rbp+addr.sa_data], ax
  51. .text:0000000000400EFD                 mov     rax, [rbp+var_38]
  52. .text:0000000000400F01                 mov     eax, [rax]
  53. .text:0000000000400F03                 mov     dword ptr [rbp+addr.sa_data+2], eax
  54. .text:0000000000400F06                 mov     edi, 6          ; size
  55. .text:0000000000400F0B                 call    _malloc
  56. .text:0000000000400F10                 mov     [rbp+s], rax
  57. .text:0000000000400F14                 movzx   eax, word ptr [rbp+addr.sa_data]
  58. .text:0000000000400F18                 movzx   edx, ax
  59. .text:0000000000400F1B                 mov     ecx, offset format ; "%d"
  60. .text:0000000000400F20                 mov     rax, [rbp+s]
  61. .text:0000000000400F24                 mov     rsi, rcx        ; format
  62. .text:0000000000400F27                 mov     rdi, rax        ; s
  63. .text:0000000000400F2A                 mov     eax, 0
  64. .text:0000000000400F2F                 call    _sprintf
  65. .text:0000000000400F34                 mov     rax, [rbp+var_38]
  66. .text:0000000000400F38                 mov     edi, [rax]      ; in
  67. .text:0000000000400F3A                 call    _inet_ntoa
  68. .text:0000000000400F3F                 mov     [rbp+src], rax
  69. .text:0000000000400F43                 mov     rax, [rbp+var_160]
  70. .text:0000000000400F4A                 add     rax, 8
  71. .text:0000000000400F4E                 mov     rax, [rax]
  72. .text:0000000000400F51                 mov     rdi, rax        ; s
  73. .text:0000000000400F54                 call    _strlen
  74. .text:0000000000400F59                 mov     rbx, rax
  75. .text:0000000000400F5C                 mov     rax, [rbp+src]
  76. .text:0000000000400F60                 mov     rdi, rax        ; s
  77. .text:0000000000400F63                 call    _strlen
  78. .text:0000000000400F68                 add     rbx, rax
  79. .text:0000000000400F6B                 mov     rax, [rbp+s]
  80. .text:0000000000400F6F                 mov     rdi, rax        ; s
  81. .text:0000000000400F72                 call    _strlen
  82. .text:0000000000400F77                 lea     rax, [rbx+rax]
  83. .text:0000000000400F7B                 add     rax, 5
  84. .text:0000000000400F7F                 mov     rdi, rax        ; size
  85. .text:0000000000400F82                 call    _malloc
  86. .text:0000000000400F87                 mov     [rbp+dest], rax
  87. .text:0000000000400F8B                 mov     ecx, offset aR  ; "r"
  88. .text:0000000000400F90                 mov     rax, [rbp+dest]
  89. .text:0000000000400F94                 mov     edx, 2          ; n
  90. .text:0000000000400F99                 mov     rsi, rcx        ; src
  91. .text:0000000000400F9C                 mov     rdi, rax        ; dest
  92. .text:0000000000400F9F                 call    _memcpy
  93. .text:0000000000400FA4                 mov     edx, offset delim ; " "
  94. .text:0000000000400FA9                 mov     rax, [rbp+dest]
  95. .text:0000000000400FAD                 mov     rsi, rdx        ; src
  96. .text:0000000000400FB0                 mov     rdi, rax        ; dest
  97. .text:0000000000400FB3                 call    _strcat
  98. .text:0000000000400FB8                 mov     rax, [rbp+var_160]
  99. .text:0000000000400FBF                 add     rax, 8
  100. .text:0000000000400FC3                 mov     rax, [rax]
  101. .text:0000000000400FC6                 mov     rdi, rax        ; s
  102. .text:0000000000400FC9                 call    _strlen
  103. .text:0000000000400FCE                 mov     rdx, rax        ; n
  104. .text:0000000000400FD1                 mov     rax, [rbp+var_160]
  105. .text:0000000000400FD8                 add     rax, 8
  106. .text:0000000000400FDC                 mov     rax, [rax]
  107. .text:0000000000400FDF                 mov     rcx, rax
  108. .text:0000000000400FE2                 mov     rax, [rbp+dest]
  109. .text:0000000000400FE6                 mov     rsi, rcx        ; src
  110. .text:0000000000400FE9                 mov     rdi, rax        ; dest
  111. .text:0000000000400FEC                 call    _strncat
  112. .text:0000000000400FF1                 mov     edx, offset delim ; " "
  113. .text:0000000000400FF6                 mov     rax, [rbp+dest]
  114. .text:0000000000400FFA                 mov     rsi, rdx        ; src
  115. .text:0000000000400FFD                 mov     rdi, rax        ; dest
  116. .text:0000000000401000                 call    _strcat
  117. .text:0000000000401005                 mov     rax, [rbp+src]
  118. .text:0000000000401009                 mov     rdi, rax        ; s
  119. .text:000000000040100C                 call    _strlen
  120. .text:0000000000401011                 mov     rdx, rax        ; n
  121. .text:0000000000401014                 mov     rcx, [rbp+src]
  122. .text:0000000000401018                 mov     rax, [rbp+dest]
  123. .text:000000000040101C                 mov     rsi, rcx        ; src
  124. .text:000000000040101F                 mov     rdi, rax        ; dest
  125. .text:0000000000401022                 call    _strncat
  126. .text:0000000000401027                 mov     edx, offset delim ; " "
  127. .text:000000000040102C                 mov     rax, [rbp+dest]
  128. .text:0000000000401030                 mov     rsi, rdx        ; src
  129. .text:0000000000401033                 mov     rdi, rax        ; dest
  130. .text:0000000000401036                 call    _strcat
  131. .text:000000000040103B                 mov     rax, [rbp+s]
  132. .text:000000000040103F                 mov     rdi, rax        ; s
  133. .text:0000000000401042                 call    _strlen
  134. .text:0000000000401047                 mov     rdx, rax        ; n
  135. .text:000000000040104A                 mov     rcx, [rbp+s]
  136. .text:000000000040104E                 mov     rax, [rbp+dest]
  137. .text:0000000000401052                 mov     rsi, rcx        ; src
  138. .text:0000000000401055                 mov     rdi, rax        ; dest
  139. .text:0000000000401058                 call    _strncat
  140. .text:000000000040105D                 mov     rax, [rbp+dest]
  141. .text:0000000000401061                 mov     rdi, rax
  142. .text:0000000000401064                 call    register_broker
  143. .text:0000000000401069                 mov     edx, 0          ; protocol
  144. .text:000000000040106E                 mov     esi, 1          ; type
  145. .text:0000000000401073                 mov     edi, 2          ; domain
  146. .text:0000000000401078                 call    _socket
  147. .text:000000000040107D                 mov     [rbp+fd], eax
  148. .text:0000000000401080                 cmp     [rbp+fd], 0
  149. .text:0000000000401084                 jns     short loc_40109A
  150. .text:0000000000401086                 mov     edi, offset aErrorCreatingS ; "Error creating socket"
  151. .text:000000000040108B                 call    _perror
  152. .text:0000000000401090                 mov     edi, 1          ; status
  153. .text:0000000000401095                 call    _exit
  154. .text:000000000040109A ; ---------------------------------------------------------------------------
  155. .text:000000000040109A
  156. .text:000000000040109A loc_40109A:                             ; CODE XREF: main+221j
  157. .text:000000000040109A                 lea     rcx, [rbp+addr]
  158. .text:000000000040109E                 mov     eax, [rbp+fd]
  159. .text:00000000004010A1                 mov     edx, 10h        ; len
  160. .text:00000000004010A6                 mov     rsi, rcx        ; addr
  161. .text:00000000004010A9                 mov     edi, eax        ; fd
  162. .text:00000000004010AB                 call    _bind
  163. .text:00000000004010B0                 test    eax, eax
  164. .text:00000000004010B2                 jz      short loc_4010C8
  165. .text:00000000004010B4                 mov     edi, offset aErrorBindingSo ; "Error binding socket"
  166. .text:00000000004010B9                 call    _perror
  167. .text:00000000004010BE                 mov     edi, 1          ; status
  168. .text:00000000004010C3                 call    _exit
  169. .text:00000000004010C8 ; ---------------------------------------------------------------------------
  170. .text:00000000004010C8
  171. .text:00000000004010C8 loc_4010C8:                             ; CODE XREF: main+24Fj
  172. .text:00000000004010C8                 mov     eax, [rbp+fd]
  173. .text:00000000004010CB                 mov     esi, 80h        ; n
  174. .text:00000000004010D0                 mov     edi, eax        ; fd
  175. .text:00000000004010D2                 call    _listen
  176. .text:00000000004010D7                 test    eax, eax
  177. .text:00000000004010D9                 jns     short loc_4010EF
  178. .text:00000000004010DB                 mov     edi, offset aErrorListening ; "Error listening on socket"
  179. .text:00000000004010E0                 call    _perror
  180. .text:00000000004010E5                 mov     edi, 1          ; status
  181. .text:00000000004010EA                 call    _exit
  182. .text:00000000004010EF ; ---------------------------------------------------------------------------
  183. .text:00000000004010EF
  184. .text:00000000004010EF loc_4010EF:                             ; CODE XREF: main+276j
  185. .text:00000000004010EF                 mov     eax, [rbp+fd]
  186. .text:00000000004010F2                 mov     edi, eax
  187. .text:00000000004010F4                 call    handle_requests
  188. .text:00000000004010F9                 add     rsp, 158h
  189. .text:0000000000401100                 pop     rbx
  190. .text:0000000000401101                 leave
  191. .text:0000000000401102                 retn
  192. .text:0000000000401102 main            endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement