Function at 0x100403550
Capabilities:
Create udp socket
Get socket status
Receive data
Receive data on socket
Terminate process

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x268
movaps xmmword [rsp + 0x210], xmm6
movaps xmmword [rsp + 0x220], xmm7
movaps xmmword [rsp + 0x230], xmm8
movaps xmmword [rsp + 0x240], xmm9
movaps xmmword [rsp + 0x250], xmm10
mov ebp, ecx
mov r13, rdx
call sym.__main
cmp ebp, 1
jle 0x100403640
mov dword [rsp + 0x54], 0
xor r12d, r12d
mov rdi, qword [sym.imp.cygwin1.dll_optarg]
mov esi, 0x3e8
mov qword [rsp + 0x70], 0
lea rbx, [0x100407320]
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x6c], 0
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x4c], 0
mov dword [rsp + 0x68], 0
nop dword [rax]
lea r8, str.vrdelqhm:s:t:b:f:a:u
mov rdx, r13
mov ecx, ebp
call sym.getopt
cmp eax, 0xffffffff
je 0x100403766
sub eax, 0x61
cmp eax, 0x15
ja 0x100403640
movsxd rax, dword [rbx + rax*4]
add rax, rbx
jmp rax
call dbg.print_banner
call dbg.usage
mov dword [rsp + 0x4c], 1
jmp 0x100403610
mov ebx, dword [rsp + 0x50]
test dword [rsp + 0x4c], ebx
jne 0x100403bb7
cmp qword [rsp + 0x60], 0
je 0x100403787
cmp dword [rsp + 0x50], 0
jne 0x100403bc8
mov eax, dword [rsp + 0x50]
mov ebx, dword [rsp + 0x58]
mov edi, dword [rsp + 0x5c]
and ebx, eax
test eax, edi
jne 0x100403bd9
test ebx, ebx
jne 0x100403bed
mov ebx, dword [rsp + 0x5c]
test dword [rsp + 0x4c], ebx
je 0x1004037bb
lea rcx, str.Cannot_be_used_with_both_verbose___v__and_lmhosts___l__options.
call main
mov eax, dword [rsp + 0x58]
mov ebx, eax
and ebx, dword [rsp + 0x5c]
test byte [rsp + 0x4c], al
jne 0x1004040e1
test bl, bl
jne 0x1004040f5
mov ebx, dword [rsp + 0x6c]
test dword [rsp + 0x50], ebx
jne 0x1004040d0
mov eax, dword [rsp + 0x4c]
xor eax, 1
test byte [rsp + 0x6c], al
jne 0x100404196
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x10040420f
lea rdx, [0x1004071ff]
call sym.strcmp
test eax, eax
jne 0x1004041a7
call sym.__getreent
lea r14, str.STDIN
mov rax, qword [rax + 8]
mov qword [rsp + 0x90], rax
cmp qword [rsp + 0x90], 0
je 0x100404287
cmp qword [rsp + 0x60], 0
jne 0x100403862
cmp dword [rsp + 0x5c], 0
jne 0x100403862
mov eax, dword [rsp + 0x68]
or eax, dword [rsp + 0x58]
or eax, dword [section..bss]
je 0x1004042ba
mov r8d, 0x11
mov edx, 2
mov ecx, 2
call sym.socket
mov r14d, eax
test eax, eax
jns 0x10040388b
cmp dword [section..bss], 0
je 0x10040424d
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov word [rsp + 0xf0], 2
test r12d, r12d
je 0x1004038bc
mov word [rsp + 0xf2], 0x8900
lea rdx, [rsp + 0xf0]
mov r8d, 0x10
mov ecx, r14d
call sym.bind
add eax, 1
jne 0x1004038e4
cmp dword [section..bss], 0
je 0x100404263
mov edx, 1
mov ecx, pe_nt_image_headers64
call sym.calloc
mov rbp, rax
test rax, rax
je 0x100404377
mov eax, r14d
mov ecx, 0x40
cdq
idiv ecx
mov ecx, r14d
mov edx, 1
movsxd rdi, eax
mov eax, r14d
and eax, 0x3f
lea r13, [rdi*8]
mov dword [rsp + 0x78], eax
lea rbx, [rbp + r13]
mov eax, 1
shl rax, cl
or qword [rbx], rax
mov ecx, pe_nt_image_headers64
mov r15, rax
call sym.calloc
mov r12, rax
test rax, rax
je 0x1004043b7
lea rax, [rax + r13]
mov ecx, 0x3e8
mov dword [rsp + 0xdc], 0x10
or qword [rax], r15
mov qword [rsp + 0x40], rax
mov eax, esi
cdq
idiv ecx
mov ecx, 4
imul edx, edx, 0x3e8
cdqe
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x110], rax
movsxd rax, edx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x118], rax
call sym.malloc
mov qword [rsp + 0x98], rax
test rax, rax
je 0x100404390
mov ecx, 0x400
call sym.malloc
mov rsi, rax
test rax, rax
je 0x100404335
mov edi, dword [rsp + 0x34]
test edi, edi
je 0x100404229
mov eax, 0x25317c00
cdq
idiv edi
movsxd rdi, eax
mov qword [rsp + 0x80], rdi
cmp eax, 0xf423f
jle 0x100404279
mov rax, rdi
mov ecx, 0xf4240
cqo
idiv rcx
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x120]
xor edx, edx
mov rcx, rax
mov qword [rsp + 0xc8], rax
call sym.gettimeofday
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xc0], eax
call dbg.new_list
cmp qword [rsp + 0x60], 0
mov qword [rsp + 0x88], rax
jne 0x100403a7a
cmp dword [rsp + 0x5c], 0
jne 0x100403a7a
mov eax, dword [rsp + 0x68]
or eax, dword [rsp + 0x4c]
or eax, dword [section..bss]
or eax, dword [rsp + 0x50]
or eax, dword [rsp + 0x58]
je 0x100404386
cmp dword [rsp + 0x68], 0
je 0x100403a96
cmp dword [0x10040b004], 1
mov eax, 2
cmovne eax, dword [rsp + 0x54]
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x7c], 0
pxor xmm7, xmm7
movss xmm9, dword [0x100407378]
mov dword [rsp + 0x48], r14d
movaps xmm6, xmm7
movq xmm8, qword [0x100407390]
mov edi, dword [rsp + 0x7c]
cmp dword [rsp + 0x54], edi
jl 0x1004041fd
cmp dword [0x10040b004], 1
je 0x100404000
lea rcx, [rsp + 0x140]
xor edx, edx
lea r13, [rsp + 0x110]
call sym.gettimeofday
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x34], 1
mov qword [rsp + 0xa8], 0
movsd xmm10, qword [0x100407380]
lea r14d, [rax + 1]
nop dword [rax + rax]
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8, r12
mov rdx, rbp
mov ecx, r14d
call sym.select
test eax, eax
jle 0x100403e86
mov rax, r15
and rax, qword [rbx]
je 0x100403d08
mov ecx, dword [rsp + 0x48]
xor r9d, r9d
mov r8d, 0x400
mov rdx, rsi
lea rax, [rsp + 0xdc]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
call sym.recvfrom
mov edi, eax
test eax, eax
jle 0x100403db0
xor edx, edx
lea rcx, [rsp + 0x160]
call sym.gettimeofday
mov edx, edi
mov rcx, rsi
call dbg.parse_response
test eax, eax
jne 0x100403c00
mov ecx, dword [section..bss]
test ecx, ecx
jne 0x100403b18
lea rcx, str.parse_response_returned_NULL
call sym.perror
jmp 0x100403b18
lea rcx, str.Cannot_be_used_with_both_dump___d__and_verbose___v__options.
call main
call dbg.usage
lea rcx, str.Cannot_be_used_with_both_dump___d__and_script_friendly___s__options.
call main
call dbg.usage
lea rcx, str.Cannot_be_used_with_both_dump___d__and_lmhosts___l__options.
call main
test ebx, ebx
je 0x1004037bb
lea rcx, str.Cannot_be_used_with_both_dump___d__and__etc_hosts___e__options.
call main
jmp 0x1004037bb
mov rcx, qword [rsp + 0x88]
mov edx, dword [rsp + 0x104]
movsxd rdi, eax
bswap edx
mov edx, edx
call dbg.insert
test eax, eax
je 0x100403d00
mov rax, qword [rsp + 0x168]
mov ecx, 0xf4240
pxor xmm1, xmm1
pxor xmm0, xmm0
mov r8d, 0x3e8
cqo
idiv rcx
mov edx, dword [rsp + 0xa0]
add rax, qword [rsp + 0x160]
sub rax, rdx
xor edx, edx
mov rcx, rax
mov rax, qword [rdi]
movzx eax, word [rax]
div r8w
movzx eax, ax
sub rcx, rax
cvtsi2ss xmm1, rcx
subss xmm1, xmm6
cvtss2sd xmm6, xmm6
cvtss2sd xmm0, xmm1
movapd xmm2, xmm0
comiss xmm7, xmm1
mulsd xmm2, xmm10
addsd xmm6, xmm2
cvtsd2ss xmm6, xmm6
jbe 0x100403c96
xorpd xmm0, xmm8
cvtss2sd xmm9, xmm9
subsd xmm0, xmm9
cmp dword [rsp + 0x4c], 0
mulsd xmm0, qword [0x1004073a0]
addsd xmm9, xmm0
cvtsd2ss xmm9, xmm9
jne 0x100403f22
cmp dword [rsp + 0x50], 0
jne 0x100404054
cmp dword [rsp + 0x58], 0
jne 0x100404078
cmp dword [rsp + 0x5c], 0
jne 0x10040408f
cmp dword [rsp + 0x68], 0
mov r8, qword [rsp + 0x60]
mov rdx, rdi
mov ecx, dword [rsp + 0x104]
je 0x1004040c6
call dbg.a_print_hostinfo
nop dword [rax]
mov rcx, rdi
call fcn.100402e10
xor eax, eax
mov ecx, 0x10
mov rdi, rbp
xor edx, edx
rep stosq qword [rdi], rax
lea rcx, [rsp + 0x130]
or qword [rbx], r15
call sym.gettimeofday
mov rdx, qword [rsp + 0x130]
mov rax, qword [rsp + 0x138]
sub rdx, qword [rsp + 0x120]
sub rax, qword [rsp + 0x128]
jns 0x100403d53
sub rdx, 1
add rax, 0xf4240
cmp rdx, qword [rsp + 0x38]
je 0x100403da0
setge al
movzx eax, al
mov edx, dword [rsp + 0x34]
test edx, edx
je 0x100403b18
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rdi]
mov edi, dword [rsp + 0x78]
bt rdx, rdi
jae 0x100403d82
test eax, eax
jne 0x100403df5
xor eax, eax
mov ecx, 0x20
mov rdi, r12
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x40]
or qword [rax], r15
jmp 0x100403b18
cmp rax, qword [rsp + 0x80]
setge al
movzx eax, al
jmp 0x100403d60
mov ecx, dword [rsp + 0x104]
lea rdi, [rsp + 0x170]
call sym.inet_ntoa
lea r8, str._s_tRecvfrom_failed
mov edx, 0x50
mov rcx, rdi
mov r9, rax
call sym.snprintf
cmp dword [section..bss], 0
jne 0x100403b18
mov rcx, rdi
call sym.perror
jmp 0x100403b18
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x100403f92
lea rdi, [rsp + 0x1c0]
mov edx, 0x50
mov rcx, rdi
call sym.fgets
test rax, rax
je 0x100403f40
mov rdx, qword [rsp + 0x98]
mov rcx, rdi
call sym.inet_aton
test eax, eax
je 0x1004040a9
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
mov eax, dword [rax]
mov edx, eax
mov dword [rsp + 0xc4], eax
bswap edx
call dbg.in_list
test eax, eax
jne 0x100403d82
mov rax, qword [rsp + 0x98]
mov r8d, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0x48]
mov edx, dword [rax]
call dbg.send_query
jmp 0x100403d82
mov edi, dword [rsp + 0x7c]
cmp dword [rsp + 0x54], edi
je 0x1004041fd
xor edx, edx
lea rcx, [rsp + 0x150]
add dword [rsp + 0x7c], 1
mov edi, dword [rsp + 0x7c]
call sym.gettimeofday
pxor xmm1, xmm1
movss xmm0, dword [0x1004073a8]
mov edx, 0x3c
cvtsi2ss xmm1, edi
mov r8, qword [rsp + 0x150]
mulss xmm0, xmm9
addss xmm0, xmm6
mulss xmm0, xmm1
cvttss2si eax, xmm0
cmp eax, edx
cmovg eax, edx
mov edx, 2
cmp eax, edx
cmovl eax, edx
cdqe
add rax, qword [rsp + 0x140]
cmp r8, rax
jl 0x100404068
xor eax, eax
mov ecx, 0x20
mov rdi, r12
rep stosd dword [rdi], eax
mov rdi, qword [rsp + 0x40]
mov ecx, 0x20
or qword [rdi], r15
mov rdi, rbp
rep stosd dword [rdi], eax
or qword [rbx], r15
jmp 0x100403abc
mov r9d, dword [rsp + 0x6c]
mov r8, qword [rsp + 0x60]
mov rdx, rdi
mov ecx, dword [rsp + 0x104]
call dbg.v_print_hostinfo
jmp 0x100403d00
mov rax, qword [rsp + 0x90]
test byte [rax + 0x10], 0x20
jne 0x10040415d
mov r9, qword [rsp + 0x70]
lea rdi, [rsp + 0x170]
mov edx, 0x50
lea r8, str.Read_failed_from_file__s
mov rcx, rdi
call sym.snprintf
cmp dword [section..bss], 0
jne 0x100403d82
mov rcx, rdi
call sym.perror
mov ecx, 1
call sym.exit
mov rdi, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa8]
lea rcx, [rsp + 0xe0]
mov r8, rdi
call sym.next_address
test eax, eax
je 0x100404243
mov eax, dword [rdi]
mov rcx, qword [rsp + 0x88]
mov edx, eax
mov dword [rsp + 0xa8], eax
bswap edx
call dbg.in_list
test eax, eax
je 0x10040413d
mov rcx, qword [rsp + 0xc8]
xor edx, edx
call sym.gettimeofday
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xa8], rax
jmp 0x100403d82
cmp dword [rsp + 0x7c], 0
je 0x100404106
cmp dword [rsp + 0x7c], 1
je 0x1004041c8
cmp dword [rsp + 0x7c], 2
jne 0x100403ad7
mov rax, qword [rsp + 0xe0]
and eax, 0xffffff00
or al, 0xa9
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe8]
and eax, 0xffffff00
or al, 0xfe
mov qword [rsp + 0xe8], rax
jmp 0x100403ad7
mov ecx, dword [rsp + 0x104]
mov rdx, rdi
call dbg.d_print_hostinfo
jmp 0x100403d00
sub rax, r8
mov rcx, rax
call sym.sleep
jmp 0x100403efc
mov ecx, dword [rsp + 0x104]
xor r8d, r8d
mov rdx, rdi
call dbg.l_print_hostinfo
jmp 0x100403d00
mov ecx, dword [rsp + 0x104]
mov r8d, 1
mov rdx, rdi
call dbg.l_print_hostinfo
jmp 0x100403d00
call sym.__getreent
mov r8, rdi
lea rdx, str._s___bad_IP_address_n
mov rcx, qword [rax + 0x18]
call sym.fprintf
jmp 0x100403d82
call dbg.print_hostinfo
jmp 0x100403d00
lea rcx, str.Cannot_be_used_with_both_dump___d__and__human_readable_service_names____h__options.
call main
call dbg.usage
lea rcx, str.Cannot_be_used_with_both_verbose___v__and__etc_hosts___e__options.
call main
test bl, bl
je 0x1004037e5
lea rcx, str.Cannot_be_used_with_both_lmhosts___l__and__etc_hosts___e__options.
call main
jmp 0x1004037d7
mov rax, qword [rsp + 0xe0]
and eax, 0xffffff00
or rax, 1
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe8]
and eax, 0xffffff00
or rax, 0x54
mov qword [rsp + 0xe8], rax
jmp 0x100403ad7
mov rax, qword [rsp + 0x98]
mov r8d, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0x48]
mov edx, dword [rax]
call dbg.send_query
jmp 0x100403fdc
mov ecx, 0x20
xor eax, eax
mov rdi, r12
mov dword [rsp + 0x34], 0
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x118], rax
jmp 0x100403b18
lea rcx, str._Human_readable_service_names____h__option_cannot_be_used_without_verbose___v__option.
call main
call dbg.usage
mov r14, qword [rsp + 0x70]
lea rdx, [0x100407201]
mov rcx, r14
call sym.fopen
mov qword [rsp + 0x90], rax
jmp 0x100403830
mov rax, qword [rsp + 0xe0]
and eax, 0xffffff00
or rax, 0x55
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe8]
and eax, 0xffffff00
or al, 0xa8
mov qword [rsp + 0xe8], rax
jmp 0x100403ad7
cmp dword [rsp + 0x68], 0
jne 0x1004042ce
xor ecx, ecx
call sym.exit
mov rax, qword [sym.imp.cygwin1.dll_optind]
movsxd rax, dword [rax]
sub ebp, eax
sub ebp, 1
je 0x1004042e0
call dbg.usage
mov qword [rsp + 0x80], 1
mov qword [rsp + 0x38], 0
jmp 0x100403a11
mov ecx, 0x20
jmp 0x100404164
lea rcx, str.Failed_to_create_socket
call sym.perror
mov ecx, 1
call sym.exit
lea rcx, str.Failed_to_bind
call sym.perror
mov ecx, 1
call sym.exit
mov qword [rsp + 0x38], 0
jmp 0x100403a11
mov r9, qword [rsp + 0x70]
lea rdi, [rsp + 0x170]
mov edx, 0x50
lea r8, str.Cannot_open_file__s
mov rcx, rdi
call sym.snprintf
cmp dword [section..bss], 0
jne 0x100403862
jmp 0x100403f80
mov rdx, r14
lea rcx, str.Doing_NBT_name_scan_for_addresses_from__s_n_n
call sym.printf
jmp 0x100403862
mov rcx, qword [rsp + 0x88]
call dbg.delete_list
jmp 0x100404208
mov rcx, qword [r13 + rax*8]
call sym.strdup
mov r13, rax
mov r14, rax
test rax, rax
je 0x100404358
lea rdx, [rsp + 0xe0]
mov rcx, r13
call sym.set_range
mov qword [rsp + 0x90], 0
test eax, eax
jne 0x10040383f
mov rdx, r13
lea rcx, str.Error:__s_is_not_an_IP_address_or_address_range._n
call sym.printf
mov rcx, r13
call fcn.100402e10
jmp 0x100404224
cmp dword [section..bss], 0
jne 0x1004039cd
lea rcx, [0x1004072b3]
call sym.perror
mov ecx, 1
call sym.exit
cmp dword [section..bss], 0
jne 0x1004042f5
lea rcx, [0x100407217]
call sym.perror
mov ecx, 1
call sym.exit
cmp dword [section..bss], 0
jne 0x1004038ff
jmp 0x100404342
call dbg.print_header
jmp 0x100403a96
cmp dword [section..bss], 0
je 0x100404342
mov ecx, 0x400
call sym.malloc
mov qword [rsp + 0x98], 0
mov rsi, rax
jmp 0x1004039cd
cmp dword [section..bss], 0
je 0x100404342
mov eax, esi
mov ecx, 0x3e8
mov qword [rsp + 0x40], r13
cdq
or qword [rdi*8], r15
idiv ecx
mov dword [rsp + 0xdc], 0x10
mov ecx, 4
imul edx, edx, 0x3e8
cdqe
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x110], rax
movsxd rax, edx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x118], rax
call sym.malloc
mov qword [rsp + 0x98], rax
test rax, rax
jne 0x1004039b7
jmp 0x100404399