Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text:0000000000400E63 main proc near ; DATA XREF: _start+1Do
- .text:0000000000400E63
- .text:0000000000400E63 var_160 = qword ptr -160h
- .text:0000000000400E63 var_154 = dword ptr -154h
- .text:0000000000400E63 name = byte ptr -150h
- .text:0000000000400E63 addr = sockaddr ptr -50h
- .text:0000000000400E63 fd = dword ptr -3Ch
- .text:0000000000400E63 var_38 = qword ptr -38h
- .text:0000000000400E63 var_30 = qword ptr -30h
- .text:0000000000400E63 dest = qword ptr -28h
- .text:0000000000400E63 s = qword ptr -20h
- .text:0000000000400E63 src = qword ptr -18h
- .text:0000000000400E63
- .text:0000000000400E63 push rbp
- .text:0000000000400E64 mov rbp, rsp
- .text:0000000000400E67 push rbx
- .text:0000000000400E68 sub rsp, 158h
- .text:0000000000400E6F mov [rbp+var_154], edi
- .text:0000000000400E75 mov [rbp+var_160], rsi
- .text:0000000000400E7C cmp [rbp+var_154], 2
- .text:0000000000400E83 jz short loc_400EB3
- .text:0000000000400E85 mov rax, cs:stderr@@GLIBC_2_2_5
- .text:0000000000400E8C mov rdx, rax
- .text:0000000000400E8F mov eax, offset aUsage ; "Usage"
- .text:0000000000400E94 mov rcx, rdx ; s
- .text:0000000000400E97 mov edx, 5 ; n
- .text:0000000000400E9C mov esi, 1 ; size
- .text:0000000000400EA1 mov rdi, rax ; ptr
- .text:0000000000400EA4 call _fwrite
- .text:0000000000400EA9 mov edi, 1 ; status
- .text:0000000000400EAE call _exit
- .text:0000000000400EB3 ; ---------------------------------------------------------------------------
- .text:0000000000400EB3
- .text:0000000000400EB3 loc_400EB3: ; CODE XREF: main+20j
- .text:0000000000400EB3 lea rax, [rbp+name]
- .text:0000000000400EBA mov esi, 100h ; len
- .text:0000000000400EBF mov rdi, rax ; name
- .text:0000000000400EC2 call _gethostname
- .text:0000000000400EC7 lea rax, [rbp+name]
- .text:0000000000400ECE mov rdi, rax ; name
- .text:0000000000400ED1 call _gethostbyname
- .text:0000000000400ED6 mov [rbp+var_30], rax
- .text:0000000000400EDA mov rax, [rbp+var_30]
- .text:0000000000400EDE mov rax, [rax+18h]
- .text:0000000000400EE2 mov rax, [rax]
- .text:0000000000400EE5 mov [rbp+var_38], rax
- .text:0000000000400EE9 mov [rbp+addr.sa_family], 2
- .text:0000000000400EEF mov edi, 0 ; hostshort
- .text:0000000000400EF4 call _htons
- .text:0000000000400EF9 mov word ptr [rbp+addr.sa_data], ax
- .text:0000000000400EFD mov rax, [rbp+var_38]
- .text:0000000000400F01 mov eax, [rax]
- .text:0000000000400F03 mov dword ptr [rbp+addr.sa_data+2], eax
- .text:0000000000400F06 mov edi, 6 ; size
- .text:0000000000400F0B call _malloc
- .text:0000000000400F10 mov [rbp+s], rax
- .text:0000000000400F14 movzx eax, word ptr [rbp+addr.sa_data]
- .text:0000000000400F18 movzx edx, ax
- .text:0000000000400F1B mov ecx, offset format ; "%d"
- .text:0000000000400F20 mov rax, [rbp+s]
- .text:0000000000400F24 mov rsi, rcx ; format
- .text:0000000000400F27 mov rdi, rax ; s
- .text:0000000000400F2A mov eax, 0
- .text:0000000000400F2F call _sprintf
- .text:0000000000400F34 mov rax, [rbp+var_38]
- .text:0000000000400F38 mov edi, [rax] ; in
- .text:0000000000400F3A call _inet_ntoa
- .text:0000000000400F3F mov [rbp+src], rax
- .text:0000000000400F43 mov rax, [rbp+var_160]
- .text:0000000000400F4A add rax, 8
- .text:0000000000400F4E mov rax, [rax]
- .text:0000000000400F51 mov rdi, rax ; s
- .text:0000000000400F54 call _strlen
- .text:0000000000400F59 mov rbx, rax
- .text:0000000000400F5C mov rax, [rbp+src]
- .text:0000000000400F60 mov rdi, rax ; s
- .text:0000000000400F63 call _strlen
- .text:0000000000400F68 add rbx, rax
- .text:0000000000400F6B mov rax, [rbp+s]
- .text:0000000000400F6F mov rdi, rax ; s
- .text:0000000000400F72 call _strlen
- .text:0000000000400F77 lea rax, [rbx+rax]
- .text:0000000000400F7B add rax, 5
- .text:0000000000400F7F mov rdi, rax ; size
- .text:0000000000400F82 call _malloc
- .text:0000000000400F87 mov [rbp+dest], rax
- .text:0000000000400F8B mov ecx, offset aR ; "r"
- .text:0000000000400F90 mov rax, [rbp+dest]
- .text:0000000000400F94 mov edx, 2 ; n
- .text:0000000000400F99 mov rsi, rcx ; src
- .text:0000000000400F9C mov rdi, rax ; dest
- .text:0000000000400F9F call _memcpy
- .text:0000000000400FA4 mov edx, offset delim ; " "
- .text:0000000000400FA9 mov rax, [rbp+dest]
- .text:0000000000400FAD mov rsi, rdx ; src
- .text:0000000000400FB0 mov rdi, rax ; dest
- .text:0000000000400FB3 call _strcat
- .text:0000000000400FB8 mov rax, [rbp+var_160]
- .text:0000000000400FBF add rax, 8
- .text:0000000000400FC3 mov rax, [rax]
- .text:0000000000400FC6 mov rdi, rax ; s
- .text:0000000000400FC9 call _strlen
- .text:0000000000400FCE mov rdx, rax ; n
- .text:0000000000400FD1 mov rax, [rbp+var_160]
- .text:0000000000400FD8 add rax, 8
- .text:0000000000400FDC mov rax, [rax]
- .text:0000000000400FDF mov rcx, rax
- .text:0000000000400FE2 mov rax, [rbp+dest]
- .text:0000000000400FE6 mov rsi, rcx ; src
- .text:0000000000400FE9 mov rdi, rax ; dest
- .text:0000000000400FEC call _strncat
- .text:0000000000400FF1 mov edx, offset delim ; " "
- .text:0000000000400FF6 mov rax, [rbp+dest]
- .text:0000000000400FFA mov rsi, rdx ; src
- .text:0000000000400FFD mov rdi, rax ; dest
- .text:0000000000401000 call _strcat
- .text:0000000000401005 mov rax, [rbp+src]
- .text:0000000000401009 mov rdi, rax ; s
- .text:000000000040100C call _strlen
- .text:0000000000401011 mov rdx, rax ; n
- .text:0000000000401014 mov rcx, [rbp+src]
- .text:0000000000401018 mov rax, [rbp+dest]
- .text:000000000040101C mov rsi, rcx ; src
- .text:000000000040101F mov rdi, rax ; dest
- .text:0000000000401022 call _strncat
- .text:0000000000401027 mov edx, offset delim ; " "
- .text:000000000040102C mov rax, [rbp+dest]
- .text:0000000000401030 mov rsi, rdx ; src
- .text:0000000000401033 mov rdi, rax ; dest
- .text:0000000000401036 call _strcat
- .text:000000000040103B mov rax, [rbp+s]
- .text:000000000040103F mov rdi, rax ; s
- .text:0000000000401042 call _strlen
- .text:0000000000401047 mov rdx, rax ; n
- .text:000000000040104A mov rcx, [rbp+s]
- .text:000000000040104E mov rax, [rbp+dest]
- .text:0000000000401052 mov rsi, rcx ; src
- .text:0000000000401055 mov rdi, rax ; dest
- .text:0000000000401058 call _strncat
- .text:000000000040105D mov rax, [rbp+dest]
- .text:0000000000401061 mov rdi, rax
- .text:0000000000401064 call register_broker
- .text:0000000000401069 mov edx, 0 ; protocol
- .text:000000000040106E mov esi, 1 ; type
- .text:0000000000401073 mov edi, 2 ; domain
- .text:0000000000401078 call _socket
- .text:000000000040107D mov [rbp+fd], eax
- .text:0000000000401080 cmp [rbp+fd], 0
- .text:0000000000401084 jns short loc_40109A
- .text:0000000000401086 mov edi, offset aErrorCreatingS ; "Error creating socket"
- .text:000000000040108B call _perror
- .text:0000000000401090 mov edi, 1 ; status
- .text:0000000000401095 call _exit
- .text:000000000040109A ; ---------------------------------------------------------------------------
- .text:000000000040109A
- .text:000000000040109A loc_40109A: ; CODE XREF: main+221j
- .text:000000000040109A lea rcx, [rbp+addr]
- .text:000000000040109E mov eax, [rbp+fd]
- .text:00000000004010A1 mov edx, 10h ; len
- .text:00000000004010A6 mov rsi, rcx ; addr
- .text:00000000004010A9 mov edi, eax ; fd
- .text:00000000004010AB call _bind
- .text:00000000004010B0 test eax, eax
- .text:00000000004010B2 jz short loc_4010C8
- .text:00000000004010B4 mov edi, offset aErrorBindingSo ; "Error binding socket"
- .text:00000000004010B9 call _perror
- .text:00000000004010BE mov edi, 1 ; status
- .text:00000000004010C3 call _exit
- .text:00000000004010C8 ; ---------------------------------------------------------------------------
- .text:00000000004010C8
- .text:00000000004010C8 loc_4010C8: ; CODE XREF: main+24Fj
- .text:00000000004010C8 mov eax, [rbp+fd]
- .text:00000000004010CB mov esi, 80h ; n
- .text:00000000004010D0 mov edi, eax ; fd
- .text:00000000004010D2 call _listen
- .text:00000000004010D7 test eax, eax
- .text:00000000004010D9 jns short loc_4010EF
- .text:00000000004010DB mov edi, offset aErrorListening ; "Error listening on socket"
- .text:00000000004010E0 call _perror
- .text:00000000004010E5 mov edi, 1 ; status
- .text:00000000004010EA call _exit
- .text:00000000004010EF ; ---------------------------------------------------------------------------
- .text:00000000004010EF
- .text:00000000004010EF loc_4010EF: ; CODE XREF: main+276j
- .text:00000000004010EF mov eax, [rbp+fd]
- .text:00000000004010F2 mov edi, eax
- .text:00000000004010F4 call handle_requests
- .text:00000000004010F9 add rsp, 158h
- .text:0000000000401100 pop rbx
- .text:0000000000401101 leave
- .text:0000000000401102 retn
- .text:0000000000401102 main endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement