Function at 0x1006aae7
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x20]
sub esp, 0x5b8
push ebx
mov ebx, dword [ebp + 0x24]
push esi
mov esi, dword [ebp + 0x28]
push edi
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, 0x1de2
mov dword [ebp - 0x24], edi
cmp edi, eax
ja 0x1006ac67
cmp edi, 0x10b1
ja 0x1006ac71
je 0x1006ac67
cmp edi, 0xe6f
ja 0x1006a782
je 0x1006a772
cmp edi, 0xd70
ja 0x1006a746
je 0x1006a737
mov eax, edi
sub eax, 0xcc6
je 0x1006a72f
sub eax, 0x55
jne 0x1006aef5
push esp
repe scasb al, byte es:[edi]
mov ah, 0x46
mov edx, dword [ebp - 0x34]
add edx, 4
cmp dword [ebp + 0x10], eax
mov dword [ebp - 0x48], edx
mov edx, dword [ebx]
setne al
mov dword [esi + 8], edx
add edi, 0x55
mov dword [ebp - 0x38], eax
jmp 0x1006a6b8
mov dword [ebp - 0x34], ecx
add edi, 0x55
jmp 0x1006a6b8
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov dword [esi], edx
add edi, 0x55
jmp 0x1006a6b8
mov eax, edi
sub eax, 0xdc5
je 0x1006a763
sub eax, 0x55
jne 0x1006aef5
mov dword [esi + 0xc], eax
add edi, 0x55
jmp 0x1006a6b8
mov dword [esi + 4], 0
add edi, 0x55
jmp 0x1006a6b8
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], eax
add edi, 0x55
jmp 0x1006a6b8
cmp edi, 0xf6e
ja 0x1006ac1d
je 0x1006a80d
mov eax, edi
sub eax, 0xec4
je 0x1006a7d2
sub eax, 0x55
jne 0x1006aef5
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x14], eax
xor eax, eax
lea ebx, [ebx]
inc eax
cmp eax, 4
jl 0x1006a7b0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x34]
movzx ecx, word [eax + 2]
push ecx
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp + 0x20]
add edi, 0x55
jmp 0x1006a6b8
mov edi, 0xefda3c5
mov eax, dword [ecx]
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x2c], eax
mov eax, dword [edx]
mov dword [esi + 0x30], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 8]
mov dword [esi + 0x38], eax
mov edx, dword [edx + 0xc]
mov dword [esi + 0x3c], edx
add edi, 0x55
jmp 0x1006a6b8
mov eax, dword [esi]
dec eax
je 0x1006a831
dec eax
je 0x1006a8db
dec eax
je 0x1006a95e
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
add edi, 0x55
jmp 0x1006a6b8
mov ebx, 0x68d1
mov eax, ebx
sub eax, 0x68d1
je 0x1006a864
sub eax, 0xd
jne 0x1006a8cc
mov eax, dword [esi + 0x10]
mov byte [eax + esi + 0x40], 0
mov eax, 0xf95
mov dword [ebp - 0x14], 0
add eax, 2
jmp 0x1006ac45
cmp dword [ebp - 0x38], 0
je 0x1006a8b6
mov edi, 0x52df
cmp edi, edi
jne 0x1006a8ab
lea eax, [ebp - 0x3b8]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1006a880
sub eax, edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x5b8]
push eax
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x3b8]
push 0x439f
push edx
call fcn.10037590
add esp, 0x10
add edi, 0x42
cmp edi, 0x52df
jbe 0x1006a871
lea eax, [esi + 0x40]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1006a8c0
sub eax, edx
mov dword [esi + 0x10], eax
add ebx, 0xd
cmp ebx, 0x68de
jbe 0x1006a836
mov ebx, dword [ebp - 0x34]
mov edi, 0xc1c
mov eax, edi
sub eax, 0xc1c
je 0x1006a94d
sub eax, 5
je 0x1006a910
sub eax, 5
jne 0x1006a953
mov byte [esi + 0x48], al
mov dword [esi + 0x10], eax
mov eax, 0xf95
mov dword [ebp - 0x14], 0
add eax, 2
jmp 0x1006ac45
push 0
push 0x22
lea ecx, [ebp - 4]
push ecx
lea edx, [esi + 0x42]
push edx
lea eax, [ebx + 2]
push eax
mov dword [ebp - 4], 2
call fcn.1006af70
push 0
push 0x22
lea ecx, [ebp - 4]
push ecx
lea edx, [esi + 0x44]
push edx
lea eax, [ebx + 4]
push eax
mov dword [ebp - 4], 4
call fcn.1006af70
add esp, 0x28
jmp 0x1006a953
mov word [esi + 0x40], 0x104
add edi, 5
cmp edi, 0xc26
jbe 0x1006a8e3
mov ebx, dword [ebp + 0x10]
xor edi, edi
mov dword [ebp - 0x10], edi
cmp edi, 0xf
ja case.0x1006a976.1
movzx ecx, byte [edi + 0x1006af30]
jmp dword [ecx*4 + 0x1006af14]
cmp dword [ebp - 0x38], 0
jne 0x1006a9c4
mov ecx, 0x3b4d
mov edx, 3
lea ecx, [ecx]
mov eax, ecx
sub eax, 0x3b4d
je 0x1006a9a9
sub eax, 0x56
jne 0x1006a9ad
mov word [esi + 0x41], 1
mov dword [esi + 0x10], edx
jmp 0x1006a9ad
mov byte [esi + 0x40], 5
add ecx, 0x56
cmp ecx, 0x3ba3
jbe 0x1006a990
mov byte [esi + 0x1d2], 5
jmp case.0x1006a976.1
mov ecx, 0x5123
lea esp, [esp]
mov eax, ecx
sub eax, 0x5123
je 0x1006aa02
sub eax, 0x1b
je 0x1006a9f5
sub eax, 0x1b
jne 0x1006aa06
push 0x19
mov ah, 0x51
lodsb al, byte [esi]
mov byte [esi + 0x43], 2
mov dword [esi + 0x10], 4
jmp 0x1006aa06
mov al, 0x13
sub al, 0xd
fbld tbyte [esi - 0x39]
inc esi
inc ecx
add al, byte [eax]
jmp 0x1006aa06
mov byte [esi + 0x40], 5
add ecx, 0x1b
cmp ecx, 0x5159
jbe 0x1006a9d0
mov byte [esi + 0x1d2], 5
jmp case.0x1006a976.1
lea eax, [ebp - 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1006aa26
sub eax, edx
mov byte [esi + 0x1d6], al
jmp case.0x1006a976.1
sbb al, 0xb2
sub dh, byte [ebx - 0x8f7a73]
invalid
cmp dword [ebp - 0x38], 0
je case.0x1006a976.1
mov edi, 0x60cf
mov dword [ebp - 4], edi
lea esp, [esp]
mov eax, edi
sub eax, 0x60cf
je 0x1006aba1
sub eax, 0x2b
je 0x1006ab6f
sub eax, 0x2b
jne 0x1006abce
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x4c]
push eax
push 0x22
lea eax, [ebp - 0xc]
push eax
lea ecx, [edi + esi + 0x301]
push ecx
push edx
mov byte [edi + esi + 0x300], bl
mov dword [ebp - 0xc], ebx
call fcn.1006af70
push 0
lea eax, [edi + ebx + 3]
movzx ecx, ax
push 0x48d2
lea edx, [esi + 0x2fc]
push edx
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], ecx
call fcn.1006a2c0
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 4]
add esp, 0x24
jmp 0x1006abce
add dl, byte [edi]
sbb byte [ebp - 0x3bba748d], 0x6a
add byte [edx + 0x22], ch
lea ecx, [ebp - 0xc]
push ecx
lea edx, [esi + 0x300]
push edx
push ebx
mov byte [esi + 0x2fe], 1
mov byte [esi + 0x2ff], al
mov dword [ebp - 0xc], eax
call fcn.1006af70
add esp, 0x14
jmp 0x1006abce
mov byte [ebx - 0x74ce5be0], dl
ret
add edi, 0x2b
mov dword [ebp - 4], edi
cmp edi, 0x6125
jbe 0x1006ab00
mov edi, dword [ebp - 0x10]
jmp case.0x1006a976.1
mov word [esi + 0x1d3], 1
mov byte [esi + 0x1d5], 3
add edi, 3
lea eax, [edi + 0x3e0c]
mov dword [ebp - 0x10], edi
cmp eax, 0x3e1b
jbe 0x1006a966
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
add edi, 0x55
jmp 0x1006a6b8
cmp edi, 0xfc3
je 0x1006ac40
cmp edi, 0x105c
jne 0x1006aef5
mov dword [ebp - 0x14], 0
add edi, 0x55
jmp 0x1006a6b8
mov eax, 0xf95
cmp eax, 0xf97
ja 0x1006ae1d
mov ecx, eax
sub ecx, 0xf95
je case.0x1006a976.15
sub ecx, 2
jne 0x1006a85c
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x3e87
ja 0x1006ad96
je 0x1006ad5f
cmp edi, 0x1358
ja 0x1006acfa
je 0x1006ace2
mov eax, edi
sub eax, 0x12ae
je 0x1006acbd
sub eax, 0x55
jne 0x1006aef5
test byte [ecx], 2
je 0x1006aca8
and dword [ebx + 0x1c], 0xfffffffd
test byte [ecx], 4
je 0x1006aef5
and dword [ebx + 0x1c], 0xfffffffb
add edi, 0x55
jmp 0x1006a6b8
test esi, esi
je 0x1006aeb2
test ebx, ebx
je 0x1006aeb2
test byte [ecx], 1
je 0x1006aef5
and dword [ebx + 0x1c], 0xfffffffe
add edi, 0x55
jmp 0x1006a6b8
mov edx, dword [ebp + 0x18]
test byte [edx], 1
je 0x1006aef5
or dword [ebx + 0x1c], 1
add edi, 0x55
jmp 0x1006a6b8
mov eax, edi
sub eax, 0x13ad
je 0x1006ad14
sub eax, 0x55
je 0x1006ac67
add edi, 0x55
jmp 0x1006a6b8
mov eax, dword [ebp + 0x18]
test byte [eax], 2
je 0x1006ad20
or dword [ebx + 0x1c], 2
test byte [eax], 4
je 0x1006ad29
or dword [ebx + 0x1c], 4
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x40]
mov dword [ebp - 4], eax
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], ecx
push 0x55
lea ecx, [ebp - 4]
mov dword [ebp - 0x10], edx
push ecx
lea edx, [ebp - 0x10]
push edx
call fcn.10008cd0
mov ecx, dword [ebp + 0x20]
add esp, 0x10
mov dword [ebp - 0x14], eax
add edi, 0x55
jmp 0x1006a6b8
cmp dword [ebx], 0
jl 0x1006ad78
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jl 0x1006ad78
cmp dword [ecx], 0
jl 0x1006ad78
mov eax, 1
jmp 0x1006ad7a
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x1a4], 0x114
add edi, 0x55
jmp 0x1006a6b8
cmp edi, 0x3f86
ja 0x1006aeed
je 0x1006ae1d
mov eax, edi
sub eax, 0x3edc
je 0x1006ae05
sub eax, 0x55
jne 0x1006aef5
cmp dword [ebp - 0x194], 2
jne 0x1006adf2
mov eax, dword [ebp - 0x1a0]
cmp eax, 5
jne 0x1006ade6
cmp dword [ebp - 0x19c], 1
jae 0x1006adeb
xor edx, edx
cmp dword [ebp - 0x44], edx
setne dl
add edi, 0x55
mov dword [ebp - 8], edx
jmp 0x1006a6b8
cmp eax, 6
jb 0x1006adf2
mov dword [ebp - 0x40], 1
xor edx, edx
cmp dword [ebp - 0x44], edx
setne dl
add edi, 0x55
mov dword [ebp - 8], edx
jmp 0x1006a6b8
lea eax, [ebp - 0x1a4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ecx, dword [ebp + 0x20]
add edi, 0x55
jmp 0x1006a6b8
mov ecx, dword [esi]
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0x10], ecx
push 0x46ed
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0xc], 4
mov dword [ebp - 4], 8
mov dword [ebp - 0x50], 0xffff
call fcn.10005520
add esp, 0x18
cmp dword [ebp - 0x40], 0
je 0x1006aefd
cmp dword [ebp - 0x44], 0
je 0x1006aefd
mov ebx, dword [ebp + 0x20]
mov edi, 0x6a24
mov eax, edi
sub eax, 0x6a24
je 0x1006aebc
sub eax, 0x5e
jne 0x1006aed1
mov ecx, dword [ebx]
push eax
imul ecx, ecx, 0x3e8
push eax
lea edx, [ebp - 8]
push edx
mov edx, dword [esi]
push 0xc
lea eax, [ebp - 0x30]
push eax
push 0xc
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x20]
push ecx
push 0x98000004
push edx
call dword [sym.imp.WS2_32.dll_WSAIoctl]
cmp eax, 0xffffffff
jne 0x1006aed1
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
imul ecx, ecx, 0x3e8
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], ecx
add edi, 0x5e
cmp edi, 0x6a82
jbe 0x1006ae74
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
add edi, 0x55
jmp 0x1006a6b8
cmp edi, 0x3fdb
je 0x1006af09
add edi, 0x55
jmp 0x1006a6b8
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret