Function at 0x401214
Capabilities:
Initialize winsock library
Resolve dns
Send icmp echo request
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff8
push dword [ecx - 4]
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x290
mov ebx, ecx
call sym.___main
mov dword [ebp - 0xc], 4
mov dword [ebp - 0x14], 0xfa0
mov dword [ebp - 0x18], 0x20
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0x7fffffff
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
fldz
fstp dword [ebp - 0x30]
cmp dword [ebx], 1
jne 0x401285
call sym._usage
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
mov dword [ebp - 0x10], 1
jmp 0x401551
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
movzx eax, byte [eax]
cmp al, 0x2d
je 0x4012c5
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
movzx eax, byte [eax]
cmp al, 0x2f
jne 0x401504
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
add eax, 1
movzx eax, byte [eax]
movsx eax, al
cmp eax, 0x77
je 0x401395
cmp eax, 0x77
jg 0x4014a6
cmp eax, 0x6e
je 0x401316
cmp eax, 0x6e
jg 0x4014a6
cmp eax, 0x3f
je 0x401493
cmp eax, 0x6c
je 0x401414
jmp 0x4014a6
mov eax, dword [ebx]
sub eax, 1
cmp dword [ebp - 0x10], eax
jne 0x40134f
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.Missing_value_for_option__s_n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_atoi]
call eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4014fb
mov dword [esp], str.Bad_value_for_option__n__valid_range_is_from_1_to_4294967295._n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
mov eax, dword [ebx]
sub eax, 1
cmp dword [ebp - 0x10], eax
jne 0x4013ce
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.Missing_value_for_option__s_n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_atoi]
call eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4014fe
mov dword [esp], str.Bad_value_for_option__w._n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
mov eax, dword [ebx]
sub eax, 1
cmp dword [ebp - 0x10], eax
jne 0x40144d
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.Missing_value_for_option__s_n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_atoi]
call eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x401501
mov dword [esp], str.Bad_value_for_option__l._n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
call sym._usage
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
call sym._usage
mov eax, section..data
movzx eax, byte [eax]
movzx eax, al
and eax, 1
test eax, eax
je 0x4014ed
mov dword [ebp - 0x58], section..data
mov dword [ebp - 0x5c], 0
mov dword [esp + 0xc], str.this_command_currently_only_supports_the__n___w_and__l_parameters._n
mov dword [esp + 8], str.main
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call sym._wine_dbg_log
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
nop
jmp 0x40154d
nop
jmp 0x40154d
nop
jmp 0x40154d
cmp dword [ebp - 0x2c], 0
je 0x401539
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.Bad_argument__s_n
call sym._printf
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_exit]
call eax
mov eax, dword [ebp - 0x10]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
add dword [ebp - 0x10], 1
mov eax, dword [ebx]
cmp dword [ebp - 0x10], eax
jb 0x401291
cmp dword [ebp - 0x2c], 0
jne 0x401578
mov dword [esp], str.Pass_a_host_name._n
call sym._printf
mov eax, 1
jmp 0x401927
lea eax, [ebp - 0x1f8]
mov dword [esp + 4], eax
mov dword [esp], 0x202
mov eax, dword [sym.imp.ws2_32.dll_WSAStartup]
call eax
sub esp, 8
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x4015b9
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
mov dword [esp], str.WSAStartup_failed:__d_n
call sym._printf
mov eax, 1
jmp 0x401927
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov eax, dword [sym.imp.ws2_32.dll_gethostbyname]
call eax
sub esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x4015ef
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov dword [esp], str.Ping_request_could_not_find_host__s._Please_check_the_name_and_try_again._n
call sym._printf
mov eax, 1
jmp 0x401927
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
mov eax, dword [sym.imp.ws2_32.dll_inet_ntoa]
call eax
sub esp, 4
mov dword [esp + 4], eax
lea eax, [ebp - 0x25c]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_strcpy]
call eax
lea eax, [ebp - 0x25c]
mov dword [esp], eax
mov eax, dword [sym.imp.ws2_32.dll_inet_addr]
call eax
sub esp, 4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x40165f
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov dword [esp], str.Could_not_get_IP_address_of_host__s.
call sym._printf
mov eax, 1
jmp 0x401927
call sym._IcmpCreateFile_0
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], 1
mov eax, dword [sym.imp.ucrtbase.dll_calloc]
call eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
add eax, 0x24
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
call eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x4016b4
mov dword [esp], str.Unable_to_allocate_memory_to_reply_buffer._n
call sym._printf
mov eax, 1
jmp 0x401927
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x25c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov dword [esp], str.Pinging__s___s__with__d_bytes_of_data:_n
call sym._printf
mov dword [ebp - 0x10], 0
jmp 0x401870
mov dword [ebp - 0x60], 0
mov eax, dword fs:[0x18]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
lea edx, [eax + 0x34]
mov eax, dword [ebp - 0x60]
mov dword [edx], eax
nop
mov eax, dword [ebp - 0x18]
movzx eax, ax
mov edx, dword [ebp - 0x14]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp - 0x48]
mov dword [esp + 0x18], edx
mov edx, dword [ebp - 0x4c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call sym._IcmpSendEcho_32
sub esp, 0x20
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x401818
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
test eax, eax
je 0x401782
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], str._ld
lea eax, [ebp - 0x26c]
mov dword [esp], eax
call sym._sprintf
jmp 0x401791
lea eax, [ebp - 0x26c]
mov word [eax], 0x313c
mov byte [eax + 2], 0
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax + 0x14]
movzx eax, al
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x26c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [esp + 8], eax
lea eax, [ebp - 0x25c]
mov dword [esp + 4], eax
mov dword [esp], str.Reply_from__s:_bytes_d_time_sms_TTL_d_n
call sym._printf
mov eax, dword [ebp - 0x54]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x28]
cmp edx, eax
jbe 0x4017dc
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x54]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x24]
cmp edx, eax
jae 0x4017f2
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
movd xmm0, eax
movq qword [ebp - 0x278], xmm0
fild qword [ebp - 0x278]
fld dword [ebp - 0x30]
faddp st(1)
fstp dword [ebp - 0x30]
add dword [ebp - 0x1c], 1
jmp 0x401850
mov eax, dword fs:[0x18]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x34]
cmp eax, 0x2b02
jne 0x40183e
mov dword [esp], str.Request_timed_out.
mov eax, dword [sym.imp.ucrtbase.dll_puts]
call eax
jmp 0x40184c
mov dword [esp], str.PING:_transmit_failed._General_failure.
mov eax, dword [sym.imp.ucrtbase.dll_puts]
call eax
add dword [ebp - 0x20], 1
mov eax, dword [ebp - 0xc]
sub eax, 1
cmp dword [ebp - 0x10], eax
jae 0x40186c
mov dword [esp], 0x3e8
mov eax, dword [sym.imp.kernel32.dll_Sleep]
call eax
sub esp, 4
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jb 0x4016e4
lea eax, [ebp - 0x25c]
mov dword [esp + 4], eax
mov dword [esp], str._nPing_statistics_for__s_n
call sym._printf
fild dword [ebp - 0x20]
movd xmm1, dword [ebp - 0xc]
movq qword [ebp - 0x278], xmm1
fild qword [ebp - 0x278]
fdivp st(1)
fld dword [0x4053e0]
fmulp st(1)
fstp qword [esp + 0x10]
mov eax, dword [ebp - 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov dword [esp], str._tPackets:_Sent___d__Received___d__Lost___d___.0f___loss__n
call sym._printf
cmp dword [ebp - 0x1c], 0
je 0x401915
fild dword [ebp - 0x1c]
fld dword [ebp - 0x30]
fdivrp st(1)
fstp dword [ebp - 0x30]
mov dword [esp], str.Approximate_round_trip_times_in_milli_seconds:_n
call sym._printf
fld dword [ebp - 0x30]
fstp qword [esp + 0xc]
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov dword [esp], str._tMinimum___dms__Maximum___dms__Average___.0fms_n
call sym._printf
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_free]
call eax
mov eax, 0
lea esp, [ebp - 8]
pop ecx
pop ebx
pop ebp
lea esp, [ecx - 4]
ret