Function at 0x4d6e01
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 0x4d6e37
cmp ebx, 0x17
ja 0x4d6e25
inc dword [eax + 0x68]
jmp 0x4d6e47
cmp ebx, 0x175
ja 0x4d6e32
inc dword [eax + 0x6c]
jmp 0x4d6e47
inc dword [eax + 0x70]
jmp 0x4d6e47
cmp ebx, 0x578
ja 0x4d6e44
inc dword [eax + 0x74]
jmp 0x4d6e47
inc dword [eax + 0x78]
push edi
push dword [edi + 0x14]
call fcn.00531ef3
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 0x4d6feb
push edi
push dword [edi + 0x14]
call fcn.00531ec3
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 0x4d6ec3
mov dword [esp + 0x2c], ecx
mov dh, byte [esp + 0x54]
cmp dh, 4
jne 0x4d6ed1
cmp dword [edi + 0x40], ecx
je 0x4d6f15
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 0x4d6feb
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 0x4d6feb
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 0x4d6feb
mov eax, dword [esp + 0x58]
movzx ecx, byte [eax + 1]
test ecx, ecx
je 0x4d6f95
mov ebx, dword [esp + 0x5c]
add ebp, 2
mov esi, ebx
sub esi, ebp
js 0x4d6feb
mov dl, byte [ebp - 1]
movzx eax, dl
cmp esi, eax
jl 0x4d6feb
sub ecx, 1
je 0x4d6f80
sub ecx, 1
jne 0x4d6f84
cmp dl, 8
jne 0x4d6feb
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 0x4d6f84
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 0x4d6f3b
cmp dword [edi + 0x40], 2
mov esi, dword [esp + 0x18]
jne 0x4d6fa6
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 0x4d6feb
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 0x4d6ff7
cmp eax, 0xfc00
jb 0x4d6feb
cmp dh, 2
je 0x4d6feb
mov ecx, edi
call fcn.004d6571
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 0x4d709f
sub ecx, edx
dec ecx
movzx eax, cx
cmp ebp, eax
jne 0x4d709b
cmp byte [esp + 0x54], 2
jne 0x4d709b
inc byte [edi + 0x20]
cmp byte [edi + 0x20], 3
jne 0x4d709f
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x4d709f
dec eax
movzx eax, ax
cmp ebp, eax
jne 0x4d708b
mov eax, dword [edi + 0x1f8]
mov ecx, edi
dec eax
mov dword [edi + 0x1e8], eax
call fcn.004d63cb
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.004d6248
add esp, 0x18
jmp 0x4d709f
and dword [edi + 0x1f8], 0
and dword [edi + 0x1f4], 0
jmp 0x4d709f
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.00531ec3
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 0x4d71d3
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 0x4d71b8
mov eax, dword [edi + 0x228]
and eax, ecx
mov esi, dword [esi + eax*4]
test esi, esi
je 0x4d71b8
test dword [esi + 0x10], 0x7fffffff
je 0x4d71b8
mov eax, dword [esp + 0x14]
add eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x4d716f
cmp ecx, eax
jne 0x4d716f
mov eax, dword [edi + 0x1f8]
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.004d63cb
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.004d6248
mov edx, dword [esp + 0x4c]
add esp, 0x18
mov ecx, dword [esp + 0x3c]
cmp dword [esi + 0xc], ecx
ja 0x4d7199
mov eax, dword [esp + 0x30]
jb 0x4d7183
cmp dword [esi + 8], eax
jae 0x4d7199
sub eax, dword [esi + 8]
sbb ecx, dword [esi + 0xc]
cmp ebp, ecx
jg 0x4d7193
jl 0x4d71b0
cmp ebx, eax
jb 0x4d71b0
mov ebx, eax
mov ebp, ecx
jmp 0x4d71b0
xor eax, eax
cmp ebp, eax
jg 0x4d71a9
jl 0x4d71b0
cmp ebx, 0xc350
jb 0x4d71b0
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 0x4d70e0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4d720e
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.004d675b
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 0x4d7236
mov ecx, edx
jmp 0x4d723c
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 0x4d7259
push dword [esi + 0x64]
push dword [esi + 0x60]
push ecx
mov ecx, ebx
call fcn.004d5904
push 0xd
pop edx
mov dword [esp + 0x34], edx
test ebp, ebp
je 0x4d728e
mov eax, dword [ebx]
mov ecx, ebp
sub ecx, eax
sub eax, ebp
cmp ecx, eax
jae 0x4d728e
cmp ecx, 0x2710
ja 0x4d728e
lea eax, [edi + 0x12c]
add dword [eax], ecx
lea eax, [eax + 4]
sub edx, 1
jne 0x4d727e
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 0x4d72ad
xor eax, eax
mov ebp, eax
jmp 0x4d73f6
push dword [ebx + 8]
call ebp
mov ebp, eax
test ebp, ebp
je 0x4d73f6
mov ecx, dword [edi + 0x14]
push dword [ecx + 0x64]
push dword [ecx + 0x60]
lea ecx, [edi + 0x118]
push ebp
call fcn.004d5904
mov eax, dword [edi + 0x20c]
test eax, eax
jne 0x4d72e3
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 0x4d72f9
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 0x4d73f6
ja 0x4d7347
cmp dword [esi + 0x60], edx
jbe 0x4d73f6
mov eax, dword [esp + 0x40]
mov esi, dword [edi + 0x1fc]
cdq
push edx
push eax
push ebx
push ecx
call fcn.00664cb0
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 0x4d739a
mov ecx, esi
jmp 0x4d73a2
mov ecx, ebx
cmp esi, edx
jle 0x4d73a2
mov edx, esi
test ecx, ecx
jle 0x4d73aa
mov eax, ecx
jmp 0x4d73b0
test edx, edx
jns 0x4d73b2
mov eax, edx
neg eax
test eax, eax
je 0x4d73c6
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.00664cb0
mov dword [edi + 0x218], eax
mov dword [edi + 0x21c], ebx
lea esi, [edi + 0x118]
mov ecx, esi
call fcn.004d616a
mov ebx, dword [esp + 0x10]
mov ecx, eax
xor eax, eax
cmp eax, ebx
jl 0x4d743b
jg 0x4d7419
mov eax, dword [esp + 0x60]
cmp ecx, eax
jbe 0x4d743f
mov ecx, esi
call fcn.004d616a
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 0x4d742b
add dword [esi], edx
jmp 0x4d743f
mov eax, dword [esp + 0x60]
test ebp, ebp
je 0x4d7457
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jb 0x4d7457
push ebx
push eax
push ebp
push ecx
mov ecx, edi
call fcn.004d59c3
movzx eax, word [edi + 0x22]
mov ebx, dword [esp + 0x20]
cmp ebx, eax
ja 0x4d763f
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 0x4d749d
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 0x4d749f
xor edx, edx
mov cl, byte [esp + 0x54]
mov eax, dword [edi + 0x40]
test cl, cl
jne 0x4d759b
cmp eax, 3
jne 0x4d74b9
push 4
pop eax
mov dword [edi + 0x40], eax
cmp eax, 8
jne 0x4d74cd
movzx eax, word [edi + 0x22]
cmp eax, ebx
jne 0x4d74cd
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 0x4d74f4
mov eax, dword [esp + 0x38]
inc eax
mov word [edi + 0x58], ax
xor eax, eax
mov esi, eax
test ebx, ebx
je 0x4d752d
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.004d57be
cmp eax, 2
je 0x4d7529
add word [edi + 0x22], bp
inc esi
movzx ecx, word [edi + 0x22]
cmp esi, ebx
jl 0x4d7505
mov ebp, dword [esp + 0x1c]
movzx eax, word [edi + 0x22]
mov ecx, eax
mov edx, eax
test ax, ax
je 0x4d7579
mov esi, eax
mov ebx, ecx
movzx eax, bx
mov ebx, dword [edi + 0x22c]
test ebx, ebx
je 0x4d7563
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 0x4d7579
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 0x4d753e
xor ebx, ebx
inc ebx
cmp dx, bx
jne 0x4d75e9
mov ecx, dword [edi + 0x22c]
test ecx, ecx
je 0x4d75d6
movzx eax, word [edi + 0x54]
dec eax
and eax, dword [edi + 0x228]
mov eax, dword [ecx + eax*4]
jmp 0x4d75d8
cmp cl, 2
jne 0x4d74b9
cmp eax, 2
jne 0x4d74b9
mov eax, dword [edi + 0x14]
mov dword [edi + 0x40], 4
cmp dword [eax + 0xc], edx
je 0x4d75c8
push edi
push eax
call fcn.00532059
jmp 0x4d74cd
push 1
push edi
push eax
call fcn.0053218a
jmp 0x4d74cd
xor eax, eax
test dword [eax + 0x10], 0x7fffffff
jne 0x4d75e9
push eax
mov ecx, edi
call fcn.004d6a19
mov cl, byte [edi + 0x38]
test cl, 2
je 0x4d7646
movzx eax, word [edi + 0x22]
movzx edx, word [edi + 0x54]
movzx esi, word [edi + 0x58]
sub edx, eax
cmp dx, si
je 0x4d760c
and cl, 0xfd
mov byte [edi + 0x38], cl
jmp 0x4d7646
mov ecx, dword [edi + 0x22c]
test ecx, ecx
je 0x4d7646
mov eax, dword [edi + 0x228]
and eax, edx
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x4d7646
test dword [ecx + 0x10], 0x7fffffff
jbe 0x4d7646
lea eax, [esi + 1]
push ecx
mov ecx, edi
mov word [edi + 0x58], ax
call fcn.004d6a19
jmp 0x4d7646
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
inc ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4d765f
movzx eax, byte [ecx - 1]
push eax
push ecx
lea eax, [ebp + 2]
mov ecx, edi
push eax
call fcn.004d6599
cmp dword [edi + 0x40], 5
jne 0x4d7684
push 0xffffffffffffffff
mov ecx, edi
call fcn.004d61f2
test al, al
jne 0x4d7684
push 2
push edi
push dword [edi + 0x14]
mov dword [edi + 0x40], 4
call fcn.0053218a
mov al, byte [esp + 0x54]
cmp al, 2
je 0x4d6feb
mov ecx, dword [edi + 0x40]
cmp ecx, 4
je 0x4d76a6
cmp ecx, 5
je 0x4d76a6
cmp ecx, 8
jne 0x4d6feb
mov edx, dword [esp + 0x18]
cmp al, bl
jne 0x4d76be
mov al, byte [edi + 0x38]
test bl, al
jne 0x4d76be
or al, bl
mov word [edi + 0x50], dx
mov byte [edi + 0x38], al
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4d77b9
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x28]
sub eax, ebp
mov dword [esp + 0x5c], eax
je 0x4d76ea
cmp ecx, 8
je 0x4d76ea
push eax
push ebp
push edi
push dword [edi + 0x14]
call fcn.00532154
inc word [edi + 0x52]
test byte [edi + 0x38], bl
je 0x4d7749
mov ax, word [edi + 0x50]
cmp ax, word [edi + 0x52]
jne 0x4d7749
cmp dword [edi + 0x40], 8
je 0x4d7739
imul edx, dword [edi + 0x8c], 3
mov dword [edi + 0x40], 6
cmp edx, 0x3c
jb 0x4d7719
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.0053218a
xor eax, eax
mov ecx, edi
push eax
call fcn.004d6884
xor eax, eax
mov word [edi + 0x1e], ax
xor edx, edx
cmp word [edi + 0x1e], dx
je 0x4d7836
mov ecx, dword [edi + 0x224]
test ecx, ecx
je 0x4d7836
movzx eax, word [edi + 0x52]
inc eax
and eax, dword [edi + 0x220]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x4d7836
movzx eax, word [edi + 0x52]
inc eax
and eax, dword [edi + 0x220]
mov dword [ecx + eax*4], edx
cmp dword [esi], edx
jbe 0x4d77a0
cmp dword [edi + 0x40], 8
je 0x4d77a0
push dword [esi]
lea eax, [esi + 4]
push eax
push edi
push dword [edi + 0x14]
call fcn.00532154
inc word [edi + 0x52]
push esi
call fcn.00676850
mov eax, 0xffff
add word [edi + 0x1e], ax
pop ecx
jmp 0x4d76ee
test byte [edi + 0x38], bl
je 0x4d77c8
cmp dx, word [edi + 0x50]
ja 0x4d6feb
mov ebp, dword [esp + 0x2c]
lea ebx, [edi + 0x220]
inc eax
cmp eax, dword [ebx]
jbe 0x4d77e3
push eax
lea eax, [ebp + 1]
mov ecx, ebx
push eax
call fcn.004d6182
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4d77f9
mov eax, dword [ebx]
xor edx, edx
and eax, ebp
cmp dword [ecx + eax*4], edx
jne 0x4d6feb
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.00676855
mov esi, eax
mov eax, dword [esp + 0x60]
push eax
push ebp
lea ecx, [esi + 4]
mov dword [esi], eax
push ecx
call fcn.006661f0
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.004d6571
mov eax, dword [esp + 0x5c]
jmp 0x4d6fed