Function at 0x40cd40
Capabilities:
Check os version
Get hostname

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x463af0
mov eax, dword fs:[0]
push eax
sub esp, 0x740
mov eax, dword [0x488fdc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x71c], ecx
mov al, byte [0x4664ea]
mov byte [ebp - 0x264], al
push 0xfe
push 0
lea ecx, [ebp - 0x263]
push ecx
call fcn.004456b0
add esp, 0xc
mov dl, byte [0x4664eb]
mov byte [ebp - 0x164], dl
push 0xfe
push 0
lea eax, [ebp - 0x163]
push eax
call fcn.004456b0
add esp, 0xc
mov cl, byte [0x4664f2]
mov byte [ebp - 0x2d4], cl
push 0x63
push 0
lea edx, [ebp - 0x2d3]
push edx
call fcn.004456b0
add esp, 0xc
lea ecx, [ebp - 0x414]
call fcn.0041a930
mov dword [ebp - 4], 0
mov dword [ebp - 0x418], 0xff
mov dword [ebp - 0x268], 0xff
call fcn.0040f570
mov eax, dword [ebp - 0x71c]
add eax, 0x100
push eax
lea ecx, [ebp - 0x414]
call fcn.0041aff0
push 0xbe
push 0xdc
push 0x4667f0
lea ecx, [ebp - 0x264]
push ecx
call fcn.00445608
add esp, 0x10
lea edx, [ebp - 0x264]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 4
call fcn.0040fdb0
push 0x4667f8
lea eax, [ebp - 0x264]
push eax
call fcn.00445510
add esp, 8
lea ecx, [ebp - 0x264]
push ecx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x20
call fcn.0040fdb0
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x264]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
lea ecx, [ebp - 0x264]
push ecx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x148
call fcn.0040fdb0
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0x268]
push ecx
lea edx, [ebp - 0x164]
push edx
mov ecx, dword [ebp - 0x71c]
call fcn.0040f3c0
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x164
call fcn.0040fdb0
mov ecx, dword [ebp - 0x71c]
add ecx, 0x148
call fcn.00405710
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x164
call fcn.0040fe50
test eax, eax
jne 0x40cf19
push 0x466800
mov ecx, dword [ebp - 0x71c]
add ecx, 0x164
call fcn.0040fdb0
push 0x466808
mov ecx, dword [ebp - 0x71c]
add ecx, 0x164
call fcn.0040fdb0
lea ecx, [ebp - 0x264]
push ecx
call fcn.0042b2d0
add esp, 4
lea edx, [ebp - 0x264]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x180
call fcn.0040fdb0
push 1
lea eax, [ebp - 0x264]
push eax
call fcn.0042b5e0
add esp, 8
lea ecx, [ebp - 0x264]
push ecx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x110
call fcn.0040fdb0
cmp dword [0x48c174], 0
je 0x40cf94
mov dword [ebp - 0x720], str.Remote_Cache
jmp 0x40cf9e
mov dword [ebp - 0x720], str.Main_Server
mov edx, dword [ebp - 0x720]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x1f0
call fcn.0040fdb0
push 0
lea eax, [ebp - 0x2d4]
push eax
call fcn.0043ce10
add esp, 8
lea ecx, [ebp - 0x2d4]
push ecx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x12c
call fcn.0040fdb0
cmp dword [0x48c174], 0
je 0x40cff6
lea edx, [ebp - 0x2d4]
mov dword [ebp - 0x724], edx
jmp 0x40d000
mov dword [ebp - 0x724], 0x4664f3
mov eax, dword [ebp - 0x724]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x20c
call fcn.0040fdb0
cmp dword [0x48c174], 0
je 0x40d02f
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x728], ecx
jmp 0x40d039
mov dword [ebp - 0x728], 0x46682c
mov edx, dword [ebp - 0x728]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x1b8
call fcn.0040fdb0
cmp dword [0x48c174], 0
je 0x40d068
lea eax, [ebp - 0x2d4]
mov dword [ebp - 0x72c], eax
jmp 0x40d072
mov dword [ebp - 0x72c], str._Main_Server_
mov ecx, dword [ebp - 0x72c]
push ecx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x1d4
call fcn.0040fdb0
mov ecx, dword [ebp - 0x71c]
call fcn.0040f2d0
movzx edx, al
test edx, edx
je 0x40d0b6
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x228
call fcn.0040fdb0
jmp 0x40d0cc
push 0x46684c
mov ecx, dword [ebp - 0x71c]
add ecx, 0x228
call fcn.0040fdb0
cmp dword [0x4b9f88], 0
je 0x40d13a
lea ecx, [ebp - 0x48c]
push ecx
call fcn.0041c3b0
cmp eax, 1
jne 0x40d122
mov edx, dword [ebp - 0x444]
push edx
mov eax, dword [ebp - 0x448]
push eax
push str._d._d
lea ecx, [ebp - 0x264]
push ecx
call fcn.00445608
add esp, 0x10
lea edx, [ebp - 0x264]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x2b4
call fcn.0040fdb0
jmp 0x40d138
push 0x46685c
mov ecx, dword [ebp - 0x71c]
add ecx, 0x2b4
call fcn.0040fdb0
jmp 0x40d150
push str.None
mov ecx, dword [ebp - 0x71c]
add ecx, 0x2b4
call fcn.0040fdb0
movzx eax, byte [0x48b622]
test eax, eax
je 0x40d1b7
cmp dword [0x4ba0c8], 0
je 0x40d19f
movzx ecx, byte [0x48b621]
test ecx, ecx
je 0x40d187
push str.Yes_Elevated_
mov ecx, dword [ebp - 0x71c]
add ecx, 0x19c
call fcn.0040fdb0
jmp 0x40d19d
push str.Yes_Not_Elevated_
mov ecx, dword [ebp - 0x71c]
add ecx, 0x19c
call fcn.0040fdb0
jmp 0x40d1b5
push 0x466890
mov ecx, dword [ebp - 0x71c]
add ecx, 0x19c
call fcn.0040fdb0
jmp 0x40d1cd
push 0x466894
mov ecx, dword [ebp - 0x71c]
add ecx, 0x19c
call fcn.0040fdb0
push str.Unknown
mov ecx, dword [ebp - 0x71c]
add ecx, 0x19c
call fcn.0040fdb0
cmp dword [0x4b9dc4], 0
je 0x40d1f8
mov dword [ebp - 0x730], str.Winsock2
jmp 0x40d202
mov dword [ebp - 0x730], str.Winsock
mov edx, dword [ebp - 0x730]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x3c
call fcn.0040fdb0
mov dword [ebp - 0x40c], 0x94
lea eax, [ebp - 0x40c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [ebp - 0x3fc]
mov dword [ebp - 0x734], ecx
cmp dword [ebp - 0x734], 0
je 0x40d25a
cmp dword [ebp - 0x734], 1
je 0x40d272
cmp dword [ebp - 0x734], 2
je 0x40d29b
jmp 0x40d354
push str.Windows_3.1
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d354
lea edx, [ebp - 0x264]
push edx
call fcn.0042b210
add esp, 4
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d354
push str.Windows_NT
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
mov dword [ebp - 0x374], 0x9c
lea ecx, [ebp - 0x374]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
movzx edx, word [ebp - 0x2e0]
test edx, edx
je 0x40d354
lea eax, [ebp - 0x360]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0xac
call fcn.0040fdb0
movzx ecx, word [ebp - 0x2e0]
push ecx
push 0x4668cc
lea edx, [ebp - 0x264]
push edx
call fcn.00445608
add esp, 0xc
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0xc8
call fcn.0040fdb0
movzx ecx, word [ebp - 0x2de]
push ecx
push 0x4668d0
lea edx, [ebp - 0x264]
push edx
call fcn.00445608
add esp, 0xc
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0xe4
call fcn.0040fdb0
cmp dword [ebp - 0x408], 5
jne 0x40d39c
cmp dword [ebp - 0x404], 0
jne 0x40d37b
push str.Windows_2000
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d397
cmp dword [ebp - 0x404], 1
jne 0x40d397
push str.Windows_XP
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d439
cmp dword [ebp - 0x408], 6
jne 0x40d41d
cmp dword [ebp - 0x404], 0
jne 0x40d3c3
push str.Windows_Vista
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d41b
cmp dword [ebp - 0x404], 1
jne 0x40d3e1
push str.Windows_7
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d41b
cmp dword [ebp - 0x404], 2
jne 0x40d3ff
push str.Windows_8
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d41b
cmp dword [ebp - 0x404], 3
jne 0x40d41b
push str.Windows_8.1
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
jmp 0x40d439
cmp dword [ebp - 0x408], 0xa
jne 0x40d439
push str.Windows_10
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.0040fdb0
mov ecx, dword [ebp - 0x408]
push ecx
push 0x4668e4
lea edx, [ebp - 0x264]
push edx
call fcn.00445608
add esp, 0xc
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x74
call fcn.0040fdb0
mov ecx, dword [ebp - 0x404]
push ecx
push 0x4668e8
lea edx, [ebp - 0x264]
push edx
call fcn.00445608
add esp, 0xc
lea eax, [ebp - 0x264]
push eax
mov ecx, dword [ebp - 0x71c]
add ecx, 0x90
call fcn.0040fdb0
call fcn.0040fb90
movzx ecx, al
test ecx, ecx
je 0x40d742
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 0x59c]
call fcn.0043c8b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5b8]
call fcn.00404c30
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x5d4]
call fcn.00404c30
mov byte [ebp - 4], 3
mov dl, byte [0x4664fa]
mov byte [ebp - 0x594], dl
push 0x103
push 0
lea eax, [ebp - 0x593]
push eax
call fcn.004456b0
add esp, 0xc
lea ecx, [ebp - 0x594]
push ecx
call fcn.0040fb90
movzx edx, al
push edx
lea ecx, [ebp - 0x59c]
call fcn.0043c7d0
movzx eax, al
test eax, eax
je 0x40d706
call fcn.0040fb90
movzx ecx, al
push ecx
lea edx, [ebp - 0x5d4]
push edx
lea eax, [ebp - 0x5b8]
push eax
lea ecx, [ebp - 0x59c]
call fcn.0043c8c0
movzx ecx, al
test ecx, ecx
je 0x40d6f5
lea edx, [ebp - 0x5b8]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x58
call fcn.00404fd0
lea ecx, [ebp - 0x5d4]
call fcn.00405710
push eax
call fcn.00445505
add esp, 4
mov dword [ebp - 0x678], eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x678]
push ecx
lea edx, [ebp - 0x674]
push edx
call fcn.0040fb10
add esp, 4
mov dword [ebp - 0x738], eax
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x73c], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x73c]
call fcn.00413c30
mov ecx, eax
call fcn.0040ff10
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x74
call fcn.00404fd0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
call fcn.004058d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x674]
call fcn.0040fb40
push 0
push 0x4668ec
lea ecx, [ebp - 0x5d4]
call fcn.0040fdd0
mov dword [ebp - 0x5d8], eax
mov edx, dword [ebp - 0x5d8]
cmp edx, dword [0x47903c]
je 0x40d6f3
mov eax, dword [0x47903c]
push eax
mov ecx, dword [ebp - 0x5d8]
add ecx, 1
push ecx
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0x5d4]
call fcn.0040fe00
mov dword [ebp - 0x740], eax
mov eax, dword [ebp - 0x740]
mov dword [ebp - 0x744], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x744]
call fcn.00405710
push eax
call fcn.00445505
add esp, 4
mov dword [ebp - 0x718], eax
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x718]
push edx
lea eax, [ebp - 0x714]
push eax
call fcn.0040fb10
add esp, 4
mov dword [ebp - 0x748], eax
mov ecx, dword [ebp - 0x748]
mov dword [ebp - 0x74c], ecx
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x74c]
call fcn.00413c30
mov ecx, eax
call fcn.0040ff10
mov byte [ebp - 4], 8
lea edx, [ebp - 0x64]
push edx
mov ecx, dword [ebp - 0x71c]
add ecx, 0x90
call fcn.00404fd0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x64]
call fcn.004058d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x714]
call fcn.0040fb40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x48]
call fcn.004058d0
jmp 0x40d704
lea eax, [ebp - 0x594]
push eax
call fcn.00428bf0
add esp, 4
jmp 0x40d715
lea ecx, [ebp - 0x594]
push ecx
call fcn.00428bf0
add esp, 4
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x5d4]
call fcn.004058d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5b8]
call fcn.004058d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x59c]
call fcn.0043c7a0
mov ecx, dword [ebp - 0x71c]
call fcn.0040e0d0
mov ecx, dword [ebp - 0x71c]
call fcn.0040dd90
mov ecx, dword [ebp - 0x71c]
call fcn.0040dc50
mov ecx, dword [ebp - 0x71c]
call fcn.0040e780
mov ecx, dword [ebp - 0x71c]
call fcn.0040eb90
mov ecx, dword [ebp - 0x71c]
call fcn.0040ecd0
mov ecx, dword [ebp - 0x71c]
call fcn.0040f1e0
mov ecx, dword [ebp - 0x71c]
call fcn.0040ef50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x414]
call fcn.0041aa20
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044545a
mov esp, ebp
pop ebp
ret