Function at 0x4e3c8c
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 0x4e3cc2
cmp ebx, 0x17
ja 0x4e3cb0
inc dword [eax + 0x68]
jmp 0x4e3cd2
cmp ebx, 0x175
ja 0x4e3cbd
inc dword [eax + 0x6c]
jmp 0x4e3cd2
inc dword [eax + 0x70]
jmp 0x4e3cd2
cmp ebx, 0x578
ja 0x4e3ccf
inc dword [eax + 0x74]
jmp 0x4e3cd2
inc dword [eax + 0x78]
push edi
push dword [edi + 0x14]
call fcn.0053ec95
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 0x4e3e76
push edi
push dword [edi + 0x14]
call fcn.0053ec65
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 0x4e3d4e
mov dword [esp + 0x2c], ecx
mov dh, byte [esp + 0x54]
cmp dh, 4
jne 0x4e3d5c
cmp dword [edi + 0x40], ecx
je 0x4e3da0
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 0x4e3e76
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 0x4e3e76
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 0x4e3e76
mov eax, dword [esp + 0x58]
movzx ecx, byte [eax + 1]
test ecx, ecx
je 0x4e3e20
mov ebx, dword [esp + 0x5c]
add ebp, 2
mov esi, ebx
sub esi, ebp
js 0x4e3e76
mov dl, byte [ebp - 1]
movzx eax, dl
cmp esi, eax
jl 0x4e3e76
sub ecx, 1
je 0x4e3e0b
sub ecx, 1
jne 0x4e3e0f
cmp dl, 8
jne 0x4e3e76
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 0x4e3e0f
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 0x4e3dc6
cmp dword [edi + 0x40], 2
mov esi, dword [esp + 0x18]
jne 0x4e3e31
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 0x4e3e76
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 0x4e3e82
cmp eax, 0xfc00
jb 0x4e3e76
cmp dh, 2
je 0x4e3e76
mov ecx, edi
call fcn.004e33fc
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 0x4e3f2a
sub ecx, edx
dec ecx
movzx eax, cx
cmp ebp, eax
jne 0x4e3f26
cmp byte [esp + 0x54], 2
jne 0x4e3f26
inc byte [edi + 0x20]
cmp byte [edi + 0x20], 3
jne 0x4e3f2a
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x4e3f2a
dec eax
movzx eax, ax
cmp ebp, eax
jne 0x4e3f16
mov eax, dword [edi + 0x1f8]
mov ecx, edi
dec eax
mov dword [edi + 0x1e8], eax
call fcn.004e3256
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.004e30d3
add esp, 0x18
jmp 0x4e3f2a
and dword [edi + 0x1f8], 0
and dword [edi + 0x1f4], 0
jmp 0x4e3f2a
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.0053ec65
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 0x4e405e
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 0x4e4043
mov eax, dword [edi + 0x228]
and eax, ecx
mov esi, dword [esi + eax*4]
test esi, esi
je 0x4e4043
test dword [esi + 0x10], 0x7fffffff
je 0x4e4043
mov eax, dword [esp + 0x14]
add eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x4e3ffa
cmp ecx, eax
jne 0x4e3ffa
mov eax, dword [edi + 0x1f8]
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.004e3256
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.004e30d3
mov edx, dword [esp + 0x4c]
add esp, 0x18
mov ecx, dword [esp + 0x3c]
cmp dword [esi + 0xc], ecx
ja 0x4e4024
mov eax, dword [esp + 0x30]
jb 0x4e400e
cmp dword [esi + 8], eax
jae 0x4e4024
sub eax, dword [esi + 8]
sbb ecx, dword [esi + 0xc]
cmp ebp, ecx
jg 0x4e401e
jl 0x4e403b
cmp ebx, eax
jb 0x4e403b
mov ebx, eax
mov ebp, ecx
jmp 0x4e403b
xor eax, eax
cmp ebp, eax
jg 0x4e4034
jl 0x4e403b
cmp ebx, 0xc350
jb 0x4e403b
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 0x4e3f6b
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4e4099
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.004e35e6
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 0x4e40c1
mov ecx, edx
jmp 0x4e40c7
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 0x4e40e4
push dword [esi + 0x64]
push dword [esi + 0x60]
push ecx
mov ecx, ebx
call fcn.004e278f
push 0xd
pop edx
mov dword [esp + 0x34], edx
test ebp, ebp
je 0x4e4119
mov eax, dword [ebx]
mov ecx, ebp
sub ecx, eax
sub eax, ebp
cmp ecx, eax
jae 0x4e4119
cmp ecx, 0x2710
ja 0x4e4119
lea eax, [edi + 0x12c]
add dword [eax], ecx
lea eax, [eax + 4]
sub edx, 1
jne 0x4e4109
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 0x4e4138
xor eax, eax
mov ebp, eax
jmp 0x4e4281
push dword [ebx + 8]
call ebp
mov ebp, eax
test ebp, ebp
je 0x4e4281
mov ecx, dword [edi + 0x14]
push dword [ecx + 0x64]
push dword [ecx + 0x60]
lea ecx, [edi + 0x118]
push ebp
call fcn.004e278f
mov eax, dword [edi + 0x20c]
test eax, eax
jne 0x4e416e
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 0x4e4184
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 0x4e4281
ja 0x4e41d2
cmp dword [esi + 0x60], edx
jbe 0x4e4281
mov eax, dword [esp + 0x40]
mov esi, dword [edi + 0x1fc]
cdq
push edx
push eax
push ebx
push ecx
call fcn.0066c460
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 0x4e4225
mov ecx, esi
jmp 0x4e422d
mov ecx, ebx
cmp esi, edx
jle 0x4e422d
mov edx, esi
test ecx, ecx
jle 0x4e4235
mov eax, ecx
jmp 0x4e423b
test edx, edx
jns 0x4e423d
mov eax, edx
neg eax
test eax, eax
je 0x4e4251
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.0066c460
mov dword [edi + 0x218], eax
mov dword [edi + 0x21c], ebx
lea esi, [edi + 0x118]
mov ecx, esi
call fcn.004e2ff5
mov ebx, dword [esp + 0x10]
mov ecx, eax
xor eax, eax
cmp eax, ebx
jl 0x4e42c6
jg 0x4e42a4
mov eax, dword [esp + 0x60]
cmp ecx, eax
jbe 0x4e42ca
mov ecx, esi
call fcn.004e2ff5
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 0x4e42b6
add dword [esi], edx
jmp 0x4e42ca
mov eax, dword [esp + 0x60]
test ebp, ebp
je 0x4e42e2
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jb 0x4e42e2
push ebx
push eax
push ebp
push ecx
mov ecx, edi
call fcn.004e284e
movzx eax, word [edi + 0x22]
mov ebx, dword [esp + 0x20]
cmp ebx, eax
ja 0x4e44ca
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 0x4e4328
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 0x4e432a
xor edx, edx
mov cl, byte [esp + 0x54]
mov eax, dword [edi + 0x40]
test cl, cl
jne 0x4e4426
cmp eax, 3
jne 0x4e4344
push 4
pop eax
mov dword [edi + 0x40], eax
cmp eax, 8
jne 0x4e4358
movzx eax, word [edi + 0x22]
cmp eax, ebx
jne 0x4e4358
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 0x4e437f
mov eax, dword [esp + 0x38]
inc eax
mov word [edi + 0x58], ax
xor eax, eax
mov esi, eax
test ebx, ebx
je 0x4e43b8
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.004e2649
cmp eax, 2
je 0x4e43b4
add word [edi + 0x22], bp
inc esi
movzx ecx, word [edi + 0x22]
cmp esi, ebx
jl 0x4e4390
mov ebp, dword [esp + 0x1c]
movzx eax, word [edi + 0x22]
mov ecx, eax
mov edx, eax
test ax, ax
je 0x4e4404
mov esi, eax
mov ebx, ecx
movzx eax, bx
mov ebx, dword [edi + 0x22c]
test ebx, ebx
je 0x4e43ee
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 0x4e4404
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 0x4e43c9
xor ebx, ebx
inc ebx
cmp dx, bx
jne 0x4e4474
mov ecx, dword [edi + 0x22c]
test ecx, ecx
je 0x4e4461
movzx eax, word [edi + 0x54]
dec eax
and eax, dword [edi + 0x228]
mov eax, dword [ecx + eax*4]
jmp 0x4e4463
cmp cl, 2
jne 0x4e4344
cmp eax, 2
jne 0x4e4344
mov eax, dword [edi + 0x14]
mov dword [edi + 0x40], 4
cmp dword [eax + 0xc], edx
je 0x4e4453
push edi
push eax
call fcn.0053edfb
jmp 0x4e4358
push 1
push edi
push eax
call fcn.0053ef2c
jmp 0x4e4358
xor eax, eax
test dword [eax + 0x10], 0x7fffffff
jne 0x4e4474
push eax
mov ecx, edi
call fcn.004e38a4
mov cl, byte [edi + 0x38]
test cl, 2
je 0x4e44d1
movzx eax, word [edi + 0x22]
movzx edx, word [edi + 0x54]
movzx esi, word [edi + 0x58]
sub edx, eax
cmp dx, si
je 0x4e4497
and cl, 0xfd
mov byte [edi + 0x38], cl
jmp 0x4e44d1
mov ecx, dword [edi + 0x22c]
test ecx, ecx
je 0x4e44d1
mov eax, dword [edi + 0x228]
and eax, edx
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x4e44d1
test dword [ecx + 0x10], 0x7fffffff
jbe 0x4e44d1
lea eax, [esi + 1]
push ecx
mov ecx, edi
mov word [edi + 0x58], ax
call fcn.004e38a4
jmp 0x4e44d1
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
inc ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4e44ea
movzx eax, byte [ecx - 1]
push eax
push ecx
lea eax, [ebp + 2]
mov ecx, edi
push eax
call fcn.004e3424
cmp dword [edi + 0x40], 5
jne 0x4e450f
push 0xffffffffffffffff
mov ecx, edi
call fcn.004e307d
test al, al
jne 0x4e450f
push 2
push edi
push dword [edi + 0x14]
mov dword [edi + 0x40], 4
call fcn.0053ef2c
mov al, byte [esp + 0x54]
cmp al, 2
je 0x4e3e76
mov ecx, dword [edi + 0x40]
cmp ecx, 4
je 0x4e4531
cmp ecx, 5
je 0x4e4531
cmp ecx, 8
jne 0x4e3e76
mov edx, dword [esp + 0x18]
cmp al, bl
jne 0x4e4549
mov al, byte [edi + 0x38]
test bl, al
jne 0x4e4549
or al, bl
mov word [edi + 0x50], dx
mov byte [edi + 0x38], al
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4e4644
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x28]
sub eax, ebp
mov dword [esp + 0x5c], eax
je 0x4e4575
cmp ecx, 8
je 0x4e4575
push eax
push ebp
push edi
push dword [edi + 0x14]
call fcn.0053eef6
inc word [edi + 0x52]
test byte [edi + 0x38], bl
je 0x4e45d4
mov ax, word [edi + 0x50]
cmp ax, word [edi + 0x52]
jne 0x4e45d4
cmp dword [edi + 0x40], 8
je 0x4e45c4
imul edx, dword [edi + 0x8c], 3
mov dword [edi + 0x40], 6
cmp edx, 0x3c
jb 0x4e45a4
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.0053ef2c
xor eax, eax
mov ecx, edi
push eax
call fcn.004e370f
xor eax, eax
mov word [edi + 0x1e], ax
xor edx, edx
cmp word [edi + 0x1e], dx
je 0x4e46c1
mov ecx, dword [edi + 0x224]
test ecx, ecx
je 0x4e46c1
movzx eax, word [edi + 0x52]
inc eax
and eax, dword [edi + 0x220]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x4e46c1
movzx eax, word [edi + 0x52]
inc eax
and eax, dword [edi + 0x220]
mov dword [ecx + eax*4], edx
cmp dword [esi], edx
jbe 0x4e462b
cmp dword [edi + 0x40], 8
je 0x4e462b
push dword [esi]
lea eax, [esi + 4]
push eax
push edi
push dword [edi + 0x14]
call fcn.0053eef6
inc word [edi + 0x52]
push esi
call fcn.0067e310
mov eax, 0xffff
add word [edi + 0x1e], ax
pop ecx
jmp 0x4e4579
test byte [edi + 0x38], bl
je 0x4e4653
cmp dx, word [edi + 0x50]
ja 0x4e3e76
mov ebp, dword [esp + 0x2c]
lea ebx, [edi + 0x220]
inc eax
cmp eax, dword [ebx]
jbe 0x4e466e
push eax
lea eax, [ebp + 1]
mov ecx, ebx
push eax
call fcn.004e300d
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4e4684
mov eax, dword [ebx]
xor edx, edx
and eax, ebp
cmp dword [ecx + eax*4], edx
jne 0x4e3e76
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.0067e315
mov esi, eax
mov eax, dword [esp + 0x60]
push eax
push ebp
lea ecx, [esi + 4]
mov dword [esi], eax
push ecx
call fcn.0066d9b0
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.004e33fc
mov eax, dword [esp + 0x5c]
jmp 0x4e3e78