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

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
add esp, 0xffffff80
mov dword [ebp - 0x3c], eax
mov eax, dword [edi]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], 0
test edx, edx
je 0x10005410
mov ebx, edx
cmp eax, 2
ja 0x10005140
call sym._tcp_table_id
lea edx, [ebp - 0x2c]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
lea edx, [ebp - 0x20]
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x1c], edx
lea edx, [ebp - 0x24]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x38
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x100126a8
mov dword [esp], 1
call sym._NsiAllocateAndGetTable_52
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
sub esp, 0x34
test ecx, ecx
jne 0x100051e5
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x100054e0
lea eax, [ecx - 1]
mov edi, dword [ebp - 0x24]
cmp eax, 0xa
jbe 0x100054e7
mov esi, ecx
movd xmm4, dword [ebp - 0x30]
mov edx, edi
pxor xmm1, xmm1
shr esi, 3
pxor xmm2, xmm2
imul esi, esi, 0x1c0
pshufd xmm3, xmm4, 0
movdqu xmm4, xmmword [0x10012350]
add esi, edi
lea esi, [esi]
movzx eax, word [edx]
add edx, 0x1c0
movd xmm0, eax
movzx eax, word [edx - 0x150]
pinsrw xmm0, word [edx - 0x188], 1
movd xmm7, eax
movzx eax, word [edx - 0xe0]
pinsrw xmm7, word [edx - 0x118], 1
movd xmm5, eax
movzx eax, word [edx - 0x70]
punpckldq xmm0, xmm7
pinsrw xmm5, word [edx - 0xa8], 1
movd xmm6, eax
pinsrw xmm6, word [edx - 0x38], 1
punpckldq xmm5, xmm6
punpcklqdq xmm0, xmm5
movdqu xmm5, xmm0
punpckhwd xmm0, xmm2
punpcklwd xmm5, xmm2
pcmpeqd xmm0, xmm3
pcmpeqd xmm5, xmm3
pand xmm5, xmm4
psubd xmm5, xmm0
paddd xmm1, xmm5
cmp esi, edx
jne 0x10004f58
movdqu xmm0, xmm1
mov eax, ecx
psrldq xmm0, 8
and eax, 0xfffffff8
paddd xmm1, xmm0
movdqu xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
test cl, 7
je 0x1000502a
imul edx, eax, 0x38
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x30]
add edi, edx
mov esi, esi
lea edi, [edi]
movzx edx, word [edi]
cmp ebx, edx
sete dl
add eax, 1
add edi, 0x38
movzx edx, dl
add esi, edx
cmp ecx, eax
ja 0x10005010
mov ebx, dword [ebp - 0x40]
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x34]
mov ecx, esi
mov dword [esp], eax
mov eax, dword [ebp - 0x30]
call sym._tcp_table_size
mov edx, dword [ebp - 0x3c]
test edx, edx
je 0x100051f8
cmp dword [ebx], eax
jb 0x100051f8
mov dword [ebx], eax
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x2c]
mov dword [eax], esi
test ebx, ebx
je 0x10005170
lea ecx, [eax + 4]
add eax, 8
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], eax
jmp 0x10005084
add esi, 1
cmp dword [ebp - 0x2c], esi
jbe 0x10005170
imul eax, esi, 0x38
add eax, dword [ebp - 0x24]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x30]
jne 0x10005078
mov edx, esi
mov ecx, dword [ebp - 0x20]
lea edi, [ebx + 1]
shl edx, 5
add edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], 2
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x48], edx
lea edx, [esi + esi*4]
mov edi, dword [ebp - 0x34]
lea ecx, [ecx + edx*4]
mov dword [ebp - 0x44], ecx
je 0x100052f0
cmp edi, 8
ja 0x10005208
cmp edi, 5
ja 0x10005430
cmp edi, 2
ja 0x10005288
imul edx, ebx, 0x34
mov ebx, dword [ebp - 0x44]
add edx, dword [ebp - 0x50]
mov ecx, dword [ebx]
mov dword [edx], ecx
mov edi, dword [eax + 8]
mov dword [edx + 4], edi
mov edi, dword [eax + 0xc]
mov dword [edx + 8], edi
mov edi, dword [eax + 0x10]
mov dword [edx + 0xc], edi
mov ebx, dword [eax + 0x14]
mov dword [edx + 0x10], ebx
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x14], ecx
movzx ecx, word [eax + 2]
mov dword [edx + 0x18], ecx
mov edi, dword [eax + 0x24]
mov dword [edx + 0x1c], edi
mov edi, dword [eax + 0x28]
mov dword [edx + 0x20], edi
mov edi, dword [eax + 0x2c]
mov dword [edx + 0x24], edi
mov ebx, dword [eax + 0x30]
mov dword [edx + 0x28], ebx
mov ecx, dword [eax + 0x34]
mov ebx, dword [ebp - 0x40]
mov dword [edx + 0x2c], ecx
movzx eax, word [eax + 0x1e]
mov dword [edx + 0x30], eax
jmp 0x10005078
mov eax, dword [ebp - 0x34]
call sym._tcp_table_id
lea edx, [ebp - 0x2c]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], edx
lea edx, [ebp - 0x1c]
mov dword [esp + 0x28], 0x20
mov dword [esp + 0x24], edx
jmp 0x10004eba
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x100051c1
cmp dword [ebp - 0x30], 2
mov esi, sym._tcp_row_cmp
je 0x10005193
cmp dword [ebp - 0x28], 0x34
mov esi, sym._tcp6_row_basic_cmp
mov eax, sym._tcp6_row_owner_cmp
cmovne esi, eax
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [ebp - 0x30]
call sym._tcp_table_size
mov edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x3c]
mov dword [esp + 0xc], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_qsort]
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._NsiFreeTable_16
sub esp, 0x10
mov eax, dword [ebp - 0x38]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov dword [ebx], eax
mov dword [ebp - 0x38], 0x7a
jmp 0x100051c1
cmp dword [ebp - 0x34], 0xffffffff
jne 0x100053d0
mov edi, dword [eax + 8]
imul edx, ebx, 0x3c
add edx, dword [ebp - 0x50]
mov dword [edx], edi
mov edi, dword [eax + 0xc]
mov dword [edx + 4], edi
mov edi, dword [eax + 0x10]
mov dword [edx + 8], edi
mov ebx, dword [eax + 0x14]
mov dword [edx + 0xc], ebx
mov ebx, dword [eax + 0x18]
mov dword [edx + 0x10], ebx
movzx ebx, word [eax + 2]
mov dword [edx + 0x14], ebx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x20], ecx
mov edi, dword [eax + 0x30]
mov dword [edx + 0x24], edi
mov ebx, dword [eax + 0x34]
mov dword [edx + 0x28], ebx
movzx eax, word [eax + 0x1e]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
mov dword [edx + 0x38], 0
mov dword [edx + 0x34], eax
mov ebx, dword [ebp - 0x40]
jmp 0x10005078
mov edi, dword [eax + 8]
imul edx, ebx, 0x38
add edx, dword [ebp - 0x50]
mov dword [edx], edi
mov edi, dword [eax + 0xc]
mov dword [edx + 4], edi
mov edi, dword [eax + 0x10]
mov dword [edx + 8], edi
mov ebx, dword [eax + 0x14]
mov dword [edx + 0xc], ebx
mov ebx, dword [eax + 0x18]
mov dword [edx + 0x10], ebx
movzx ebx, word [eax + 2]
mov dword [edx + 0x14], ebx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x20], ecx
mov edi, dword [eax + 0x30]
mov dword [edx + 0x24], edi
mov ebx, dword [eax + 0x34]
mov dword [edx + 0x28], ebx
movzx eax, word [eax + 0x1e]
mov ebx, dword [ebp - 0x40]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
mov dword [edx + 0x34], eax
jmp 0x10005078
cmp edi, 8
ja 0x10005340
cmp edi, 5
ja 0x100054f0
cmp edi, 2
ja 0x10005390
lea edx, [ebx + ebx*4]
mov ebx, dword [ebp - 0x50]
lea edx, [ebx + edx*4]
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebx]
mov ebx, dword [ebp - 0x40]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
movzx ecx, word [eax + 2]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0xc], ecx
movzx eax, word [eax + 0x1e]
mov dword [edx + 0x10], eax
jmp 0x10005078
cmp dword [ebp - 0x34], 0xffffffff
jne 0x100053d0
imul edx, ebx, 0x1c
mov ebx, dword [ebp - 0x44]
add edx, dword [ebp - 0x50]
mov ecx, dword [ebx]
mov ebx, dword [ebp - 0x40]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
movzx ecx, word [eax + 2]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0xc], ecx
movzx eax, word [eax + 0x1e]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
mov dword [edx + 0x18], 0
mov dword [edx + 0x14], eax
jmp 0x10005078
lea edx, [ebx + ebx*2]
mov ebx, dword [ebp - 0x50]
mov ecx, dword [ecx]
lea edx, [ebx + edx*8]
mov ebx, dword [ebp - 0x40]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
movzx ecx, word [eax + 2]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0xc], ecx
movzx eax, word [eax + 0x1e]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
mov dword [edx + 0x14], eax
jmp 0x10005078
mov ebx, dword [ebp - 0x40]
test byte [0x1000f018], 2
je 0x10005078
mov eax, dword [ebp - 0x34]
mov dword [esp + 0xc], str.Unknown_class__ld_n
mov dword [esp + 8], str.tcp_row_fill
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x1000f018
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x10005078
mov dword [ebp - 0x38], 0x57
mov eax, dword [ebp - 0x38]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov edi, dword [eax + 8]
lea edx, [ebx + ebx*2]
shl edx, 6
add edx, dword [ebp - 0x54]
mov dword [edx], edi
mov edi, dword [eax + 0xc]
mov dword [edx + 4], edi
mov edi, dword [eax + 0x10]
mov dword [edx + 8], edi
mov ebx, dword [eax + 0x14]
mov dword [edx + 0xc], ebx
mov ebx, dword [eax + 0x18]
mov dword [edx + 0x10], ebx
movzx ebx, word [eax + 2]
mov dword [edx + 0x14], ebx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x20], ecx
mov edi, dword [eax + 0x30]
mov dword [edx + 0x24], edi
mov ebx, dword [eax + 0x34]
lea edi, [edx + 0x4c]
mov dword [edx + 0x28], ebx
movzx eax, word [eax + 0x1e]
mov ebx, dword [ebp - 0x48]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov dword [edx + 0x30], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x34], eax
mov eax, ebx
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
mov dword [edx + 0x38], ecx
mov dword [edx + 0x3c], ebx
mov ecx, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
mov dword [edx + 0x48], 0
lea eax, [edx + 0x48]
mov dword [edx + 0x40], ecx
mov dword [edx + 0x44], ebx
mov dword [edx + 0xbc], 0
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x78]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ebx, dword [ebp - 0x40]
jmp 0x10005078
xor esi, esi
jmp 0x1000502a
xor esi, esi
xor eax, eax
jmp 0x10004ffc
lea edx, [ebx + ebx*4]
mov ebx, dword [ebp - 0x44]
shl edx, 5
add edx, dword [ebp - 0x54]
mov ecx, dword [ebx]
mov ebx, dword [ebp - 0x48]
lea edi, [edx + 0x2c]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
movzx ecx, word [eax + 2]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0xc], ecx
movzx eax, word [eax + 0x1e]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x14], eax
mov eax, ebx
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], ebx
mov ecx, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
mov dword [edx + 0x28], 0
lea eax, [edx + 0x28]
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], ebx
mov dword [edx + 0x9c], 0
jmp 0x100054c4