Function at 0x10041270
Capabilities:
Reference 114dns dns server
Reference google public dns server

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008f828
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x100ab080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x6c], esi
cmp dword [0x10125140], 0
jne 0x100412d2
push 0xb8
call fcn.1006637f
add esp, 4
mov dword [ebp - 0x4c], eax
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.1003b7d0
mov dword [ebp - 4], 0xffffffff
mov dword [0x10125140], eax
push dword [esi + 0x8a]
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push dword [esi + 0x86]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x40], xmm0
call fcn.10003200
mov dword [ebp - 4], 1
xorps xmm0, xmm0
mov al, byte [0x1009b5b4]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
mov byte [ebp - 0x27], 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x78]
call fcn.1003fab0
add esp, 4
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x10041371
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10041367
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100418f7
push ecx
push edx
call fcn.100666c9
add esp, 8
xor eax, eax
xor edi, edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x68], eax
mov eax, 0x2aaaaaab
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x78]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10041828
xor eax, eax
mov dword [ebp - 0x58], eax
nop dword [eax]
add eax, esi
lea ecx, [ebp - 0x28]
push eax
call fcn.10003da0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
mov esi, dword [ebp - 0x14]
cmp esi, 0xf
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmova ecx, edi
push 7
push str.0.0.0.0
seta byte [ebp - 0x41]
mov dword [ebp - 0x48], edi
call fcn.10004660
add esp, 8
test al, al
je 0x10041420
mov byte [ebp - 4], 5
cmp esi, 0xf
jbe 0x100417f5
lea ecx, [esi + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10041419
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100418f7
push ecx
push edi
jmp 0x100417ed
mov al, byte [ebp - 0x41]
lea ecx, [ebp - 0x28]
mov esi, dword [ebp - 0x18]
test al, al
cmovne ecx, edi
mov dword [ebp - 0x4c], ecx
cmp esi, 8
jb 0x100414d5
lea eax, [esi - 7]
add eax, ecx
mov dword [ebp - 0x50], eax
sub eax, ecx
push eax
push 0x30
push ecx
call fcn.100681d0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100414cf
nop word [eax + eax]
mov ecx, edi
mov edx, str.0.0.0.0_
mov esi, 4
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10041485
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10041470
xor eax, eax
jmp 0x100414ac
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100414a7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100414a7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100414a7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100414a7
xor eax, eax
jmp 0x100414ac
sbb eax, eax
or eax, 1
test eax, eax
je 0x10041552
mov eax, dword [ebp - 0x50]
inc edi
sub eax, edi
push eax
push 0x30
push edi
call fcn.100681d0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x10041460
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x48]
mov al, byte [ebp - 0x41]
test al, al
lea ecx, [ebp - 0x28]
cmovne ecx, edi
mov dword [ebp - 0x50], ecx
cmp esi, 7
jb 0x100415a8
lea eax, [esi - 6]
add eax, ecx
mov dword [ebp - 0x4c], eax
sub eax, ecx
push eax
push 0x38
push ecx
call fcn.100681d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x100415a5
nop dword [eax]
mov ecx, esi
mov edx, str.8.8.8.8
mov edi, 3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1004152b
add ecx, 4
add edx, 4
or edi, 0xffffffff
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10041576
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10041576
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10041576
cmp edi, 0xffffffff
je 0x1004154e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10041576
xor eax, eax
jmp 0x1004157b
sub edi, dword [ebp - 0x4c]
jne 0x100414cc
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x14]
cmp eax, 0xf
jbe 0x100417f5
mov edx, dword [ebp - 0x48]
lea ecx, [eax + 1]
jmp 0x100417cd
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004159d
mov eax, dword [ebp - 0x4c]
inc esi
sub eax, esi
push eax
push 0x38
push esi
call fcn.100681d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10041510
jmp 0x100415a2
sub esi, dword [ebp - 0x50]
je 0x1004155b
mov edi, dword [ebp - 0x48]
mov al, byte [ebp - 0x41]
test al, al
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmovne ecx, edi
mov dword [ebp - 0x50], ecx
cmp eax, 0xf
jb 0x10041657
add eax, 0xfffffff2
add eax, ecx
mov dword [ebp - 0x4c], eax
sub eax, ecx
push eax
push 0x31
push ecx
call fcn.100681d0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10041654
nop dword [eax + eax]
mov edx, edi
mov ecx, str.114.114.114.114
mov esi, 0xb
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x10041601
add edx, 4
add ecx, 4
sub esi, 4
jae 0x100415f0
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10041628
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x10041628
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x10041628
cmp esi, 0xffffffff
je 0x10041624
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
jne 0x10041628
xor eax, eax
jmp 0x1004162d
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004164b
mov eax, dword [ebp - 0x4c]
inc edi
sub eax, edi
push eax
push 0x31
push edi
call fcn.100681d0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x100415e0
jmp 0x10041654
sub edi, dword [ebp - 0x50]
je 0x1004155b
mov edi, dword [ebp - 0x48]
mov esi, dword [0x10125140]
test esi, esi
jne 0x1004168b
push 0xb8
call fcn.1006637f
add esp, 4
mov dword [ebp - 0x7c], eax
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.1003b7d0
mov esi, eax
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x28]
mov dword [0x10125140], esi
cmp dword [esi + 0x60], 0
je 0x1004172a
test esi, esi
jne 0x100416c3
push 0xb8
call fcn.1006637f
add esp, 4
mov dword [ebp - 0x80], eax
mov ecx, eax
mov byte [ebp - 4], 8
call fcn.1003b7d0
mov esi, eax
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x28]
mov dword [0x10125140], esi
cmp dword [esi + 0x64], 0xf
lea edx, [esi + 0x50]
jbe 0x100416cf
mov edx, dword [esi + 0x50]
push dword [esi + 0x60]
cmp dword [ebp - 0x14], 0xf
lea ecx, [ebp - 0x28]
push edx
mov edx, dword [ebp - 0x18]
cmova ecx, edi
push 0
call fcn.100040f0
add esp, 0xc
test eax, eax
jne 0x1004172a
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x14]
cmp eax, 0xf
jbe 0x100417f5
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10041419
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100418f7
push ecx
push edi
jmp 0x100417ed
test esi, esi
jne 0x1004175b
push 0xb8
call fcn.1006637f
add esp, 4
mov dword [ebp - 0x84], eax
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.1003b7d0
mov esi, eax
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x28]
mov dword [0x10125140], esi
cmp dword [esi + 0x78], 0
je 0x10041790
cmp dword [esi + 0x64], 0xf
lea eax, [esi + 0x50]
jbe 0x1004176d
mov eax, dword [esi + 0x50]
push dword [esi + 0x60]
cmp dword [ebp - 0x14], 0xf
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x18]
push eax
cmova ecx, edi
push 0
call fcn.100040f0
add esp, 0xc
test eax, eax
je 0x100416ee
mov esi, dword [ebp - 0x54]
lea eax, [ebp - 0x28]
push eax
cmp esi, dword [ebp - 0x5c]
je 0x100417ae
mov ecx, esi
call fcn.10003da0
add esi, 0x18
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x60], esi
jmp 0x100417bd
push esi
lea ecx, [ebp - 0x64]
call fcn.10015250
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x54], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x100417f5
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100417eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100418f7
push ecx
push edx
call fcn.100666c9
add esp, 8
mov ecx, dword [ebp - 0x74]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x78]
sub ecx, esi
mov edi, dword [ebp - 0x68]
add dword [ebp - 0x58], 0x18
inc edi
imul ecx
mov dword [ebp - 0x68], edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x10041825
mov eax, dword [ebp - 0x58]
jmp 0x100413b0
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x6c]
lea eax, [esi + 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esi + 0x14c]
add esi, 0x14c
mov edx, dword [esi + 4]
cmp ecx, edx
je 0x10041859
push ecx
call fcn.10004870
mov eax, dword [esi]
add esp, 4
mov dword [esi + 4], eax
lea ecx, [ebp - 0x64]
cmp esi, ecx
je 0x1004187f
mov ecx, dword [ebp - 0x54]
mov eax, 0x2aaaaaab
sub ecx, edi
imul ecx
mov ecx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push edi
call fcn.1003a6c0
mov esi, dword [ebp - 0x6c]
lea eax, [esi + 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [esi + 0x144]
call fcn.100578b0
lea ecx, [ebp - 0x64]
call fcn.10011630
lea ecx, [ebp - 0x78]
call fcn.10011630
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xf
jbe 0x100418da
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100418d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100418f7
push ecx
push edx
call fcn.100666c9
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1006636c
mov esp, ebp
pop ebp
ret
call fcn.10070c0f
int3