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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10012d85
push eax
mov dword fs:[0], esp
sub esp, 0x90
cmp dword [0x1001f404], 0
push ebx
push esi
push edi
mov dword [0x1001b3ec], 0x1001f000
je 0x100024ef
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x14]
cmp cx, 8
jne 0x100025ee
movzx ecx, byte [eax + 0x16]
add eax, 0x16
and cl, 0xf
movzx dx, cl
mov cl, byte [eax + 9]
add dx, dx
add dx, dx
movzx edi, dx
cmp cl, 6
jne 0x100022e8
movzx edx, word [eax + 2]
movzx ecx, di
push edx
lea esi, [ecx + eax + 0x14]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, 0xffec
sub ecx, edi
add ax, cx
cmp byte [esi], 0xf7
movzx eax, ax
jne 0x100025ee
cmp byte [esi + 1], 0x1e
jne 0x100025ee
cmp ax, word [esi + 2]
jne 0x100025ee
mov ecx, dword [0x1001b3ec]
add ecx, 4
lea eax, [esi + 0x13]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100022b7
test dl, dl
je 0x100022b3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100022b7
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002297
xor eax, eax
jmp 0x100022bc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100024ef
call fcn.10004810
test eax, eax
jne 0x100025ee
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp cl, 0x11
jne 0x100025ee
movzx esi, di
add esi, eax
cmp byte [esi + 8], 0xf7
jne 0x100025ee
cmp byte [esi + 9], 0x30
jne 0x100025ee
lea edx, [esp + 0x38]
push edx
call fcn.10004cd0
mov dword [esp + 0xa4], 0
lea eax, [esp + 0x50]
push eax
call fcn.10004cd0
mov byte [esp + 0xa4], 1
lea ecx, [esp + 0x18]
push ecx
call fcn.10004cd0
mov byte [esp + 0xa4], 2
lea eax, [esi + 0x1c]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002350
sub eax, edx
lea ecx, [eax + esi + 0x1e]
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10002362
sub eax, esi
lea edx, [eax + ecx + 1]
push edx
push ecx
lea eax, [esp + 0x88]
push eax
call fcn.10005890
mov byte [esp + 0xa4], 3
push eax
lea eax, [esp + 0x3c]
call fcn.10004da0
mov byte [esp + 0xa4], 2
lea ecx, [esp + 0x80]
push ecx
call fcn.10004d40
lea esi, [esp + 0x78]
lea edi, [esp + 0x50]
call fcn.10004f00
mov edx, dword [eax + 4]
mov ebx, dword [eax]
lea esi, [esp + 0x30]
lea edi, [esp + 0x38]
mov dword [esp + 0x74], edx
call fcn.10004f00
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea esi, [esp + 0x68]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.10004ee0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
mov eax, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ebx
push ecx
lea ecx, [esp + 0x6c]
call fcn.10005b10
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x84]
push eax
call fcn.100015f0
mov byte [esp + 0xa4], 4
push eax
lea eax, [esp + 0x1c]
call fcn.10004da0
mov byte [esp + 0xa4], 2
lea ecx, [esp + 0x80]
push ecx
call fcn.10004d40
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
inc eax
push eax
call fcn.1000791d
add esp, 4
lea esi, [esp + 0x68]
lea edi, [esp + 0x18]
mov dword [esp + 0x10], eax
call fcn.10004f00
mov edx, dword [eax]
mov ebx, dword [eax + 4]
lea esi, [esp + 0x78]
mov dword [esp + 0x30], edx
call fcn.10004ee0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x10]
sub ebx, eax
mov dword [esp + 0x30], ecx
test ebx, ebx
jle 0x10002490
push ebx
push eax
push ebx
push esi
call fcn.10007573
add esp, 0x10
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x24]
mov byte [edx + esi], 0
mov eax, dword [esi + 9]
cmp eax, 0xc8b2da85
je 0x10002508
cmp eax, 0xe558f0f8
je 0x10002508
push esi
call fcn.10008184
add esp, 4
mov byte [esp + 0xa4], 1
lea eax, [esp + 0x18]
push eax
call fcn.10004d40
mov byte [esp + 0xa4], 0
lea ecx, [esp + 0x50]
push ecx
call fcn.10004d40
mov dword [esp + 0xa4], 0xffffffff
lea edx, [esp + 0x38]
push edx
call fcn.10004d40
xor eax, eax
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [esi + 0xd]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002510
mov ecx, dword [0x1001b3ec]
sub eax, edx
lea eax, [eax + esi + 0xe]
add ecx, 4
mov dl, byte [eax]
or edi, 0xffffffff
cmp dl, byte [ecx]
jne 0x10002549
test dl, dl
je 0x10002545
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002549
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002526
xor eax, eax
jmp 0x1000254d
sbb eax, eax
sbb eax, edi
push esi
test eax, eax
je 0x100025a8
call fcn.10008184
add esp, 4
mov byte [esp + 0xa4], 1
lea eax, [esp + 0x18]
push eax
call fcn.10004d40
mov byte [esp + 0xa4], 0
lea ecx, [esp + 0x50]
push ecx
call fcn.10004d40
mov dword [esp + 0xa4], edi
lea edx, [esp + 0x38]
push edx
call fcn.10004d40
xor eax, eax
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.10008184
add esp, 4
call fcn.10004810
test eax, eax
je 0x1000255a
mov byte [esp + 0xa4], 1
lea eax, [esp + 0x18]
push eax
call fcn.10004d40
mov byte [esp + 0xa4], 0
lea ecx, [esp + 0x50]
push ecx
call fcn.10004d40
mov dword [esp + 0xa4], edi
lea edx, [esp + 0x38]
push edx
call fcn.10004d40
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
mov eax, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8