Function at 0x44e150
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb20
mov eax, dword [0x51df40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xb18], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xafc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xb14], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x20]
mov dword [ebp - 0xb10], eax
mov eax, dword [ebp + 0x28]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xb1c], eax
mov eax, dword [ebp + 0x2c]
push edi
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0xb20], eax
mov eax, dword [ebp + 0x30]
push 0x7ff
mov dword [ebp - 0xb08], eax
lea eax, [ebp - 0x8eb]
push 0
push eax
mov dword [ebp - 0xb00], esi
mov dword [ebp - 0xb0c], edi
mov byte [ebp - 0x8ec], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, 0x20
mov word [ebp - 0xaf0], ax
test esi, esi
je 0x44e7ac
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x44e7ac
mov dword [ebp - 0xaf8], eax
mov eax, 0x10
push 0
mov word [ebp - 0xaf4], ax
lea eax, [ebp - 0xaf8]
push 1
push eax
call fcn.00406eb0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44e7ac
test byte [ebp - 0xaf2], 3
jne 0x44e7ac
xor ecx, ecx
add edi, 0x1000
setb cl
neg ecx
or ecx, edi
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
mov dword [ebp - 0xb04], edi
test edi, edi
je 0x44e7ac
mov eax, dword [ebp - 0xb08]
mov ecx, eax
test eax, eax
jne 0x44e269
lea ecx, [esi + 4]
push ecx
push dword [ebp - 0xafc]
push str._s__s_RTSP_1.0_r_n
push edi
call fcn.00404950
add esp, 0x10
test ebx, ebx
je 0x44e2d9
mov eax, dword [ebx]
test eax, eax
je 0x44e2d3
push dword [ebx + 4]
push eax
lea eax, [ebp - 0xa4]
push str._s:__s_r_n
push eax
call fcn.00404950
lea edx, [ebp - 0xa4]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x44e2a8
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x44e2b2
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add ebx, 8
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0xb04]
jmp 0x44e282
mov esi, dword [ebp - 0xb00]
mov ebx, dword [ebp - 0xb14]
test ebx, ebx
je 0x44e353
mov ecx, dword [ebp - 0xb10]
test ecx, ecx
je 0x44e353
mov eax, dword [ebp - 0xb0c]
test eax, eax
je 0x44e2fb
mov ecx, eax
jmp 0x44e309
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e300
sub ecx, edx
push ecx
push ebx
lea eax, [ebp - 0xa4]
push str.Content_Type:__s_r_nContent_Length:__d_r_n
push eax
call fcn.00404950
lea edx, [ebp - 0xa4]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x44e327
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x44e331
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0xb00]
mov edi, dword [ebp - 0xb04]
inc dword [esi + 0x84]
lea eax, [ebp - 0xa4]
push dword [esi + 0x84]
push str.CSeq:__d_r_n
push eax
call fcn.00404950
lea edx, [ebp - 0xa4]
add esp, 0xc
mov esi, edx
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x44e380
sub edx, esi
dec edi
nop word [eax + eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x44e390
mov ebx, dword [ebp - 0xb00]
lea eax, [ebp - 0xa4]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [ebx + 0x28c]
push str.User_Agent:__s_r_n
push eax
call fcn.00404950
lea edx, [ebp - 0xa4]
add esp, 0xc
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x44e3d0
mov edi, dword [ebp - 0xb04]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x44e3e0
mov ecx, edx
add ebx, 0x88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx]
test eax, eax
je 0x44e457
cmp byte [eax], 0xff
je 0x44e44d
push dword [ebx + 4]
push eax
lea eax, [ebp - 0xa4]
push str._s:__s_r_n
push eax
call fcn.00404950
lea edx, [ebp - 0xa4]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x44e427
mov edi, dword [ebp - 0xb04]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x44e437
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 8]
add ebx, 8
test eax, eax
jne 0x44e402
mov ebx, dword [ebp - 0xb00]
mov eax, dword [ebx + 0x288]
test eax, eax
je 0x44e4aa
push eax
lea eax, [ebp - 0xa4]
push str.Session:__s_r_n
push eax
call fcn.00404950
lea edx, [ebp - 0xa4]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x44e484
mov edi, dword [ebp - 0xb04]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x44e494
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebx + 0x3a5], 0
lea esi, [ebx + 0x3a5]
je 0x44e621
mov eax, dword [ebp - 0xb08]
test eax, eax
je 0x44e4cc
lea edi, [ebx + 4]
jmp 0x44e4d1
lea eax, [ebx + 4]
mov edi, eax
push eax
push dword [ebp - 0xafc]
lea eax, [ebp - 0xafc]
push str._s:_s
push eax
call fcn.00406de0
mov edx, dword [ebp - 0xafc]
add esp, 0x10
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e4f7
lea eax, [ebp - 0x14]
sub ecx, ebx
push eax
push ecx
push edx
call fcn.00405a70
push dword [ebp - 0xafc]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xafc], eax
lea eax, [ebp - 0xafc]
push eax
lea eax, [ebp - 0x14]
push 0x10
push eax
call fcn.00406720
mov ebx, dword [ebp - 0xb00]
lea eax, [ebp - 0xc8]
push eax
add ebx, 0x2a4
lea eax, [ebp - 0xafc]
push ebx
push esi
push str._s:_s:_s
push eax
call fcn.00406de0
mov edx, dword [ebp - 0xafc]
add esp, 0x30
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e570
lea eax, [ebp - 0x24]
sub ecx, esi
push eax
push ecx
push edx
call fcn.00405a70
push dword [ebp - 0xafc]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea eax, [ebp - 0xec]
mov dword [ebp - 0xafc], eax
lea eax, [ebp - 0xafc]
push eax
lea eax, [ebp - 0x24]
push 0x10
push eax
call fcn.00406720
mov eax, dword [ebp - 0xb08]
add esp, 0x1c
mov esi, dword [ebp - 0xb04]
test eax, eax
cmovne edi, eax
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44e5c5
mov eax, dword [ebp - 0xb00]
sub esi, ecx
lea ecx, [ebp - 0xec]
add eax, 0x294
push ecx
push edi
push ebx
push eax
push str.raop
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov edi, dword [ebp - 0xb04]
add esp, 8
test eax, eax
mov edx, str.AirPlay
mov ecx, str.iTunes
cmovne ecx, edx
push ecx
lea eax, [esi + edi]
push str.Authorization:_Digest_username__s___realm__s___nonce__s___uri__s___response__s__r_n
push eax
call fcn.00404950
mov ebx, dword [ebp - 0xb00]
add esp, 0x1c
jmp 0x44e627
mov edi, dword [ebp - 0xb04]
lea ecx, [edi - 1]
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x44e630
mov ax, word [0x4dd120]
mov esi, edi
mov word [ecx], ax
mov al, byte [0x4dd122]
mov byte [ecx + 2], al
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44e650
sub esi, ecx
cmp dword [ebp - 0xb14], 0
je 0x44e6ce
mov ecx, dword [ebp - 0xb10]
test ecx, ecx
je 0x44e6ce
mov eax, dword [ebp - 0xb0c]
test eax, eax
je 0x44e67a
add esi, eax
jmp 0x44e6a3
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e680
sub ecx, edx
add esi, ecx
mov ecx, dword [ebp - 0xb10]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e694
sub ecx, edx
mov dword [ebp - 0xb0c], ecx
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e6a8
mov eax, dword [ebp - 0xb0c]
sub ecx, edx
push eax
push dword [ebp - 0xb10]
lea eax, [ecx + edi]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + edi], 0
push 0
push esi
push edi
push dword [ebx]
call dword [sym.imp.WS2_32.dll_send]
mov ecx, dword [0x51d3b4]
mov edi, eax
cmp dword [ecx], 4
jl 0x44e70b
push dword [ebp - 0xb04]
push ebx
push 0x285
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_______:_write__s_n
call fcn.004048b0
add esp, 0x18
push dword [ebp - 0xb04]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp edi, esi
je 0x44e748
mov eax, dword [0x51d3b4]
cmp dword [eax], 1
jl 0x44e748
push esi
push edi
push ebx
push 0x289
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_couldnt_write_request___d__d__n
call fcn.004048b0
add esp, 0x1c
mov edi, dword [ebp + 0x1c]
test edi, edi
je 0x44eafa
push 1
push 0x2710
push 0x800
lea eax, [ebp - 0x8ec]
push eax
push dword [ebx]
call fcn.004051e0
add esp, 0x14
test eax, eax
jg 0x44e7bf
mov eax, dword [0x51d3b4]
cmp dword [eax], 1
jl 0x44e7a3
lea eax, [ebp - 0x8ec]
push eax
push ebx
push 0x28f
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_response_:__s_request_failed_n
call fcn.004048b0
add esp, 0x18
cmp edi, 1
jne 0x44eafa
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
lea eax, [ebp - 0xaf0]
push eax
lea eax, [ebp - 0x8ec]
push eax
call esi
lea eax, [ebp - 0xaf0]
push eax
push 0
call esi
mov esi, eax
add esp, 0x10
test esi, esi
je 0x44e844
mov edx, 0x4e40ac
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44e810
test al, al
je 0x44e80c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44e810
add ecx, 2
add edx, 2
test al, al
jne 0x44e7f0
xor eax, eax
jmp 0x44e815
sbb eax, eax
or eax, 1
test eax, eax
jne 0x44e844
mov eax, dword [0x51d3b4]
cmp dword [eax], 4
jl 0x44e87c
push esi
push ebx
push 0x29a
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_________:__s:_request_ok_n
call fcn.004048b0
add esp, 0x18
jmp 0x44e87c
mov eax, dword [0x51d3b4]
cmp dword [eax], 1
jl 0x44e873
lea eax, [ebp - 0x8ec]
push eax
push ebx
push 0x297
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_________:_request_failed__error__s_n
call fcn.004048b0
add esp, 0x18
cmp edi, 1
je 0x44e7ac
xor eax, eax
lea ebx, [ebp - 0xaec]
mov dword [ebp - 0xafc], eax
xor edi, edi
mov eax, dword [ebp - 0xb18]
test eax, eax
push 1
cmovne ebx, eax
lea eax, [ebp - 0x8ec]
push 0x2710
push 0x800
push eax
mov eax, dword [ebp - 0xb00]
mov dword [ebx], edi
mov dword [ebp - 0xb08], ebx
push dword [eax]
call fcn.004051e0
add esp, 0x14
test eax, eax
jle 0x44eae1
lea ecx, [ebx + 4]
mov esi, ecx
nop
mov eax, dword [0x51d3b4]
cmp dword [eax], 4
jl 0x44e909
lea eax, [ebp - 0x8ec]
push eax
push dword [ebp - 0xb00]
push 0x2a4
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_________:__s_n
call fcn.004048b0
lea ecx, [ebx + 4]
add esp, 0x18
mov esi, ecx
test edi, edi
je 0x44e959
cmp byte [ebp - 0x8ec], 0x20
mov esi, ecx
jne 0x44e959
lea edx, [ebp - 0x8ec]
xor ecx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44e923
sub edx, esi
je 0x44e93f
nop
cmp byte [ebp + ecx - 0x8ec], 0x20
jne 0x44e93f
inc ecx
cmp ecx, edx
jb 0x44e930
lea eax, [ebp - 0x8ec]
add eax, ecx
lea esi, [ebx + 4]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
add esp, 4
mov dword [esi + edi*8], eax
jmp 0x44e9d1
lea eax, [ebp - 0x8ec]
push 0x4dc85c
push eax
call sub.VCRUNTIME140.dll_strstr
add esp, 8
mov dword [ebp - 0xb14], eax
test eax, eax
je 0x44eb1f
mov byte [eax], 0
lea eax, [ebp - 0x8ec]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
mov dword [ebx + edi*8], eax
mov eax, dword [ebp - 0xb14]
inc eax
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
push str.Content_Length
push dword [ebx + edi*8]
mov dword [esi + edi*8], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 0x10
test eax, eax
jne 0x44e9c6
push dword [esi + edi*8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atol]
add esp, 4
mov dword [ebp - 0xafc], eax
inc edi
lea esi, [ebx + 4]
mov dword [ebx + edi*8], 0
push 1
push 0x3e8
push 0x800
lea eax, [ebp - 0x8ec]
push eax
mov eax, dword [ebp - 0xb00]
push dword [eax]
call fcn.004051e0
add esp, 0x14
lea ecx, [ebx + 4]
test eax, eax
jg 0x44e8d0
mov eax, dword [ebp - 0xafc]
test eax, eax
je 0x44eae1
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ebx, eax
add esp, 4
xor esi, esi
test ebx, ebx
je 0x44ea4b
nop
mov eax, dword [ebp - 0xafc]
cmp esi, eax
jge 0x44ea49
push 0
sub eax, esi
push eax
lea eax, [esi + ebx]
push eax
mov eax, dword [ebp - 0xb00]
push dword [eax]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x44ea4b
add esi, eax
jmp 0x44ea20
je 0x44ea7a
mov eax, dword [0x51d3b4]
cmp dword [eax], 1
jl 0x44ea7a
push esi
push ebx
push dword [ebp - 0xb00]
push 0x2cb
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_content_length_receive_error__p__d_n
call fcn.004048b0
add esp, 0x1c
mov eax, dword [0x51d3b4]
mov esi, dword [ebp - 0xafc]
cmp dword [eax], 3
jl 0x44eaaf
push ebx
push esi
push dword [ebp - 0xb00]
push 0x2ce
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_Body_data_len__d_n
call fcn.004048b0
add esp, 0x1c
mov eax, dword [0x51d3b4]
cmp dword [eax], 4
jl 0x44eac3
push esi
push ebx
call fcn.004047d0
add esp, 8
mov eax, dword [ebp - 0xb1c]
test eax, eax
je 0x44eb0d
mov dword [eax], ebx
mov eax, dword [ebp - 0xb20]
mov ebx, dword [ebp - 0xb08]
test eax, eax
je 0x44eae1
mov dword [eax], esi
cmp dword [ebp - 0xb18], 0
mov dword [ebx + edi*8], 0
jne 0x44eafa
push ebx
call fcn.00406af0
add esp, 4
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ebx, dword [ebp - 0xb08]
add esp, 4
jmp 0x44eae1
mov eax, dword [0x51d3b4]
cmp dword [eax], 1
jl 0x44eb4c
push dword [ebp - 0xb00]
push 0x2b1
push str.exec_request
call fcn.004048f0
push eax
push str._s__s:_d___p_:_Request_failed__bad_header_n
call fcn.004048b0
add esp, 0x14
push ebx
call fcn.00406af0
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor al, al
pop edi
pop esi
pop ebx
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret