Function at 0x401180
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
mov eax, 0x8204
call fcn.004116a0
mov eax, dword [esp + 0x8210]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov ebx, 0x29a
mov dword [0x52aa80], ebp
je 0x4011ee
mov esi, dword [esp + 0x8218]
mov ecx, dword [0x529a64]
mov eax, esi
shl eax, 5
sub eax, esi
shl eax, 4
add eax, esi
lea eax, [eax + eax*8]
lea edx, [ecx + eax*8 + 0x878e]
mov eax, dword [esp + 0x821c]
push edx
push 0x424778
push eax
lea ecx, [esp + 0x4220]
push str.GET__s_HTTP_1.0_r_nAccept:___r_nUser_Agent:_Shoutcast_Mozilla__r_nHost:__s_r_nAuthorization:_Basic__s_r_nConnection:_Keep_Alive_r_n_r_n
push ecx
call fcn.00411644
add esp, 0x14
jmp 0x401217
mov edx, dword [esp + 0x821c]
push 0x424778
push edx
lea eax, [esp + 0x421c]
push str.GET__s_HTTP_1.0_r_nAccept:___r_nUser_Agent:_Shoutcast_Mozilla__r_nHost:__s_r_n_r_n
push eax
call fcn.00411644
mov esi, dword [esp + 0x8228]
add esp, 0x10
lea edi, [esp + 0x4214]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x424d98]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebp
push ecx
lea ecx, [esp + 0x421c]
push ecx
push edx
call sub.WSOCK32.dll_send
cmp eax, 1
jge 0x401253
pop edi
pop esi
pop ebp
mov eax, 0x29a
pop ebx
add esp, 0x8204
ret
mov ecx, dword [0x424d98]
lea eax, [esp + 0x214]
push eax
push ecx
call fcn.004010d0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4015d2
lea edx, [esp + 0x14]
lea eax, [esp + 0x214]
push edx
push 0xf
push str.Content_Length:
push eax
call fcn.00401120
add esp, 0x10
test al, al
je 0x4012a8
lea ecx, [esp + 0x14]
push ecx
call fcn.00411639
add esp, 4
mov dword [0x52aa80], eax
lea edx, [esp + 0x14]
lea eax, [esp + 0x214]
push edx
push 0x12
push str.icy_auth_response:
push eax
call fcn.00401120
add esp, 0x10
test al, al
je 0x40135c
mov eax, dword [esp + 0x8220]
test eax, eax
je 0x40135c
mov esi, 0x41a0f0
lea eax, [esp + 0x14]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401308
test cl, cl
je 0x401304
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401308
add eax, 2
add esi, 2
test cl, cl
jne 0x4012e4
xor eax, eax
jmp 0x40130d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401318
xor ebp, ebp
mov ebx, 0x191
mov esi, 0x41a0ec
lea eax, [esp + 0x14]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401345
test cl, cl
je 0x401341
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401345
add eax, 2
add esi, 2
test cl, cl
jne 0x401321
xor eax, eax
jmp 0x40134a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401355
mov ebp, 1
xor ebx, ebx
mov esi, dword [esp + 0x8218]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x214]
push eax
push 0xf
push str.icy_auth_error:
push ecx
call fcn.00401120
add esp, 0x10
test al, al
je 0x4013ca
mov eax, dword [esp + 0x8220]
test eax, eax
je 0x4013ca
mov eax, esi
lea edi, [esp + 0x14]
shl eax, 5
sub eax, esi
or ecx, 0xffffffff
shl eax, 4
add eax, esi
lea edx, [eax + eax*8]
mov eax, dword [0x529a64]
lea edx, [eax + edx*8 + 0x898f]
xor eax, eax
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]
mov esi, dword [esp + 0x8218]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x214]
push ecx
push 0x12
push str.icy_auth_duration:
push edx
call fcn.00401120
add esp, 0x10
test al, al
je 0x40141e
mov eax, dword [esp + 0x8220]
test eax, eax
je 0x40141e
lea eax, [esp + 0x14]
push eax
call fcn.00411639
mov ecx, esi
mov edx, dword [0x529a64]
shl ecx, 5
sub ecx, esi
add esp, 4
shl ecx, 4
add ecx, esi
lea ecx, [ecx + ecx*8]
mov dword [edx + ecx*8 + 0x8b90], eax
lea eax, [esp + 0x14]
lea ecx, [esp + 0x214]
push eax
push 0x12
push str.icy_auth_kick_uid:
push ecx
call fcn.00401120
add esp, 0x10
test al, al
je 0x40149a
mov eax, dword [esp + 0x8220]
test eax, eax
je 0x40149a
lea edx, [esp + 0x14]
push edx
call fcn.00411639
add esp, 4
test eax, eax
jl 0x40149a
mov ecx, dword [0x41b900]
add ecx, 0x20
cmp eax, ecx
jg 0x40149a
mov ecx, eax
mov edx, dword [0x529a64]
shl ecx, 5
sub ecx, eax
shl ecx, 4
add ecx, eax
lea eax, [ecx + ecx*8]
shl eax, 3
mov dword [eax + edx + 4], 0xf
mov ecx, dword [0x529a64]
cmp dword [eax + ecx], 0xe
je 0x40149a
mov dword [eax + ecx], 0xb
lea eax, [esp + 0x14]
lea ecx, [esp + 0x214]
push eax
push 0xc
push str.HTTP_1.1_200
push ecx
call fcn.00401120
add esp, 0x10
test al, al
je 0x4014bf
mov ebp, 1
lea edx, [esp + 0x14]
lea eax, [esp + 0x214]
push edx
push 0xc
push str.HTTP_1.0_200
push eax
call fcn.00401120
add esp, 0x10
test al, al
je 0x4014e4
mov ebp, 1
lea ecx, [esp + 0x14]
lea edx, [esp + 0x214]
push ecx
push 0xc
push str.HTTP_1.1_401
push edx
call fcn.00401120
add esp, 0x10
test al, al
je 0x40150b
xor ebp, ebp
mov ebx, 0x191
lea eax, [esp + 0x14]
lea ecx, [esp + 0x214]
push eax
push 0xc
push str.HTTP_1.0_401
push ecx
call fcn.00401120
add esp, 0x10
test al, al
je 0x401532
xor ebp, ebp
mov ebx, 0x191
lea edx, [esp + 0x14]
lea eax, [esp + 0x214]
push edx
push 0xc
push str.HTTP_1.0_404
push eax
call fcn.00401120
add esp, 0x10
test al, al
je 0x401559
xor ebp, ebp
mov ebx, 0x194
lea ecx, [esp + 0x14]
lea edx, [esp + 0x214]
push ecx
push 0xc
push str.HTTP_1.1_404
push edx
call fcn.00401120
add esp, 0x10
test al, al
je 0x401580
xor ebp, ebp
mov ebx, 0x194
lea eax, [esp + 0x14]
lea ecx, [esp + 0x214]
push eax
push 0xc
push str.HTTP_1.0_500
push ecx
call fcn.00401120
add esp, 0x10
test al, al
je 0x4015a7
xor ebp, ebp
mov ebx, 0x1f4
lea edx, [esp + 0x14]
lea eax, [esp + 0x214]
push edx
push 0xc
push str.HTTP_1.1_500
push eax
call fcn.00401120
add esp, 0x10
test al, al
je 0x4015ce
xor ebp, ebp
mov ebx, 0x1f4
mov eax, dword [esp + 0x10]
cmp eax, 1
jg 0x401253
cmp eax, 0xffffffff
je 0x401610
test ebp, ebp
je 0x401610
mov edx, dword [0x424d98]
push 0
lea ecx, [esp + 0x218]
push 0x4000
push ecx
push edx
call sub.WSOCK32.dll_recv
test eax, eax
jg 0x4015e4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8204
ret
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x8204
ret