Function at 0x41cc90
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create raw socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
mov eax, 0x199b0
call fcn.0042b660
push ebx
push ebp
push esi
push edi
xor ebp, ebp
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x432]
mov word [esp + 0x430], bp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov al, byte [0x51dad4]
mov ecx, 0x7f
mov byte [esp + 0x30], al
xor eax, eax
lea edi, [esp + 0x31]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x430]
push ecx
push 0x202
stosb byte es:[edi], al
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x41ccf7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x199b0
ret
mov edi, dword [esp + 0x199c4]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x230]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x230]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x230]
cmp al, 0x2f
je 0x41cd40
test al, al
je 0x41cd40
mov al, byte [edx + 1]
inc edx
cmp al, 0x2f
jne 0x41cd34
lea edi, [esp + 0x230]
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x230]
repne scasb al, byte es:[edi]
not ecx
mov eax, edx
dec ecx
sub eax, esi
lea ebx, [esp + 0x7c0]
cmp eax, ecx
mov edi, str.__mnbvcxz_lkjhgfdsa__poiuytrewq
je 0x41cd6e
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 6
mov eax, ecx
mov esi, edi
mov edi, ebx
push 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push 2
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x23c]
or ecx, 0xffffffff
mov byte [edx], 0
lea edx, [esp + 0x5cc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.WS2_32.dll_socket]
lea ecx, [esp + 0x5c0]
mov ebx, eax
push ecx
call dword [sym.imp.WS2_32.dll_gethostbyname]
cmp eax, ebp
jne 0x41cde6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x199b0
ret
mov word [esp + 0x20], 2
mov edx, dword [eax + 0xc]
push 0x50
mov eax, dword [edx]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x22], ax
or ecx, 0xffffffff
mov edi, str.GET
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x30]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x30]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0x7c0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x30]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._HTTP_1.1_r_n
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x30]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.HOST:
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x5c0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x30]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x30]
and ecx, 3
push 0x10
rep movsb byte es:[edi], byte [esi]
mov edi, str._r_nConnection:_Close_r_n_r_n
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x24]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push ebx
call dword [sym.imp.WS2_32.dll_connect]
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x38]
push ecx
push ebx
call dword [sym.imp.WS2_32.dll_send]
mov dl, byte [0x51dad4]
mov ecx, 0x63ff
xor eax, eax
lea edi, [esp + 0x9c1]
mov byte [esp + 0x9c0], dl
push ebp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x200
push 0x51e4e0
push ebx
mov dword [esp + 0x24], ebp
stosb byte es:[edi], al
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x41cfb9
lea ebp, [esp + 0x9c0]
mov edx, dword [esp + 0x14]
push 0
mov ecx, 0x80
mov esi, 0x51e4e0
mov edi, ebp
push 0x200
add edx, 0x200
push 0x51e4e0
rep movsd dword es:[edi], dword [esi]
push ebx
mov dword [esp + 0x24], edx
add ebp, 0x200
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x41cf7e
xor ebp, ebp
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp ecx, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], eax
jbe 0x41d0cb
mov ebx, dword [esp + 0x199c8]
mov esi, dword [esp + 0x199cc]
mov cl, byte [esp + eax + 0x9c0]
lea ebp, [esp + eax + 0x9c0]
mov al, byte [ebx]
cmp cl, al
jne 0x41d04b
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41d02d
mov al, byte [edx + ebp]
mov cl, byte [edx + ebx]
cmp al, cl
jne 0x41d02d
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jb 0x41d012
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jne 0x41d04b
mov eax, dword [esp + 0x10]
add eax, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x41d0a6
mov ecx, dword [esp + 0x10]
mov al, byte [esi]
mov dl, byte [esp + ecx + 0x9c0]
lea ebp, [esp + ecx + 0x9c0]
cmp dl, al
jne 0x41d0a6
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41d096
mov al, byte [edx + ebp]
mov cl, byte [edx + esi]
cmp al, cl
jne 0x41d096
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jb 0x41d07b
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
je 0x41d0bd
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x41cfee
jmp 0x41d0cb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
lea esi, [ebx + 1]
push esi
call fcn.004a2adf
mov edx, eax
mov ecx, esi
xor eax, eax
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov edi, edx
lea esi, [esp + eax + 0x9c0]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x199b0
ret