Function at 0x40f910
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x531ceb
mov eax, dword fs:[0]
push eax
sub esp, 0x388
push esi
push edi
push ecx
lea edi, [ebp - 0x394]
mov ecx, 0xe2
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x56eab8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
mov esi, esp
push 0xfffffffffffffff0
mov ecx, dword [ebp - 0x14]
call fcn.00452320
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp esi, esp
call fcn.004ad900
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
and eax, 0xff3fffff
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
or ecx, 0x4000000
or ecx, 0x2000000
mov esi, esp
push ecx
push 0xfffffffffffffff0
mov ecx, dword [ebp - 0x14]
call fcn.00452320
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
cmp esi, esp
call fcn.004ad900
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x18
call fcn.00446cf0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
mov dword [0x5717d0], edx
lea ecx, [ebp - 0xcc]
call fcn.004673b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xd8]
call fcn.00401613
push 0
mov eax, dword [ebp - 0x14]
add eax, 0x18
push eax
lea ecx, [ebp - 0xd8]
push ecx
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x38c], esp
push str.UISkin_main.xml
call fcn.0040172b
lea ecx, [ebp - 0xcc]
call fcn.00467400
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x40fa29
mov edx, str.Failed_to_parse_XML
test edx, edx
jne 0x40fa4a
push str.pRoot___Failed_to_parse_XML_
push 0
push 0x46c
push str.forextrader.cpp
push 2
call fcn.004b1fa0
add esp, 0x14
cmp eax, 1
jne 0x40fa4a
int3
mov ecx, dword [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x18
call fcn.0044ab00
cmp dword [ebp - 0x14], 0
je 0x40fa70
mov edx, dword [ebp - 0x14]
add edx, 0x10
mov dword [ebp - 0x394], edx
jmp 0x40fa7a
mov dword [ebp - 0x394], 0
mov eax, dword [ebp - 0x394]
push eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x18
call fcn.0044bf10
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x184], 0
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x2bb], 0
mov edx, dword [ebp - 0x14]
mov byte [edx + 0x2b8], 0
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x2bc], 0
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x2b9], 0
mov edx, dword [ebp - 0x14]
mov byte [edx + 0x2ba], 0
mov dword [ebp - 0x178], 0x94
mov esi, esp
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp esi, esp
call fcn.004ad900
test eax, eax
je 0x40fba4
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x170]
mov dword [ebp - 0x184], edx
cmp dword [ebp - 0x168], 2
jne 0x40fb90
cmp dword [ebp - 0x180], 5
jne 0x40fb45
cmp dword [ebp - 0x184], 1
jne 0x40fb39
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x2b8], 1
jmp 0x40fb43
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x2b9], 1
jmp 0x40fb8e
cmp dword [ebp - 0x180], 6
jne 0x40fb6f
cmp dword [ebp - 0x184], 1
jne 0x40fb63
mov edx, dword [ebp - 0x14]
mov byte [edx + 0x2bb], 1
jmp 0x40fb6d
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x2ba], 1
jmp 0x40fb8e
cmp dword [ebp - 0x180], 6
jbe 0x40fb84
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x2bb], 1
jmp 0x40fb8e
mov edx, dword [ebp - 0x14]
mov byte [edx + 0x2bc], 1
jmp 0x40fba4
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x384], 0
push 0x1f8
push 0
lea eax, [ebp - 0x380]
push eax
call fcn.004b1690
add esp, 0xc
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x2ba]
test edx, edx
jne 0x40fbe0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 0x2bb]
test ecx, ecx
je 0x40fbec
mov dword [ebp - 0x384], 0x1fc
jmp 0x40fc2e
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 0x2b8]
test eax, eax
je 0x40fc06
mov dword [ebp - 0x384], 0x1f8
jmp 0x40fc2e
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x2b9]
test edx, edx
je 0x40fc20
mov dword [ebp - 0x384], 0x1e8
jmp 0x40fc2e
mov eax, 0x40
add eax, 0x18
mov dword [ebp - 0x384], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x380], edx
mov dword [ebp - 0x37c], 0x67
mov esi, esp
push 0x67
call fcn.00446d80
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
cmp esi, esp
call fcn.004ad900
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x374], 0x46b
mov dword [ebp - 0x378], 0x17
push 0x53dc08
lea eax, [ebp - 0x36c]
push eax
call fcn.004b2700
add esp, 8
mov dword [ebp - 0x1e4], 0xbb8
mov esi, esp
lea ecx, [ebp - 0x384]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconA]
cmp esi, esp
call fcn.004ad900
mov ecx, dword [ebp - 0x14]
call fcn.004011fe
mov dword [ebp - 0x390], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcc]
call fcn.00401a19
mov eax, dword [ebp - 0x390]
push edx
mov ecx, ebp
push eax
lea edx, [0x40fd10]
call fcn.004ad930
pop eax
pop edx
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.004ad8f0
add esp, 0x394
cmp ebp, esp
call fcn.004ad900
mov esp, ebp
pop ebp
ret 0x10