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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], 0
push eax
call sub.iphlpapi.dll_GetIfTable2
test eax, eax
je 0x10014a33
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10014aa8
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
movdqa xmm0, xmmword [ecx]
lea edx, [ecx + 0x10]
pmovmskb esi, xmm0
not esi
jmp 0x10014a7b
lea edi, [esi - 1]
and edi, esi
tzcnt esi, esi
neg esi
lea esi, [esi + esi*8]
shl esi, 4
dec eax
mov byte [ecx + esi - 6], 0
mov esi, edi
je 0x10014aa8
test si, si
jne 0x10014a60
movdqa xmm0, xmmword [edx]
add ecx, 0xfffff700
add edx, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x10014a80
mov ebx, 0xfffffffe
sub ebx, esi
not esi
mov edi, esi
and edi, ebx
jmp 0x10014a65
xor ecx, ecx
call fcn.100144d0
test eax, eax
je 0x10015eb1
movdqu xmm0, xmmword [eax]
movq xmm3, qword [0x10170198]
movq xmm2, qword [0x10170190]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 4
movq qword [esp + 0x70], xmm3
movq qword [esp + 0x68], xmm2
movdqu xmmword [esp + 0x78], xmm0
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x8c]
mov esi, dword [eax]
test esi, esi
je 0x1001545e
mov dword [esp + 0x18], eax
add eax, 8
xor edi, edi
mov dword [esp + 0xb0], esi
mov dword [esp + 0x120], eax
jmp 0x10014b69
mov eax, dword [esp + 0x28]
mov edx, dword [esp]
mov ecx, ebx
inc ebx
shl ecx, 4
mov dword [eax + ecx], edi
mov dword [eax + ecx + 4], 0xa
mov dword [eax + ecx + 8], edx
mov dword [eax + ecx + 0xc], 0xa
mov dword [esp + 0x2c], ebx
nop
inc edi
cmp edi, esi
je 0x10014da1
mov edx, dword [esp + 0x120]
imul eax, edi, 0x548
mov ecx, dword [edx + eax + 0x4a8]
lea ebx, [edx + eax]
or ecx, dword [edx + eax + 0x4ac]
jne 0x10014b97
mov eax, dword [ebx + 0x4b0]
or eax, dword [ebx + 0x4b4]
je 0x10014b60
cmp dword [ebx + 0x48c], 2
je 0x10014b60
cmp dword [ebx + 0x420], 0
je 0x10014b60
mov esi, dword [0x10194460]
movzx eax, byte [esi]
push 2
push 0x14
call fcn.1000d070
add esp, 8
test eax, eax
je 0x10015e8d
movq xmm0, qword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
pxor xmm1, xmm1
punpcklbw xmm0, xmm1
mov dword [eax], ecx
movdqu xmmword [eax + 4], xmm0
movzx ecx, byte [esi]
push 2
push 0x14
mov esi, eax
call fcn.1000d070
add esp, 8
test eax, eax
je 0x10015e84
mov ecx, dword [esi + 0x10]
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov dword [esp + 0x90], 0xa
mov dword [esp + 0x94], eax
mov dword [esp], esi
mov dword [esp + 0x98], 0xa
mov dword [eax + 0x10], ecx
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.10025900
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x10014d37
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov ebx, edx
and ebx, esi
movdqu xmm0, xmmword [ecx + ebx]
pmovmskb eax, xmm0
test eax, eax
jne 0x10014c94
mov esi, 0x10
nop
add ebx, esi
add esi, 0x10
and ebx, edx
movdqu xmm0, xmmword [ecx + ebx]
pmovmskb eax, xmm0
test eax, eax
je 0x10014c80
tzcnt eax, eax
add eax, ebx
and eax, edx
movzx ebx, byte [ecx + eax]
test bl, bl
mov byte [esp + 4], bl
js 0x10014cbc
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
tzcnt eax, eax
movzx ebx, byte [ecx + eax]
mov byte [esp + 4], bl
mov ebx, dword [esp + 0x4c]
lea esi, [eax - 0x10]
and esi, edx
mov edx, dword [esp + 8]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x48]
shr edx, 0x19
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x50]
mov byte [ecx + eax], dl
mov byte [ecx + esi + 0x10], dl
movzx edx, byte [esp + 4]
shl eax, 4
and dl, 1
mov dword [esp + 8], ebx
mov ebx, ecx
movzx esi, dl
mov edx, dword [esp + 0xc]
sub ebx, eax
neg eax
sub dword [edx + 8], esi
mov esi, dword [esp + 0xc0]
mov dword [ebx - 0xc], esi
mov esi, dword [esp + 0xf0]
mov dword [ebx - 0x10], esi
mov esi, dword [esp + 8]
mov dword [ecx + eax - 8], esi
mov esi, dword [esp + 0xb0]
mov dword [ebx - 4], 0
inc dword [edx + 0xc]
jmp 0x10014d60
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0xb0]
test eax, 0x7fffffff
je 0x10014d60
add eax, eax
push 2
push eax
push dword [esp + 0x48]
call fcn.1000d080
add esp, 0xc
nop
mov eax, dword [ebx - 4]
inc eax
cmp eax, 1
mov dword [ebx - 4], eax
jle 0x10014d81
push 2
push 0x14
push dword [esp + 8]
call fcn.1000d080
add esp, 0xc
jmp 0x10014b60
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [esp + 0x24]
jne 0x10014b37
lea eax, [esp + 0x24]
push eax
call fcn.10024030
add esp, 4
jmp 0x10014b37
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edi, edx
mov esi, ecx
mov dword [esp + 0x100], eax
mov dword [esp + 0xdc], ecx
shl edi, 4
add edi, ecx
test edx, edx
je 0x10015413
mov eax, dword [esp + 0xdc]
add dword [esp + 0x18], 0x24
mov dword [esp + 0x5c], edi
jmp 0x10014e0d
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
test eax, eax
je 0x10014e03
add eax, eax
push 2
push eax
push dword [esp + 0x9c]
call fcn.1000d080
add esp, 0xc
cmp esi, edi
mov eax, esi
je 0x1001543e
mov ecx, dword [eax + 4]
lea esi, [eax + 0x10]
cmp ecx, 0x80000000
je 0x10015413
mov ebx, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x74], 0
mov dword [esp + 0x90], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], edx
je 0x10014fb0
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], ebx
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.10024830
add esp, 8
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov esi, edx
mov dword [esp + 0x14], ecx
and esi, eax
shr eax, 0x19
movd xmm0, eax
lea eax, [ecx - 0x10]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x110], xmm0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
add eax, eax
mov dword [esp + 0xf0], eax
xor eax, eax
movdqu xmm0, xmmword [ecx + esi]
mov dword [esp + 0xc0], eax
movdqa xmmword [esp + 0xb0], xmm0
pcmpeqb xmm0, xmmword [esp + 0x110]
pmovmskb ebx, xmm0
test ebx, ebx
je 0x10014f40
mov dword [esp + 0xc], esi
jmp 0x10014efa
lea eax, [ebx - 1]
and ax, bx
mov ebx, eax
je 0x10014f40
tzcnt edi, ebx
mov eax, dword [esp]
add edi, esi
and edi, edx
mov ecx, edi
shl ecx, 4
sub eax, ecx
mov ecx, dword [esp + 4]
cmp ecx, dword [eax + 8]
jne 0x10014ef0
push dword [esp + 0xf0]
push dword [eax + 4]
push dword [esp + 0x10]
mov esi, edx
call sub.msvcrt.dll_memcmp
mov edx, esi
mov esi, dword [esp + 0x18]
add esp, 0xc
test eax, eax
jne 0x10014ef0
jmp 0x10014f80
movdqa xmm1, xmmword [esp + 0xb0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
mov eax, dword [esp + 0xc0]
jne 0x1001540c
mov ecx, dword [esp + 0x14]
lea esi, [esi + eax + 0x10]
add eax, 0x10
and esi, edx
jmp 0x10014eb9
mov ecx, dword [esp + 0x14]
neg edi
shl edi, 4
add ecx, edi
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
test ecx, ecx
cmove eax, ecx
jmp 0x10014fb2
xor eax, eax
lea ecx, [eax + 0xc]
test eax, eax
mov edx, 0x101701a0
cmove ecx, edx
cmp dword [ecx], 1
jg 0x10014de4
mov eax, dword [esp + 0x120]
imul edx, ebx, 0x548
xor ecx, ecx
mov esi, 0x202
lea ebx, [eax + edx]
add edx, dword [esp + 0x18]
lea eax, [ebx + 0x1c]
nop word cs:[eax + eax]
cmp word [edx + ecx*2], 0
je 0x10015010
inc ecx
add esi, 0xfffffffe
jne 0x10014ff0
mov ecx, 0x101
lea esi, [esp + 0x38]
jmp 0x10015020
cmp ecx, 0x102
lea esi, [esp + 0x38]
jae 0x10015ecc
push ecx
push eax
push esi
call fcn.100d2690
add esp, 0xc
cmp dword [esp + 0x38], 0x80000000
je 0x10014de0
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
mov dword [esp + 0x158], eax
lea eax, [esp + 0x150]
movsd qword [esp + 0x150], xmm0
push eax
push dword [ebp + 8]
push esi
call fcn.10025a90
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x100152f9
mov edx, dword [ebx + 0x4c0]
mov ecx, dword [ebx + 0x4c4]
mov eax, 0xffffffff
mov esi, dword [esp + 0x40]
add edx, dword [ebx + 0x4c8]
mov dword [esp + 0xc0], esi
adc ecx, dword [ebx + 0x4cc]
cmovb edx, eax
cmovb ecx, eax
mov dword [esp + 0xc], edx
mov edx, dword [ebx + 0x508]
mov dword [esp + 4], ecx
mov ecx, dword [ebx + 0x50c]
add edx, dword [ebx + 0x510]
adc ecx, dword [ebx + 0x514]
cmovb ecx, eax
cmovb edx, eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xf0], edx
mov eax, dword [ecx + 4]
mov dword [esp], ecx
mov ecx, dword [ecx]
mov edx, eax
and edx, esi
movdqu xmm0, xmmword [ecx + edx]
pmovmskb esi, xmm0
test esi, esi
jne 0x10015114
mov edi, 0x10
nop word cs:[eax + eax]
nop dword [eax]
add edx, edi
add edi, 0x10
and edx, eax
movdqu xmm0, xmmword [ecx + edx]
pmovmskb esi, xmm0
test esi, esi
je 0x10015100
tzcnt esi, esi
add esi, edx
and esi, eax
movzx edx, byte [ecx + esi]
test dl, dl
js 0x10015134
movdqa xmm0, xmmword [ecx]
pmovmskb edx, xmm0
tzcnt esi, edx
movzx edx, byte [ecx + esi]
mov byte [esp + 0x23], dl
lea edx, [esi - 0x10]
mov edi, dword [esp + 0x4c]
movd xmm1, dword [esp + 0xc]
movd xmm3, dword [esp + 4]
movd xmm4, dword [esp + 0xf0]
movd xmm6, dword [esp + 8]
and edx, eax
mov eax, dword [ebx]
punpckldq xmm1, xmm3
punpckldq xmm4, xmm6
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 4]
pshufd xmm1, xmm1, 0x44
mov dword [esp + 0x108], eax
mov eax, dword [ebx + 0x504]
mov dword [esp + 0x10c], eax
mov eax, dword [ebx + 0x500]
movd xmm7, dword [esp + 0x10c]
mov dword [esp + 0x104], eax
mov eax, dword [ebx + 0x4bc]
movd xmm2, dword [esp + 0x104]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x4b8]
movd xmm5, dword [esp + 0x88]
punpckldq xmm2, xmm7
pshufd xmm2, xmm2, 0x44
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0x4dc]
movd xmm0, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x4d8]
punpckldq xmm0, xmm5
pshufd xmm0, xmm0, 0x44
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x524]
movd xmm7, dword [esp + 0x1c]
mov dword [esp + 0xb0], eax
mov eax, dword [ebx + 0x520]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x50]
movd xmm5, dword [esp + 0x110]
shr eax, 0x19
mov byte [ecx + esi], al
mov byte [ecx + edx + 0x10], al
movzx eax, byte [esp + 0x23]
neg esi
and al, 1
movzx edx, al
mov eax, dword [esp]
sub dword [eax + 8], edx
lea edx, [esi + esi*8]
shl edx, 4
mov dword [ecx + edx - 0x8c], edi
mov edi, dword [esp + 0xc0]
mov dword [ecx + edx - 0x90], edi
mov dword [ecx + edx - 0x88], ebx
mov ebx, dword [esp + 0x108]
mov edi, dword [esp + 0x60]
mov dword [ecx + edx - 0x7c], ebx
mov dword [ecx + edx - 0x80], edi
movdqu xmmword [ecx + edx - 0x78], xmm2
movdqu xmmword [ecx + edx - 0x68], xmm0
movd xmm2, dword [esp + 0x14]
movd xmm0, dword [esp + 0xb0]
movdqu xmmword [ecx + edx - 0x58], xmm1
pshufd xmm1, xmm4, 0x44
movdqu xmmword [ecx + edx - 0x48], xmm1
punpckldq xmm5, xmm0
punpckldq xmm7, xmm2
pshufd xmm1, xmm7, 0x44
pshufd xmm0, xmm5, 0x44
movdqu xmmword [ecx + edx - 0x38], xmm1
movdqu xmmword [ecx + edx - 0x28], xmm0
pxor xmm0, xmm0
mov dword [ecx + edx - 0x18], 0
mov dword [ecx + edx - 0x14], 1
mov word [ecx + edx - 8], 0
movq qword [ecx + edx - 0x10], xmm0
mov byte [ecx + edx - 6], 1
inc dword [eax + 0xc]
jmp 0x100153f0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov esi, dword [edx - 0x78]
mov edi, dword [edx - 0x74]
mov dword [esp], ecx
mov ecx, 0xffffffff
mov dword [edx - 0x6c], edi
mov dword [edx - 0x70], esi
mov esi, dword [ebx + 0x504]
mov edi, dword [ebx + 0x500]
mov dword [edx - 0x78], edi
mov dword [edx - 0x74], esi
mov esi, dword [edx - 0x64]
mov edi, dword [edx - 0x68]
mov dword [edx - 0x60], edi
mov dword [edx - 0x5c], esi
movsd xmm0, qword [ebx + 0x4b8]
movsd qword [edx - 0x68], xmm0
movsd xmm0, qword [edx - 0x58]
movsd qword [edx - 0x50], xmm0
mov esi, dword [ebx + 0x4c0]
mov edi, dword [ebx + 0x4c4]
add esi, dword [ebx + 0x4c8]
adc edi, dword [ebx + 0x4cc]
cmovb edi, ecx
cmovb esi, ecx
mov dword [edx - 0x54], edi
mov dword [edx - 0x58], esi
movsd xmm0, qword [edx - 0x48]
movsd qword [edx - 0x40], xmm0
mov esi, dword [ebx + 0x508]
mov edi, dword [ebx + 0x50c]
add esi, dword [ebx + 0x510]
adc edi, dword [ebx + 0x514]
cmovb edi, ecx
cmovb esi, ecx
test eax, 0x7fffffff
mov dword [edx - 0x44], edi
mov dword [edx - 0x48], esi
movsd xmm0, qword [edx - 0x38]
movsd qword [edx - 0x30], xmm0
movsd xmm0, qword [ebx + 0x4d8]
movsd qword [edx - 0x38], xmm0
movsd xmm0, qword [edx - 0x28]
movsd qword [edx - 0x20], xmm0
movq xmm0, qword [ebx + 0x520]
movq qword [edx - 0x28], xmm0
mov byte [edx - 6], 1
je 0x100153f0
push 1
push eax
push dword [esp + 8]
call fcn.1000d080
add esp, 0xc
nop dword [eax + eax]
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x10014def
jmp 0x10014e03
xor ecx, ecx
jmp 0x10014f8b
sub edi, esi
je 0x1001543e
shr edi, 4
add esi, 8
jmp 0x10015426
add esi, 0x10
dec edi
je 0x1001543e
mov eax, dword [esi - 4]
test eax, eax
je 0x10015420
add eax, eax
push 2
push eax
push dword [esi]
call fcn.1000d080
add esp, 0xc
jmp 0x10015420
mov eax, dword [esp + 0x100]
test eax, eax
je 0x1001545e
shl eax, 4
push 4
push eax
push dword [esp + 0xe4]
call fcn.1000d080
add esp, 0xc
push dword [esp + 0x8c]
call sub.iphlpapi.dll_FreeMibTable
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x1001552c
mov edx, dword [esp + 0x74]
mov dword [esp + 4], eax
test edx, edx
je 0x10015507
mov ebx, dword [esp + 0x68]
movdqa xmm0, xmmword [ebx]
lea esi, [ebx + 0x10]
pmovmskb edi, xmm0
not edi
jmp 0x100154ac
lea eax, [edi - 1]
dec edx
and eax, edi
test edx, edx
mov edi, eax
je 0x10015507
test di, di
jne 0x100154db
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqa xmm0, xmmword [esi]
add ebx, 0xffffff00
add esi, 0x10
pmovmskb edi, xmm0
cmp edi, 0xffff
je 0x100154c0
not edi
tzcnt ecx, edi
mov eax, ebx
shl ecx, 4
sub eax, ecx
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x100154a0
add ecx, ecx
push 2
push ecx
push dword [eax - 0xc]
mov dword [esp + 0xc], edx
call fcn.1000d080
mov edx, dword [esp + 0xc]
add esp, 0xc
jmp 0x100154a0
mov edx, dword [esp + 4]
mov eax, edx
shl eax, 4
add edx, eax
add edx, 0x21
je 0x1001552c
mov ecx, dword [esp + 0x68]
sub ecx, eax
add ecx, 0xfffffff0
push 0x10
push edx
push ecx
call fcn.1000d080
add esp, 0xc
push dword [ebp + 8]
call fcn.10026810
add esp, 4
lea ecx, [esp + 0x138]
call fcn.10016210
mov esi, dword [esp + 0x138]
cmp esi, 0x80000000
jne 0x100157ae
mov edi, dword [esp + 0x13c]
mov esi, dword [esp + 0x140]
xor ecx, ecx
xor ebx, ebx
call fcn.100144d0
test eax, eax
je 0x10015eb1
movdqu xmm0, xmmword [eax]
movq xmm3, qword [0x10170198]
movq xmm2, qword [0x10170190]
mov dword [esp + 4], edi
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
test esi, esi
mov dword [eax], edx
mov dword [eax + 4], ecx
movq qword [esp + 0x98], xmm3
movq qword [esp + 0x90], xmm2
movdqu xmmword [esp + 0xa0], xmm0
je 0x10015805
lea edi, [esp + 0x29]
lea ebx, [esp + 0x144]
jmp 0x100155f2
lea ebx, [esp + 0x144]
mov esi, dword [esp]
test esi, esi
je 0x100157ee
mov eax, dword [esi + 8]
mov dword [esp], eax
lea eax, [esi + 0x28]
push eax
push ebx
call fcn.10041590
add esp, 8
cmp dword [esp + 0x144], 0x80000000
je 0x100155e7
mov eax, dword [esp + 0x14c]
movsd xmm0, qword [esp + 0x144]
mov dword [esp + 0x168], eax
movsd qword [esp + 0x160], xmm0
mov esi, dword [esi + 0x10]
push 0
call fcn.10024820
add esp, 4
test eax, eax
je 0x10015e96
movdqu xmm0, xmmword [eax]
movq xmm2, qword [0x10170f40]
pshufd xmm1, xmm0, 0x55
movd edx, xmm0
movd ecx, xmm1
movq xmm1, qword [0x10170f48]
add edx, 1
adc ecx, 0
test esi, esi
mov dword [eax], edx
mov dword [eax + 4], ecx
movdqu xmmword [esp + 0x48], xmm0
movq qword [esp + 0x38], xmm2
movq qword [esp + 0x40], xmm1
jne 0x10015774
movsd xmm1, qword [esp + 0x48]
movq xmm0, qword [esp + 0x50]
movq xmm2, qword [esp + 0x38]
lea eax, [esp + 0x68]
movsd qword [esp + 0x78], xmm1
movq xmm1, qword [esp + 0x40]
movq qword [esp + 0x80], xmm0
movq qword [esp + 0x68], xmm2
movq qword [esp + 0x70], xmm1
push eax
lea eax, [esp + 0x164]
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.100260b0
add esp, 0x10
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x100155e0
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x100155e0
lea eax, [esi + 1]
mov edx, 0x12
mul edx
add eax, 0xf
and eax, 0xfffffff0
add esi, eax
add esi, 0x11
je 0x100155e0
sub ecx, eax
push 0x10
push esi
push ecx
call fcn.1000d080
add esp, 0xc
jmp 0x100155e0
mov ecx, dword [edx + 4]
xor edx, edx
mov esi, dword [esp + 0xe8]
movq xmm0, qword [esp + 0xe0]
mov dword [edi + 8], esi
movq qword [edi], xmm0
mov byte [esp + 0x24], dl
mov dword [esp + 0x25], ecx
mov byte [esp + 0x35], al
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10025e60
add esp, 8
test ebx, ebx
mov esi, ebx
je 0x1001568d
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
test edx, edx
je 0x1001576a
movzx ecx, word [edx]
movzx eax, byte [esi + 0x2c]
cmp ecx, 2
je 0x10015730
cmp ecx, 0x17
jne 0x1001576a
mov esi, dword [edx + 0x14]
mov ecx, dword [edx + 8]
mov dword [esp + 0xe8], esi
movq xmm0, qword [edx + 0xc]
mov dl, 1
movq qword [esp + 0xe0], xmm0
jmp 0x10015735
xor ecx, ecx
call fcn.100144d0
test eax, eax
je 0x10015eb1
add dword [eax], 1
adc dword [eax + 4], 0
test esi, esi
je 0x100157da
push 1
push esi
push dword [esp + 0x144]
call fcn.1000d080
add esp, 0xc
mov esi, 0x10170180
xor ebx, ebx
mov ecx, 1
pcmpeqd xmm0, xmm0
xor edi, edi
jmp 0x10015864
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x9c]
jmp 0x1001580c
mov esi, 0x10170180
xor edi, edi
push dword [esp + 4]
call sub.msvcrt.dll_free
add esp, 4
movdqa xmm0, xmmword [esi]
test edi, edi
mov dword [esp + 0x10], esi
je 0x10015859
lea ecx, [edi + 1]
mov edx, 0x30
mov esi, edi
xor edi, edi
mov eax, ecx
mul edx
jo 0x1001584f
add esi, 0x11
add esi, eax
jb 0x1001584f
mov edi, 0x10
cmp esi, 0x7ffffff1
mov dword [esp], esi
jb 0x1001584f
xor edi, edi
mov esi, dword [esp + 0x10]
mov edx, esi
sub edx, eax
jmp 0x10015864
mov esi, dword [esp + 0x10]
xor edi, edi
mov ecx, 1
lea eax, [esi + 0x10]
add ecx, esi
mov dword [esp + 0x74], esi
test ebx, ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp]
mov dword [esp + 0x60], eax
pmovmskb eax, xmm0
not eax
mov word [esp + 0x80], ax
mov dword [esp + 0x84], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x70], edx
lea ecx, [ecx + 0x10]
mov dword [esp + 0x64], ecx
jne 0x100158f8
lea esi, [esp + 0x68]
push esi
call fcn.1001bc00
add esp, 4
lea ecx, [esp + 0x24]
call fcn.10016210
mov eax, dword [esp + 0x24]
cmp eax, 0x80000000
je 0x10015c8a
test eax, eax
je 0x10014a2b
push 1
push eax
push dword [esp + 0x30]
call fcn.1000d080
add esp, 0xc
jmp 0x10014a2b
test ebx, ebx
mov eax, dword [esp + 0x5c]
je 0x100158ab
test ax, ax
je 0x10015910
lea edx, [eax - 1]
and edx, eax
jmp 0x10015951
mov ecx, dword [esp + 0x60]
nop word cs:[eax + eax]
nop
movdqa xmm0, xmmword [ecx]
add esi, 0xfffffd00
add ecx, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x10015920
mov edi, 0xfffffffe
mov dword [esp + 0x78], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x74], esi
sub edi, eax
not eax
mov edx, eax
and edx, edi
tzcnt eax, eax
dec ebx
mov word [esp + 0x80], dx
neg eax
mov dword [esp + 0x84], ebx
lea ecx, [eax + eax*2]
shl ecx, 4
mov eax, dword [esi + ecx - 0x30]
cmp eax, 0x80000000
je 0x100158ab
mov dword [esp + 0x5c], edx
mov dword [esp + 0x1c], ebx
mov edi, dword [esi + ecx - 0x20]
mov ebx, dword [esi + ecx - 0x1c]
lea edx, [esi + ecx]
mov ecx, dword [esi + ecx - 0x14]
mov dword [esp + 0x10], esi
mov dword [esp + 0x88], ecx
mov ecx, dword [edx - 0x2c]
mov edx, dword [edx - 0x28]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], edx
cmp dword [ecx + 0xc], 0
je 0x10015b40
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x68]
call fcn.10024dd0
add esp, 8
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x28]
mov dword [esp + 0xb0], 0
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [esp + 0xf0], esi
mov dword [esp], ebx
and ebx, eax
shr eax, 0x19
lea ecx, [edx - 0x90]
mov dword [esp + 0x110], edx
movd xmm0, eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x120], xmm0
mov dword [esp + 4], ecx
movdqu xmm0, xmmword [edx + ebx]
mov edx, dword [esp + 0xc]
movdqa xmmword [esp + 0xc0], xmm0
pcmpeqb xmm0, xmmword [esp + 0x120]
pmovmskb esi, xmm0
test esi, esi
je 0x10015ab0
mov dword [esp + 8], ebx
jmp 0x10015a6a
lea eax, [esi - 1]
and ax, si
mov esi, eax
je 0x10015ab0
tzcnt eax, esi
mov ecx, dword [esp + 4]
add eax, ebx
and eax, dword [esp]
neg eax
lea edi, [eax + eax*8]
shl edi, 4
cmp ecx, dword [edx + edi + 8]
jne 0x10015a60
lea eax, [edx + edi]
push ecx
push dword [eax + 4]
push dword [esp + 0xf8]
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x10015a60
jmp 0x10015af0
movdqa xmm1, xmmword [esp + 0xc0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x10015b40
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x110]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
and ebx, dword [esp]
mov dword [esp + 0xb0], eax
jmp 0x10015a30
mov esi, dword [esp + 0x14]
lea ecx, [esi + 1]
test esi, esi
je 0x10015b90
mov ebx, dword [esp + 0x1c]
mov eax, ecx
mov edx, 0x12
mov dword [esp], 0
mul edx
jo 0x10015ba1
mov edx, dword [esp + 0x18]
cmp eax, 0xfffffff0
ja 0x10015b2f
add eax, 0xf
add esi, 0x11
and eax, 0xfffffff0
add esi, eax
jae 0x10015ba7
jmp 0x10015bd0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x10015c6a
lea eax, [edi + 1]
mov ecx, 0x12
mul ecx
add eax, 0xf
and eax, 0xfffffff0
add edi, eax
add edi, 0x11
je 0x10015c6a
mov ecx, dword [esp + 0x18]
sub ecx, eax
push 0x10
push edi
push ecx
call fcn.1000d080
add esp, 0xc
jmp 0x10015c6a
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 0
jmp 0x10015bd4
mov edx, dword [esp + 0x18]
jmp 0x10015bd0
cmp esi, 0x7ffffff1
mov dword [esp], 0x10
mov dword [esp + 0x14], esi
jb 0x10015bd0
mov dword [esp], 0
nop word cs:[eax + eax]
nop dword [eax + eax]
mov esi, edx
sub esi, eax
mov eax, dword [esp + 0x110]
movdqa xmm0, xmmword [edx]
mov dword [esp + 0x44], edx
add ecx, edx
add eax, edi
mov edi, eax
lea eax, [edx + 0x10]
mov dword [esp + 0x48], eax
pmovmskb eax, xmm0
mov dword [esp + 0x4c], ecx
not eax
mov word [esp + 0x50], ax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x54], eax
mov eax, dword [esp]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x40], esi
push eax
lea eax, [esp + 0x94]
push eax
call fcn.100191b0
add esp, 8
mov eax, dword [edi - 0x18]
test eax, eax
je 0x10015c4c
add eax, eax
lea eax, [eax + eax*8]
push 1
push eax
push dword [edi - 0x14]
call fcn.1000d080
add esp, 0xc
mov eax, dword [esp + 0x98]
add edi, 0xffffffe8
mov esi, dword [esp + 0x10]
mov dword [edi + 8], eax
movq xmm0, qword [esp + 0x90]
movq qword [edi], xmm0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100158f0
push 1
push eax
push dword [esp + 0x30]
call fcn.1000d080
add esp, 0xc
jmp 0x100158f0
movq xmm0, qword [esp + 0x28]
lea eax, [esp + 0xe0]
movq qword [esp + 0xe0], xmm0
push eax
push esi
jmp 0x10015cbd
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.10016160
add esp, 8
cmp dword [esp + 0x68], 0x80000000
je 0x10015e70
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x70]
movq xmm0, qword [esp + 0x68]
cmp dword [ecx + 0xc], 0
mov dword [esp + 0x98], eax
movq qword [esp + 0x90], xmm0
je 0x10015e4a
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x68]
call fcn.10024dd0
add esp, 8
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x94]
mov dword [esp + 0xc0], 0
mov esi, dword [ecx + 4]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], edi
mov dword [esp], esi
and esi, eax
shr eax, 0x19
mov dword [esp + 0xb0], edx
add edx, 0xffffff70
mov dword [esp + 4], ecx
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x120], xmm0
mov eax, dword [esp + 0xb0]
movdqu xmm0, xmmword [eax + esi]
movdqa xmmword [esp + 0xf0], xmm0
pcmpeqb xmm0, xmmword [esp + 0x120]
pmovmskb ebx, xmm0
test ebx, ebx
je 0x10015df0
mov dword [esp + 0xc], esi
jmp 0x10015daa
lea eax, [ebx - 1]
and ax, bx
mov ebx, eax
je 0x10015df0
tzcnt eax, ebx
mov ecx, dword [esp + 4]
add eax, esi
and eax, dword [esp]
neg eax
lea edi, [eax + eax*8]
shl edi, 4
cmp ecx, dword [edx + edi + 8]
jne 0x10015da0
lea eax, [edx + edi]
push ecx
push dword [eax + 4]
push dword [esp + 0x10]
mov esi, edx
call sub.msvcrt.dll_memcmp
mov edx, esi
mov esi, dword [esp + 0x18]
add esp, 0xc
test eax, eax
jne 0x10015da0
jmp 0x10015e30
movdqa xmm1, xmmword [esp + 0xf0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x10015e4a
mov eax, dword [esp + 0xc0]
lea esi, [esi + eax + 0x10]
add eax, 0x10
and esi, dword [esp]
mov dword [esp + 0xc0], eax
jmp 0x10015d67
lea ecx, [esp + 0x74]
mov edx, dword [esp + 0xb0]
movzx eax, word [ecx + 4]
mov word [edx + edi - 8], ax
mov eax, dword [ecx]
mov dword [edx + edi - 0xc], eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x10015cb0
push 1
push eax
push dword [esp + 0x9c]
call fcn.1000d080
add esp, 0xc
jmp 0x10015cb0
push dword [esp + 0xe0]
call sub.msvcrt.dll_free
add esp, 4
jmp 0x10014a2b
push 0x14
push 2
call fcn.100d0890
push 0x14
push 2
call fcn.100d08b0
push 0x101700e8
push 0x101700f8
lea eax, [esp + 0x40]
push eax
push 0x46
push 0x10170050
call fcn.100dc670
lea eax, [esp + 0x38]
push 0x101700e8
push 0x101700f8
push eax
push 0x46
push 0x10170050
call fcn.100dc670
push 0x10170218
push 0x101
push ecx
call fcn.100e1b70
nop dword [eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x558
mov esi, dword [ebp + 8]
lea eax, [esp + 8]
push 0x548
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x10016098
mov ebx, dword [esi]
movdqa xmm0, xmmword [ebx]
lea esi, [ebx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x10015f3e
mov ecx, dword [esp + 4]
mov eax, dword [esp]
dec ecx
je 0x10016098
test ax, ax
mov dword [esp + 4], ecx
je 0x10015f60
lea ecx, [eax - 1]
and ecx, eax
mov dword [esp], ecx
jmp 0x10015f88
movdqa xmm0, xmmword [esi]
add ebx, 0xfffff700
add esi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x10015f60
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov edx, eax
and edx, ecx
mov dword [esp], edx
tzcnt eax, eax
neg eax
lea edi, [eax + eax*8]
shl edi, 4
mov eax, dword [ebx + edi - 0x80]
mov ecx, dword [ebx + edi - 0x7c]
mov dword [esp + 8], eax
lea eax, [esp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
push eax
call sub.iphlpapi.dll_GetIfEntry2
test eax, eax
jne 0x10015f30
add edi, ebx
mov edx, 0xffffffff
mov eax, dword [edi - 0x78]
mov ecx, dword [edi - 0x74]
mov dword [edi - 0x6c], ecx
mov dword [edi - 0x70], eax
mov eax, dword [esp + 0x50c]
mov ecx, dword [esp + 0x508]
mov dword [edi - 0x78], ecx
mov dword [edi - 0x74], eax
mov eax, dword [edi - 0x64]
mov ecx, dword [edi - 0x68]
mov dword [edi - 0x60], ecx
mov dword [edi - 0x5c], eax
movsd xmm0, qword [esp + 0x4c0]
movsd qword [edi - 0x68], xmm0
movsd xmm0, qword [edi - 0x58]
movsd qword [edi - 0x50], xmm0
mov eax, dword [esp + 0x4c8]
mov ecx, dword [esp + 0x4cc]
add eax, dword [esp + 0x4d0]
adc ecx, dword [esp + 0x4d4]
cmovb ecx, edx
cmovb eax, edx
mov dword [edi - 0x54], ecx
mov dword [edi - 0x58], eax
movsd xmm0, qword [edi - 0x48]
movsd qword [edi - 0x40], xmm0
mov ecx, dword [esp + 0x510]
mov eax, dword [esp + 0x514]
add ecx, dword [esp + 0x518]
adc eax, dword [esp + 0x51c]
cmovb eax, edx
cmovb ecx, edx
mov dword [edi - 0x44], eax
mov dword [edi - 0x48], ecx
movsd xmm0, qword [edi - 0x38]
movsd qword [edi - 0x30], xmm0
movsd xmm0, qword [esp + 0x4e0]
movsd qword [edi - 0x38], xmm0
movsd xmm0, qword [edi - 0x28]
movsd qword [edi - 0x20], xmm0
movq xmm0, qword [esp + 0x528]
movq qword [edi - 0x28], xmm0
jmp 0x10015f30
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret