Function at 0x440450
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2c
cmp dword [esp + 0x3c], 0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x44]
mov ebp, ecx
push edi
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
jg 0x440484
jl 0x440470
test esi, esi
jae 0x440484
push 0x659
push str..._tech1utilsutp_srcutp_internal.cpp
push str.min_rtt___0
call edi
add esp, 0xc
mov eax, dword [ebp + 0x11c]
or ecx, 0xffffffff
mov ebx, dword [ebp + 0x124]
cmp eax, 0xffffffff
cmovb ecx, eax
mov eax, dword [ebp + 0x120]
cmp eax, ecx
cmovae eax, ecx
cmp ebx, eax
cmovae ebx, eax
cmp ebx, esi
cmovae ebx, esi
mov dword [esp + 0x18], ebx
cmp ebx, 0x7fffffff
jne 0x4404cb
push 0x65b
push str..._tech1utilsutp_srcutp_internal.cpp
push str.our_delay___INT_MAX
jmp 0x4404de
test ebx, ebx
jns 0x4404e3
push 0x65c
push str..._tech1utilsutp_srcutp_internal.cpp
push str.our_delay___0
call edi
add esp, 0xc
mov eax, 0x10624dd3
imul ebx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebp
push dword [ebp + 0x20]
call fcn.00446a80
mov esi, dword [ebp + 0x40]
add esp, 0xc
test esi, esi
mov dword [esp + 0x14], 0
mov eax, 0x186a0
cmovle esi, eax
mov eax, dword [ebp + 0x218]
mov dword [esp + 0x48], esi
cmp eax, 0xfffcf2c0
jge 0x44054b
mov ecx, 0xfffcf2c0
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x40]
sub esi, ebx
test edx, edx
jne 0x44056d
push 0x689
push str..._tech1utilsutp_srcutp_internal.cpp
push str.bytes_acked___0
call edi
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov edi, dword [ebp + 0x34]
mov ecx, edx
cmp edx, edi
movd xmm3, esi
mov eax, edi
cmovb eax, edx
cmovb ecx, edi
cvtdq2pd xmm3, xmm3
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
movd xmm0, ecx
addsd xmm1, qword [eax*8 + 0x4e6b30]
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
mov eax, edi
cmp edx, edi
cmovb eax, edx
addsd xmm0, qword [ecx*8 + 0x4e6b30]
mov ecx, edx
cmovb ecx, edi
divsd xmm1, xmm0
movd xmm0, dword [esp + 0x48]
cvtdq2pd xmm0, xmm0
movsd qword [esp + 0x24], xmm1
divsd xmm3, xmm0
movaps xmm0, xmm1
movd xmm1, eax
mulsd xmm0, qword [0x4e6b20]
shr eax, 0x1f
cvtdq2pd xmm1, xmm1
mulsd xmm3, xmm0
addsd xmm1, qword [eax*8 + 0x4e6b30]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
mulsd xmm1, qword [0x4e6b20]
addsd xmm0, qword [ecx*8 + 0x4e6b30]
movsd qword [esp + 0x34], xmm3
divsd xmm1, xmm0
addsd xmm1, qword [0x4e6b08]
comisd xmm1, xmm3
jae 0x440648
push 0x694
push str..._tech1utilsutp_srcutp_internal.cpp
push str.scaled_gain___1.__MAX_CWND_INCREASE_BYTES_PER_RTT___double_min_bytes_acked__max_window_____double_max_max_window__bytes_acked_
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edi, dword [ebp + 0x34]
add esp, 0xc
movsd xmm3, qword [esp + 0x34]
xorps xmm0, xmm0
comisd xmm3, xmm0
jbe 0x44067d
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x60]
sub ecx, dword [ebp + 0x80]
mov eax, dword [eax + 0x64]
sbb eax, dword [ebp + 0x84]
mov dword [esp + 0x30], eax
jne 0x440674
cmp ecx, 0x3e8
jbe 0x44067d
xorps xmm3, xmm3
movsd qword [esp + 0x34], xmm3
movsd xmm0, qword [0x4e6b10]
mov eax, edi
movd xmm2, edi
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x4e6b30]
movaps xmm1, xmm2
movsd qword [esp + 0x2c], xmm2
addsd xmm1, xmm3
comisd xmm0, xmm1
jbe 0x4406b5
mov eax, 0xa
jmp 0x4406c3
movaps xmm0, xmm1
call fcn.004c8460
movsd xmm2, qword [esp + 0x2c]
cmp byte [ebp + 0x260], 0
mov dword [esp + 0x10], eax
je 0x440759
mov eax, dword [ebp + 0x1f0]
test eax, eax
jne 0x4406e4
mov eax, dword [ebp + 0x1e8]
add eax, 0xffffffde
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4e6b30]
mulsd xmm0, qword [esp + 0x24]
addsd xmm0, xmm2
call fcn.004c8460
mov ecx, eax
cmp ecx, dword [ebp + 0x264]
jbe 0x44071d
mov byte [ebp + 0x260], 0
jmp 0x44075b
movd xmm1, dword [esp + 0x48]
cvtdq2pd xmm1, xmm1
movd xmm0, ebx
mulsd xmm1, qword [0x4e6b00]
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm1
jbe 0x44074c
mov byte [ebp + 0x260], 0
mov dword [ebp + 0x264], edi
jmp 0x44075b
cmp ecx, dword [esp + 0x10]
mov edi, ecx
cmovbe edi, dword [esp + 0x10]
jmp 0x44075b
mov edi, eax
mov eax, dword [ebp + 0x38]
mov ecx, 0xa
cmp edi, eax
cmovbe eax, edi
cmp eax, ecx
cmovb eax, ecx
mov ecx, 0x32
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x98]
test eax, eax
mov edi, dword [ebp + 0x17c]
mov edx, dword [ebp + 0x180]
cmovne ecx, eax
mov dword [esp + 0x24], ecx
mov eax, edx
or ecx, 0xffffffff
cmp edi, 0xffffffff
cmovb ecx, edi
cmp edx, ecx
cmovae eax, ecx
mov ecx, dword [ebp + 0x184]
cmp ecx, eax
mov ebx, ecx
cmovae ebx, eax
mov eax, dword [ebp + 0x1f0]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4407c9
mov eax, dword [ebp + 0x1e8]
mov dword [esp + 0x10], eax
mov eax, edx
mov ebx, ecx
cmp edi, 0xffffffff
jae 0x4407de
cmp edx, edi
cmovae eax, edi
cmp ecx, eax
cmovae ebx, eax
jmp 0x4407ef
or edi, 0xffffffff
cmp edx, 0xffffffff
cmovae eax, edi
cmp ecx, eax
cmovae ebx, eax
or edi, 0xffffffff
cmp edx, edi
mov dword [esp + 0x1c], ebx
mov eax, 0x10624dd3
mov ebx, dword [ebp + 0x34]
cmovae edx, edi
mov edi, dword [ebp + 0x20]
cmp ecx, edx
cmovae ecx, edx
push dword [edi + 0x64]
imul dword [esp + 0x18]
push dword [edi + 0x60]
sar edx, 6
push dword [ebp + 0x38]
mov eax, edx
mov dword [esp + 0x38], ecx
push dword [ebp + 0x84]
mov ecx, dword [ebp + 0x178]
push dword [ebp + 0x80]
shr eax, 0x1f
push dword [ebp + 0x20c]
add eax, edx
push dword [ebp + 0x208]
push dword [ebp + 0x204]
push dword [ebp + 0x200]
push eax
push dword [ebp + 0x21c]
mov eax, dword [esp + 0x4c]
push dword [ebp + 0x218]
add eax, ecx
push dword [ebp + 0x1fc]
push eax
mov eax, dword [esp + 0x48]
push ecx
add eax, 0xffffffde
push eax
movzx eax, word [ebp + 0x2e]
push eax
push ebp
push edi
call fcn.00446830
mov ecx, dword [ebp + 0x100]
add esp, 8
movsd xmm0, qword [esp + 0x78]
cvtpd2ps xmm0, xmm0
mov edi, dword [esp + 0x5c]
push edx
push eax
mov eax, dword [ebp + 0x20]
xor edx, edx
cvtps2pd xmm0, xmm0
sub ecx, dword [eax + 0x60]
push ecx
mov ecx, dword [esp + 0x90]
imul eax, ebx, 0x3e8
push dword [ebp + 0x94]
push dword [ebp + 0x48]
div dword [esp + 0x7c]
push eax
push dword [ebp + 0x8c]
mov eax, dword [ebp + 0x30]
sub esp, 8
sub eax, ecx
movsd qword [esp], xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
push eax
push ecx
mov ecx, dword [esp + 0x8c]
mov eax, 0x10624dd3
mul dword [esp + 0xb8]
divsd xmm0, qword [0x4e6b18]
lea ecx, [ecx + edi]
mov eax, 0x10624dd3
shr edx, 6
push edx
mul ecx
cvttsd2si ecx, xmm0
shr edx, 6
push edx
push dword [ebp + 0x118]
push ebx
mov eax, 0x10624dd3
mul dword [esp + 0xac]
push ecx
shr edx, 6
mov eax, 0x10624dd3
push edx
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [esp + 0xd0]
push str.actual_delay:_u_our_delay:_d_their_delay:_u_off_target:_d_max_window:_u_delay_base:_u_delay_sum:_d_target_delay:_d_acked_bytes:_u_cur_window:_u_scaled_gain:_f_rtt:_u_rate:_u_wnduser:_u_rto:_u_timeout:_d_get_microseconds:_I64u_cur_window_packets:_u_packet_size:_u_their_delay_base:_u_their_actual_delay:_u_average_delay:_d_clock_drift:_d_clock_drift_raw:_d_delay_penalty:_d_current_delay_sum:_I64ucurrent_delay_samples:_d_average_delay_base:_d_last_maxed_out_window:_I64u_opt_sndbuf:_d_current_ms:_I64u
push 0x11
push ebp
call fcn.00441340
add esp, 0x9c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10