Function at 0x401b80
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
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 ebp
mov ebp, esp
mov eax, 0x8494
call fcn.00411b50
mov eax, dword [0x41d008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x4000
lea eax, [ebp - 0x8458]
mov dword [ebp - 0x8494], 0x28
push 0
push eax
mov esi, ecx
mov dword [ebp - 0x8490], 0
mov dword [ebp - 0x848c], 0x28
mov ebx, 0x50
mov dword [ebp - 0x8488], 0
call fcn.00407e30
add esp, 0xc
lea eax, [ebp - 0x58]
push 0x40
push 0
push eax
call fcn.00407e30
add esp, 0xc
lea eax, [ebp - 0x4458]
push 0x4000
push 0
push eax
call fcn.00407e30
add esp, 0xc
push 0x2dc6c0
push 0
push dword [0x421894]
call fcn.00407e30
mov edi, esi
add esp, 0xc
lea ecx, [edi + 1]
nop
mov al, byte [edi]
inc edi
test al, al
jne 0x401c20
sub edi, ecx
je 0x401c51
cmp edi, 7
jl 0x401c51
xor edx, edx
xor ecx, ecx
lea eax, [ecx + edx]
mov al, byte [eax + esi]
cmp al, byte [ecx + 0x41b638]
jne 0x401dcc
inc ecx
cmp ecx, 7
jne 0x401c34
cmp edx, 0xffffffff
jne 0x401c70
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401c56
sub ecx, edx
lea eax, [ebp - 0x8458]
push ecx
push esi
push eax
call fcn.00404ba0
add esp, 0xc
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x401c75
sub edi, ecx
je 0x401cd1
cmp edi, 8
jl 0x401cd1
xor edx, edx
xor ecx, ecx
lea esp, [esp]
lea eax, [ecx + edx]
mov al, byte [eax + esi]
cmp al, byte [ecx + str.https:__]
jne 0x401dda
inc ecx
cmp ecx, 8
jne 0x401c90
test edx, edx
jne 0x401cd1
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401cb1
sub ecx, edx
lea eax, [ecx - 8]
push eax
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x8458]
push eax
call fcn.00404ba0
add esp, 0xc
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x401cd6
sub edi, ecx
je 0x401d31
cmp edi, 7
jl 0x401d31
xor edx, edx
xor ecx, ecx
lea ebx, [ebx]
lea eax, [ecx + edx]
mov al, byte [eax + esi]
cmp al, byte [ecx + str.http:__]
jne 0x401de8
inc ecx
cmp ecx, 7
jne 0x401cf0
test edx, edx
jne 0x401d31
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401d11
sub ecx, edx
lea eax, [ecx - 7]
push eax
lea eax, [esi + 7]
push eax
lea eax, [ebp - 0x8458]
push eax
call fcn.00404ba0
add esp, 0xc
lea edx, [ebp - 0x8458]
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x401d40
sub edx, ecx
je 0x401fb7
cmp edx, 1
jl 0x401dff
xor esi, esi
lea ebx, [ebx]
xor ecx, ecx
jmp 0x401d70
lea eax, [ecx + esi]
mov al, byte [ebp + eax - 0x8458]
cmp al, byte [ecx + 0x41b650]
jne 0x401df6
inc ecx
cmp ecx, 1
jne 0x401d70
cmp esi, 0xffffffff
je 0x401dff
sub edx, esi
lea edi, [ebp - 0x8458]
push edx
add edi, esi
lea eax, [ebp - 0x4458]
push edi
push eax
call fcn.00404ba0
add esp, 0xc
cmp esi, 0x4000
jae 0x4023b9
lea ecx, [ebp - 0x8458]
mov byte [edi], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401dc0
sub ecx, edx
push ecx
jmp 0x401e07
inc edx
cmp edx, edi
jne 0x401c32
jmp 0x401c51
inc edx
cmp edx, edi
jne 0x401c87
jmp 0x401cd1
inc edx
cmp edx, edi
jne 0x401ce8
jmp 0x401d31
inc esi
cmp esi, edx
jne 0x401d60
mov byte [ebp - 0x4458], 0x2f
push edx
lea eax, [ebp - 0x8458]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00404ba0
lea esi, [ebp - 0x58]
add esp, 0xc
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x401e20
sub esi, ecx
je 0x401eba
cmp esi, 1
jl 0x401eba
xor edx, edx
lea ebx, [ebx]
xor ecx, ecx
lea eax, [ecx + edx]
mov al, byte [ebp + eax - 0x58]
cmp al, byte [ecx + 0x41b654]
jne 0x401eae
inc ecx
cmp ecx, 1
jne 0x401e42
cmp edx, 0xffffffff
je 0x401eba
sub esi, edx
lea eax, [ebp - 0x57]
dec esi
add eax, edx
push esi
push eax
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
push eax
movdqu xmmword [ebp - 0x14], xmm0
call fcn.00404ba0
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
call fcn.00403c0e
lea edx, [ebp - 0x58]
add esp, 4
mov ebx, eax
lea esi, [edx + 1]
xor ecx, ecx
mov al, byte [edx]
inc edx
test al, al
jne 0x401e90
sub edx, esi
je 0x401eba
jmp 0x401ea0
cmp byte [ebp + ecx - 0x58], 0x3a
je 0x401eb5
inc ecx
cmp ecx, edx
jne 0x401ea0
jmp 0x401eba
inc edx
cmp edx, esi
jne 0x401e40
jmp 0x401eba
mov byte [ebp + ecx - 0x58], 0
mov esi, dword [sym.imp.WS2_32.dll_inet_addr]
lea eax, [ebp - 0x58]
push eax
call esi
cmp eax, 0xffffffff
jne 0x401ef2
lea ecx, [ebp - 0x58]
call fcn.004012d0
mov edx, dword [0x421894]
mov ecx, edx
lea edi, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401ee0
sub ecx, edi
je 0x401fb7
push edx
jmp 0x401ef6
lea eax, [ebp - 0x58]
push eax
call esi
push 6
push 1
push 2
mov dword [ebp - 0x8464], eax
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
mov dword [ebp - 0x8470], edi
cmp edi, 0xffffffff
je 0x401fb7
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [ebp - 0x8484]
push 4
push eax
push 0x1002
push 0xffff
push edi
mov dword [ebp - 0x8484], 0x1000
call esi
push 8
lea eax, [ebp - 0x8494]
push eax
push 0x1006
push 0xffff
push edi
call esi
push 8
lea eax, [ebp - 0x848c]
push eax
push 0x1005
push 0xffff
push edi
call esi
mov eax, 2
push ebx
mov word [ebp - 0x8468], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x8466], ax
lea eax, [ebp - 0x8468]
push 0x10
push eax
push edi
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x401fd5
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x2dc6c0
push 0
push dword [0x421894]
call fcn.00407e30
add esp, 0xc
mov dword [0x421888], 0xffffffff
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040346d
mov esp, ebp
pop ebp
ret
mov ecx, 0x41f850
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401fe0
sub ecx, edx
jne 0x40201c
mov eax, dword [str.Mozilla]
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea edx, [ecx + 1]
mov eax, dword [0x41b65c]
mov dword [ebp - 8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402001
sub ecx, edx
lea eax, [ebp - 0xc]
push ecx
push eax
push 0x41f850
call fcn.00404ba0
add esp, 0xc
mov eax, dword [0x42188c]
test eax, eax
jne 0x40204a
push 0x41f850
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x4458]
push eax
push str.GET__s_HTTP_1.0_r_nHost:__s_r_nUser_Agent:__s_r_n_r_n
push dword [0x421894]
call fcn.0040347c
add esp, 0x14
jmp 0x40206e
push eax
push 0x41f850
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x4458]
push eax
push str.POST__s_HTTP_1.0_r_nHost:__s_r_nUser_Agent:__s_r_nContent_Length:_d_r_n_r_n
push dword [0x421894]
call fcn.0040347c
add esp, 0x18
xor eax, eax
xor edi, edi
mov dword [ebp - 0x8474], eax
mov dword [ebp - 0x847c], eax
mov eax, dword [str.ength:]
mov dword [ebp - 0xc], eax
mov ax, word [0x41b6d8]
mov word [ebp - 8], ax
mov al, byte [0x41b6da]
push 0x400
mov byte [ebp - 6], al
lea eax, [ebp - 0x458]
push edi
push eax
mov dword [ebp - 0x846c], edi
call fcn.00407e30
mov edx, dword [0x421894]
add esp, 0xc
mov ecx, edx
lea esi, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4020c0
mov ebx, dword [ebp - 0x8470]
sub ecx, esi
mov esi, dword [sym.imp.WS2_32.dll_send]
push 0
push ecx
push edx
push ebx
call esi
test eax, eax
js 0x4022ff
mov eax, dword [0x42188c]
test eax, eax
jle 0x4020f9
push 0
push eax
push dword [0x421884]
push ebx
call esi
mov esi, dword [0x421894]
push 0x2dc6c0
push 0
push esi
call fcn.00407e30
add esp, 0xc
mov dword [ebp - 0x8480], edi
xor ecx, ecx
jmp 0x402120
push 0
push 0x1000
lea eax, [esi + ecx]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
test ebx, ebx
jg 0x40216a
push 0x1e
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov eax, dword [ebp - 0x8480]
mov ebx, dword [ebp - 0x8470]
inc eax
mov dword [ebp - 0x8480], eax
cmp eax, 0x64
jg 0x4022ff
mov esi, dword [0x421894]
mov ecx, dword [ebp - 0x8474]
jmp 0x402120
mov eax, dword [ebp - 0x8474]
add eax, 0x1000
cmp eax, 0x16e360
jg 0x4022d7
cmp dword [ebp - 0x846c], 0
mov esi, dword [0x421894]
jne 0x40228c
cmp ebx, 4
jl 0x4021d5
or edi, 0xffffffff
xor edx, edx
mov dword [ebp - 0x8478], edi
xor ecx, ecx
jmp 0x4021b0
lea eax, [ecx + edx]
mov al, byte [eax + esi]
cmp al, byte [ecx + str._r_n_r_n]
jne 0x4022bb
inc ecx
cmp ecx, 4
jne 0x4021b0
mov edi, edx
mov dword [ebp - 0x8478], edx
cmp edi, 0xffffffff
jne 0x402217
or edi, 0xffffffff
cmp ebx, 2
jl 0x40228c
mov dword [ebp - 0x8478], edi
xor edx, edx
lea esp, [esp]
xor eax, eax
lea ecx, [eax + edx]
mov cl, byte [ecx + esi]
cmp cl, byte [eax + 0x41b6e4]
jne 0x4022c9
inc eax
cmp eax, 2
jne 0x4021f2
mov edi, edx
mov dword [ebp - 0x8478], edx
cmp edi, 0xffffffff
je 0x40228c
lea edi, [ebp - 0xc]
lea ecx, [edi + 1]
lea ecx, [ecx]
mov al, byte [edi]
inc edi
test al, al
jne 0x402220
sub edi, ecx
lea edx, [ebp - 0xc]
push edi
push ebx
mov ecx, esi
call fcn.00401280
add esp, 8
cmp eax, 0xffffffff
je 0x402286
add eax, edi
lea edx, [ebp - 0x458]
xor ecx, ecx
add esi, eax
lea esp, [esp]
mov al, byte [esi + ecx]
cmp al, 0x20
je 0x402262
cmp al, 0xa
je 0x40226b
cmp al, 0xd
je 0x40226b
mov byte [edx], al
inc edx
inc ecx
cmp ecx, 0x400
jne 0x402250
lea eax, [ebp - 0x458]
push eax
call fcn.00403c0e
mov esi, dword [0x421894]
add esp, 4
mov dword [ebp - 0x847c], eax
mov edi, dword [ebp - 0x8478]
mov ecx, dword [ebp - 0x8474]
mov eax, dword [ebp - 0x847c]
add ecx, ebx
mov dword [ebp - 0x8474], ecx
test eax, eax
je 0x4022aa
add eax, edi
cmp ecx, eax
jge 0x4022f9
inc dword [ebp - 0x846c]
mov ebx, dword [ebp - 0x8470]
jmp 0x402120
inc edx
cmp edx, ebx
jne 0x4021a3
jmp 0x4021d0
inc edx
cmp edx, ebx
jne 0x4021f0
jmp 0x402212
push dword [ebp - 0x8470]
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [0x421888]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040346d
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x8470]
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, dword [ebp - 0x8474]
mov edx, str._r_n_r_n
mov edi, dword [0x421894]
mov ecx, edi
push 4
push esi
mov dword [ebp - 0x846c], 4
call fcn.00401280
mov ebx, eax
add esp, 8
cmp ebx, 0xffffffff
jne 0x402375
push 2
push esi
mov edx, 0x41b6e4
mov dword [ebp - 0x846c], 2
mov ecx, edi
call fcn.00401280
mov ebx, eax
add esp, 8
cmp ebx, 0xffffffff
jne 0x402375
mov dword [0x421888], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040346d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x846c]
sub esi, eax
add eax, edi
sub esi, ebx
push esi
add eax, ebx
push eax
push edi
call fcn.00404ba0
sub edi, dword [ebp - 0x846c]
add esp, 0xc
mov eax, dword [ebp - 0x8474]
sub edi, ebx
mov ecx, dword [ebp - 4]
mov dword [0x421888], esi
xor ecx, ebp
mov byte [edi + eax], 0
mov eax, esi
pop edi
pop esi
pop ebx
call fcn.0040346d
mov esp, ebp
pop ebp
ret
call fcn.004044a6
int3