Function at 0x447f50
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x20], eax
mov ebx, edx
mov dword [ebp - 0xc], esi
push edi
mov dword [ebp - 0x18], 0
mov ecx, dword [esi + 0x430]
lea edi, [ebx + 0x50]
mov dword [esi + 0x430], 0
mov edx, dword [edi + 0xa8]
mov eax, edx
and al, 0x15
mov dword [ebp - 0x24], ecx
cmp al, 1
jne 0x447fa6
mov eax, dword [esi + 0x1f8]
mov dword [ebp - 0x1c], eax
jmp 0x447fad
mov dword [ebp - 0x1c], 0xffffffff
and dl, 0x2a
cmp dl, 2
jne 0x447fbd
mov edx, dword [esi + 0x1fc]
jmp 0x447fc0
or edx, 0xffffffff
mov eax, dword [esi]
cmp dword [eax + 0x8650], 0
je 0x447fd1
or ecx, 1
mov dword [ebp - 0x24], ecx
test ecx, ecx
jne 0x447fea
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
or edx, 0xffffffff
call fcn.00442f70
mov ecx, eax
add esp, 8
mov dword [ebp - 0x24], ecx
cmp ecx, 4
jne 0x448013
push str.select_poll_returned_error
push ebx
call fcn.004437f0
add esp, 8
mov eax, 0x37
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0046bea8
mov esp, ebp
pop ebp
ret
test byte [edi + 0xa8], 1
je 0x448054
test cl, 1
jne 0x44802a
cmp byte [esi + 0x1d4], 0
je 0x448054
push dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.00446f90
add esp, 0xc
test eax, eax
jne 0x448379
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], al
jne 0x448379
mov ecx, dword [ebp - 0x24]
test byte [edi + 0xa8], 2
je 0x44807b
test cl, 2
je 0x44807b
lea eax, [ebp - 0x18]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.00447a40
add esp, 8
test eax, eax
jne 0x448379
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov esi, eax
mov eax, 0x10624dd3
mul esi
shr edx, 6
imul ecx, edx, 0x3e8
mov dword [ebp - 0x1c], edx
mov dword [edi + 0x40], edx
sub esi, ecx
imul ecx, esi, 0x3e8
cmp dword [ebp - 0x18], 0
mov dword [edi + 0x44], ecx
je 0x4480d0
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x4480bc
mov eax, dword [edi + 0x20]
mov dword [ecx], eax
mov eax, dword [edi + 0x24]
mov dword [ecx + 4], eax
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x448125
mov eax, dword [edi + 0x28]
mov dword [ecx], eax
mov eax, dword [edi + 0x2c]
mov dword [ecx + 4], eax
jmp 0x448125
cmp dword [edi + 0x84], 1
jne 0x448125
sub ecx, dword [edi + 0x80]
mov eax, 0x10624dd3
imul ecx
mov eax, dword [ebp - 0x1c]
sub eax, dword [edi + 0x7c]
sar edx, 6
imul eax, eax, 0x3e8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, eax
cmp ecx, dword [ebx + 0x3f0]
jl 0x448125
or dword [edi + 0xa8], 2
push str.Done_waiting_for_100_continue_n
push ebx
mov dword [edi + 0x84], 0
call fcn.00443730
add esp, 8
mov esi, dword [ebp - 0xc]
mov ecx, esi
call fcn.0044de80
test eax, eax
jne 0x44834f
push dword [edi + 0x44]
mov ecx, ebx
push dword [edi + 0x40]
call fcn.0044e6e0
add esp, 8
test eax, eax
jne 0x448379
cmp dword [edi + 0xa8], eax
je 0x4482a6
mov ecx, dword [ebx + 0x1c8]
lea eax, [edi + 0x40]
mov edx, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov esi, 1
test ecx, ecx
cmovg eax, esi
dec eax
je 0x44819d
dec eax
je 0x448192
dec eax
jne 0x448365
mov eax, dword [ebx + 0x1cc]
cmp ecx, eax
cmovl eax, ecx
mov dword [ebp - 0x18], eax
jmp 0x4481a0
mov eax, dword [ebx + 0x1cc]
mov dword [ebp - 0x18], eax
jmp 0x4481a0
mov dword [ebp - 0x18], ecx
test edx, edx
jne 0x4481d0
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov esi, eax
mov eax, 0x10624dd3
mul esi
shr edx, 6
imul ecx, edx, 0x3e8
mov dword [ebp - 0x10], edx
lea edx, [ebp - 0x10]
mov dword [ebp - 0x1c], edx
sub esi, ecx
imul eax, esi, 0x3e8
mov dword [ebp - 0xc], eax
mov ecx, dword [edx + 4]
mov eax, 0x10624dd3
sub ecx, dword [ebx + 0x4b4]
mov esi, dword [ebx + 0x4b0]
imul ecx
mov eax, dword [ebp - 0x1c]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
sub esi, dword [eax]
add ecx, edx
imul eax, esi, 0x3e8
sub eax, ecx
mov ecx, dword [ebp - 0x18]
add ecx, eax
je 0x44820c
test ecx, ecx
jns 0x448365
mov edx, dword [edi]
mov eax, edx
mov ecx, dword [edi + 4]
and eax, ecx
cmp eax, 0xffffffff
je 0x448261
push ecx
push edx
push dword [edi + 0x24]
push dword [edi + 0x20]
push dword [ebx + 0x4ac]
push dword [ebx + 0x4a8]
push dword [edi + 0x44]
push dword [edi + 0x40]
call fcn.00444320
add esp, 0x10
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_out_of__I64d_bytes_received
push ebx
call fcn.004437f0
add esp, 0x1c
mov eax, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0046bea8
mov esp, ebp
pop ebp
ret
push dword [edi + 0x24]
push dword [edi + 0x20]
push dword [ebx + 0x4ac]
push dword [ebx + 0x4a8]
push dword [edi + 0x44]
push dword [edi + 0x40]
call fcn.00444320
add esp, 0x10
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_bytes_received
push ebx
call fcn.004437f0
add esp, 0x14
mov eax, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0046bea8
mov esp, ebp
pop ebp
ret
mov al, byte [ebx + 0x2c7]
test al, al
jne 0x448344
mov edx, dword [edi]
mov eax, edx
mov ecx, dword [edi + 4]
and eax, ecx
cmp eax, 0xffffffff
je 0x448308
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x24]
cmp dword [edi + 0x20], edx
jne 0x4482d4
cmp eax, ecx
je 0x448308
cmp dword [ebx + 0x104], 0
jne 0x448308
sub edx, dword [ebp - 0xc]
sbb ecx, eax
push ecx
push edx
push str.transfer_closed_with__I64d_bytes_remaining_to_read
push ebx
call fcn.004437f0
add esp, 0x10
mov eax, 0x12
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0046bea8
mov esp, ebp
pop ebp
ret
mov al, byte [ebx + 0x2c7]
test al, al
jne 0x448344
cmp byte [edi + 0xc0], al
je 0x448344
cmp dword [esi + 0x20], 4
je 0x448344
push str.transfer_closed_with_outstanding_read_data_remaining
push ebx
call fcn.004437f0
add esp, 8
mov eax, 0x12
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0046bea8
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0044de80
test eax, eax
je 0x448365
mov eax, 0x2a
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0046bea8
mov esp, ebp
pop ebp
ret
test dword [edi + 0xa8], 0x33
mov ecx, dword [ebp - 0x20]
sete al
mov byte [ecx], al
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046bea8
mov esp, ebp
pop ebp
ret