Function at 0x4a5270
Capabilities:
Check os version
Create directory
Create thread
Get common file path
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4adf0a
mov eax, dword fs:[0]
push eax
sub esp, 0x364
mov eax, dword [0x4c75d0]
xor eax, esp
mov dword [esp + 0x360], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c75d0]
xor eax, esp
push eax
lea eax, [esp + 0x378]
mov dword fs:[0], eax
mov esi, dword [0x4ee004]
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [0x4edd38]
mov edi, eax
mov dword [0x4ee0a8], eax
xor ebx, ebx
mov eax, 0x4ee084
mov dword [esp + 0x40], ebx
mov dword [0x4ee094], 0xffffffff
call fcn.00465c90
push 0x4ee084
push edi
push ebx
push esi
push 0x1f4
push 0x1f4
push ebx
push ebx
push 0x80000000
push ebx
push str.MMSPLASHT
push ebx
mov dword [0x4ee084], esi
mov dword [0x4ee090], 0xf5
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 1
push ebx
push eax
mov dword [0x4ee088], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [0x4edd38]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x64
lea eax, [esp + 0x100]
push eax
push 0x6c
push ecx
call esi
mov eax, dword [0x4edd38]
push 0x32
lea edx, [esp + 0x64]
push edx
push 0x6b
push eax
call esi
push 2
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x104]
mov ebp, 0xac
push edx
mov edi, 0x4ee084
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], 0xeb
call fcn.00465b60
mov esi, edi
call fcn.004656b0
mov ecx, dword [0x4edd38]
push 0x104
lea eax, [esp + 0x270]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
lea esi, [esp + 0x27c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
call fcn.00475370
add esp, 0x10
cmp eax, ebx
je 0x4a5403
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
push str._i._.2i._.4i._.2i
lea ecx, [esp + 0xa8]
push 0x64
push ecx
call fcn.004010b0
add esp, 0x1c
lea edx, [esp + 0x94]
push edx
push str.Build__s
lea eax, [esp + 0x68]
push 0x32
push eax
call fcn.004010b0
add esp, 0x10
push 3
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x68]
push edx
mov edi, 0x4ee084
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], 0x1d6
call fcn.00465b60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x30]
push eax
lea esi, [esp + 0x27c]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], ebx
call fcn.00475370
add esp, 0x10
cmp eax, ebx
je 0x4a54a3
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
push str._i._.2i._.4i._.2i
lea edx, [esp + 0xa8]
push 0x64
push edx
call fcn.004010b0
add esp, 0x1c
lea eax, [esp + 0x94]
push eax
push str.Version__s
lea ecx, [esp + 0x68]
push 0x32
push ecx
call fcn.004010b0
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x74]
push 0x4bdf48
push eax
mov dword [esp + 0x54], ebx
call dword [sym.imp.MSVCR100.dll_strtok_s]
add esp, 0x1c
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], 0x41
cmp eax, ebx
je 0x4a54fa
push 1
lea ecx, [esp + 0x2c]
push ecx
push eax
mov edi, 0x4ee084
call fcn.00465b60
call fcn.00491940
mov edx, dword [0x4ee004]
mov ebp, dword [sym.imp.USER32.dll_GetMenu]
push edx
call ebp
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
push 0x400
mov esi, eax
push 9
push esi
call edi
push 0x400
push 8
push esi
call edi
push ebx
push 0x8095
push esi
call edi
push ebx
push 0x80ef
push esi
call edi
push ebx
push 0x80dd
push esi
call edi
push ebx
push 0x80ea
push esi
call edi
push ebx
push 0x8138
push esi
call edi
push 0x4ee168
xor ecx, ecx
call fcn.0047bf10
lea eax, [esp + 0x164]
push eax
push ebx
push ebx
push 5
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
push str.TunerPro_Files_
lea ecx, [esp + 0x168]
push ecx
call edi
push ebx
lea edx, [esp + 0x168]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str.Plugins_
lea eax, [esp + 0x168]
push eax
call edi
push 0x4ee168
lea ecx, [esp + 0x168]
call fcn.0047bf10
push 0x4ed254
push 0x4ee168
call fcn.0047b840
mov edi, eax
cmp edi, ebx
je 0x4a55f0
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
sub eax, 0x186a0
je 0x4a55ea
dec eax
jne 0x4a55f0
mov dword [0x4ee17c], edi
jmp 0x4a55f0
mov dword [0x4ee178], edi
push 0x4ed244
push 0x4ee168
call fcn.0047b840
mov edi, eax
cmp edi, ebx
je 0x4a5626
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
sub eax, 0x186a0
je 0x4a5620
dec eax
jne 0x4a5626
mov dword [0x4ee17c], edi
jmp 0x4a5626
mov dword [0x4ee178], edi
mov ecx, dword [0x4ee17c]
lea edx, [esp + 0x50]
xor eax, eax
push edx
push str.478D401B_1D12_45c1_8BE0_D84C02DEB888
mov dword [0x4ed56c], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
call dword [sym.imp.RPCRT4.dll_UuidFromStringA]
lea eax, [esp + 0x50]
push eax
push 0x4ee168
call fcn.0047b840
cmp eax, ebx
je 0x4a5675
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov dword [0x4ee0b4], eax
mov ecx, dword [0x4dd2d4]
neg ecx
sbb ecx, ecx
and ecx, 8
push ecx
push 0x8169
push esi
call dword [sym.imp.USER32.dll_CheckMenuItem]
fld dword [0x4edae4]
push ecx
fstp dword [esp]
call fcn.004a0a40
mov edx, dword [0x4ee004]
add esp, 4
push 0x3ec
push edx
push 0x4b51e0
push 0x50000103
call dword [sym.imp.COMCTL32.dll_CreateStatusWindowA]
push ebx
xor ecx, ecx
mov esi, eax
mov dword [0x4ee00c], eax
call fcn.00485600
mov edi, dword [0x4ee004]
add esp, 4
call fcn.00484f40
mov dword [0x4ee074], eax
call fcn.00483bf0
mov eax, dword [0x4ee074]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
push 5
push eax
call esi
mov ecx, dword [0x4ee004]
push ebx
push 0x813a
push 0x111
push ecx
call esi
mov eax, dword [0x4ee004]
lea edx, [esp + 0x40]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [0x4ee004]
push 0x4ede74
push 6
push ecx
call ebp
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov edx, dword [esp + 0x50]
sub edx, dword [esp + 0x48]
mov ecx, dword [0x4ee004]
mov edi, dword [0x4edd38]
push eax
mov eax, dword [esp + 0x50]
sub edx, 0x32
push edx
push eax
push ecx
mov ebx, 0x4edfbc
call fcn.00492640
push 0x4a50e0
push 0xfffffffffffffffc
push eax
mov dword [0x4ee008], eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov edx, dword [0x4ee004]
push 1
push 0xd2
push edx
mov dword [0x4ed4a8], eax
call ebp
mov ebx, dword [sym.imp.USER32.dll_EnableMenuItem]
push eax
call ebx
push 1
mov eax, dword [0x4ee004]
push 0xa1
push eax
call ebp
push eax
call ebx
mov ecx, dword [0x4ee060]
push 0
push 0xd2
push 0x401
push ecx
call esi
mov edi, dword [0x4ee050]
push 0
call fcn.00474d30
mov edx, dword [0x4ed6c0]
add esp, 4
push 0
push 0x4e20
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, eax
call fcn.00474d30
add esp, 4
cmp dword [0x4ed71c], 0xffffffff
mov dword [esp + 0x3c], 0
mov dword [0x4ed718], 1
jne 0x4a581c
lea eax, [esp + 0x3c]
push eax
push 0
push 0x4ee138
push 0x4a0450
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x4ed71c], eax
call fcn.0049dd40
mov ecx, dword [0x4ee004]
push ecx
call ebp
mov edi, dword [0x4ee054]
push 0
mov ebp, eax
call fcn.00474d30
add esp, 4
push 0x401
push 0
push 5
push ebp
mov ebp, dword [sym.imp.USER32.dll_GetSubMenu]
call ebp
push eax
call ebx
cmp dword [0x4dd278], 0
je 0x4a585f
call fcn.004a9a60
cmp dword [0x4ddb0c], 0
je 0x4a5880
push 0
push 0x4ed8d1
call fcn.0049fa40
add esp, 8
test eax, eax
jne 0x4a5880
mov byte [0x4ed8d1], al
cmp byte [0x4ed9d5], 0
je 0x4a5893
mov ecx, 0x4ed9d5
call fcn.004a1150
call fcn.0047ed70
push 0x10000
call fcn.0042dbdc
add esp, 4
push 0x10000
push 0
push eax
mov dword [0x4ee080], eax
call fcn.0042e03c
mov eax, dword [0x4dd250]
add esp, 0xc
cmp eax, 1
jne 0x4a58e3
cmp dword [0x4edfa4], 0
jne 0x4a58f1
mov edx, dword [0x4dd2c0]
push edx
push 0x4de798
call fcn.0047d260
add esp, 8
jmp 0x4a58f1
test eax, eax
jne 0x4a58f1
mov byte [0x4de798], al
mov byte [0x4de89c], al
cmp dword [0x4ee0bc], 0
jne 0x4a5936
push 0x800
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x380], 0
test eax, eax
je 0x4a5924
mov ecx, eax
call fcn.00412120
jmp 0x4a5926
xor eax, eax
mov dword [esp + 0x380], 0xffffffff
mov dword [0x4ee0bc], eax
cmp dword [0x4dd254], 0
je 0x4a5964
cmp dword [0x4edfa4], 0
jne 0x4a5964
cmp byte [0x4de594], 0
je 0x4a5964
mov edx, 0x4de594
call fcn.004a4d10
test eax, eax
jne 0x4a5964
mov byte [0x4de594], al
call fcn.0047f000
call fcn.0047eee0
call fcn.0047f120
mov eax, dword [0x4ee004]
mov edi, dword [sym.imp.USER32.dll_PostMessageA]
push 0
push 0
push 0x8001
push eax
mov dword [0x4ee120], 0x4baf30
call edi
mov ecx, dword [0x4ee004]
push 0
push 0
push 0x8002
push ecx
call edi
mov edi, 0x4dd1dc
jmp 0x4a59b0
mov eax, dword [edi]
dec eax
cmp eax, 6
ja case.0x4a59bc.3
jmp dword [eax*4 + 0x4a5b40]
mov edx, dword [0x4ee004]
push 0
push 0xa7
push 0x111
push edx
jmp 0x4a5a55
mov eax, dword [0x4ee004]
push 0
push 0xa9
push 0x111
push eax
jmp 0x4a5a55
cmp dword [0x4ed560], 0
je case.0x4a59bc.3
push 0
push 0x8118
jmp 0x4a5a49
cmp dword [0x4ed560], 0
je case.0x4a59bc.3
mov edx, dword [0x4ee004]
push 0
push 0x8117
push 0x111
push edx
jmp 0x4a5a55
cmp dword [0x4ed560], 0
je case.0x4a59bc.3
mov eax, dword [0x4ee004]
push 0
push 0x8119
push 0x111
push eax
jmp 0x4a5a55
cmp dword [0x4ed560], 0
je case.0x4a59bc.3
push 0
push 0x811a
mov ecx, dword [0x4ee004]
push 0x111
push ecx
call esi
add edi, 4
cmp edi, 0x4dd200
jl 0x4a59b0
cmp dword [0x4dd200], 0xffffffff
mov edi, dword [sym.imp.USER32.dll_IsWindow]
je 0x4a5aa1
mov edx, dword [0x4ee024]
push edx
call edi
test eax, eax
je 0x4a5aa1
mov eax, dword [0x4ee024]
mov ebx, dword [0x4dd200]
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, eax
test edi, edi
je 0x4a5ad8
push 0
push ebx
jmp 0x4a5ac6
mov edx, dword [0x4ee024]
push edx
call edi
test eax, eax
je 0x4a5ad8
mov eax, dword [0x4ee024]
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, eax
test edi, edi
je 0x4a5ad8
push 0
push 0
mov ecx, dword [edi + 0xc]
push 0x130c
push ecx
call esi
mov ecx, edi
call fcn.00463e00
mov edx, dword [0x4ee004]
push 5
push edx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call ebp
push 0xc
push eax
call ebp
push eax
call fcn.0048fb10
mov eax, dword [0x4ee004]
add esp, 4
push 0
push 0xbb8
push 0
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, 1
mov dword [0x4edfa8], eax
mov ecx, dword [esp + 0x378]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x360]
xor ecx, esp
call fcn.0042dbe7
add esp, 0x370
ret