Function at 0x509670
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x3f8
mov dword [esp + 8], ecx
mov ecx, edx
mov dword [esp + 0xc], edx
call fcn.004fd482
mov esi, eax
mov edi, edx
mov ecx, eax
push 4
push 0x623e47
call fcn.004153c1
pop ecx
pop edx
test al, al
push 2
pop eax
mov dword [esp + 0x18], eax
jne 0x5096dd
mov ecx, esi
mov edx, edi
push 5
push 0x623e4b
call fcn.004153c1
pop ecx
pop edx
test al, al
jne 0x5096dd
mov ecx, esi
mov edx, edi
push 4
push str.testdropping_stream_from_pool__closed_by_server:
call fcn.004153c1
pop ecx
pop edx
test al, al
je 0x509da1
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.004fd482
mov ecx, eax
push 5
push 0x623e4b
call fcn.004153c1
pop ecx
pop edx
test al, al
jne 0x509747
mov eax, dword [esi + 0x58]
cmp byte [eax + 0x8c], 0
je 0x509747
push 0x33
pop esi
mov ecx, esi
call fcn.004fa895
mov edi, eax
mov ebx, edx
push esi
push str.cant_perform_non_https_request_with_https_only_set
push eax
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 8]
push 2
pop ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0x4c], edi
mov dword [eax + 0x50], ebx
mov dword [eax + 0x54], esi
and dword [eax + 0x58], 0
mov byte [eax + 0x60], 3
jmp 0x50a363
cmp byte [ebp + 0x10], 0
je 0x509e39
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
movzx edx, word [esi + 0x10]
add ecx, 0x50
add eax, 0x10
mov word [esp + 0x16], dx
mov dword [esp + 0x20], ecx
movzx ecx, word [esi + 0x12]
mov dword [esp + 0x24], eax
mov word [esp + 0x14], cx
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x3c8]
call fcn.004ffdca
cmp word [esp + 0x16], 0
movzx edx, word [esp + 0x14]
mov eax, 1
jne 0x5097a7
mov ecx, esi
call fcn.004fd482
mov ecx, eax
call fcn.005108f4
mov ecx, esi
mov word [esp + 4], ax
mov word [esp], dx
call fcn.004fd482
mov ecx, edx
mov edi, eax
mov ebx, edx
mov dword [esp + 0x30], edx
call fcn.004fa895
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
push ebx
push edi
push eax
call fcn.005669c0
add esp, 0xc
mov ecx, esi
call fcn.005142d0
mov edi, edx
test eax, eax
mov ebx, eax
cmove edi, eax
mov eax, str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
mov ecx, edi
cmove ebx, eax
call fcn.004fa895
mov esi, eax
mov dword [esp + 0x28], edx
push edi
push ebx
push eax
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x15c], esi
mov dword [esp + 0x160], eax
movzx eax, word [esp + 4]
mov dword [esp + 0x164], edi
mov word [esp + 0x120], ax
movzx eax, word [esp]
mov word [esp + 0x122], ax
push 0xb
pop ecx
lea edi, [esp + 0x124]
lea esi, [esp + 0x3c8]
lea eax, [esp + 0x120]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x168]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x24]
mov ecx, edi
call fcn.004d3e63
mov ecx, edi
mov edx, 0x62244c
call fcn.004fec86
mov byte [esp], dl
mov ecx, edi
lea edx, [esp + 0x120]
mov ebx, eax
lea esi, [eax + 8]
call fcn.004fec4c
mov edx, esi
lea ecx, [esp + 0x38]
push edi
call fcn.004fecbe
pop eax
cmp word [esp + 0x38], 2
movzx edx, byte [esp]
jne 0x509924
mov dword [esp], ebx
push 0x14
pop ecx
lea edi, [esp + 0x2f0]
lea esi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x338]
mov eax, dword [esi - 4]
test eax, eax
je 0x509934
dec eax
mov edx, 0
mov dword [esi - 4], eax
add eax, dword [esi - 8]
mov ecx, dword [esi - 0xc]
cmp eax, ecx
cmovb ecx, edx
sub eax, ecx
mov ecx, 0x88
imul eax, eax, 0x88
add eax, dword [esi - 0x10]
push ecx
push eax
lea edi, [esp + 0x234]
push edi
call fcn.005669c0
add esp, 0xc
jmp 0x509945
mov ecx, ebx
call fcn.004ff07d
mov si, 2
jmp 0x509b13
mov word [esp + 0x22c], 2
lea edi, [esp + 0x22c]
mov ebx, dword [esp]
lea ecx, [esp + 0x168]
mov edx, edi
push 0x62248c
push 0x2d
push 0x62245c
call fcn.004fef2c
add esp, 0xc
mov eax, dword [esi - 4]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x509989
lea esi, [esp + 0x90]
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.004ff09a
mov ecx, esi
call fcn.004ff15a
mov eax, dword [esp + 0x1c]
mov esi, ebx
lea ecx, [esp + 0xd8]
add esi, 0x28
mov edx, esi
mov dword [esp + 0x34], eax
call fcn.004fef56
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
xor edx, edx
sub eax, dword [esp + 0xd8]
push 0x48
pop ebx
div ebx
sub ecx, dword [esp + 0xe0]
mov edi, eax
xor edx, edx
mov eax, ecx
lea ecx, [esp + 0xe0]
div ebx
lea ebx, [esp + 0x90]
add edi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x90], eax
mov edx, edi
push ebx
call fcn.004fcce6
pop ecx
mov edi, edx
test eax, eax
jne 0x509a13
mov edx, edi
lea ecx, [esp + 0xd8]
push ebx
call fcn.004fcce6
pop ecx
test eax, eax
je 0x509d81
mov edi, edx
mov ebx, dword [esp]
lea ecx, [esp + 0x90]
mov edx, esi
mov esi, ecx
push edi
call fcn.004fef9f
pop eax
lea edi, [esp + 0xd8]
mov ecx, edi
mov edx, esi
push 0x6224cc
push 0x2f
push 0x62249c
call fcn.004ff055
add esp, 0xc
mov ecx, edi
call fcn.004fd902
mov eax, dword [0x640d94]
cmp eax, 3
jbe 0x509ac5
lea eax, [esp + 0x1c]
mov dword [esp + 0x90], 0x6224fc
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x168]
mov dword [esp + 0xdc], 0x4fee64
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], fcn.004fd966
push 2
pop eax
mov dword [esp + 0x94], eax
and dword [esp + 0xa0], 0
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], eax
mov ecx, esi
push 4
pop edx
push 0x77
push 0x622518
call fcn.0045b0c0
pop eax
pop ecx
movzx esi, word [esp + 0x168]
push 0x86
lea eax, [esp + 0x16e]
push eax
lea eax, [esp + 0x348]
push eax
call fcn.005669c0
add esp, 0xc
cmp dword [esp + 0x10], 0
je 0x509afd
lea ecx, [esp + 0x2f0]
call fcn.004feed6
mov edx, dword [esp + 4]
movzx edi, word [esp + 0x38]
mov ecx, ebx
call fcn.004ff07d
cmp di, 2
je 0x509b1c
lea ecx, [esp + 0x38]
call fcn.004ff1c4
lea ecx, [esp + 0x120]
call fcn.004fd902
cmp si, 2
lea edi, [esp + 0x22c]
je 0x509e35
mov word [esp + 0x168], si
push 0x86
lea eax, [esp + 0x344]
push eax
lea eax, [esp + 0x172]
push eax
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 0x1ec]
push dword [esp + 0x1e8]
call dword [eax + 0x5c]
add esp, 4
test eax, eax
je 0x509e0c
mov byte [esp + 0x120], 0
mov esi, eax
mov ecx, edi
mov edx, dword [eax]
push 1
call fcn.004e9860
pop eax
cmp byte [esp + 0x22c], 4
je 0x509baa
mov ebx, dword [esp + 0x22c]
cmp bl, 4
jne 0x50a25c
push 2
push 1
lea eax, [esp + 0x128]
push eax
push dword [esi]
call dword [sym.imp.ws2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x509bd9
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov ecx, eax
xor eax, eax
cmp ecx, 0x274a
jne 0x509d19
mov dword [esp + 0x2f4], eax
mov byte [esp + 0x2f0], 4
mov dword [esp + 0xd8], eax
mov eax, dword [0x640d94]
cmp eax, 3
jbe 0x509c56
mov dword [esp + str.peek_on_reused_connection_returned___not_WouldBlock__discarding], 0x6232bc
mov dword [esp + 0x230], 2
and dword [esp + 0x23c], 0
lea eax, [esp + 0xd8]
mov ecx, edi
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], fcn.00437820
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], 1
push 4
pop edx
push 0xe4
push 0x623264
call fcn.0045b0c0
pop eax
pop ecx
mov word [esp + 0x90], 0x104
mov bl, 4
mov edx, dword [esi]
mov ecx, edi
push 0
call fcn.004e9860
pop eax
cmp byte [esp + 0x22c], 4
je 0x509c8a
mov eax, ebx
mov ebx, dword [esp + 0x22c]
cmp bl, 4
jne 0x50a2a6
mov ebx, dword [esp + 0x90]
cmp bl, 4
jne 0x50a15d
test bh, bh
je 0x509e0c
mov eax, dword [0x640d94]
mov esi, dword [esp + 0xc]
cmp eax, 3
jbe 0x509d08
lea eax, [esp + 0x168]
mov dword [esp + 0x22c], 0x623670
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x3c], fcn.004fd966
inc eax
mov dword [esp + 0x230], eax
and dword [esp + 0x23c], 0
mov dword [esp + 0x234], ecx
mov dword [esp + 0x238], eax
mov ecx, edi
push 4
pop edx
push 0x16e
push 0x6234f4
call fcn.0045b0c0
pop eax
pop ecx
lea ecx, [esp + 0x168]
call fcn.004fd858
jmp 0x509777
mov byte [esp + 0x2f0], 0
mov dword [esp + 0x2f4], ecx
lea ecx, [esp + 0x2f0]
call fcn.004fbc64
cmp al, 0xd
jne 0x509d60
movsd xmm0, qword [esp + 0x2f0]
mov word [esp + 0x90], 4
movsd qword [esp + 0x22c], xmm0
push edi
call fcn.004fae84
pop eax
jmp 0x509c60
mov ebx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ebx
jmp 0x509c62
mov ebx, dword [esp]
lea esi, [esp + 0x90]
lea edi, [esp + 0xd8]
mov word [esp + 0x90], 2
jmp 0x509a2f
lea eax, [esp + 0x38]
lea ecx, [esp + 0x340]
lea edx, [esp + 0x22c]
mov dword [eax], esi
mov dword [ecx], eax
mov dword [eax + 4], edi
mov dword [ecx + 4], fcn.00417b94
mov dword [edx], 0x6233e0
push 2
pop esi
mov dword [edx + 4], esi
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
lea ecx, [esp + 0x1ac]
mov dword [edx + 0xc], 1
call fcn.00401b26
mov eax, dword [esp + 8]
mov dword [eax], esi
mov dword [eax + 4], esi
lea edi, [eax + 8]
push 0x14
pop ecx
lea esi, [esp + 0x168]
rep movsd dword es:[edi], dword [esi]
and dword [eax + 0x58], 0
mov byte [eax + 0x60], 1
jmp 0x50a363
mov esi, dword [esp + 8]
lea eax, [esi + 4]
push 0x88
lea ecx, [esp + 0x16c]
push ecx
push eax
call fcn.005669c0
add esp, 0xc
mov byte [esi + 0x8c], 1
jmp 0x50a326
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.004fd482
mov ebx, esi
mov esi, eax
mov edi, edx
mov ecx, eax
push 4
push 0x623e47
call fcn.004153c1
pop ecx
pop edx
test al, al
je 0x509efc
cmp word [ebx + 0x10], 0
mov si, 0x50
je 0x509e6d
movzx esi, word [ebx + 0x12]
lea ecx, [esp + 0x344]
mov edx, 0x623e47
push esi
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
push 4
call fcn.0050c2a3
add esp, 0x10
lea ecx, [ebx + 0x5c]
call fcn.00504b50
lea ecx, [esp + 0x168]
mov edi, eax
mov edx, ebx
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0050c31c
lea ecx, [esp + 0x174]
add esp, 0xc
cmp dword [ecx], 3
lea eax, [esp + 0x344]
mov dword [eax - 4], edi
jne 0x50a0d1
lea esi, [esp + 0x16c]
push 9
pop ecx
lea eax, [esp + 0x38]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x230]
lea esi, [esp + 0x340]
mov edx, dword [eax]
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.0050d7fe
pop eax
pop ecx
jmp 0x50a0c9
mov ecx, esi
mov edx, edi
push 5
push 0x623e4b
call fcn.004153c1
pop ecx
pop edx
test al, al
je 0x50a0fa
mov esi, dword [esp + 0xc]
mov ax, 0x1bb
cmp word [esi + 0x10], 0
je 0x509f29
movzx eax, word [esi + 0x12]
lea edi, [esp + 0x168]
mov edx, esi
mov ecx, edi
push eax
mov esi, eax
mov eax, dword [ebp + 0xc]
push eax
mov ebx, dword [ebp + 8]
push ebx
call fcn.0050c31c
add esp, 0xc
mov ecx, dword [edi]
cmp ecx, 3
jne 0x50a169
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x16c]
mov esi, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x188]
movsd xmm1, qword [esp + 0x180]
movsd xmm2, qword [esp + 0x178]
movsd xmm3, qword [esp + 0x170]
mov edi, ebx
mov dword [esp], eax
mov eax, dword [esi + 0x58]
movsd qword [esp + 0x340], xmm3
movsd qword [esp + 0x348], xmm2
movsd qword [esp + 0x350], xmm1
movsd qword [esp + 0x358], xmm0
mov ebx, dword [eax + 0x4c]
mov ecx, dword [eax + 0x48]
mov eax, dword [ebx + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + ecx + 8]
mov dword [esp + 4], eax
push 4
pop ecx
mov edx, ecx
call fcn.004fc1d3
mov ecx, dword [esp]
mov dword [eax], ecx
push 0x6231e0
push eax
push dword [ebp + 0xc]
push edi
push dword [esp + 0x14]
lea eax, [esp + 0x17c]
push eax
call dword [ebx + 0xc]
add esp, 0x18
mov ecx, dword [esp + 0x168]
cmp ecx, 3
jne 0x50a2ca
lea ebx, [esp + 0x18c]
mov edx, 0x623e4b
mov ecx, dword [ebx - 0x1c]
mov eax, dword [ebx - 0x20]
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], eax
push dword [esp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 5
call fcn.0050c2a3
add esp, 0x10
add esi, 0x5c
mov ecx, esi
call fcn.00504b50
mov edi, eax
push 8
pop ecx
push 4
pop edx
call fcn.004fc1d3
mov esi, eax
mov eax, dword [esp]
mov ecx, 0x2000
mov dword [esi], eax
mov eax, dword [esp + 4]
mov dword [esi + 4], eax
call fcn.005047ea
movsd xmm1, qword [esp + 0x348]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], edx
and dword [ebx + 0x50], 0
and dword [ebx + 0x54], 0
and dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], esi
mov dword [ebx + 0x60], 0x62313c
movsd xmm0, qword [esp + 0x340]
movsd xmm2, qword [esp + 0x350]
lea ecx, [esp + 0x230]
lea edx, [esp + 0x168]
movsd qword [ebx - 0x1c], xmm1
movsd xmm1, qword [esp + 0x358]
movsd qword [ebx - 0x24], xmm0
movsd qword [ebx - 0x14], xmm2
movsd qword [ebx - 0xc], xmm1
mov dword [ebx - 4], edi
call fcn.0050d892
push 3
pop ecx
jmp 0x50a2fd
lea esi, [esp + 0x22c]
push 0xc4
push ecx
push esi
call fcn.005669c0
add esp, 0xc
lea ecx, [esp + 0x340]
call fcn.004fd8d7
mov ecx, dword [esi]
jmp 0x50a2fd
mov ecx, esi
mov edx, edi
push 4
push str.testdropping_stream_from_pool__closed_by_server:
call fcn.004153c1
pop ecx
pop edx
test al, al
je 0x50a1ed
mov ecx, dword [esp + 0xc]
call fcn.004fd482
lea ecx, [esp + 0x38]
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea edx, [esp + 0x340]
lea eax, [esp + 0x2f0]
mov dword [edx], 0x6233e0
mov dword [edx + 4], 2
and dword [edx + 0x10], 0
mov dword [eax], ecx
mov dword [edx + 8], eax
mov dword [eax + 4], fcn.00417b94
mov dword [edx + 0xc], 1
jmp 0x50a223
mov esi, dword [esp + 0x94]
jmp 0x50a263
lea eax, [esp + 0x190]
lea edi, [esp + 0x254]
movsd xmm1, qword [eax - 0x18]
movsd xmm0, qword [eax - 0x20]
movsd xmm2, qword [eax - 0x10]
mov esi, dword [eax - 0x24]
movsd qword [esp + 0x40], xmm1
movsd xmm1, qword [eax - 8]
movsd qword [esp + 0x38], xmm0
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x50], xmm1
push 0x9c
push eax
push edi
mov ebx, ecx
call fcn.005669c0
mov ecx, ebx
add esp, 0xc
movsd xmm1, qword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
movsd xmm2, qword [esp + 0x48]
movsd qword [edi - 0x18], xmm1
movsd xmm1, qword [esp + 0x50]
movsd qword [edi - 0x20], xmm0
movsd qword [edi - 0x10], xmm2
movsd qword [edi - 8], xmm1
mov dword [edi - 0x24], esi
jmp 0x50a2fd
lea eax, [esp + 0x2f0]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x340]
mov dword [eax], esi
mov dword [ecx], eax
mov dword [eax + 4], edi
xor eax, eax
mov dword [edx], str.unknown_scheme
mov dword [ecx + 4], fcn.00417b94
inc eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
lea ecx, [esp + 0x1ac]
call fcn.00401b26
lea edi, [esp + 0x234]
push 0x14
pop ecx
lea esi, [esp + 0x168]
lea eax, [esp + 0x230]
rep movsd dword es:[edi], dword [esi]
mov dword [eax], 2
and dword [eax + 0x54], 0
mov byte [eax + 0x5c], 1
jmp 0x50a332
mov esi, dword [esp + 0x230]
mov edi, ebx
shrd edi, esi, 0x10
shr esi, 0x10
movzx eax, bh
shld esi, edi, 0x10
shl edi, 0x10
movzx ecx, bl
lea edx, [esp + 0x22c]
shl eax, 8
mov dword [edx + 4], esi
or eax, edi
or ecx, eax
mov dword [edx], ecx
mov ecx, dword [esp + 8]
call fcn.0050622e
lea ecx, [esp + 0x168]
call fcn.004fd858
jmp 0x50a363
mov esi, dword [esp + 0x230]
mov edi, esi
shr esi, 0x10
shld edi, ebx, 0x10
cmp al, 4
je 0x50a26c
lea eax, [esp + 0x90]
push eax
call fcn.004fae84
pop eax
jmp 0x50a26c
lea eax, [esp + 0x174]
lea ebx, [esp + 0x238]
mov edx, dword [eax - 8]
mov edi, dword [eax - 4]
mov dword [esp], edx
push 0xb8
push eax
push ebx
mov esi, ecx
call fcn.005669c0
mov ecx, esi
add esp, 0xc
mov eax, dword [esp]
mov dword [ebx - 8], eax
mov dword [ebx - 4], edi
lea eax, [esp + 0x230]
cmp ecx, 3
jne 0x50a32e
mov esi, dword [esp + 8]
lea ecx, [esi + 4]
push 0x88
push eax
push ecx
call fcn.005669c0
add esp, 0xc
mov byte [esi + 0x8c], 0
mov dword [esi], 3
jmp 0x50a363
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 8]
mov edi, 0x8c
lea esi, [esp + 0x22c]
add esi, edi
add edi, ebx
push 0xe
pop ecx
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 4]
push 0x88
push eax
push ecx
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [ebx], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret