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

Disassembly:
sub esp, 0x40
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
push edi
mov edi, dword [esp + 0x54]
mov eax, dword [edi + 0x14]
cmp ebx, 0x2d3
ja 0x4f6fa1
cmp ebx, 0x17
ja 0x4f6f8f
inc dword [eax + 0x68]
jmp 0x4f6fb1
cmp ebx, 0x175
ja 0x4f6f9c
inc dword [eax + 0x6c]
jmp 0x4f6fb1
inc dword [eax + 0x70]
jmp 0x4f6fb1
cmp ebx, 0x578
ja 0x4f6fae
inc dword [eax + 0x74]
jmp 0x4f6fb1
inc dword [eax + 0x78]
push edi
push dword [edi + 0x14]
call fcn.00553aad
mov ecx, dword [edi + 0x14]
mov ebp, dword [esp + 0x58]
mov esi, dword [sym.imp.WS2_32.dll_ntohs]
mov dword [ecx + 0x60], eax
lea eax, [ebx + ebp]
mov dword [ecx + 0x64], edx
mov dword [esp + 0x5c], eax
movzx eax, word [ebp + 0x10]
push eax
call esi
movzx eax, ax
mov dword [esp + 0x18], eax
movzx eax, word [ebp + 0x12]
push eax
call esi
movzx esi, ax
mov al, byte [ebp]
shr al, 4
mov dword [esp + 0x38], esi
mov byte [esp + 0x54], al
cmp al, 5
jae 0x4f7155
push edi
push dword [edi + 0x14]
call fcn.00553a7d
mov dword [esp + 0x40], eax
movzx eax, word [edi + 0x22]
add eax, 3
mov dword [esp + 0x4c], edx
push 3
movzx eax, ax
pop ecx
mov dword [esp + 0x2c], eax
cmp ax, cx
ja 0x4f702d
mov dword [esp + 0x2c], ecx
mov dh, byte [esp + 0x54]
cmp dh, 4
jne 0x4f703b
cmp dword [edi + 0x40], ecx
je 0x4f707f
movzx ebp, si
movzx esi, word [edi + 0x54]
mov eax, ebp
lea edx, [esi - 1]
sub eax, edx
sub edx, ebp
movzx ecx, ax
movzx eax, dx
cmp ecx, eax
jb 0x4f7155
mov eax, dword [esp + 0x2c]
movzx eax, ax
sub esi, eax
dec esi
mov eax, esi
sub eax, ebp
sub ebp, esi
movzx ecx, ax
movzx eax, bp
cmp ecx, eax
jb 0x4f7155
mov ebp, dword [esp + 0x58]
mov dh, byte [esp + 0x54]
xor eax, eax
add ebp, 0x14
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebp
cmp ebx, 0x14
jb 0x4f7155
mov eax, dword [esp + 0x58]
movzx ecx, byte [eax + 1]
test ecx, ecx
je 0x4f70ff
mov ebx, dword [esp + 0x5c]
add ebp, 2
mov esi, ebx
sub esi, ebp
js 0x4f7155
mov dl, byte [ebp - 1]
movzx eax, dl
cmp esi, eax
jl 0x4f7155
sub ecx, 1
je 0x4f70ea
sub ecx, 1
jne 0x4f70ee
cmp dl, 8
jne 0x4f7155
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edi + 0x1d8], eax
mov dword [edi + 0x1dc], ecx
mov dl, byte [ebp - 1]
jmp 0x4f70ee
mov dword [esp + 0x24], ebp
movzx ecx, byte [ebp - 2]
movzx eax, dl
add ebp, eax
mov dword [esp + 0x28], ebp
test ecx, ecx
jne 0x4f70a5
cmp dword [edi + 0x40], 2
mov esi, dword [esp + 0x18]
jne 0x4f7110
lea eax, [esi - 1]
mov word [edi + 0x52], ax
cmp byte [esp + 0x60], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
mov dword [edi + 0x60], ecx
mov dword [edi + 0x64], eax
jne 0x4f7155
movzx eax, word [edi + 0x52]
movzx ecx, si
mov dword [esp + 0x2c], ecx
sub ecx, eax
dec ecx
movzx eax, cx
mov dword [esp + 0x44], eax
cmp eax, 0x400
jb 0x4f7161
cmp eax, 0xfc00
jb 0x4f7155
cmp dh, 2
je 0x4f7155
mov ecx, edi
call fcn.004f66db
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x10
movzx esi, word [edi + 0x22]
mov eax, dword [esp + 0x38]
mov edx, esi
movzx ecx, word [edi + 0x54]
movzx ebp, ax
mov eax, edx
sub eax, ecx
mov dword [esp + 0x1c], ebp
inc eax
add eax, ebp
movzx eax, ax
cmp edx, eax
sbb ebx, ebx
not ebx
and ebx, eax
mov dword [esp + 0x20], ebx
test si, si
je 0x4f7209
sub ecx, edx
dec ecx
movzx eax, cx
cmp ebp, eax
jne 0x4f7205
cmp byte [esp + 0x54], 2
jne 0x4f7205
inc byte [edi + 0x20]
cmp byte [edi + 0x20], 3
jne 0x4f7209
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x4f7209
dec eax
movzx eax, ax
cmp ebp, eax
jne 0x4f71f5
mov eax, dword [edi + 0x1f8]
mov ecx, edi
dec eax
mov dword [edi + 0x1e8], eax
call fcn.004f6535
push dword [edi + 0x1f0]
push dword [edi + 0x1e8]
push dword [edi + 0x1ec]
push str.MTU__DUPACK__floor:_d_ceiling:_d_current:_d
push 0x11
push edi
call fcn.004f63b2
add esp, 0x18
jmp 0x4f7209
and dword [edi + 0x1f8], 0
and dword [edi + 0x1f4], 0
jmp 0x4f7209
mov byte [edi + 0x20], 0
push edi
push dword [edi + 0x14]
or ebx, 0xffffffff
mov ebp, SysReAllocString
xor esi, esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x54], ebp
call fcn.00553a7d
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x3c], edx
mov edx, eax
mov dword [esp + 0x34], eax
cmp dword [esp + 0x20], eax
jbe 0x4f733d
movzx eax, word [edi + 0x22]
movzx ecx, word [edi + 0x54]
mov esi, dword [edi + 0x22c]
sub ecx, eax
add ecx, edx
movzx ecx, cx
test esi, esi
je 0x4f7322
mov eax, dword [edi + 0x228]
and eax, ecx
mov esi, dword [esi + eax*4]
test esi, esi
je 0x4f7322
test dword [esi + 0x10], 0x7fffffff
je 0x4f7322
mov eax, dword [esp + 0x14]
add eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x4f72d9
cmp ecx, eax
jne 0x4f72d9
mov eax, dword [edi + 0x1f8]
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.004f6535
push dword [edi + 0x1f0]
push dword [edi + 0x1e8]
push dword [edi + 0x1ec]
push str.MTU__ACK__floor:_d_ceiling:_d_current:_d
push 0x11
push edi
call fcn.004f63b2
mov edx, dword [esp + 0x4c]
add esp, 0x18
mov ecx, dword [esp + 0x3c]
cmp dword [esi + 0xc], ecx
ja 0x4f7303
mov eax, dword [esp + 0x30]
jb 0x4f72ed
cmp dword [esi + 8], eax
jae 0x4f7303
sub eax, dword [esi + 8]
sbb ecx, dword [esi + 0xc]
cmp ebp, ecx
jg 0x4f72fd
jl 0x4f731a
cmp ebx, eax
jb 0x4f731a
mov ebx, eax
mov ebp, ecx
jmp 0x4f731a
xor eax, eax
cmp ebp, eax
jg 0x4f7313
jl 0x4f731a
cmp ebx, 0xc350
jb 0x4f731a
mov ebx, 0xc350
mov ebp, eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x20]
jl 0x4f724a
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4f7378
lea eax, [esp + 0x48]
push eax
movzx eax, byte [ecx - 1]
push eax
mov eax, dword [esp + 0x24]
add eax, 2
push ecx
movzx eax, ax
mov ecx, edi
push eax
call fcn.004f68c5
add esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], esi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x58]
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [edi + 0x14]
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
mov dword [edi + 0x70], ecx
mov ecx, eax
mov dword [edi + 0x74], edx
xor edx, edx
or ecx, edx
jne 0x4f73a0
mov ecx, edx
jmp 0x4f73a6
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov dword [edi + 0x5c], ecx
lea ebx, [edi + 0x178]
mov ebp, dword [ebx]
test ecx, ecx
je 0x4f73c3
push dword [esi + 0x64]
push dword [esi + 0x60]
push ecx
mov ecx, ebx
call fcn.004f5a6e
push 0xd
pop edx
mov dword [esp + 0x34], edx
test ebp, ebp
je 0x4f73f8
mov eax, dword [ebx]
mov ecx, ebp
sub ecx, eax
sub eax, ebp
cmp ecx, eax
jae 0x4f73f8
cmp ecx, 0x2710
ja 0x4f73f8
lea eax, [edi + 0x12c]
add dword [eax], ecx
lea eax, [eax + 4]
sub edx, 1
jne 0x4f73e8
add dword [edi + 0x118], ecx
mov ebx, dword [esp + 0x58]
mov ebp, dword [sym.imp.WS2_32.dll_ntohl]
push dword [ebx + 8]
call ebp
cmp eax, 0x7fffffff
jne 0x4f7417
xor eax, eax
mov ebp, eax
jmp 0x4f7560
push dword [ebx + 8]
call ebp
mov ebp, eax
test ebp, ebp
je 0x4f7560
mov ecx, dword [edi + 0x14]
push dword [ecx + 0x64]
push dword [ecx + 0x60]
lea ecx, [edi + 0x118]
push ebp
call fcn.004f5a6e
mov eax, dword [edi + 0x20c]
test eax, eax
jne 0x4f744d
mov dword [edi + 0x20c], ebp
mov eax, ebp
mov edx, eax
mov ecx, ebp
sub ecx, eax
sub edx, ebp
xor eax, eax
cmp edx, ecx
ja 0x4f7463
mov ecx, edx
neg ecx
adc eax, eax
neg eax
add ecx, dword [edi + 0x200]
mov ebx, dword [edi + 0x204]
mov esi, dword [edi + 0x14]
adc ebx, eax
mov eax, dword [edi + 0x208]
mov edx, dword [edi + 0x210]
inc eax
mov dword [edi + 0x208], eax
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x214]
mov dword [edi + 0x200], ecx
mov dword [edi + 0x204], ebx
cmp dword [esi + 0x64], eax
jb 0x4f7560
ja 0x4f74b1
cmp dword [esi + 0x60], edx
jbe 0x4f7560
mov eax, dword [esp + 0x40]
mov esi, dword [edi + 0x1fc]
cdq
push edx
push eax
push ebx
push ecx
call fcn.0068a080
add dword [edi + 0x210], 0x1388
mov ebx, eax
mov ecx, dword [edi + 0x214]
mov edx, ebx
adc ecx, 0
mov dword [edi + 0x1fc], ebx
xor eax, eax
mov dword [edi + 0x214], ecx
mov dword [edi + 0x200], eax
mov dword [edi + 0x204], eax
mov dword [edi + 0x208], eax
cmp esi, ebx
jge 0x4f7504
mov ecx, esi
jmp 0x4f750c
mov ecx, ebx
cmp esi, edx
jle 0x4f750c
mov edx, esi
test ecx, ecx
jle 0x4f7514
mov eax, ecx
jmp 0x4f751a
test edx, edx
jns 0x4f751c
mov eax, edx
neg eax
test eax, eax
je 0x4f7530
sub dword [edi + 0x20c], eax
add ebx, eax
mov dword [edi + 0x1fc], ebx
add esi, eax
mov eax, dword [edi + 0x218]
sub ebx, esi
push 7
pop ecx
imul ecx
mov esi, eax
mov ecx, edx
mov eax, ebx
cdq
add esi, eax
adc ecx, edx
xor eax, eax
push eax
push 8
push ecx
push esi
call fcn.0068a080
mov dword [edi + 0x218], eax
mov dword [edi + 0x21c], ebx
lea esi, [edi + 0x118]
mov ecx, esi
call fcn.004f62d4
mov ebx, dword [esp + 0x10]
mov ecx, eax
xor eax, eax
cmp eax, ebx
jl 0x4f75a5
jg 0x4f7583
mov eax, dword [esp + 0x60]
cmp ecx, eax
jbe 0x4f75a9
mov ecx, esi
call fcn.004f62d4
mov edx, eax
lea ecx, [esi + 0x14]
mov eax, dword [esp + 0x60]
sub edx, eax
add dword [ecx], edx
lea ecx, [ecx + 4]
sub dword [esp + 0x34], 1
jne 0x4f7595
add dword [esi], edx
jmp 0x4f75a9
mov eax, dword [esp + 0x60]
test ebp, ebp
je 0x4f75c1
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jb 0x4f75c1
push ebx
push eax
push ebp
push ecx
mov ecx, edi
call fcn.004f5b2d
movzx eax, word [edi + 0x22]
mov ebx, dword [esp + 0x20]
cmp ebx, eax
ja 0x4f77a9
mov eax, dword [esp + 0x58]
push dword [eax + 0xc]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [edi + 0x3c], eax
test eax, eax
jne 0x4f7607
mov eax, dword [edi + 0x14]
push 0
pop edx
mov ecx, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
add ecx, 0x3a98
mov dword [edi + 0x100], ecx
adc eax, edx
mov dword [edi + 0x104], eax
jmp 0x4f7609
xor edx, edx
mov cl, byte [esp + 0x54]
mov eax, dword [edi + 0x40]
test cl, cl
jne 0x4f7705
cmp eax, 3
jne 0x4f7623
push 4
pop eax
mov dword [edi + 0x40], eax
cmp eax, 8
jne 0x4f7637
movzx eax, word [edi + 0x22]
cmp eax, ebx
jne 0x4f7637
mov dword [edi + 0x40], 0xa
mov ebp, dword [esp + 0x1c]
movzx edx, word [edi + 0x58]
lea eax, [ebp + 1]
movzx esi, ax
mov eax, esi
sub eax, edx
sub edx, esi
movzx ecx, ax
movzx eax, dx
cmp ecx, eax
jae 0x4f765e
mov eax, dword [esp + 0x38]
inc eax
mov word [edi + 0x58], ax
xor eax, eax
mov esi, eax
test ebx, ebx
je 0x4f7697
movzx ecx, word [edi + 0x22]
mov ebp, 0xffff
mov ax, word [edi + 0x54]
sub ax, cx
mov ecx, edi
movzx eax, ax
push eax
call fcn.004f5928
cmp eax, 2
je 0x4f7693
add word [edi + 0x22], bp
inc esi
movzx ecx, word [edi + 0x22]
cmp esi, ebx
jl 0x4f766f
mov ebp, dword [esp + 0x1c]
movzx eax, word [edi + 0x22]
mov ecx, eax
mov edx, eax
test ax, ax
je 0x4f76e3
mov esi, eax
mov ebx, ecx
movzx eax, bx
mov ebx, dword [edi + 0x22c]
test ebx, ebx
je 0x4f76cd
movzx ecx, word [edi + 0x54]
mov edx, eax
movzx eax, si
sub ecx, eax
xor eax, eax
and ecx, dword [edi + 0x228]
cmp dword [ebx + ecx*4], eax
jne 0x4f76e3
lea ecx, [esi - 1]
movzx eax, cx
mov word [edi + 0x22], cx
mov ebx, eax
movzx esi, cx
mov edx, eax
test cx, cx
jne 0x4f76a8
xor ebx, ebx
inc ebx
cmp dx, bx
jne 0x4f7753
mov ecx, dword [edi + 0x22c]
test ecx, ecx
je 0x4f7740
movzx eax, word [edi + 0x54]
dec eax
and eax, dword [edi + 0x228]
mov eax, dword [ecx + eax*4]
jmp 0x4f7742
cmp cl, 2
jne 0x4f7623
cmp eax, 2
jne 0x4f7623
mov eax, dword [edi + 0x14]
mov dword [edi + 0x40], 4
cmp dword [eax + 0xc], edx
je 0x4f7732
push edi
push eax
call fcn.00553c13
jmp 0x4f7637
push 1
push edi
push eax
call fcn.00553d44
jmp 0x4f7637
xor eax, eax
test dword [eax + 0x10], 0x7fffffff
jne 0x4f7753
push eax
mov ecx, edi
call fcn.004f6b83
mov cl, byte [edi + 0x38]
test cl, 2
je 0x4f77b0
movzx eax, word [edi + 0x22]
movzx edx, word [edi + 0x54]
movzx esi, word [edi + 0x58]
sub edx, eax
cmp dx, si
je 0x4f7776
and cl, 0xfd
mov byte [edi + 0x38], cl
jmp 0x4f77b0
mov ecx, dword [edi + 0x22c]
test ecx, ecx
je 0x4f77b0
mov eax, dword [edi + 0x228]
and eax, edx
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x4f77b0
test dword [ecx + 0x10], 0x7fffffff
jbe 0x4f77b0
lea eax, [esi + 1]
push ecx
mov ecx, edi
mov word [edi + 0x58], ax
call fcn.004f6b83
jmp 0x4f77b0
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
inc ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4f77c9
movzx eax, byte [ecx - 1]
push eax
push ecx
lea eax, [ebp + 2]
mov ecx, edi
push eax
call fcn.004f6703
cmp dword [edi + 0x40], 5
jne 0x4f77ee
push 0xffffffffffffffff
mov ecx, edi
call fcn.004f635c
test al, al
jne 0x4f77ee
push 2
push edi
push dword [edi + 0x14]
mov dword [edi + 0x40], 4
call fcn.00553d44
mov al, byte [esp + 0x54]
cmp al, 2
je 0x4f7155
mov ecx, dword [edi + 0x40]
cmp ecx, 4
je 0x4f7810
cmp ecx, 5
je 0x4f7810
cmp ecx, 8
jne 0x4f7155
mov edx, dword [esp + 0x18]
cmp al, bl
jne 0x4f7828
mov al, byte [edi + 0x38]
test bl, al
jne 0x4f7828
or al, bl
mov word [edi + 0x50], dx
mov byte [edi + 0x38], al
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4f7923
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x28]
sub eax, ebp
mov dword [esp + 0x5c], eax
je 0x4f7854
cmp ecx, 8
je 0x4f7854
push eax
push ebp
push edi
push dword [edi + 0x14]
call fcn.00553d0e
inc word [edi + 0x52]
test byte [edi + 0x38], bl
je 0x4f78b3
mov ax, word [edi + 0x50]
cmp ax, word [edi + 0x52]
jne 0x4f78b3
cmp dword [edi + 0x40], 8
je 0x4f78a3
imul edx, dword [edi + 0x8c], 3
mov dword [edi + 0x40], 6
cmp edx, 0x3c
jb 0x4f7883
push 0x3c
pop edx
mov ecx, dword [edi + 0x14]
xor eax, eax
push 3
push edi
push ecx
add edx, dword [ecx + 0x60]
adc eax, dword [ecx + 0x64]
mov dword [edi + 0xf8], edx
mov dword [edi + 0xfc], eax
call fcn.00553d44
xor eax, eax
mov ecx, edi
push eax
call fcn.004f69ee
xor eax, eax
mov word [edi + 0x1e], ax
xor edx, edx
cmp word [edi + 0x1e], dx
je 0x4f79a0
mov ecx, dword [edi + 0x224]
test ecx, ecx
je 0x4f79a0
movzx eax, word [edi + 0x52]
inc eax
and eax, dword [edi + 0x220]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x4f79a0
movzx eax, word [edi + 0x52]
inc eax
and eax, dword [edi + 0x220]
mov dword [ecx + eax*4], edx
cmp dword [esi], edx
jbe 0x4f790a
cmp dword [edi + 0x40], 8
je 0x4f790a
push dword [esi]
lea eax, [esi + 4]
push eax
push edi
push dword [edi + 0x14]
call fcn.00553d0e
inc word [edi + 0x52]
push esi
call fcn.0069be6c
mov eax, 0xffff
add word [edi + 0x1e], ax
pop ecx
jmp 0x4f7858
test byte [edi + 0x38], bl
je 0x4f7932
cmp dx, word [edi + 0x50]
ja 0x4f7155
mov ebp, dword [esp + 0x2c]
lea ebx, [edi + 0x220]
inc eax
cmp eax, dword [ebx]
jbe 0x4f794d
push eax
lea eax, [ebp + 1]
mov ecx, ebx
push eax
call fcn.004f62ec
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4f7963
mov eax, dword [ebx]
xor edx, edx
and eax, ebp
cmp dword [ecx + eax*4], edx
jne 0x4f7155
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x28]
sub eax, ebp
mov dword [esp + 0x5c], eax
add eax, 4
push eax
call fcn.0069be71
mov esi, eax
mov eax, dword [esp + 0x60]
push eax
push ebp
lea ecx, [esi + 4]
mov dword [esi], eax
push ecx
call fcn.0068b600
mov edx, dword [ebx]
add esp, 0x10
and edx, dword [esp + 0x2c]
mov ecx, dword [ebx + 4]
mov dword [ecx + edx*4], esi
inc word [edi + 0x1e]
mov ecx, edi
call fcn.004f66db
mov eax, dword [esp + 0x5c]
jmp 0x4f7157