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

Disassembly:
sub esp, 0x40
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
mov esi, dword [esp + 0x50]
push edi
inc dword [esi + 0x254]
add dword [esi + 0x238], ebx
mov eax, dword [esi + 0x20]
adc dword [esi + 0x23c], 0
cmp ebx, 0x2e1
ja 0x442939
cmp ebx, 0x25
ja 0x442927
inc dword [eax + 0x68]
jmp 0x442949
cmp ebx, 0x183
ja 0x442934
inc dword [eax + 0x6c]
jmp 0x442949
inc dword [eax + 0x70]
jmp 0x442949
cmp ebx, 0x586
ja 0x442946
inc dword [eax + 0x74]
jmp 0x442949
inc dword [eax + 0x78]
push esi
push dword [esi + 0x20]
call fcn.00446870
mov ecx, dword [esi + 0x20]
add esp, 8
mov ebp, dword [esp + 0x58]
mov edi, dword [sym.imp.WSOCK32.dll_ntohs]
mov dword [ecx + 0x60], eax
lea eax, [ebx + ebp]
mov dword [ecx + 0x64], edx
mov dword [esp + 0x18], eax
movzx eax, word [ebp + 0x1e]
push eax
call edi
movzx eax, ax
mov dword [esp + 0x10], eax
movzx eax, word [ebp + 0x20]
push eax
call edi
movzx edi, ax
mov al, byte [ebp + 0x10]
shr al, 4
mov dword [esp + 0x3c], edi
mov byte [esp + 0x5c], al
cmp al, 5
jae 0x442b0e
push esi
push dword [esi + 0x20]
call fcn.00446830
mov cx, word [esi + 0x2e]
add esp, 8
mov dword [esp + 0x4c], eax
add cx, 3
mov eax, 3
movzx edx, cx
cmp cx, ax
cmovbe edx, eax
cmp byte [esp + 0x5c], 4
movzx eax, dx
mov dword [esp + 0x40], eax
jne 0x4429d7
cmp dword [esi + 0x4c], 3
je 0x442a36
movzx ebp, di
movzx edi, word [esi + 0x5c]
mov eax, ebp
lea edx, [edi - 1]
sub eax, edx
sub edx, ebp
movzx ecx, ax
movzx eax, dx
cmp ecx, eax
jb 0x442b0e
mov eax, dword [esp + 0x40]
movzx eax, ax
sub edi, eax
dec edi
mov eax, edi
sub eax, ebp
sub ebp, edi
movzx ecx, ax
movzx eax, bp
cmp ecx, eax
jb 0x442b0e
cmp byte [esp + 0x5c], 3
jne 0x442a32
push 0x716
push str..._tech1utilsutp_srcutp_internal.cpp
push str.pk_flags___ST_RESET
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov ebp, dword [esp + 0x58]
add ebp, 0x22
mov dword [esp + 0x28], 0
mov dword [esp + 0x38], ebp
cmp ebx, 0x22
jb 0x442b0e
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0x11]
test edx, edx
je 0x442aba
mov ebx, dword [esp + 0x18]
nop
add ebp, 2
mov edi, ebx
sub edi, ebp
js 0x442b0e
mov cl, byte [ebp - 1]
movzx eax, cl
cmp edi, eax
jl 0x442b0e
sub edx, 1
je 0x442aa5
sub edx, 1
jne 0x442aa9
cmp cl, 8
jne 0x442b0e
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
mov dword [esi + 0x1d8], eax
mov dword [esi + 0x1dc], ecx
mov cl, byte [ebp - 1]
jmp 0x442aa9
mov dword [esp + 0x28], ebp
movzx edx, byte [ebp - 2]
movzx eax, cl
add ebp, eax
mov dword [esp + 0x38], ebp
test edx, edx
jne 0x442a60
cmp dword [esi + 0x4c], 2
mov edx, dword [esp + 0x10]
jne 0x442acb
lea eax, [edx - 1]
mov word [esi + 0x5a], ax
cmp byte [esp + 0x60], 0
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], eax
jne 0x442b0e
movzx eax, word [esi + 0x5a]
movzx ecx, dx
sub ecx, eax
dec ecx
movzx eax, cx
mov dword [esp + 0x40], eax
cmp eax, 0x400
jb 0x442b18
cmp eax, 0xfc00
jb 0x442b0e
cmp byte [esp + 0x5c], 2
je 0x442b0e
mov ecx, esi
call fcn.00441ab0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x40
ret
movzx ecx, word [esi + 0x2e]
xor ebp, ebp
mov eax, dword [esp + 0x3c]
mov edi, ecx
movzx edx, word [esi + 0x5c]
movzx ebx, ax
mov eax, edi
sub eax, edx
mov dword [esp + 0x34], ebx
inc eax
add eax, ebx
movzx eax, ax
cmp eax, edi
cmova eax, ebp
mov dword [esp + 0x20], eax
test cx, cx
je 0x442bbd
sub edx, edi
dec edx
movzx eax, dx
cmp ebx, eax
jne 0x442bb9
cmp byte [esp + 0x5c], 2
jne 0x442bb9
inc byte [esi + 0x2c]
cmp byte [esi + 0x2c], 3
jne 0x442bbd
mov eax, dword [esi + 0x1f4]
test eax, eax
je 0x442bbd
dec eax
movzx eax, ax
cmp ebx, eax
jne 0x442bab
mov eax, dword [esi + 0x1f8]
mov ecx, esi
dec eax
mov dword [esi + 0x1e8], eax
call fcn.004416e0
push dword [esi + 0x1f0]
push dword [esi + 0x1e8]
push dword [esi + 0x1ec]
push str.MTU__DUPACK__floor:_d_ceiling:_d_current:_d
push 0x12
push esi
call fcn.00441340
add esp, 0x18
jmp 0x442bbd
mov dword [esi + 0x1f8], ebp
mov dword [esi + 0x1f4], ebp
jmp 0x442bbd
mov byte [esi + 0x2c], 0
push esi
push dword [esi + 0x20]
mov dword [esp + 0x24], ebp
or ebx, 0xffffffff
mov ebp, closesocket
call fcn.00446830
mov dword [esp + 0x2c], edx
add esp, 8
xor edx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], edx
cmp dword [esp + 0x20], edx
jbe 0x442d1e
nop dword [eax]
movzx eax, word [esi + 0x2e]
movzx ecx, word [esi + 0x5c]
mov edi, dword [esi + 0x22c]
sub ecx, eax
add ecx, edx
movzx ecx, cx
mov dword [esp + 0x30], ecx
test edi, edi
jne 0x442c3b
push 0xc2
push str..._tech1utilsutp_srcutp_internal.cpp
push str.elements
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edi, dword [esi + 0x22c]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
test edi, edi
je 0x442d0f
mov eax, dword [esi + 0x228]
and eax, ecx
mov edi, dword [edi + eax*4]
test edi, edi
je 0x442d0f
test dword [edi + 0x10], 0x7fffffff
je 0x442d0f
mov eax, dword [edi + 4]
test eax, eax
jns 0x442c81
push 0x7b2
push str..._tech1utilsutp_srcutp_internal.cpp
push str._int__pkt__payload____0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, dword [edi + 4]
add esp, 0xc
mov ecx, dword [esp + 0x30]
add dword [esp + 0x1c], eax
mov eax, dword [esi + 0x1f4]
test eax, eax
je 0x442cc8
cmp ecx, eax
jne 0x442cc8
mov eax, dword [esi + 0x1f8]
mov ecx, esi
mov dword [esi + 0x1ec], eax
call fcn.004416e0
push dword [esi + 0x1f0]
push dword [esi + 0x1e8]
push dword [esi + 0x1ec]
push str.MTU__ACK__floor:_d_ceiling:_d_current:_d
push 0x12
push esi
call fcn.00441340
add esp, 0x18
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x24]
cmp edx, edi
ja 0x442cf6
mov eax, dword [esp + 0x2c]
jb 0x442ce0
cmp ecx, eax
jae 0x442cf6
sub eax, ecx
mov ecx, edi
sbb ecx, edx
cmp ebp, ecx
jg 0x442cf0
jl 0x442d0b
cmp ebx, eax
jb 0x442d0b
mov ebx, eax
mov ebp, ecx
jmp 0x442d0b
test ebp, ebp
jg 0x442d04
jl 0x442d0b
cmp ebx, 0xc350
jb 0x442d0b
mov ebx, 0xc350
xor ebp, ebp
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x20]
jl 0x442bf0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x442e8e
xor eax, eax
cmp word [esi + 0x2e], ax
je 0x442e8a
mov dword [esp + 0x2c], eax
movzx eax, byte [ecx - 1]
push esi
push dword [esi + 0x20]
shl eax, 3
mov dword [esp + 0x1c], eax
call fcn.00446830
mov ecx, dword [esp + 0x3c]
add esp, 8
add ecx, 2
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x14]
movzx eax, cx
add eax, edx
mov dword [esp + 0x24], eax
nop dword [eax]
movzx eax, word [esi + 0x5c]
sub eax, dword [esp + 0x24]
dec eax
movzx ecx, ax
mov ax, word [esi + 0x2e]
dec ax
movzx eax, ax
cmp ecx, eax
jae 0x442e74
mov edi, dword [esi + 0x22c]
test edi, edi
jne 0x442dc1
push 0xc2
push str..._tech1utilsutp_srcutp_internal.cpp
push str.elements
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edi, dword [esi + 0x22c]
add esp, 0xc
mov edx, dword [esp + 0x14]
test edi, edi
je 0x442e74
mov eax, dword [esi + 0x228]
and eax, dword [esp + 0x24]
mov edi, dword [edi + eax*4]
test edi, edi
je 0x442e74
test dword [edi + 0x10], 0x7fffffff
je 0x442e74
test edx, edx
js 0x442e74
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 7
sar eax, 3
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
test byte [eax + ecx], dl
je 0x442e70
mov eax, dword [edi + 4]
test eax, eax
jns 0x442e29
push 0x59a
push str..._tech1utilsutp_srcutp_internal.cpp
push str._int__pkt__payload____0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, dword [edi + 4]
add esp, 0xc
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
add dword [esp + 0x2c], eax
mov edi, dword [esp + 0x44]
cmp edx, edi
ja 0x442e5b
mov eax, dword [esp + 0x30]
jb 0x442e45
cmp ecx, eax
jae 0x442e5b
sub eax, ecx
mov ecx, edi
sbb ecx, edx
cmp ebp, ecx
jg 0x442e55
jl 0x442e70
cmp ebx, eax
jb 0x442e70
mov ebx, eax
mov ebp, ecx
jmp 0x442e70
test ebp, ebp
jg 0x442e69
jl 0x442e70
cmp ebx, 0xc350
jb 0x442e70
mov ebx, 0xc350
xor ebp, ebp
mov edx, dword [esp + 0x14]
dec dword [esp + 0x24]
dec edx
mov dword [esp + 0x14], edx
cmp edx, 0xffffffff
jge 0x442d70
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
push dword [eax + 0x12]
call dword [sym.imp.WSOCK32.dll_ntohl]
mov edi, eax
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov dword [esi + 0x78], ecx
mov ecx, edi
or ecx, 0
mov dword [esi + 0x7c], edx
jne 0x442ec4
mov edx, dword [esi + 0x178]
lea edi, [esi + 0x178]
mov dword [esi + 0x64], ecx
jmp 0x442ef1
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x178]
sub ecx, edi
lea edi, [esi + 0x178]
mov dword [esi + 0x64], ecx
mov dword [esp + 0x4c], edx
je 0x442ef1
push dword [eax + 0x64]
push dword [eax + 0x60]
push ecx
mov ecx, edi
call fcn.00440300
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x442f15
mov eax, dword [edi]
mov ecx, edx
sub ecx, eax
sub eax, edx
cmp ecx, eax
jae 0x442f15
cmp ecx, 0x2710
ja 0x442f15
push ecx
lea ecx, [esi + 0x118]
call fcn.00442590
mov eax, dword [esp + 0x58]
mov edi, dword [sym.imp.WSOCK32.dll_ntohl]
push dword [eax + 0x16]
call edi
cmp eax, 0x7fffffff
jne 0x442f32
xor edi, edi
jmp 0x44313f
mov eax, dword [esp + 0x58]
push dword [eax + 0x16]
call edi
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x44313f
mov ecx, dword [esi + 0x20]
push dword [ecx + 0x64]
push dword [ecx + 0x60]
lea ecx, [esi + 0x118]
push edi
call fcn.00440300
mov eax, dword [esi + 0x20c]
test eax, eax
jne 0x442f70
mov dword [esi + 0x20c], edi
mov eax, edi
mov ecx, eax
sub ecx, edi
sub edi, eax
xor eax, eax
cmp ecx, edi
ja 0x442f84
mov edi, ecx
neg edi
adc eax, eax
neg eax
add edi, dword [esi + 0x200]
mov ecx, dword [esi + 0x204]
mov edx, dword [esi + 0x20]
adc ecx, eax
mov eax, dword [esi + 0x208]
inc eax
mov dword [esi + 0x200], edi
mov dword [esi + 0x204], ecx
mov dword [esp + 0x14], eax
mov dword [esi + 0x208], eax
mov eax, dword [edx + 0x64]
mov dword [esp + 0x24], ecx
cmp eax, dword [esi + 0x214]
jb 0x44313b
ja 0x442fd6
mov eax, dword [edx + 0x60]
cmp eax, dword [esi + 0x210]
jbe 0x44313b
mov edx, dword [esi + 0x1fc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
cdq
push edx
push eax
push ecx
push edi
call fcn.004c7640
test edx, edx
jl 0x44302d
jg 0x442ffb
cmp eax, 0x7fffffff
jb 0x44302d
push 0x80c
push str..._tech1utilsutp_srcutp_internal.cpp
push str.conn__current_delay_sum___conn__current_delay_samples___INT_MAX
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, dword [esi + 0x208]
add esp, 0xc
mov edi, dword [esi + 0x200]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x204]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
cdq
push edx
push eax
push dword [esp + 0x2c]
push edi
call fcn.004c7640
cmp edx, 0xffffffff
jg 0x44307e
jl 0x44304c
cmp eax, reloc.WSOCK32.dll_accept
ja 0x44307e
push 0x80d
push str..._tech1utilsutp_srcutp_internal.cpp
push str.conn__current_delay_sum___conn__current_delay_samples____INT_MAX
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov eax, dword [esi + 0x208]
add esp, 0xc
mov edi, dword [esi + 0x200]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x204]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
cdq
push edx
push eax
push dword [esp + 0x2c]
push edi
call fcn.004c7640
add dword [esi + 0x210], 0x1388
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov edi, eax
adc dword [esi + 0x214], 0
mov edx, eax
cmp eax, ecx
mov dword [esi + 0x1fc], ecx
mov dword [esi + 0x200], 0
cmovge edi, ecx
mov dword [esi + 0x204], 0
cmovle edx, ecx
mov dword [esi + 0x208], 0
xor eax, eax
test edi, edi
jle 0x4430e0
mov eax, edi
jmp 0x4430e6
test edx, edx
jns 0x4430e8
mov eax, edx
neg eax
mov edx, dword [esp + 0x2c]
test eax, eax
je 0x443100
sub dword [esi + 0x20c], eax
add ecx, eax
mov dword [esi + 0x1fc], ecx
add edx, eax
mov eax, dword [esi + 0x218]
sub ecx, edx
mov dword [esp + 0x2c], ecx
mov ecx, 7
imul ecx
push 0
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x30]
cdq
add edi, eax
push 8
adc ecx, edx
push ecx
push edi
call fcn.004c7640
mov dword [esi + 0x218], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x21c], eax
mov edi, dword [esp + 0x30]
test ebp, ebp
jg 0x443161
jl 0x443149
test ebx, ebx
jae 0x443161
push 0x856
push str..._tech1utilsutp_srcutp_internal.cpp
push str.min_rtt___0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov eax, dword [esi + 0x11c]
or ecx, 0xffffffff
mov edx, dword [esi + 0x120]
cmp eax, 0xffffffff
cmovb ecx, eax
mov eax, edx
cmp edx, ecx
cmovae eax, ecx
mov ecx, dword [esi + 0x124]
cmp ecx, eax
mov esi, ecx
cmovae esi, eax
xor eax, eax
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x54]
cmp eax, ebp
jl 0x4431c9
jg 0x4431a0
cmp dword [esp + 0x4c], ebx
jbe 0x4431c9
or eax, 0xffffffff
cmp dword [esi + 0x11c], 0xffffffff
cmovb eax, dword [esi + 0x11c]
cmp edx, eax
cmovae edx, eax
cmp ecx, edx
cmovae ecx, edx
sub ecx, ebx
push ecx
lea ecx, [esi + 0x118]
call fcn.00442590
test edi, edi
je 0x4431e1
mov eax, dword [esp + 0x1c]
cmp eax, 1
jb 0x4431e1
push ebp
push ebx
push edi
push eax
mov ecx, esi
call fcn.00440450
movzx eax, word [esi + 0x2e]
xor ebp, ebp
mov ebx, dword [esp + 0x20]
cmp ebx, eax
ja 0x4434bb
mov eax, dword [esp + 0x58]
push dword [eax + 0x1a]
call dword [sym.imp.WSOCK32.dll_ntohl]
mov dword [esi + 0x48], eax
test eax, eax
jne 0x443224
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
add ecx, 0x3a98
mov dword [esi + 0x108], ecx
adc eax, ebp
mov dword [esi + 0x10c], eax
mov al, byte [esp + 0x5c]
test al, al
jne 0x44344f
cmp dword [esi + 0x4c], 3
jne 0x44323d
mov dword [esi + 0x4c], 4
mov cl, byte [esi + 0x44]
test cl, 4
je 0x44325f
movzx eax, word [esi + 0x2e]
cmp eax, ebx
jne 0x44325f
or cl, 8
mov byte [esi + 0x44], cl
test cl, 0x20
je 0x44325f
mov dword [esi + 0x4c], 7
mov eax, dword [esp + 0x34]
movzx edx, word [esi + 0x60]
inc eax
movzx edi, ax
mov eax, edi
sub eax, edx
sub edx, edi
movzx ecx, ax
movzx eax, dx
cmp ecx, eax
jae 0x443284
mov eax, dword [esp + 0x3c]
inc eax
mov word [esi + 0x60], ax
xor ebx, ebx
mov edi, 0xffff
cmp dword [esp + 0x20], ebx
jbe 0x443311
mov ax, word [esi + 0x5c]
mov ecx, esi
sub ax, word [esi + 0x2e]
movzx eax, ax
push eax
call fcn.004400e0
cmp eax, 2
je 0x443311
add word [esi + 0x2e], di
mov edi, dword [esi + 0x234]
test edi, edi
jne 0x4432d9
push 0x8a8
push str..._tech1utilsutp_srcutp_internal.cpp
push str._conn__outbuf_sizes.empty__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edi, dword [esi + 0x234]
add esp, 0xc
mov eax, dword [esi + 0x230]
push 0xc
mov edx, dword [eax]
lea eax, [edi - 1]
push edx
add ebp, dword [edx + 8]
mov ecx, dword [edx]
mov dword [esi + 0x234], eax
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.004c7626
inc ebx
add esp, 8
mov edi, 0xffff
cmp ebx, dword [esp + 0x20]
jl 0x443295
movzx eax, word [esi + 0x2e]
test ax, ax
je 0x4433cb
mov ecx, eax
movzx edi, word [esi + 0x5c]
mov ebx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
movzx eax, cx
sub edi, eax
mov eax, dword [esi + 0x22c]
test eax, eax
jne 0x443357
push 0xc2
push str..._tech1utilsutp_srcutp_internal.cpp
push str.elements
call ebx
mov eax, dword [esi + 0x22c]
add esp, 0xc
test eax, eax
je 0x443363
and edi, dword [esi + 0x228]
cmp dword [eax + edi*4], 0
jne 0x4433cb
mov edi, dword [esi + 0x234]
mov eax, 0xffff
add word [esi + 0x2e], ax
test edi, edi
jne 0x443390
push 0x8bf
push str..._tech1utilsutp_srcutp_internal.cpp
push str._conn__outbuf_sizes.empty__
call ebx
mov edi, dword [esi + 0x234]
add esp, 0xc
mov eax, dword [esi + 0x230]
push 0xc
mov edx, dword [eax]
lea eax, [edi - 1]
push edx
add ebp, dword [edx + 8]
mov ecx, dword [edx]
mov dword [esi + 0x234], eax
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.004c7626
movzx eax, word [esi + 0x2e]
add esp, 8
mov ecx, eax
test ax, ax
jne 0x443320
movzx eax, word [esi + 0x2e]
test ax, ax
je 0x443402
movzx ecx, word [esi + 0x5c]
sub ecx, eax
push ecx
lea ecx, [esi + 0x228]
call fcn.00441040
test eax, eax
jne 0x443402
push 0x8cf
push str..._tech1utilsutp_srcutp_internal.cpp
push str.conn__cur_window_packets__0__conn__outbuf.get_conn__seq_nr___conn__cur_window_packets_
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
cmp word [esi + 0x2e], 1
jne 0x44342b
movzx eax, word [esi + 0x5c]
lea ecx, [esi + 0x228]
dec eax
push eax
call fcn.00441040
test dword [eax + 0x10], 0x7fffffff
jne 0x44342b
push eax
mov ecx, esi
call fcn.004422c0
mov cl, byte [esi + 0x44]
test cl, 0x40
je 0x4434bb
movzx eax, word [esi + 0x2e]
movzx edx, word [esi + 0x5c]
sub edx, eax
cmp dx, word [esi + 0x60]
je 0x443490
and cl, 0xbf
mov byte [esi + 0x44], cl
jmp 0x4434bb
cmp al, 2
jne 0x44323d
cmp dword [esi + 0x4c], 2
jne 0x44323d
mov eax, dword [esi + 0x20]
mov dword [esi + 0x4c], 4
cmp dword [eax + 0xc], ebp
je 0x44347f
push esi
push eax
call fcn.00446a50
add esp, 8
jmp 0x44325f
push 1
push esi
push eax
call fcn.00446c20
add esp, 0xc
jmp 0x44325f
push edx
lea ecx, [esi + 0x228]
call fcn.00441040
test eax, eax
je 0x4434bb
test dword [eax + 0x10], 0x7fffffff
jbe 0x4434bb
inc dword [esi + 0x24c]
mov ecx, esi
inc word [esi + 0x60]
push eax
call fcn.004422c0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4434d8
movzx eax, byte [ecx - 1]
push eax
mov eax, dword [esp + 0x38]
push ecx
add eax, 2
mov ecx, esi
push eax
call fcn.00441b20
movzx eax, word [esi + 0x2e]
test ax, ax
je 0x44350f
movzx ecx, word [esi + 0x5c]
sub ecx, eax
push ecx
lea ecx, [esi + 0x228]
call fcn.00441040
test eax, eax
jne 0x44350f
push 0x8fe
push str..._tech1utilsutp_srcutp_internal.cpp
push str.conn__cur_window_packets__0__conn__outbuf.get_conn__seq_nr___conn__cur_window_packets_
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov eax, dword [esi + 0x4c]
cmp eax, 4
je 0x44351c
cmp eax, 5
jne 0x443557
test ebp, ebp
jle 0x443530
push ebp
push esi
push dword [esi + 0x20]
call fcn.00446be0
mov eax, dword [esi + 0x4c]
add esp, 0xc
cmp eax, 5
jne 0x443557
push 0xffffffffffffffff
mov ecx, esi
call fcn.004412d0
test al, al
jne 0x443557
push 2
push esi
push dword [esi + 0x20]
mov dword [esi + 0x4c], 4
call fcn.00446c20
add esp, 0xc
mov cl, byte [esp + 0x5c]
cmp cl, 2
je 0x442b0e
mov eax, dword [esi + 0x4c]
cmp eax, 4
je 0x4435af
cmp eax, 5
je 0x4435af
test byte [esi + 0x44], 8
je 0x442b0e
cmp eax, 7
jne 0x442b0e
cmp dword [esp + 0x40], 0
jne 0x442b0e
cmp cl, 1
jne 0x442b0e
inc word [esi + 0x5a]
mov ecx, esi
push 0
call fcn.00441fa0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x40
ret
cmp cl, 1
mov ecx, dword [esp + 0x10]
jne 0x4435c8
mov al, byte [esi + 0x44]
test al, 1
jne 0x4435c8
or al, 1
mov word [esi + 0x58], cx
mov byte [esi + 0x44], al
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x443736
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
sub eax, edi
mov dword [esp + 0x18], eax
je 0x4435f8
test byte [esi + 0x44], 0x10
jne 0x4435f8
push eax
push edi
push esi
push dword [esi + 0x20]
call fcn.00446ba0
add esp, 0x10
inc word [esi + 0x5a]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov cl, byte [esi + 0x44]
test cl, 2
jne 0x44361d
test cl, 1
je 0x44361d
mov ax, word [esi + 0x58]
cmp ax, word [esi + 0x5a]
je 0x4436d8
cmp word [esi + 0x2a], 0
je 0x443814
movzx edi, word [esi + 0x5a]
mov ecx, dword [esi + 0x224]
inc edi
mov ebp, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
test ecx, ecx
jne 0x44365f
push 0xc2
push str..._tech1utilsutp_srcutp_internal.cpp
push str.elements
call ebp
mov ecx, dword [esi + 0x224]
add esp, 0xc
test ecx, ecx
je 0x443814
mov edx, dword [esi + 0x220]
mov eax, edx
and eax, edi
mov edi, dword [ecx + eax*4]
test edi, edi
je 0x443814
movzx eax, word [esi + 0x5a]
inc eax
and eax, edx
mov dword [ecx + eax*4], 0
mov eax, dword [edi]
test eax, eax
je 0x44369f
test byte [esi + 0x44], 0x10
jne 0x44369f
push eax
lea eax, [edi + 4]
push eax
push esi
push dword [esi + 0x20]
call fcn.00446ba0
add esp, 0x10
inc word [esi + 0x5a]
push edi
call ebx
movzx eax, word [esi + 0x2a]
add esp, 4
mov ecx, eax
test ax, ax
jne 0x4436cc
push 0x972
push str..._tech1utilsutp_srcutp_internal.cpp
push str.conn__reorder_count___0
call ebp
movzx ecx, word [esi + 0x2a]
add esp, 0xc
lea eax, [ecx - 1]
mov word [esi + 0x2a], ax
jmp 0x443602
mov eax, dword [esi + 0x94]
or cl, 2
mov edx, dword [esi + 0x20]
mov byte [esi + 0x44], cl
mov ecx, 0x3c
push 3
lea eax, [eax + eax*2]
cmp eax, ecx
push esi
cmovb ecx, eax
xor eax, eax
add ecx, dword [edx + 0x60]
push edx
adc eax, dword [edx + 0x64]
mov dword [esi + 0x100], ecx
mov dword [esi + 0x104], eax
call fcn.00446c20
add esp, 0xc
mov ecx, esi
push 0
call fcn.00441fa0
xor eax, eax
mov ecx, esi
mov word [esi + 0x2a], ax
call fcn.00441ab0
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
test byte [esi + 0x44], 1
je 0x443746
cmp cx, word [esi + 0x58]
ja 0x442b0e
movzx ebp, cx
lea ebx, [esi + 0x220]
inc eax
mov ecx, ebx
push eax
lea eax, [ebp + 1]
push eax
call fcn.00440e40
push ebp
mov ecx, ebx
call fcn.00441040
test eax, eax
je 0x443778
inc dword [esi + 0x258]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
sub eax, edi
mov dword [esp + 0x18], eax
add eax, 4
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ebp, eax
mov eax, dword [esp + 0x1c]
push eax
push edi
lea ecx, [ebp + 4]
mov dword [ebp], eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x20]
add esp, 0x10
movzx eax, cx
mov ecx, ebx
push eax
call fcn.00441040
mov edi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
test eax, eax
je 0x4437d4
push 0x9af
push str..._tech1utilsutp_srcutp_internal.cpp
push str.conn__inbuf.get_pk_seq_nr___NULL
call edi
add esp, 0xc
movzx edx, word [esi + 0x5a]
mov esi, dword [esp + 0x10]
inc edx
and edx, dword [ebx]
movzx eax, si
and eax, dword [ebx]
mov esi, dword [esp + 0x54]
cmp eax, edx
jne 0x443800
push 0x9b0
push str..._tech1utilsutp_srcutp_internal.cpp
push str._pk_seq_nr__conn__inbuf.mask______conn__ack_nr1___conn__inbuf.mask_
call edi
add esp, 0xc
mov ecx, dword [esp + 0x10]
movzx eax, cx
mov ecx, ebx
push ebp
push eax
call fcn.00441950
inc word [esi + 0x2a]
mov ecx, esi
call fcn.00441ab0
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret