Function at 0x50a8d0
Capabilities:
Resolve function by parsing pe exports
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [0x7a9040]
xor eax, ebp
mov dword [esp + 0x78], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x40], xmm0
movzx eax, byte [esi + 0xcdf]
test eax, eax
je 0x50a93d
mov byte [esi + 0xcdf], 0
cmp eax, 4
jne 0x50a996
push str.select_poll_returned_error
push esi
call fcn.004e7570
add esp, 8
mov edi, 0x37
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.00650d60
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, byte [ebx + 0x3b8]
test eax, eax
je 0x50a955
mov byte [ebx + 0x3b8], 0
jmp 0x50a90c
mov edi, eax
jmp 0x50a928
mov edx, dword [esi + 0xe4]
mov esi, edx
and esi, 0x15
xor ecx, ecx
dec ecx
mov eax, ecx
cmp esi, 1
jne 0x50a970
mov eax, dword [ebx + 0x200]
and edx, 0x2a
cmp edx, 2
jne 0x50a97e
mov ecx, dword [ebx + 0x204]
xor edx, edx
push edx
push edx
push ecx
push 0xffffffffffffffff
push eax
call fcn.00500d40
add esp, 0x14
mov esi, dword [ebp + 0xc]
jmp 0x50a90c
mov edi, dword [ebp + 0x10]
mov edx, dword [esi + 0xe4]
mov dword [esp + 0x3c], eax
mov ecx, eax
and ecx, edx
test cl, 1
je 0x50b521
xor eax, eax
dec eax
lea ecx, [esp + 0x74]
mov dword [ecx], eax
xor edx, edx
lea ecx, [esp + 0x70]
mov byte [ecx], dl
mov ebx, dword [esi + 0x220]
mov ecx, dword [esi + 0x224]
mov edx, ebx
or edx, ecx
mov edx, SysReAllocString
cmovne edx, ecx
mov dword [esp + 0x30], edx
cmove ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0x870]
mov dword [esp + 0xc], eax
xor ecx, ecx
mov byte [edi], cl
mov eax, dword [ebp + 0x14]
mov byte [eax], cl
lea eax, [esi + 0xe8]
mov dword [esp + 0x38], eax
lea eax, [esi + 0x860]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], 0x64
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
xor ebx, ebx
mov dword [esp + 0x28], 0
mov dword [esp + 8], 0
jmp 0x50abad
mov ebx, dword [ebp + 8]
jmp 0x50aa59
mov dword [esp + 8], 0
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x50aa59
xor eax, eax
neg dword [esp + 0x1c]
sbb eax, dword [esp + 0x30]
jl 0x50aa66
mov al, 1
mov byte [esi + 0xcdf], al
mov ecx, dword [ebp + 0x14]
mov byte [ecx], al
mov eax, dword [esi + 0xe4]
mov ecx, eax
and ecx, 3
cmp ecx, 2
jne 0x50aab8
cmp byte [ebx + 0x1ce], 1
jne 0x50aab8
test esi, esi
mov ecx, dword [ebp + 0x10]
je 0x50aaa6
cmp byte [esi + 0x683], 1
jne 0x50aaa6
push str.we_are_done_reading_and_this_is_set_to_close__stop_send
push esi
call fcn.004e7630
mov ecx, dword [ebp + 0x10]
add esp, 8
mov eax, dword [esi + 0xe4]
and eax, 0xfffffffd
mov dword [esi + 0xe4], eax
jmp 0x50aabb
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 8]
mov edi, eax
test eax, eax
jne 0x50a928
mov al, byte [ecx]
xor edi, edi
test al, 1
jne 0x50a928
mov esi, dword [ebp + 0xc]
mov edx, dword [esi + 0xe4]
jmp 0x50b529
test al, 0x30
mov ebx, 1
jne 0x50aba2
push 0
push esi
call fcn.004e01a0
add esp, 8
test al, al
jne 0x50aba2
jmp 0x50aa42
cmp dword [esi + 0x110], 0
sete dl
jmp 0x50ac73
mov dword [esp + 0x74], 0
mov ebx, dword [ebp + 8]
jmp 0x50ac23
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x1e4]
cmp dword [eax + 0x34], 0
je 0x50ab45
cmp dword [esp + 0x28], 0
jne 0x50b94a
mov eax, dword [esi + 0xe4]
test dl, dl
je 0x50ab58
and eax, 0xfffffffe
mov dword [esi + 0xe4], eax
and eax, 0x11
cmp eax, 1
jne 0x50aa45
cmp dword [esp + 0x1c], 1
mov eax, dword [esp + 0x30]
sbb eax, 0
jl 0x50aa59
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x1e4]
mov eax, dword [eax + 0x44]
test al, 0xc
je 0x50aae3
push 1
push esi
call fcn.004e01a0
add esp, 8
test al, al
mov ebx, 1
je 0x50aa42
add dword [esp + 0x10], 0xffffffff
jae 0x50aa31
mov eax, dword [esi + 0x4a0]
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x8c]
mov edi, ecx
and edi, edx
cmp edi, 0xffffffff
je 0x50abe5
cmp byte [esi + 0x142], 0
jne 0x50abe5
sub ecx, dword [esi + 0x98]
sbb edx, dword [esi + 0x9c]
cmp ecx, eax
sbb edx, 0
cmovl eax, ecx
test eax, eax
je 0x50ab17
lea ecx, [esp + 0x74]
push ecx
push eax
push dword [esp + 0x14]
mov eax, dword [ebp + 8]
push dword [eax + 0x200]
push esi
call fcn.00501750
add esp, 0x14
cmp eax, 0x51
je 0x50aa36
mov edi, eax
mov dword [esp + 8], eax
test eax, eax
mov ebx, dword [ebp + 8]
jg 0x50a928
mov eax, dword [esi + 0x98]
or eax, dword [esi + 0x9c]
jne 0x50ac65
push 7
push esi
lea eax, [esp + 0x58]
push eax
call fcn.00500430
add esp, 0xc
cmp dword [esi + 0xf8], 0
jle 0x50ac65
lea eax, [esp + 0x50]
push eax
call fcn.0050a160
add esp, 4
movdqu xmm0, xmmword [esp + 0x50]
mov eax, dword [esp + 0x38]
movdqu xmmword [eax], xmm0
mov eax, dword [esp + 0x74]
test eax, eax
je 0x50ab08
xor edx, edx
test eax, eax
setg cl
or cl, dl
cmp cl, 1
jne 0x50ac8b
mov ecx, dword [esp + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x50aca1
mov dword [esi + 0xe4], 0
test dl, dl
je 0x50aa45
mov eax, dword [esp + 0xc]
mov dword [esi + 0xd0], eax
mov eax, dword [ebx + 0x1e4]
mov ecx, dword [eax + 0x34]
test ecx, ecx
mov dword [esp + 0x14], edx
je 0x50acf2
call dword [0x7a29f4]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x78]
push eax
push ebx
push esi
call ecx
add esp, 0x10
test eax, eax
jne 0x50a951
mov dword [esp + 8], 0
cmp byte [esp + 0x70], 0
mov edx, dword [esp + 0x14]
jne 0x50aa45
mov al, byte [esi + 0x142]
cmp al, 1
jne 0x50ad91
mov byte [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x78]
push eax
push ebx
push esi
call fcn.004f2160
add esp, 0x10
test eax, eax
jne 0x50a951
mov eax, dword [ebx + 0x1e4]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x50ad74
xor eax, eax
cmp eax, dword [esi + 0x90]
mov eax, 0
sbb eax, dword [esi + 0x94]
jl 0x50ad74
cmp dword [esp + 0x74], 0
jle 0x50ad74
call dword [0x7a29f4]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x78]
push eax
push ebx
push esi
call ecx
add esp, 0x10
test eax, eax
jne 0x50a951
cmp byte [esp + 0x70], 0
jne 0x50b93d
cmp byte [esp + 0x50], 1
je 0x50b90d
mov al, byte [esi + 0x142]
mov dword [esp + 8], 0
mov edx, dword [esp + 0x14]
test al, 1
jne 0x50ab2e
cmp dword [esp + 0x74], 0
setg al
or al, dl
cmp al, 1
jne 0x50ab2e
cmp byte [esi + 0x14c], 1
je 0x50b9c0
mov eax, dword [esi + 0x110]
test eax, eax
setne cl
or cl, dl
jne 0x50ae0b
mov eax, dword [ebx + 0x1e4]
test dword [eax + 0x44], 0x40003
je 0x50af98
mov eax, dword [ebp + 0x10]
push eax
push ebx
push esi
call fcn.004f1610
add esp, 0xc
test eax, eax
jne 0x50a951
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
test al, al
jne 0x50b9db
mov eax, dword [esi + 0x110]
mov dword [esp + 8], 0
inc eax
mov dword [esi + 0x110], eax
cmp byte [esi + 0x683], 1
jne 0x50ae6c
cmp dword [esi + 0xc8], 0
je 0x50ae57
mov edi, dword [esp + 0x2c]
push edi
call fcn.004daa30
add esp, 4
mov dword [esp + 0x20], eax
push edi
call fcn.004e9140
add esp, 4
push dword [esp + 0x20]
push eax
push 3
push esi
call fcn.004e74c0
add esp, 0x10
cmp dword [esi + 0xc8], 1
jne 0x50ae6c
push dword [esp + 0x74]
push dword [esi + 0xd0]
push 3
push esi
call fcn.004e74c0
add esp, 0x10
cmp byte [esi + 0x147], 1
jne 0x50aeab
mov dword [esp + 0x50], 0xffffffff
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x7c]
push dword [esi + 0xd0]
push esi
call fcn.004f4440
add esp, 0x14
test eax, eax
jg 0x50b9e7
cmp eax, 0xffffffff
je 0x50af9f
cmp dword [esi + 0xc8], 1
jne 0x50aed6
cmp byte [esi + 0x145], 0
jne 0x50aed6
push dword [esp + 0x2c]
call fcn.004daa30
add esp, 4
add dword [esi + 0x98], eax
adc dword [esi + 0x9c], 0
mov edi, esi
mov esi, dword [esi + 0x90]
mov ecx, dword [edi + 0x94]
mov eax, esi
and eax, ecx
mov edx, dword [esp + 0x74]
mov ebx, dword [edi + 0x9c]
mov edi, dword [edi + 0x98]
cmp eax, 0xffffffff
je 0x50b010
mov eax, edi
mov edi, edx
sar edi, 0x1f
mov dword [esp + 0x24], eax
add eax, edx
mov dword [esp + 0x20], ebx
adc edi, ebx
cmp eax, esi
mov dword [esp + 0x34], ecx
sbb edi, ecx
jl 0x50b008
sub eax, esi
mov dword [esp + 0x28], eax
je 0x50afe2
mov edi, dword [ebp + 0xc]
cmp byte [edi + 0x145], 0
mov ebx, dword [esp + 0x20]
jne 0x50afe6
test edi, edi
je 0x50af77
cmp byte [edi + 0x683], 1
jne 0x50af77
push ebx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push esi
push dword [edi + 0x8c]
push dword [edi + 0x88]
push dword [esp + 0x40]
push str.Excess_found_in_a_read:_excess___zu__size___I64d__maxdownload___I64d__bytecount___I64d
push edi
call fcn.004e7630
add esp, 0x24
push 1
push dword [ebp + 8]
call fcn.004e15b0
add esp, 8
mov esi, dword [edi + 0x90]
mov ebx, dword [edi + 0x9c]
mov edi, dword [edi + 0x98]
jmp 0x50afea
xor eax, eax
jmp 0x50ae0b
test esi, esi
sete dl
and byte [esi + 0xe4], 0xfe
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov edi, eax
or edi, ecx
sete dh
or dh, dl
jne 0x50aeab
cmp byte [esi + 0x683], 1
jne 0x50aeab
push ecx
push eax
push str.Leftovers_after_chunking:___I64du_bytes
push esi
call fcn.004e7630
add esp, 0x10
jmp 0x50aeab
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
sub esi, edi
test esi, esi
mov eax, 0
cmovle esi, eax
mov dword [esp + 0x74], esi
mov eax, dword [ebp + 0xc]
and byte [eax + 0xe4], 0xfe
mov edx, esi
jmp 0x50b010
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov eax, edx
sar eax, 0x1f
add edi, edx
adc ebx, eax
sub dword [esp + 0x1c], edx
sbb dword [esp + 0x30], eax
mov esi, dword [ebp + 0xc]
mov dword [esi + 0x98], edi
mov dword [esi + 0x9c], ebx
push ebx
push edi
push esi
call fcn.00500860
add esp, 0xc
cmp byte [esi + 0x147], 0
jne 0x50ab27
mov eax, dword [esi + 0xc8]
mov ecx, dword [esp + 0x74]
or ecx, eax
setne cl
mov edx, dword [esp + 0x14]
or cl, dl
cmp cl, 1
mov ebx, dword [ebp + 8]
jne 0x50ab2e
test eax, eax
je 0x50b0d8
cmp byte [esi + 0x145], 0
jne 0x50b0d3
mov edi, dword [esp + 0x2c]
push edi
call fcn.004daa30
add esp, 4
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx + 0x90]
mov ecx, dword [ecx + 0x94]
mov edx, esi
and edx, ecx
cmp esi, eax
sbb ecx, 0
cmovge esi, eax
cmp edx, 0xffffffff
cmove esi, eax
push edi
call fcn.004e9140
add esp, 4
push esi
mov esi, dword [ebp + 0xc]
push eax
push 1
push esi
call fcn.00501350
add esp, 0x10
test eax, eax
jne 0x50a951
mov eax, dword [esi + 0xc8]
mov dword [esp + 8], 0
cmp eax, 1
jg 0x50b13d
cmp byte [esi + 0x68b], 1
je 0x50b111
mov edx, dword [esi + 0x100]
mov cl, byte [esi + 0x145]
mov eax, dword [esp + 0x74]
test edx, edx
je 0x50b11b
test eax, eax
sete ch
or cl, ch
test cl, 1
jne 0x50b13d
push eax
push dword [esi + 0xd0]
push edx
push esi
call fcn.004e3200
jmp 0x50b136
mov cl, byte [esi + 0x145]
mov eax, dword [esp + 0x74]
test eax, eax
sete dl
or dl, cl
test dl, 1
jne 0x50b13d
push eax
push dword [esi + 0xd0]
push 1
push esi
call fcn.00501350
add esp, 0x10
mov dword [esp + 8], eax
mov edi, dword [esp + 8]
mov dword [esi + 0xc8], 0
mov dword [esp + 8], 0
test edi, edi
mov edx, dword [esp + 0x14]
je 0x50ab2e
jmp 0x50a928
mov esi, dword [esp + 8]
mov byte [ecx + esi], dl
inc eax
inc esi
mov dword [esp + 8], esi
dec edi
je 0x50b222
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0x120]
mov dl, byte [ecx + eax]
mov ecx, dword [esi + 0x8dc]
cmp dl, 0xa
jne 0x50b164
mov edx, dword [esp + 8]
lea esi, [edx + 1]
mov byte [ecx + edx], 0xd
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x8dc]
mov byte [ecx + edx + 1], 0xa
mov ecx, dword [ebp + 0xc]
cmp byte [ecx + 0x672], 0
jne 0x50b16b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0xc00]
mov edx, dword [edx + 0xc04]
mov ebx, ecx
and ebx, edx
cmp ebx, 0xffffffff
je 0x50b1e1
add ecx, 1
adc edx, 0
mov ebx, dword [ebp + 0xc]
mov dword [ebx + 0xc00], ecx
mov dword [ebx + 0xc04], edx
mov ebx, dword [ebp + 8]
jmp 0x50b16b
mov eax, dword [eax + 0x8dc]
test eax, eax
mov dword [esp + 0x1c], edx
je 0x50ba47
test esi, esi
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 8]
je 0x50b217
push esi
push dword [ecx + 0x120]
push eax
call fcn.00654250
mov edx, dword [esp + 0x28]
add esp, 0xc
cmp esi, edx
jge 0x50b222
mov eax, esi
jmp 0x50b178
cmp esi, dword [esp + 0x1c]
jne 0x50b236
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x11c]
jmp 0x50b5ae
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x8dc]
mov dword [ecx + 0x120], eax
mov dword [ecx + 0x11c], esi
jmp 0x50b5ae
cmp byte [eax + 0x672], 1
mov ebx, dword [ebp + 8]
je 0x50b1e6
mov esi, edx
jmp 0x50b5ae
mov edi, dword [ebp + 0xc]
mov dword [edi + 0xf8], 1
and byte [edi + 0xe4], 0xfd
lea esi, [esp + 0x50]
push esi
call fcn.0050a160
add esp, 4
movdqu xmm0, xmmword [esi]
movdqu xmmword [edi + 0xe8], xmm0
mov esi, dword [esp + 0x18]
and esi, 0xfffffffd
mov eax, dword [edi + 0x648]
mov ecx, eax
sar ecx, 0x1f
push 0
push ecx
push eax
push edi
call fcn.004fa000
add esp, 0x10
mov edi, esi
jmp 0x50b491
mov dword [esp + 0x14], 0
jmp 0x50b2fa
mov dword [esp + 0x74], 0xffffffff
mov ecx, dword [ebx + 0x124]
cmp dword [ebx + 0xf8], 2
jne 0x50b2dd
cmp dword [ecx + 0x30], 2
je 0x50b263
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x1e4]
test dword [edx + 0x44], 0x40003
je 0x50b2b6
cmp dword [ecx + 0x30], 1
sete cl
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 8]
add eax, ecx
mov dword [ebx + 0x120], eax
mov eax, dword [ebx + 0x4a4]
sub eax, ecx
lea ecx, [esp + 0x74]
push ecx
push eax
push ebx
call fcn.0050a3c0
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 8]
sub dword [ebx + 0x120], eax
test edi, edi
jne 0x50a928
mov edi, dword [esp + 0x74]
mov edx, edi
add edx, eax
je 0x50b46b
test edx, edx
jle 0x50b361
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x11c], edx
cmp byte [esp + 0x14], 0
je 0x50b250
mov esi, edx
mov ebx, dword [ebp + 8]
jmp 0x50b5ae
mov eax, dword [ebx + 0xe4]
jmp 0x50b475
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0xf8], 1
jne 0x50b3df
sub esp, 0x20
movups xmm0, xmmword [ebx + 0xe8]
movups xmmword [esp + 0x10], xmm0
movdqa xmm0, xmmword [esp + 0x60]
movdqu xmmword [esp], xmm0
call fcn.0050a240
add esp, 0x20
mov ecx, dword [ebx + 0x648]
mov edi, ecx
sar edi, 0x1f
cmp eax, ecx
sbb edx, edi
jl 0x50b3df
xor eax, eax
mov dword [ebx + 0xf8], eax
or byte [ebx + 0xe4], 2
push eax
push ebx
call fcn.004fd980
add esp, 8
test ebx, ebx
je 0x50b3df
cmp byte [ebx + 0x683], 1
jne 0x50b3df
push str.Done_waiting_for_100_continue
push ebx
call fcn.004e7630
add esp, 8
push ebx
call fcn.004e0500
add esp, 4
mov edi, eax
test eax, eax
jne 0x50a928
jmp 0x50b4a6
mov ecx, dword [fcn.00546590]
mov edi, dword [ebx + 0x4a4]
call dword [0x7a29f4]
push edi
call ecx
add esp, 4
mov dword [ebx + 0x874], eax
test eax, eax
jne 0x50b436
mov edi, 0x1b
jmp 0x50a928
xor eax, eax
mov dword [esp + 8], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x874]
test eax, eax
je 0x50b3f7
test esi, esi
je 0x50b458
mov ecx, dword [ebx + 0x120]
cmp ecx, eax
je 0x50b458
push dword [esp + 8]
push ecx
push eax
call fcn.00654250
add esp, 0xc
mov eax, dword [ebx + 0x874]
mov dword [ebx + 0x120], eax
cmp byte [ebx + 0x144], 0
je 0x50b2c0
mov eax, dword [ebx + 0xe4]
test al, 0x20
jne 0x50b487
and eax, 0xfffffffd
mov dword [ebx + 0xe4], eax
push ebx
call fcn.004e0590
add esp, 4
mov edi, dword [esp + 0xc]
jmp 0x50b491
mov edi, dword [esp + 0x18]
lea esi, [esp + 0x40]
push esi
call fcn.0050a160
add esp, 4
test edi, edi
je 0x50b36c
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.004ff450
add esp, 4
mov edi, 0x2a
test eax, eax
jne 0x50a928
sub esp, 0x14
movdqa xmm0, xmmword [esp + 0x54]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], ebx
call fcn.00508630
add esp, 0x14
mov edi, eax
test eax, eax
mov ebx, dword [ebp + 8]
jne 0x50a928
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0xe4], 0
je 0x50b7e3
push 0
push esi
push eax
call fcn.004e1220
add esp, 0xc
test edx, edx
mov ecx, dword [ebp + 0x10]
js 0x50b864
mov eax, dword [ebp + 0xc]
test byte [eax + 0xe4], 0x3f
sete byte [ecx]
xor edi, edi
jmp 0x50a928
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x3c]
and eax, edx
test al, 2
je 0x50b48d
mov dword [esp + 0x6c], 0xffffffff
mov eax, dword [esp + 0x18]
or eax, 2
mov dword [esp + 0xc], eax
mov edx, esi
mov esi, dword [esi + 0x11c]
test esi, esi
je 0x50b423
mov eax, dword [edx + 0x4a4]
shr eax, 5
cmp esi, eax
jge 0x50b5ae
cmp byte [edx + 0x149], 0
jne 0x50b5ae
cmp byte [edx + 0x144], 0
jne 0x50b5ae
mov eax, esi
sar eax, 0x1f
mov ecx, dword [edx + 0xa0]
add ecx, esi
adc eax, dword [edx + 0xa4]
sub ecx, dword [edx + 0xa8]
sbb eax, dword [edx + 0xac]
xor eax, dword [edx + 0xc04]
xor ecx, dword [edx + 0xc00]
or ecx, eax
mov eax, esi
jne 0x50b425
lea eax, [esp + 0x6c]
push eax
push esi
mov esi, dword [ebp + 0xc]
push dword [esi + 0x120]
push dword [ebx + 0x204]
push esi
call fcn.005012d0
add esp, 0x14
mov edi, eax
test eax, eax
jne 0x50a928
pcmpeqd xmm0, xmm0
mov edi, esi
lea esi, [esp + 0x50]
movdqa xmmword [esi], xmm0
push esi
call fcn.0050a160
sub esp, 0x1c
movups xmm0, xmmword [edi + 0x130]
movups xmmword [esp + 0x10], xmm0
movdqa xmm0, xmmword [esi]
movdqu xmmword [esp], xmm0
call fcn.0050a240
add esp, 0x20
cmp eax, 0x3e9
sbb edx, 0
jl 0x50b66a
mov esi, dword [ebx + 0x204]
xor eax, eax
dec eax
lea ebx, [esp + 0x74]
mov dword [ebx], eax
lea ecx, [esp + 0x70]
mov dword [ecx], eax
add edi, 0x130
xor eax, eax
push eax
push eax
push ecx
push 4
push ebx
push eax
push eax
push 0x4004747b
push esi
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x50b65d
push 4
push ebx
push 0x1001
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
movdqa xmm0, xmmword [esp + 0x50]
movdqu xmmword [edi], xmm0
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0xa8]
mov ecx, dword [edi + 0xac]
mov esi, dword [esp + 0x6c]
mov edx, eax
or edx, ecx
je 0x50b7aa
mov ebx, esi
sar ebx, 0x1f
cmp eax, esi
mov edx, ecx
sbb edx, ebx
cmovl ebx, ecx
cmovl esi, eax
push esi
push dword [edi + 0x120]
push 2
push edi
call fcn.004e74c0
add esp, 0x10
sub dword [edi + 0xa8], esi
sbb dword [edi + 0xac], ebx
mov eax, dword [esp + 0x6c]
mov edi, eax
sar edi, 0x1f
mov ecx, eax
sub ecx, esi
sbb edi, ebx
mov esi, ecx
mov ecx, esi
or ecx, edi
mov ebx, dword [ebp + 0xc]
je 0x50b705
sub eax, esi
add eax, dword [ebx + 0x120]
push esi
push eax
push 4
push ebx
call fcn.004e74c0
add esp, 0x10
add esi, dword [ebx + 0xa0]
adc edi, dword [ebx + 0xa4]
mov dword [ebx + 0xa0], esi
mov dword [ebx + 0xa4], edi
push edi
push esi
push ebx
call fcn.00500880
add esp, 0xc
cmp byte [ebx + 0x149], 1
mov esi, ebx
jne 0x50b719
cmp byte [esi + 0x14b], 1
jne 0x50b757
mov eax, dword [esi + 0xa4]
xor eax, dword [esi + 0xc04]
mov ecx, dword [esi + 0xa0]
xor ecx, dword [esi + 0xc00]
or ecx, eax
jne 0x50b757
mov byte [esi + 0x144], 1
test esi, esi
je 0x50b757
cmp byte [esi + 0x683], 1
jne 0x50b757
push str.We_are_completely_uploaded_and_fine
push esi
call fcn.004e7630
add esp, 8
mov ecx, dword [esi + 0x11c]
mov eax, dword [esp + 0x6c]
sub ecx, eax
je 0x50b776
mov dword [esi + 0x11c], ecx
add dword [esi + 0x120], eax
jmp 0x50b487
mov eax, dword [esi + 0x874]
test eax, eax
je 0x50b7b6
mov dword [esi + 0x120], eax
mov dword [esi + 0x11c], 0
cmp byte [esi + 0x144], 1
jne 0x50b487
and byte [esi + 0xe4], 0xfd
push esi
jmp 0x50b47f
mov edi, esi
sar edi, 0x1f
mov eax, esi
jmp 0x50b6c4
mov ecx, dword [fcn.00546590]
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x4a4]
call dword [0x7a29f4]
push esi
mov esi, dword [ebp + 0xc]
call ecx
add esp, 4
mov dword [esi + 0x874], eax
test eax, eax
jne 0x50b780
jmp 0x50b419
cmp byte [eax + 0x14c], 0
mov esi, eax
jne 0x50b846
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x8c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
mov edx, esi
je 0x50b831
mov esi, dword [edx + 0x98]
mov ebx, dword [edx + 0x9c]
mov edi, ecx
mov dword [esp + 0xc], ebx
xor edi, ebx
mov ebx, eax
xor ebx, esi
or ebx, edi
mov ebx, dword [ebp + 8]
je 0x50b831
cmp dword [edx + 0x118], 0
je 0x50ba2c
cmp byte [edx + 0x147], 1
mov esi, edx
jne 0x50b846
cmp dword [ebx + 0x18], 4
jne 0x50b8f5
push esi
call fcn.004ff450
add esp, 4
mov edi, 0x2a
test eax, eax
mov ecx, dword [ebp + 0x10]
jne 0x50a928
jmp 0x50b50d
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebx + 0x88]
mov esi, dword [ebx + 0x8c]
mov dword [esp + 0x14], edi
and edi, esi
mov eax, dword [ebx + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0xc], eax
sub esp, 0x20
movups xmm0, xmmword [ebx + 0x740]
movups xmmword [esp + 0x10], xmm0
movdqa xmm0, xmmword [esp + 0x60]
movdqu xmmword [esp], xmm0
call fcn.0050a240
add esp, 0x20
cmp edi, 0xffffffff
je 0x50b8db
push esi
push dword [esp + 0x18]
push dword [esp + 0x10]
push dword [esp + 0x18]
push edx
push eax
push str.Operation_timed_out_after__I64d_milliseconds_with__I64d_out_of__I64d_bytes_received
push ebx
call fcn.004e7570
add esp, 0x20
mov edi, 0x1c
jmp 0x50a928
push dword [esp + 8]
push dword [esp + 0x10]
push edx
push eax
push str.Operation_timed_out_after__I64d_milliseconds_with__I64d_bytes_received
push ebx
call fcn.004e7570
add esp, 0x18
jmp 0x50b8d1
push str.transfer_closed_with_outstanding_read_data_remaining
push esi
call fcn.004e7570
add esp, 8
mov edi, 0x12
jmp 0x50a928
test esi, esi
sete cl
mov eax, dword [esp + 0x74]
test eax, eax
setle dl
or dl, cl
jne 0x50b93d
cmp byte [esi + 0x683], 1
jne 0x50b93d
push dword [esi + 0xc2c]
push eax
push str.Excess_found:_excess___zd_url___s__zero_length_body_
push esi
call fcn.004e7630
add esp, 0x10
mov dword [esp + 8], 0
jmp 0x50aa45
mov eax, dword [esi + 0xd0]
add eax, dword [esp + 0x74]
mov dword [esi + 0xd0], eax
mov edx, dword [esp + 0xc]
add edx, dword [esi + 0x4a0]
mov ecx, edx
sub ecx, eax
mov edi, dword [esp + 0x28]
add eax, edi
cmp eax, edx
cmovbe ecx, edi
mov dword [esp + 0x74], ecx
mov eax, dword [ebx + 0x1e4]
mov ecx, dword [eax + 0x34]
call dword [0x7a29f4]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x78]
push eax
push ebx
push esi
call ecx
add esp, 0x10
mov edi, eax
test eax, eax
jne 0x50a928
mov dword [esp + 8], 0
cmp byte [esp + 0x70], 1
jne 0x50aa45
or byte [esi + 0xe4], 1
jmp 0x50aa45
push 2
push ebx
call fcn.004e15b0
add esp, 8
mov eax, dword [ebp + 0x10]
mov byte [eax], 1
mov edi, 8
jmp 0x50a928
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x50aacb
cmp eax, 6
jne 0x50ba07
push str.Failed_reading_the_chunked_encoded_stream
push esi
call fcn.004e7570
add esp, 8
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
jmp 0x50aab1
push eax
call fcn.004f4820
add esp, 4
push eax
push str._s_in_chunked_encoding
push esi
call fcn.004e7570
add esp, 0xc
mov dword [esp + 8], 0x38
jmp 0x50aab1
sub eax, esi
sbb ecx, dword [esp + 0xc]
push ecx
push eax
push str.transfer_closed_with__I64d_bytes_remaining_to_read
push edx
call fcn.004e7570
add esp, 0x10
jmp 0x50b903
mov ecx, dword [fcn.00546590]
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x4a4]
add ebx, ebx
call dword [0x7a29f4]
push ebx
mov ebx, dword [ebp + 8]
call ecx
mov edx, dword [esp + 0x20]
add esp, 4
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x8dc], eax
test eax, eax
jne 0x50b1f8
push str.Failed_to_alloc_scratch_buffer
push dword [ebp + 0xc]
call fcn.004e7570
add esp, 8
jmp 0x50b419