Function at 0x406850
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
mov dword [ebp - 0xc], ebx
movzx ebx, byte [ebp + 8]
mov dword [ebp - 8], esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], edi
mov al, bl
mov edi, dword [ebp + 0x10]
sub al, 0x31
cmp al, 0x48
ja case.0x406877.50
movzx eax, al
jmp dword [eax*4 + 0x411528]
or dword [edi + 0x40], 8
mov eax, dword [edi + 0x44]
cmp eax, 1
je 0x406f7d
cmp eax, 2
jne case.0x406877.50
mov eax, 1
lea esi, [ebp - 0xa8]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.00407520
mov dword [esp], esi
call fcn.00407820
test eax, eax
je case.0x406877.50
or dword [edi + 0x40], 0x4000
lea esi, [esi]
lea edi, [edi]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
or dword [edi + 0x40], 0x10000
inc esi
movzx eax, byte [esi]
test al, al
je case.0x406877.50
sub al, 0x43
cmp al, 0x33
ja case.0x4068f9.69
movzx eax, al
jmp dword [eax*4 + 0x41164c]
movzx eax, byte [esi]
cmp al, 0x43
je 0x40690f
cmp al, 0x63
jne 0x406f1e
mov dword [edi + 0x48], 1
jmp case.0x406877.50
mov dword [esp], esi
lea ecx, [ebp - 0x88]
mov dword [esp + 4], ecx
call fcn.004067f0
lea eax, [ebp - 0x88]
mov dword [esp], eax
call fcn.00408bb0
mov dword [edi + 0x3c], eax
cmp eax, 0x7ff
jg case.0x406877.50
call sub.cygwin1.dll___getreent
mov edx, dword [edi + 0x3c]
mov ecx, str.WARNING:_TCP_window_size_set_to__d_bytes._A_small_window_size_nwill_give_poor_performance._See_the_Iperf_documentation._n
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp case.0x406877.50
mov ebx, str.iperf_version_2.0.4__7_Apr_2008__pthreads_n
call sub.cygwin1.dll___getreent
mov dword [esp + 4], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov ecx, dword [edi + 0x40]
test ch, 8
jne 0x4069ab
mov dword [edi + 0x50], 0x100000
or ecx, 0x800
mov dword [edi + 0x40], ecx
mov dword [edi + 0x54], 0
test cl, 1
jne 0x406f09
mov dword [edi + 0x34], 0x5be
jmp case.0x406877.50
or dword [edi + 0x40], 0x1000
mov dword [esp], esi
call sub.cygwin1.dll_atof
fnstcw word [ebp - 0xaa]
fld dword [0x41151c]
movzx eax, word [ebp - 0xaa]
fmulp st(1)
or ax, 0xc00
mov word [ebp - 0xac], ax
fldcw word [ebp - 0xac]
fistp dword [ebp - 0xb0]
fldcw word [ebp - 0xaa]
mov eax, dword [ebp - 0xb0]
cdq
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], edx
jmp case.0x406877.50
or dword [edi + 0x40], 0x400
mov edi, str.The__W_option_is_not_available_in_this_release_n
call sub.cygwin1.dll___getreent
mov dword [esp + 4], edi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp case.0x406877.50
or dword [edi + 0x40], 0x200000
jmp case.0x406877.50
mov dword [esp], esi
lea eax, [ebp - 0x88]
mov dword [esp + 4], eax
call fcn.004067f0
lea edx, [ebp - 0x88]
mov dword [esp], edx
call fcn.00408bb0
mov dword [ebp - 0xb8], eax
mov ecx, dword [edi + 0x40]
mov esi, ecx
mov dword [ebp - 0xb4], ecx
or esi, 1
test esi, 0x800
mov ecx, esi
jne 0x406edb
mov dword [edi + 0x34], eax
cmp eax, 0x17
jg 0x406a9a
test esi, 2
je 0x406eb1
mov dword [edi + 0x40], esi
jmp case.0x406877.50
mov dword [esp], esi
call sub.cygwin1.dll_atof
fld qword [0x411520]
fxch st(1)
fst qword [edi + 0x60]
fxch st(1)
fucompp
fnstsw ax
sahf
jbe case.0x406877.50
call sub.cygwin1.dll___getreent
fld qword [edi + 0x60]
mov edx, str.WARNING:_interval_too_small__increasing_from__3.2f_to_0.5_seconds._n
mov dword [esp + 4], edx
fstp qword [esp + 8]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0x3fe00000
jmp case.0x406877.50
mov ebx, str.Usage:_iperf___s_c_host___options__n_______iperf___h__help____v__version__n_nClient_Server:_n___f____format_____kmKM____format_to_report:_Kbits__Mbits__KBytes__MBytes_n___i____interval__________seconds_between_periodic_bandwidth_reports_n___l____len________KM_____length_of_buffer_to_read_or_write__default_8_KB__n___m____print_mss__________print_TCP_maximum_segment_size__MTU___TCP_IP_header__n___o____output_____filename__output_the_report_or_error_message_to_this_specified_file_n___p____port______________server_port_to_listen_on_connect_to_n___u____udp________________use_UDP_rather_than_TCP_n___w____window_____KM_____TCP_window_size__socket_buffer_size__n___B____bind_______host____bind_to__host___an_interface_or_multicast_address_n___C____compatibility______for_use_with_older_versions_does_not_sent_extra_msgs_n___M____mss_______________set_TCP_maximum_segment_size__MTU___40_bytes__n___N____nodelay____________set_TCP_no_delay__disabling_Nagles_Algorithm_n___V____IPv6Version________Set_the_domain_to_IPv6_n_nServer_specific:_n___s____server_____________run_in_server_mode_n___U____single_udp_________run_in_single_threaded_UDP_mode_n___D____daemon_____________run_the_server_as_a_daemon_n
call sub.cygwin1.dll___getreent
mov dword [esp + 4], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
call sub.cygwin1.dll___getreent
mov ecx, str._nClient_specific:_n___b____bandwidth__KM_____for_UDP__bandwidth_to_send_at_in_bits_sec_n____________________________default_1_Mbit_sec__implies__u__n___c____client_____host____run_in_client_mode__connecting_to__host__n___d____dualtest___________Do_a_bidirectional_test_simultaneously_n___n____num________KM_____number_of_bytes_to_transmit__instead_of__t__n___r____tradeoff___________Do_a_bidirectional_test_individually_n___t____time______________time_in_seconds_to_transmit_for__default_10_secs__n___F____fileinput__name____input_the_data_to_be_transmitted_from_a_file_n___I____stdin______________input_the_data_to_be_transmitted_from_stdin_n___L____listenport________port_to_recieve_bidirectional_tests_back_on_n___P____parallel__________number_of_parallel_client_threads_to_run_n___T____ttl_______________time_to_live__for_multicast__default_1__n___Z____linux_congestion__algo___set_TCP_congestion_control_algorithm__Linux_only__n_nMiscellaneous:_n___x____reportexclude__CDMSV____exclude_C_connection__D_data__M_multicast__S_settings__V_server__reports_n___y____reportstyle_C______report_as_a_Comma_Separated_Values_n___h____help_______________print_this_message_and_quit_n___v____version____________print_version_information_and_quit_n_n_KM__Indicates_options_that_support_a_K_or_M_suffix_for_kilo__or_mega__n_nThe_TCP_window_size_option_can_be_set_by_the_environment_variable_nTCP_WINDOW_SIZE._Most_other_options_can_be_set_by_an_environment_variable_nIPERF__long_option_name___such_as_IPERF_BANDWIDTH._n_nReport_bugs_to__iperf_users_lists.sourceforge.net__n
mov dword [esp + 4], ecx
jmp 0x406975
movzx eax, byte [esi]
mov byte [edi + 0x6c], al
jmp case.0x406877.50
cmp dword [edi + 0x44], 2
jne 0x406bf1
test byte [edi + 0x40], 2
jne 0x406fcf
mov dword [edi + 0x4c], 1
jmp case.0x406877.50
mov dword [esp], esi
call sub.cygwin1.dll_strlen
inc eax
mov dword [esp], eax
call fcn.00409860
mov dword [edi + 4], eax
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0040d368
mov eax, dword [edi + 0x44]
test eax, eax
jne case.0x406877.50
xor eax, eax
test byte [edi + 0x40], 8
lea esi, [ebp - 0x98]
mov dword [esp + 4], esi
setne al
mov dword [esp + 8], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.00407520
mov dword [esp], esi
call fcn.00407820
test eax, eax
je 0x406bac
or dword [edi + 0x40], 0x4000
mov dword [edi + 0x44], 2
mov dword [edi + 0x24], 1
jmp case.0x406877.50
mov dword [esp], esi
lea edx, [ebp - 0x88]
mov dword [esp + 4], edx
call fcn.004067f0
lea ecx, [ebp - 0x88]
mov dword [esp], ecx
call fcn.00408bb0
mov dword [edi + 0x38], eax
jmp case.0x406877.50
cmp dword [edi + 0x44], 2
je 0x406f6c
call sub.cygwin1.dll___getreent
movsx edx, bl
mov esi, str.WARNING:_option___c_is_not_valid_for_server_mode_n
mov dword [esp + 8], edx
mov dword [esp + 4], esi
jmp 0x406957
cmp dword [edi + 0x44], 2
jne 0x406bf1
or dword [edi + 0x40], 0x110
mov dword [esp], 8
call fcn.00409860
mov dword [edi], eax
mov dword [eax], 0x6474733c
mov dword [eax + 4], 0x3e6e69
jmp case.0x406877.50
cmp dword [edi + 0x44], 2
jne 0x406bf1
or dword [edi + 0x40], 0x10
mov dword [esp], esi
call sub.cygwin1.dll_strlen
inc eax
mov dword [esp], eax
call fcn.00409860
mov dword [edi], eax
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0040d368
jmp case.0x406877.50
or dword [edi + 0x40], 4
jmp case.0x406877.50
or dword [edi + 0x40], 2
mov ecx, dword [edi + 0x4c]
test ecx, ecx
je case.0x406877.50
call sub.cygwin1.dll___getreent
xor edx, edx
cmp dword [edi + 0x4c], 1
setne dl
dec edx
and edx, 0xfffffff2
add edx, 0x72
mov dword [esp + 8], edx
mov edx, str.WARNING:_option___c_is_not_valid_in_compatibility_mode_n
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [edi + 0x4c], 0
jmp case.0x406877.50
mov dword [esp], esi
call sub.cygwin1.dll_strlen
inc eax
mov dword [esp], eax
call fcn.00409860
mov dword [edi + 8], eax
mov dword [esp + 4], esi
lea esi, [ebp - 0x98]
mov dword [esp], eax
call fcn.0040d368
xor eax, eax
test byte [edi + 0x40], 8
mov dword [esp + 4], esi
setne al
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
jmp 0x4068a9
or dword [edi + 0x40], 0x100000
jmp case.0x406877.50
mov dword [esp], esi
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call sub.cygwin1.dll_strtol
mov dword [edi + 0x28], eax
jmp case.0x406877.50
or dword [edi + 0x40], 0x80
jmp case.0x406877.50
mov dword [esp], esi
call sub.cygwin1.dll_atoi
mov dword [edi + 0x24], eax
jmp case.0x406877.50
or dword [edi + 0x40], 0x20
jmp case.0x406877.50
mov dword [esp], esi
call sub.cygwin1.dll_atoi
mov dword [edi + 0x70], eax
jmp case.0x406877.50
mov dword [esp], esi
call sub.cygwin1.dll_atoi
mov word [edi + 0x6a], ax
jmp case.0x406877.50
and dword [edi + 0x40], 0xfffffdff
mov dword [esp], esi
call sub.cygwin1.dll_strlen
inc eax
mov dword [esp], eax
call fcn.00409860
mov dword [edi + 0xc], eax
jmp 0x406c55
and dword [edi + 0x40], 0xffffefff
lea edx, [ebp - 0x88]
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.004067f0
lea ecx, [ebp - 0x88]
mov dword [esp], ecx
call fcn.00408bb0
jmp 0x406a08
or dword [edi + 0x40], 0x40
jmp case.0x406877.50
test byte [edi + 0x41], 8
je 0x406f35
cmp dword [edi + 0x44], 2
jne 0x406bf1
mov dword [esp], esi
lea eax, [ebp - 0x88]
mov dword [esp + 4], eax
call fcn.00406790
lea edx, [ebp - 0x88]
mov dword [esp], edx
call fcn.00408bb0
mov dword [edi + 0x50], eax
mov ecx, dword [edi + 0x40]
mov dword [edi + 0x54], edx
or ecx, 0x800
test cl, 1
mov dword [edi + 0x40], ecx
jne case.0x406877.50
jmp 0x4069b4
call sub.cygwin1.dll___getreent
mov esi, str.The__Z_option_is_not_available_on_this_operating_system_n
mov dword [esp + 4], esi
jmp 0x406a28
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x406f5a
mov dword [edi + 0x44], 4
jmp case.0x406877.50
cmp dword [edi + 0x44], 2
jne 0x406bf1
test byte [edi + 0x40], 2
jne 0x406ff4
mov dword [edi + 0x4c], 2
jmp case.0x406877.50
call sub.cygwin1.dll___getreent
movsx edx, byte [esi]
inc esi
mov dword [esp + 8], edx
mov edx, str.WARNING:_unknown_reporting_type___c___ignored_n_valid_options_are:_n_t_exclude:_C_connection__D_data__M_multicast__S_settings__V_server__report_n_n
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp case.0x406877.120
or dword [edi + 0x40], 0x40000
inc esi
jmp case.0x406877.120
or dword [edi + 0x40], 0x8000
inc esi
jmp case.0x406877.120
or dword [edi + 0x40], 0x80000
inc esi
jmp case.0x406877.120
or dword [edi + 0x40], 0x20000
inc esi
jmp case.0x406877.120
or dword [ebp - 0xb4], 3
mov eax, dword [ebp - 0xb4]
mov dword [edi + 0x40], eax
call sub.cygwin1.dll___getreent
movsx edx, bl
mov ecx, str.WARNING:_option___c_has_implied_compatibility_mode_n
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jmp 0x406957
cmp dword [ebp - 0xb8], 0xb
mov dword [edi + 0x40], esi
jle 0x406fa0
mov dword [edi + 0x34], eax
test cl, 2
jne case.0x406877.50
cmp dword [edi + 0x34], 0x23
jg case.0x406877.50
or ecx, 2
mov dword [edi + 0x40], ecx
jmp 0x406ec1
cmp dword [edi + 0x34], 0x23
jg case.0x406877.50
test cl, 2
jne case.0x406877.50
jmp 0x406f01
call sub.cygwin1.dll___getreent
mov dword [esp + 8], esi
mov ebx, str.WARNING:_unknown_reporting_style___s___switching_to_default_n
mov dword [esp + 4], ebx
jmp 0x406957
call sub.cygwin1.dll___getreent
movsx edx, bl
mov dword [esp + 8], edx
mov edx, str.WARNING:_option___c_implies_udp_testing_n
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x406dc3
call sub.cygwin1.dll___getreent
mov esi, str.WARNING:_option___c_is_not_valid_for_client_mode_n
movsx edx, bl
jmp 0x406bfe
mov dword [esp], esi
call sub.cygwin1.dll_atoi
mov word [edi + 0x68], ax
jmp case.0x406877.50
mov eax, dword [edi + 8]
test eax, eax
je case.0x406877.50
mov edx, 1
lea esi, [ebp - 0xa8]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
jmp 0x4068a9
mov dword [edi + 0x34], 0xc
mov esi, str.WARNING:_the_UDP_buffer_was_increased_to__d_for_proper_operation_n
call sub.cygwin1.dll___getreent
mov edx, dword [edi + 0x34]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov ecx, dword [edi + 0x40]
jmp 0x406eee
call sub.cygwin1.dll___getreent
mov esi, str.WARNING:_option___c_is_not_valid_in_compatibility_mode_n
movsx edx, bl
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x406b40
call sub.cygwin1.dll___getreent
movsx edx, bl
mov dword [esp + 8], edx
mov edx, str.WARNING:_option___c_is_not_valid_in_compatibility_mode_n
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x406e4b