Function at 0x10054ec0
Capabilities:
Check for time delay via gettickcount
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get mac address on windows
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header
Set socket configuration

Disassembly:
sub esp, 0x6f4
mov eax, dword [0x1008d040]
xor eax, esp
mov dword [esp + 0x6f0], eax
mov eax, dword [esp + 0x6f8]
push ebx
mov ebx, dword [esp + 0x704]
push ebp
movzx ebp, byte [esp + 0x714]
push esi
push edi
mov edi, dword [esp + 0x720]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x714]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x30], 1
test edi, edi
je 0x10054f3a
mov dword [edi], 0xffffffff
cmp eax, 1
mov esi, 0x76c
push 0x11
cmovne esi, eax
mov ecx, 0x17
cmp dword [esp + 0x71c], 0
mov eax, 2
push 2
cmovne eax, ecx
push eax
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esp + 0x28], eax
cmp eax, 0xffffffff
jne 0x10054fa3
test edi, edi
je 0x10054f78
mov dword [edi], 0xffffff9b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.socket
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
xor eax, eax
jmp 0x100557ce
push 0x7e
lea eax, [esp + 0x86]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edi, dword [sym.imp.WS2_32.dll_inet_addr]
lea eax, [esi - 1]
add esp, 0xc
cmp dword [esp + 0x718], 0
je 0x10055001
mov ecx, 0x17
mov word [esp + 0x80], cx
cmp eax, 0xfffe
ja 0x10054fed
push esi
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x82], ax
movups xmm0, xmmword [0x1007be6c]
movups xmmword [esp + 0x88], xmm0
jmp 0x1005513b
mov ecx, 2
mov word [esp + 0x80], cx
cmp eax, 0xfffe
ja 0x10055024
push esi
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x82], ax
lea eax, [esp + 0x2c]
mov dword [esp + 0x84], 0
push eax
push str.223.255.255.255
call edi
push eax
call dword [sym.imp.IPHLPAPI.DLL_GetBestInterface]
test eax, eax
jne 0x1005513b
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov eax, 0x3c00
xor ebx, ebx
mov dword [esp + 0x20], eax
xor edi, edi
nop dword [eax]
push eax
push 0
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x100550a7
lea eax, [esp + 0x20]
push eax
push esi
push 0
push 0x10
push 2
call dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
mov ebx, eax
cmp ebx, 0x6f
jne 0x100550a7
push esi
push 0
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
inc edi
cmp edi, 3
jge 0x1005512d
mov eax, dword [esp + 0x20]
jmp 0x10055060
test ebx, ebx
jne 0x1005511d
mov eax, esi
test esi, esi
je 0x1005512d
mov edx, dword [esp + 0x2c]
cmp dword [eax + 4], edx
jne 0x100550c1
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x100550ca
mov eax, dword [eax + 8]
test eax, eax
jne 0x100550b5
jmp 0x10055121
mov edi, dword [ecx + 0xc]
push 4
mov eax, dword [edi + 4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
push eax
push 9
push 0
push dword [esp + 0x38]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x10055111
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.setsockopt
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
mov eax, dword [edi + 4]
mov dword [esp + 0x84], eax
jmp 0x10055121
test esi, esi
je 0x1005512d
push esi
push 0
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [sym.imp.WS2_32.dll_inet_addr]
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [esp + 0x4c]
push 4
push eax
push 4
push 0xffff
push dword [esp + 0x38]
call esi
test eax, eax
jns 0x10055190
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10055167
mov dword [eax], 0xffffff9b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.setsockopt_SO_REUSEADDR_..._
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
jmp 0x100557c0
cmp dword [esp + 0x718], 0
push 4
je 0x100551c2
lea eax, [esp + 0x24]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x2c]
push eax
push 0xa
push 0x29
push ebp
call esi
test eax, eax
jns 0x100551fa
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.setsockopt_IPV6_MULTICAST_HOPS_..._
jmp 0x100551e2
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x54]
push eax
push 0xa
push 0
push ebp
call esi
test eax, eax
jns 0x100551fa
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.setsockopt_IP_MULTICAST_TTL_..._
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
test ebx, ebx
je 0x1005525a
cmp byte [ebx], 0
je 0x1005525a
cmp dword [esp + 0x718], 0
jne 0x1005525a
push ebx
call edi
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x1005525a
push 4
mov dword [esp + 0x88], eax
lea eax, [esp + 0x24]
push eax
push 9
push 0
push ebp
call esi
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
jns 0x10055260
call ebx
push eax
push str.setsockopt_IP_MULTICAST_IF
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
jmp 0x10055260
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, dword [esp + 0x718]
mov ecx, 0x1c
test esi, esi
mov eax, 0x10
cmovne eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
push ebp
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x100552c6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10055298
mov dword [eax], 0xffffff9b
call ebx
push eax
push str.bind
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x100557ce
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x100552d5
mov dword [ebp], 0
mov ecx, dword [esp + 0x24]
mov eax, 0x10624dd3
mul dword [esp + 0x70c]
mov eax, 1
shr edx, 6
test edx, edx
mov edi, edx
cmove edi, eax
mov eax, 0x3e8
cmovne eax, dword [esp + 0x70c]
cmp dword [ecx], 0
mov dword [esp + 0x5c], edi
mov dword [esp + 0x20], eax
je 0x100557c0
xor ebx, ebx
mov edx, str._FF05::C_
test esi, esi
mov esi, dword [esp + 0x30]
je 0x1005532d
test esi, esi
mov eax, str._FF02::C_
cmove eax, edx
jmp 0x10055332
mov eax, str.239.255.255.250
push edi
push dword [ecx]
push eax
push str.M_SEARCH__HTTP_1.1_r_nHOST:__s:1900_r_nST:__s_r_nMAN:__ssdp:discover__r_nMX:__u_r_n_r_n
lea eax, [esp + 0x110]
push 0x600
push eax
call fcn.10013030
mov edi, eax
add esp, 0x18
cmp edi, 0x600
jae 0x100557b5
xorps xmm0, xmm0
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x68], 2
movups xmmword [esp + 0x70], xmm0
cmp dword [esp + 0x718], ebx
je 0x1005538d
test esi, esi
mov eax, str.FF02::C
mov ecx, str.FF05::C
cmove eax, ecx
jmp 0x10055392
mov eax, str.239.255.255.250
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x64]
push ecx
push str.1900
push eax
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x1005578f
mov esi, dword [esp + 0x44]
test esi, esi
je 0x10055418
mov ebp, dword [esp + 0x28]
nop dword [eax]
push dword [esi + 0x10]
lea eax, [esp + 0x104]
push dword [esi + 0x18]
push 0
push edi
push eax
push ebp
call dword [sym.imp.WS2_32.dll_sendto]
mov edi, eax
test edi, edi
jns 0x10055404
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.sendto
push str.Socket_error:__s___d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0x10
jmp 0x10055409
mov ebx, 1
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x100553c0
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x44]
push esi
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
test ebx, ebx
jne 0x10055430
test ebp, ebp
je 0x1005543a
mov dword [ebp], 0xffffff9b
jmp 0x1005543a
cmp dword [esp + 0x724], 0
je 0x10055448
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], 0
jne 0x10055723
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, edx
shr eax, 6
mov dword [esp + 0x54], eax
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x58], ecx
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x48]
push ecx
push eax
push 0x600
lea eax, [esp + 0x10c]
push eax
push dword [esp + 0x38]
call fcn.10056db0
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x40], ebp
test ebp, ebp
js 0x1005577f
je 0x1005570d
xor eax, eax
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x10], eax
xor ecx, ecx
mov dword [esp + 0x14], eax
xor esi, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edi
test ebp, ebp
jle 0x100556dd
mov al, byte [esp + ebx + 0x100]
cmp al, 0xa
je 0x100554fe
cmp al, 0xd
je 0x100554fe
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp al, 0x3a
jne 0x100555af
test esi, esi
mov eax, ebx
cmovne eax, esi
mov esi, eax
jmp 0x100555af
test esi, esi
je 0x100555a4
inc esi
lea edi, [esp + 0x100]
add edi, esi
cmp byte [edi], 0x20
je 0x10055506
push 9
lea ebp, [esp + 0x104]
add ebp, ecx
push str.location:
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll__memicmp
add esp, 0xc
test eax, eax
jne 0x10055548
mov ebp, ebx
mov edx, edi
mov edi, dword [esp + 0x38]
sub ebp, esi
mov dword [esp + 0x10], edx
xor esi, esi
mov dword [esp + 0x14], ebp
jmp 0x100555ac
push 3
push 0x1005e89c
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll__memicmp
add esp, 0xc
test eax, eax
jne 0x10055578
mov edx, ebx
mov dword [esp + 0x3c], edi
sub edx, esi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
jmp 0x100555ac
push 4
push str.usn:
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll__memicmp
add esp, 0xc
test eax, eax
jne 0x10055568
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov edi, ebx
sub edi, esi
xor esi, esi
mov dword [esp + 0x38], edi
jmp 0x100555ac
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
lea ecx, [ebx + 1]
inc ebx
cmp ebx, dword [esp + 0x40]
jl 0x100554d1
cmp dword [esp + 0x3c], 0
je 0x100556d9
test edx, edx
je 0x100556d9
mov eax, dword [esp + 0x1c]
mov esi, eax
mov ebx, dword [esp + 0x34]
test eax, eax
je 0x1005564a
nop dword [eax + eax]
push ebp
push edx
push dword [esi + 4]
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x10055640
mov eax, dword [esi + 4]
cmp byte [eax + ebp], 0
jne 0x10055640
push ebx
push dword [esp + 0x40]
push dword [esi + 8]
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x10055640
mov eax, dword [esi + 8]
cmp byte [ebx + eax], 0
jne 0x10055640
test edi, edi
je 0x1005562f
push edi
push dword [esp + 0x30]
push dword [esi + 0xc]
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x10055640
mov eax, dword [esi + 0xc]
cmp byte [edi + eax], 0
mov eax, dword [esp + 0x20]
je 0x10055470
mov esi, dword [esi]
mov edx, dword [esp + 0x10]
test esi, esi
jne 0x100555e0
lea eax, [ebx + 0x1b]
add eax, edi
add eax, ebp
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov esi, eax
add esp, 4
test esi, esi
je 0x1005575f
mov eax, dword [esp + 0x1c]
lea ecx, [esi + 0x14]
mov dword [esi], eax
lea eax, [ebp + 0x15]
add eax, esi
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
inc eax
add eax, ebx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
push ebp
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
push ebx
push dword [esp + 0x4c]
mov byte [esi + ebp + 0x14], 0
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
lea eax, [esi + ebx]
add esp, 0x18
mov byte [eax + ebp + 0x15], 0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x100556bc
push edi
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + edi]
add eax, ebx
mov ebx, esi
mov dword [esp + 0x1c], ebx
mov byte [eax + ebp + 0x16], 0
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x40]
mov dword [esi + 0x10], eax
jmp 0x100556e1
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
imul eax, dword [esp + 0x54], 0x3e8
sub ecx, eax
mov eax, dword [esp + 0x20]
sub ecx, dword [esp + 0x58]
cmp ecx, eax
jg 0x1005571b
mov dword [esp + 0x1c], ebx
test ebp, ebp
jg 0x10055474
jmp 0x1005571b
test ebx, ebx
je 0x1005571b
cmp dword [esp + 0x724], 0
je 0x1005576f
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x718]
test esi, esi
je 0x1005574a
cmp dword [esp + 0x30], 0
je 0x10055742
mov dword [esp + 0x30], 0
sub ecx, 4
jmp 0x1005574a
mov dword [esp + 0x30], 1
add ecx, 4
mov dword [esp + 0x24], ecx
cmp dword [ecx], 0
je 0x100557c0
mov edi, dword [esp + 0x5c]
jmp 0x10055312
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100557c0
mov dword [eax], 0xffffff9a
jmp 0x100557c0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100557c0
mov dword [eax], 0
jmp 0x100557c0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100557c0
mov dword [eax], 0xffffff9b
jmp 0x100557c0
test ebp, ebp
je 0x1005579a
mov dword [ebp], 0xffffff9b
push eax
push str.getaddrinfo___failed:__d_n
push 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func
add esp, 4
push eax
call fcn.10052cb0
add esp, 0xc
jmp 0x100557c0
test ebp, ebp
je 0x100557c0
mov dword [ebp], 0xffffff9a
push dword [esp + 0x28]
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x700]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100574bd
add esp, 0x6f4
ret