Function at 0x1800023d0
Capabilities:
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Send http request with host header
Set socket configuration

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1628
call fcn.180033170
sub rsp, rax
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov rax, qword [0x180049170]
xor rax, rsp
mov qword [rsp + 0x1610], rax
mov esi, r8d
mov rbp, rdx
mov rbx, rcx
mov dword [rsp + 0x58], r9d
call fcn.18000bdcc
mov r11, rax
xor r13d, r13d
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x180002436
mov ecx, 0x80004005
call fcn.180001030
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
call fcn.18000bdcc
mov r11, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x180002468
mov ecx, 0x80004005
call fcn.180001030
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
call fcn.18000bdcc
mov r11, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x18000249a
mov ecx, 0x80004005
call fcn.180001030
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x4c], 0x50
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.180002310
nop
mov dword [rsp + 0x20], 0x50
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x4c]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
call fcn.180008e10
test eax, eax
sete bl
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
or edi, 0xffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000250a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x180002575
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000252e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000254e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000256e
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, edi
jmp 0x180002a26
mov ecx, 0x202
lea rdx, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov dword [rsp + 0x20], r13d
mov r9d, esi
mov r8d, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x30]
call fcn.1800078e0
test eax, eax
jne 0x18000260c
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800025c5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800025e5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x180002602
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 0xfffffffd
jmp 0x180002a26
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov edx, 0xffff
mov r8d, 0x1006
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x1690]
mov edx, 0xffff
mov r8d, 0x1005
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_setsockopt]
lea r11, str.Internet_Explorer
mov qword [rsp + 0x20], r11
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
lea rdx, str.GET__s_HTTP_1.0_r_nHost:__s_r_nUser_agent:__s_r_n_r_n
lea rcx, [rsp + 0x50]
call fcn.180001f40
mov rbx, qword [rsp + 0x50]
xor r9d, r9d
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_send]
lea rsi, [rsp + 0x210]
lea r8, [rsp + 0x610]
sub r8d, esi
xor r9d, r9d
lea rdx, [rsp + 0x210]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x1800029bd
nop word [rax + rax]
cdqe
add rsi, rax
lea rdx, str._r_n_r_n
lea rcx, [rsp + 0x210]
call fcn.18001c8f0
mov r12, rax
test rax, rax
jne 0x180002716
lea r8, [rsp + 0x610]
sub r8d, esi
xor r9d, r9d
mov rdx, rsi
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x1800026d0
jmp 0x1800029bd
mov byte [rax + 2], 0
add r12, 4
lea rdx, str.Content_Length:
lea rcx, [rsp + 0x210]
call fcn.18001c8f0
test rax, rax
je 0x180002743
lea rcx, [rax + 0x10]
call fcn.18001d950
mov r13d, eax
mov edx, r13d
mov rcx, rbp
call fcn.1800017a0
mov r14, rax
sub rsi, r12
mov r8, rsi
mov rdx, r12
mov rcx, rax
call fcn.18001d970
test r13d, r13d
je 0x180002853
add rsi, r14
movsxd r12, r13d
mov rcx, rsi
sub rcx, r14
cmp rcx, r12
jge 0x18000283d
mov r15d, 0x1000
nop word [rax + rax]
mov r8d, r14d
sub r8d, esi
add r8d, r13d
cmp r8d, r15d
cmovg r8d, r15d
xor r9d, r9d
mov rdx, rsi
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x1800027c7
cdqe
add rsi, rax
mov rax, rsi
sub rax, r14
cmp rax, r12
jl 0x180002790
jmp 0x18000283d
mov rcx, rbp
call fcn.180001390
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800027f6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180002816
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x180002833
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 0xfffffffb
jmp 0x180002a26
mov edx, r13d
mov rcx, rbp
call fcn.180001340
mov r14d, 1
jmp 0x180002924
mov rax, qword [rbp]
mov r13d, dword [rax - 0x10]
xor r9d, r9d
mov r15d, 0x1000
mov r8d, r15d
lea rdx, [rsp + 0x610]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
mov r12d, eax
test eax, eax
jle 0x180002913
mov r14d, 1
nop dword [rax + rax]
lea esi, [r13 + r12]
mov rcx, qword [rbp]
mov edx, r14d
sub edx, dword [rcx - 8]
mov ecx, dword [rcx - 0xc]
sub ecx, esi
or ecx, edx
jge 0x1800028b2
mov edx, esi
mov rcx, rbp
call fcn.180001410
mov rdx, qword [rbp]
test esi, esi
js 0x180002908
cmp esi, dword [rdx - 0xc]
jg 0x180002908
mov dword [rdx - 0x10], esi
movsxd rcx, esi
mov rax, qword [rbp]
mov byte [rcx + rax], 0
movsxd r8, r12d
movsxd rcx, r13d
add rcx, rdx
lea rdx, [rsp + 0x610]
call fcn.18001d970
mov r13d, esi
xor r9d, r9d
mov r8d, r15d
lea rdx, [rsp + 0x610]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
mov r12d, eax
test eax, eax
jg 0x180002890
jmp 0x180002919
mov ecx, 0x80070057
call fcn.180001030
int3
mov r14d, 1
mov edx, r13d
mov rcx, rbp
call fcn.180001340
mov word [rsp + 0x48], r14w
mov eax, 5
mov word [rsp + 0x4a], ax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x48]
mov edx, 0xffff
lea r8d, [rax + 0x7b]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000297c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000299c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x1800029b9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x180002a26
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800029e4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180002a04
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x180002a21
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 0xfffffffc
mov rcx, qword [rsp + 0x1610]
xor rcx, rsp
call fcn.18001d8a0
add rsp, 0x1628
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret