Function at 0x180037b30
Capabilities:
Get local ipv4 addresses
Get socket information
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r13
push r14
sub rsp, 0xa50
xor r14d, r14d
mov rbx, rcx
mov rsi, rdx
test rbx, rbx
mov rdx, r14
mov rdi, r9
mov r13, r8
mov ecx, r14d
mov qword [rsp + 0x68], rdx
jne 0x180037b78
xor eax, eax
add rsp, 0xa50
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret
mov rax, rbx
nop
nop
mov rax, qword [rax]
add ecx, 1
test rax, rax
jne 0x180037b80
test ecx, ecx
mov dword [rsp + 0x70], ecx
jle 0x180037bc6
mov r8d, ecx
mov rcx, qword [0x180052eb0]
shl r8d, 4
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rdx, rax
mov qword [rsp + 0x68], rax
jne 0x180037bc6
or eax, 0xffffffff
add rsp, 0xa50
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0xa88], rbp
mov qword [rsp + 0xa48], r12
mov r12d, 1
mov qword [rsp + 0xa40], r15
lea rbp, [rdx + 8]
mov dword [rsp + 0x48], r12d
mov r15, rbx
test rdi, rdi
mov eax, dword [r15 + 0x18]
mov rcx, qword [r15 + 8]
mov dword [rsp + 0x40], eax
mov dword [rbp], r14d
je 0x180037c08
mov byte [rdi], 0
test rcx, rcx
je 0x180037d7c
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x5c]
lea rdx, [rsp + 0x170]
mov qword [rsp + 0x20], rax
call fcn.180039600
test eax, eax
je 0x180037d7c
movzx ebx, word [rsp + 0x5c]
mov r8d, dword [rsp + 0x40]
lea rcx, [rsp + 0x170]
movzx edx, bx
mov dword [rbp], r14d
call fcn.1800398a0
test eax, eax
movsxd r14, eax
jns 0x180037c6e
xor r14d, r14d
mov rbx, r14
lea r12d, [r14 + 1]
jmp 0x180037d7f
test rdi, rdi
je 0x180037cc1
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x1c0]
mov rcx, r14
mov dword [rsp + 0x58], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
js 0x180037cc1
mov edx, dword [rsp + 0x58]
xor eax, eax
mov dword [rsp + 0x30], 0xa
mov dword [rsp + 0x28], eax
lea rcx, [rsp + 0x1c0]
lea r9d, [rax + 0x10]
mov r8, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_getnameinfo]
mov r9, qword [rsp + 0x50]
movzx eax, bx
lea r8, str.GET__s_HTTP__s_r_nHost:__s:_d_r_nConnection:_Close_r_nUser_Agent:_Microsoft_Windows_NT_5.1__UPnP_1.1__MiniUPnPc_2.0_r_n_r_n
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x170]
lea rcx, [rsp + 0x240]
mov qword [rsp + 0x28], rax
lea rax, [0x18004b80c]
mov edx, 0x800
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll__snprintf]
xor ebx, ebx
test eax, eax
mov edi, eax
jle 0x180037d37
nop
nop
movsxd rcx, ebx
mov r8d, edi
xor r9d, r9d
lea rdx, [rsp + rcx + 0x240]
sub r8d, ebx
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
js 0x180037d5f
add ebx, eax
cmp ebx, edi
jl 0x180037d10
mov rdx, rbp
mov ecx, r14d
call fcn.180038d90
mov rcx, r14
mov rbx, rax
call qword [sym.imp.WS2_32.dll_closesocket]
mov rdi, qword [rsp + 0xa98]
xor r14d, r14d
lea r12d, [r14 + 1]
jmp 0x180037d7f
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
mov rdi, qword [rsp + 0xa98]
xor r14d, r14d
lea r12d, [r14 + 1]
mov rbx, r14
jmp 0x180037d7f
mov rbx, r14
test rbx, rbx
mov qword [rbp - 8], rbx
je 0x180037e47
xor edx, edx
mov r8d, 0xb84
mov rcx, r13
call sub.ntdll.dll_memset
xor r11d, r11d
lea rdx, [0x180038ae0]
mov qword [rsi], r11
mov qword [rsi + 8], r11
mov qword [rsi + 0x10], r11
mov qword [rsi + 0x18], r11
mov qword [rsi + 0x20], r11
mov rcx, qword [rbp - 8]
movsxd rax, dword [rbp]
mov qword [rsp + 0xa8], rdx
lea rdx, [0x180038b70]
mov qword [rsp + 0xb0], rdx
mov dword [rsp + 0x98], eax
add rax, rcx
mov qword [rsp + 0x80], rcx
lea rdx, [0x180038c80]
mov qword [rsp + 0x90], rcx
lea rcx, [rsp + 0x80]
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0x88], rax
call fcn.180038780
lea rcx, [r13 + 0x304]
lea rdx, str.urn:schemas_upnp_org:service:WANCommonInterfaceConfig:
mov r8d, 0x36
call sub.ntdll.dll_memcmp
test eax, eax
jne 0x180037e47
mov dword [rbp + 4], r12d
mov r15, qword [r15]
add rbp, 0x10
test r15, r15
jne 0x180037bf0
nop
nop
nop
mov rbp, qword [rsp + 0xa80]
movsxd rbx, r12d
mov r12, qword [rsp + 0x68]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x60], rbx
nop
nop
cmp qword [r12], 0
je 0x180038347
xor edx, edx
mov r8d, 0xb84
mov rcx, r13
call sub.ntdll.dll_memset
xor r11d, r11d
lea rdx, [0x180038ae0]
mov qword [rsi], r11
mov qword [rsi + 8], r11
mov qword [rsi + 0x10], r11
mov qword [rsi + 0x18], r11
mov qword [rsi + 0x20], r11
mov rcx, qword [r12]
movsxd rax, dword [r12 + 8]
mov qword [rsp + 0xf8], rdx
lea rdx, [0x180038b70]
mov qword [rsp + 0x100], rdx
mov dword [rsp + 0xe8], eax
add rax, rcx
mov qword [rsp + 0xd0], rcx
lea rdx, [0x180038c80]
mov qword [rsp + 0xe0], rcx
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0xf0], r13
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0xd8], rax
call fcn.180038780
cmp dword [r12 + 0xc], 0
jne 0x180037f38
cmp rbx, 3
jl 0x180038337
mov r15, qword [rbp + 8]
mov ebx, dword [rbp + 0x18]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [0x180052eb0]
mov edi, r14d
test eax, eax
mov ebp, eax
cmovne edi, eax
xor edx, edx
lea r8d, [rdi + 1]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov r14, rax
je 0x180037f8d
mov r8, rbp
mov rdx, r15
mov rcx, rax
call sub.ntdll.dll_memcpy
sub edi, ebp
lea rcx, [rbp + r14]
lea r8d, [rdi + 1]
xor edx, edx
call sub.ntdll.dll_memset
lea r8, [r13 + 0x484]
lea rcx, [r13 + 0x80]
mov r9d, ebx
mov rdx, r15
mov qword [rsi + 0x20], r14
call fcn.180037860
lea r8, [r13 + 0x384]
lea rcx, [r13 + 0x80]
mov r9d, ebx
mov rdx, r15
mov qword [rsi + 8], rax
call fcn.180037860
lea r8, [r13 + 0x184]
lea rcx, [r13 + 0x80]
mov r9d, ebx
mov rdx, r15
mov qword [rsi], rax
call fcn.180037860
lea r8, [r13 + 0x784]
lea rcx, [r13 + 0x80]
mov r9d, ebx
mov rdx, r15
mov qword [rsi + 0x10], rax
call fcn.180037860
cmp qword [rsp + 0x60], 2
mov qword [rsi + 0x18], rax
jge 0x180038386
mov rcx, qword [rsi]
lea r9, [rsp + 0x5c]
lea r8, [rsp + 0x130]
lea rdx, [r13 + 0x504]
xor r14d, r14d
mov byte [rsp + 0x130], 0
mov qword [rsp + 0x20], r14
call fcn.180035d80
lea rdx, [rsp + 0x130]
lea rcx, str.Connected
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x180038074
mov rcx, qword [rsi]
lea r8, [rsp + 0x120]
lea rdx, [r13 + 0x504]
call fcn.1800360d0
test eax, eax
je 0x180038380
mov r8, qword [rsi]
test r8, r8
je 0x18003808e
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi], r14
mov r8, qword [rsi + 8]
test r8, r8
je 0x1800380aa
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 8], r14
mov r8, qword [rsi + 0x10]
test r8, r8
je 0x1800380c6
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x10], r14
mov r8, qword [rsi + 0x18]
test r8, r8
je 0x1800380e2
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x18], r14
mov r8, qword [rsi + 0x20]
test r8, r8
je 0x1800380fe
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x20], r14
cmp byte [r13 + 0x704], r14b
je 0x180038326
lea rcx, [r13 + 0x984]
lea rdx, [r13 + 0x384]
mov r8d, 0x200
call sub.ntdll.dll_memcpy
lea rcx, [r13 + 0x384]
lea rdx, [r13 + 0x584]
mov r8d, 0x200
call sub.ntdll.dll_memcpy
lea rcx, [r13 + 0x584]
lea rdx, [r13 + 0x984]
mov r8d, 0x200
call sub.ntdll.dll_memcpy
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rbp + 8]
mov r11d, dword [rbp + 0x18]
mov rcx, rbx
mov dword [rsp + 0x40], r11d
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [0x180052eb0]
xor edi, edi
test eax, eax
mov r14d, eax
cmovne edi, eax
xor edx, edx
lea r8d, [rdi + 1]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov r15, rax
je 0x1800381b6
mov r8, r14
mov rdx, rbx
mov rcx, rax
call sub.ntdll.dll_memcpy
sub edi, r14d
lea rcx, [r14 + r15]
lea r8d, [rdi + 1]
xor edx, edx
call sub.ntdll.dll_memset
mov edi, dword [rsp + 0x40]
lea r8, [r13 + 0x484]
lea rcx, [r13 + 0x80]
mov rdx, rbx
mov r9d, edi
mov qword [rsi + 0x20], r15
call fcn.180037860
lea r8, [r13 + 0x384]
lea rcx, [r13 + 0x80]
mov r9d, edi
mov rdx, rbx
mov qword [rsi + 8], rax
call fcn.180037860
lea r8, [r13 + 0x184]
lea rcx, [r13 + 0x80]
mov r9d, edi
mov rdx, rbx
mov qword [rsi], rax
call fcn.180037860
lea r8, [r13 + 0x784]
lea rcx, [r13 + 0x80]
mov r9d, edi
mov rdx, rbx
mov qword [rsi + 0x10], rax
call fcn.180037860
mov rcx, qword [rsi]
lea r9, [rsp + 0x74]
lea r8, [rsp + 0x80]
lea rdx, [r13 + 0x504]
xor r14d, r14d
mov qword [rsi + 0x18], rax
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x20], r14
call fcn.180035d80
lea rdx, [rsp + 0x80]
lea rcx, str.Connected
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x180038295
mov rcx, qword [rsi]
lea r8, [rsp + 0x120]
lea rdx, [r13 + 0x504]
call fcn.1800360d0
test eax, eax
je 0x18003837a
mov r8, qword [rsi]
test r8, r8
je 0x1800382af
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi], r14
mov r8, qword [rsi + 8]
test r8, r8
je 0x1800382cb
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 8], r14
mov r8, qword [rsi + 0x10]
test r8, r8
je 0x1800382e7
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x10], r14
mov r8, qword [rsi + 0x18]
test r8, r8
je 0x180038303
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi + 0x18], r14
mov r8, qword [rsi + 0x20]
test r8, r8
je 0x180038332
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x60]
mov qword [rsi + 0x20], r14
jmp 0x180038337
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
jmp 0x180038337
mov rbx, qword [rsp + 0x60]
xor edx, edx
mov r8d, 0xb84
mov rcx, r13
call sub.ntdll.dll_memset
mov rbp, qword [rbp]
add r12, 0x10
test rbp, rbp
mov qword [rsp + 0x50], rbp
jne 0x180037e80
mov r12d, dword [rsp + 0x48]
add r12d, 1
cmp r12d, 3
mov dword [rsp + 0x48], r12d
jle 0x180037e60
mov esi, r14d
jmp 0x18003838a
mov esi, dword [rsp + 0x48]
jmp 0x18003838a
mov esi, dword [rsp + 0x48]
jmp 0x18003838a
mov esi, dword [rsp + 0x48]
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0xa40]
mov r12, qword [rsp + 0xa48]
test rbp, rbp
je 0x1800383e4
movsxd rdi, dword [rsp + 0x70]
test rdi, rdi
jle 0x1800383d2
mov rbx, rbp
mov r8, qword [rbx]
test r8, r8
je 0x1800383c8
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rbx, 0x10
sub rdi, 1
jne 0x1800383b1
mov rcx, qword [0x180052eb0]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
mov rbp, qword [rsp + 0xa88]
add rsp, 0xa50
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret