Function at 0x414b60
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 0x414b93
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 0x414c08
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
movdqa xmm0, xmmword [ecx]
lea edx, [ecx + 0x10]
pmovmskb esi, xmm0
not esi
jmp 0x414bdb
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 0x414c08
test si, si
jne 0x414bc0
movdqa xmm0, xmmword [edx]
add ecx, 0xfffff700
add edx, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x414be0
mov ebx, 0xfffffffe
sub ebx, esi
not esi
mov edi, esi
and edi, ebx
jmp 0x414bc5
xor ecx, ecx
call fcn.00414630
test eax, eax
je 0x416011
movdqu xmm0, xmmword [eax]
movq xmm3, qword [0x5379a8]
movq xmm2, qword [0x5379a0]
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 0x4155be
mov dword [esp + 0x18], eax
add eax, 8
xor edi, edi
mov dword [esp + 0xb0], esi
mov dword [esp + 0x120], eax
jmp 0x414cc9
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 0x414f01
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 0x414cf7
mov eax, dword [ebx + 0x4b0]
or eax, dword [ebx + 0x4b4]
je 0x414cc0
cmp dword [ebx + 0x48c], 2
je 0x414cc0
cmp dword [ebx + 0x420], 0
je 0x414cc0
mov esi, dword [0x55bd94]
movzx eax, byte [esi]
push 2
push 0x14
call fcn.0040d1d0
add esp, 8
test eax, eax
je 0x415fed
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.0040d1d0
add esp, 8
test eax, eax
je 0x415fe4
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.00425be0
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x414e97
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 0x414df4
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 0x414de0
tzcnt eax, eax
add eax, ebx
and eax, edx
movzx ebx, byte [ecx + eax]
test bl, bl
mov byte [esp + 4], bl
js 0x414e1c
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 0x414ec0
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0xb0]
test eax, 0x7fffffff
je 0x414ec0
add eax, eax
push 2
push eax
push dword [esp + 0x48]
call fcn.0040d1e0
add esp, 0xc
nop
mov eax, dword [ebx - 4]
inc eax
cmp eax, 1
mov dword [ebx - 4], eax
jle 0x414ee1
push 2
push 0x14
push dword [esp + 8]
call fcn.0040d1e0
add esp, 0xc
jmp 0x414cc0
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [esp + 0x24]
jne 0x414c97
lea eax, [esp + 0x24]
push eax
call fcn.00424230
add esp, 4
jmp 0x414c97
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 0x415573
mov eax, dword [esp + 0xdc]
add dword [esp + 0x18], 0x24
mov dword [esp + 0x5c], edi
jmp 0x414f6d
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
test eax, eax
je 0x414f63
add eax, eax
push 2
push eax
push dword [esp + 0x9c]
call fcn.0040d1e0
add esp, 0xc
cmp esi, edi
mov eax, esi
je 0x41559e
mov ecx, dword [eax + 4]
lea esi, [eax + 0x10]
cmp ecx, 0x80000000
je 0x415573
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 0x415110
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], ebx
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.00424c30
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 0x4150a0
mov dword [esp + 0xc], esi
jmp 0x41505a
lea eax, [ebx - 1]
and ax, bx
mov ebx, eax
je 0x4150a0
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 0x415050
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 0x415050
jmp 0x4150e0
movdqa xmm1, xmmword [esp + 0xb0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
mov eax, dword [esp + 0xc0]
jne 0x41556c
mov ecx, dword [esp + 0x14]
lea esi, [esi + eax + 0x10]
add eax, 0x10
and esi, edx
jmp 0x415019
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 0x415112
xor eax, eax
lea ecx, [eax + 0xc]
test eax, eax
mov edx, 0x5379b0
cmove ecx, edx
cmp dword [ecx], 1
jg 0x414f44
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 0x415170
inc ecx
add esi, 0xfffffffe
jne 0x415150
mov ecx, 0x101
lea esi, [esp + 0x38]
jmp 0x415180
cmp ecx, 0x102
lea esi, [esp + 0x38]
jae 0x41602c
push ecx
push eax
push esi
call fcn.004d27f0
add esp, 0xc
cmp dword [esp + 0x38], 0x80000000
je 0x414f40
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.00425a60
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x415459
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 0x415274
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 0x415260
tzcnt esi, esi
add esi, edx
and esi, eax
movzx edx, byte [ecx + esi]
test dl, dl
js 0x415294
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 0x415550
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 0x415550
push 1
push eax
push dword [esp + 8]
call fcn.0040d1e0
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 0x414f4f
jmp 0x414f63
xor ecx, ecx
jmp 0x4150eb
sub edi, esi
je 0x41559e
shr edi, 4
add esi, 8
jmp 0x415586
add esi, 0x10
dec edi
je 0x41559e
mov eax, dword [esi - 4]
test eax, eax
je 0x415580
add eax, eax
push 2
push eax
push dword [esi]
call fcn.0040d1e0
add esp, 0xc
jmp 0x415580
mov eax, dword [esp + 0x100]
test eax, eax
je 0x4155be
shl eax, 4
push 4
push eax
push dword [esp + 0xe4]
call fcn.0040d1e0
add esp, 0xc
push dword [esp + 0x8c]
call sub.iphlpapi.dll_FreeMibTable
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x41568c
mov edx, dword [esp + 0x74]
mov dword [esp + 4], eax
test edx, edx
je 0x415667
mov ebx, dword [esp + 0x68]
movdqa xmm0, xmmword [ebx]
lea esi, [ebx + 0x10]
pmovmskb edi, xmm0
not edi
jmp 0x41560c
lea eax, [edi - 1]
dec edx
and eax, edi
test edx, edx
mov edi, eax
je 0x415667
test di, di
jne 0x41563b
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 0x415620
not edi
tzcnt ecx, edi
mov eax, ebx
shl ecx, 4
sub eax, ecx
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x415600
add ecx, ecx
push 2
push ecx
push dword [eax - 0xc]
mov dword [esp + 0xc], edx
call fcn.0040d1e0
mov edx, dword [esp + 0xc]
add esp, 0xc
jmp 0x415600
mov edx, dword [esp + 4]
mov eax, edx
shl eax, 4
add edx, eax
add edx, 0x21
je 0x41568c
mov ecx, dword [esp + 0x68]
sub ecx, eax
add ecx, 0xfffffff0
push 0x10
push edx
push ecx
call fcn.0040d1e0
add esp, 0xc
push dword [ebp + 8]
call fcn.00426820
add esp, 4
lea ecx, [esp + 0x138]
call fcn.00416370
mov esi, dword [esp + 0x138]
cmp esi, 0x80000000
jne 0x41590e
mov edi, dword [esp + 0x13c]
mov esi, dword [esp + 0x140]
xor ecx, ecx
xor ebx, ebx
call fcn.00414630
test eax, eax
je 0x416011
movdqu xmm0, xmmword [eax]
movq xmm3, qword [0x5379a8]
movq xmm2, qword [0x5379a0]
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 0x415965
lea edi, [esp + 0x29]
lea ebx, [esp + 0x144]
jmp 0x415752
lea ebx, [esp + 0x144]
mov esi, dword [esp]
test esi, esi
je 0x41594e
mov eax, dword [esi + 8]
mov dword [esp], eax
lea eax, [esi + 0x28]
push eax
push ebx
call fcn.004416f0
add esp, 8
cmp dword [esp + 0x144], 0x80000000
je 0x415747
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.00424980
add esp, 4
test eax, eax
je 0x415ff6
movdqu xmm0, xmmword [eax]
movq xmm2, qword [0x538750]
pshufd xmm1, xmm0, 0x55
movd edx, xmm0
movd ecx, xmm1
movq xmm1, qword [0x538758]
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 0x4158d4
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.00426210
add esp, 0x10
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x415740
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x415740
lea eax, [esi + 1]
mov edx, 0x12
mul edx
add eax, 0xf
and eax, 0xfffffff0
add esi, eax
add esi, 0x11
je 0x415740
sub ecx, eax
push 0x10
push esi
push ecx
call fcn.0040d1e0
add esp, 0xc
jmp 0x415740
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.00425fc0
add esp, 8
test ebx, ebx
mov esi, ebx
je 0x4157ed
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
test edx, edx
je 0x4158ca
movzx ecx, word [edx]
movzx eax, byte [esi + 0x2c]
cmp ecx, 2
je 0x415890
cmp ecx, 0x17
jne 0x4158ca
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 0x415895
xor ecx, ecx
call fcn.00414630
test eax, eax
je 0x416011
add dword [eax], 1
adc dword [eax + 4], 0
test esi, esi
je 0x41593a
push 1
push esi
push dword [esp + 0x144]
call fcn.0040d1e0
add esp, 0xc
mov esi, 0x537990
xor ebx, ebx
mov ecx, 1
pcmpeqd xmm0, xmm0
xor edi, edi
jmp 0x4159c4
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x9c]
jmp 0x41596c
mov esi, 0x537990
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 0x4159b9
lea ecx, [edi + 1]
mov edx, 0x30
mov esi, edi
xor edi, edi
mov eax, ecx
mul edx
jo 0x4159af
add esi, 0x11
add esi, eax
jb 0x4159af
mov edi, 0x10
cmp esi, 0x7ffffff1
mov dword [esp], esi
jb 0x4159af
xor edi, edi
mov esi, dword [esp + 0x10]
mov edx, esi
sub edx, eax
jmp 0x4159c4
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 0x415a58
lea esi, [esp + 0x68]
push esi
call fcn.0041bd60
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00416370
mov eax, dword [esp + 0x24]
cmp eax, 0x80000000
je 0x415dea
test eax, eax
je 0x414b8b
push 1
push eax
push dword [esp + 0x30]
call fcn.0040d1e0
add esp, 0xc
jmp 0x414b8b
test ebx, ebx
mov eax, dword [esp + 0x5c]
je 0x415a0b
test ax, ax
je 0x415a70
lea edx, [eax - 1]
and edx, eax
jmp 0x415ab1
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 0x415a80
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 0x415a0b
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 0x415ca0
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x68]
call fcn.00424990
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 0x415c10
mov dword [esp + 8], ebx
jmp 0x415bca
lea eax, [esi - 1]
and ax, si
mov esi, eax
je 0x415c10
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 0x415bc0
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 0x415bc0
jmp 0x415c50
movdqa xmm1, xmmword [esp + 0xc0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x415ca0
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 0x415b90
mov esi, dword [esp + 0x14]
lea ecx, [esi + 1]
test esi, esi
je 0x415cf0
mov ebx, dword [esp + 0x1c]
mov eax, ecx
mov edx, 0x12
mov dword [esp], 0
mul edx
jo 0x415d01
mov edx, dword [esp + 0x18]
cmp eax, 0xfffffff0
ja 0x415c8f
add eax, 0xf
add esi, 0x11
and eax, 0xfffffff0
add esi, eax
jae 0x415d07
jmp 0x415d30
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x415dca
lea eax, [edi + 1]
mov ecx, 0x12
mul ecx
add eax, 0xf
and eax, 0xfffffff0
add edi, eax
add edi, 0x11
je 0x415dca
mov ecx, dword [esp + 0x18]
sub ecx, eax
push 0x10
push edi
push ecx
call fcn.0040d1e0
add esp, 0xc
jmp 0x415dca
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 0
jmp 0x415d34
mov edx, dword [esp + 0x18]
jmp 0x415d30
cmp esi, 0x7ffffff1
mov dword [esp], 0x10
mov dword [esp + 0x14], esi
jb 0x415d30
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.00419600
add esp, 8
mov eax, dword [edi - 0x18]
test eax, eax
je 0x415dac
add eax, eax
lea eax, [eax + eax*8]
push 1
push eax
push dword [edi - 0x14]
call fcn.0040d1e0
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 0x415a50
push 1
push eax
push dword [esp + 0x30]
call fcn.0040d1e0
add esp, 0xc
jmp 0x415a50
movq xmm0, qword [esp + 0x28]
lea eax, [esp + 0xe0]
movq qword [esp + 0xe0], xmm0
push eax
push esi
jmp 0x415e1d
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.004162c0
add esp, 8
cmp dword [esp + 0x68], 0x80000000
je 0x415fd0
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 0x415faa
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x68]
call fcn.00424990
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 0x415f50
mov dword [esp + 0xc], esi
jmp 0x415f0a
lea eax, [ebx - 1]
and ax, bx
mov ebx, eax
je 0x415f50
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 0x415f00
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 0x415f00
jmp 0x415f90
movdqa xmm1, xmmword [esp + 0xf0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x415faa
mov eax, dword [esp + 0xc0]
lea esi, [esi + eax + 0x10]
add eax, 0x10
and esi, dword [esp]
mov dword [esp + 0xc0], eax
jmp 0x415ec7
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 0x415e10
push 1
push eax
push dword [esp + 0x9c]
call fcn.0040d1e0
add esp, 0xc
jmp 0x415e10
push dword [esp + 0xe0]
call sub.msvcrt.dll_free
add esp, 4
jmp 0x414b8b
push 0x14
push 2
call fcn.004d09f0
push 0x14
push 2
call fcn.004d0a10
push 0x5378f8
push 0x537908
lea eax, [esp + 0x40]
push eax
push 0x46
push 0x537860
call fcn.004dc7d0
lea eax, [esp + 0x38]
push 0x5378f8
push 0x537908
push eax
push 0x46
push 0x537860
call fcn.004dc7d0
push 0x537a28
push 0x101
push ecx
call fcn.004e1cd0
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 0x4161f8
mov ebx, dword [esi]
movdqa xmm0, xmmword [ebx]
lea esi, [ebx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x41609e
mov ecx, dword [esp + 4]
mov eax, dword [esp]
dec ecx
je 0x4161f8
test ax, ax
mov dword [esp + 4], ecx
je 0x4160c0
lea ecx, [eax - 1]
and ecx, eax
mov dword [esp], ecx
jmp 0x4160e8
movdqa xmm0, xmmword [esi]
add ebx, 0xfffff700
add esi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x4160c0
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 0x416090
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 0x416090
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret