Function at 0x40a740
Capabilities:
Get common file path
Get program files directory

Disassembly:
push 0xffffffffffffffff
push 0x46ee66
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x483390]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
push ebp
push edi
mov eax, dword [0x483390]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
push str.CRsWork::CheckCanInstall
push 0x473ab0
push 0x80
call fcn.00431310
mov eax, dword [0x4863c4]
mov edx, dword [eax + 0xc]
add esp, 0xc
mov ecx, 0x4863c4
call edx
add eax, 0x10
mov dword [esp + 0x10], eax
xor ebx, ebx
mov dword [esp + 0x130], ebx
mov eax, dword [0x4863c4]
mov edx, dword [eax + 0xc]
mov ecx, 0x4863c4
call edx
lea ebp, [eax + 0x10]
mov dword [esp + 0x14], ebp
mov byte [esp + 0x130], 1
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp eax, 0x3a8
je 0x40a84a
lea eax, [esi + 0x48]
push str.This_Software_can_just_install_in_Chinese_Language_OS.
lea edi, [ebx + 0x36]
call fcn.004032c0
add ebp, 0xfffffff0
mov dword [esi + 0x44], 3
mov byte [esp + 0x130], bl
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a816
mov ecx, dword [ebp]
push ebp
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aaf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40aaf0
cmp dword [0x5873bc], ebx
jne 0x40a878
push 1
call fcn.00444537
add esp, 4
cmp eax, ebx
jne 0x40a873
push 0x47d4cc
lea ecx, [esp + 0x1e]
push ecx
mov byte [esp + 0x22], bl
call fcn.0044710b
mov dword [0x5873bc], eax
call fcn.00402620
test eax, eax
je 0x40a8b6
lea eax, [esi + 0x48]
push 0x474448
mov edi, 0x41
call fcn.004032c0
add ebp, 0xfffffff0
mov dword [esi + 0x44], 3
mov byte [esp + 0x130], bl
lea edx, [ebp + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jmp 0x40a809
cmp dword [0x5873bc], ebx
jne 0x40a8e4
push 1
call fcn.00444537
add esp, 4
cmp eax, ebx
jne 0x40a8df
push 0x47d4cc
lea ecx, [esp + 0x1f]
push ecx
mov byte [esp + 0x23], bl
call fcn.0044710b
mov dword [0x5873bc], eax
call fcn.00402e60
test eax, eax
je 0x40a930
call fcn.00402ee0
test eax, eax
je 0x40a930
lea ebx, [esi + 0x48]
mov edx, 0x47448c
call fcn.004031f0
lea eax, [ebp - 0x10]
mov dword [esi + 0x44], 3
mov byte [esp + 0x130], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a816
mov ecx, dword [eax]
push eax
jmp 0x40a80f
call fcn.00402100
call fcn.00402140
test eax, eax
je 0x40a978
lea ebx, [esi + 0x48]
mov edx, 0x4744b8
call fcn.004031f0
lea eax, [ebp - 0x10]
mov dword [esi + 0x44], 4
mov byte [esp + 0x130], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a816
mov ecx, dword [eax]
push eax
jmp 0x40a80f
call fcn.00402100
call fcn.00402790
test eax, eax
je 0x40a9bf
call fcn.00402100
call fcn.00402ca0
test eax, eax
je 0x40a9bf
push str.Success_IsLabelDatFileExistAndSuckeyEqualRAP...
push 0x80
call fcn.00431310
add esp, 8
lea ebx, [esi + 0x48]
mov edx, 0x4744fc
call fcn.004031f0
mov dword [esi + 0x44], 3
jmp 0x40aade
call fcn.00402100
call fcn.00402790
test eax, eax
je 0x40aa80
call fcn.00402100
lea ebx, [esp + 0x10]
call fcn.00402410
test eax, eax
je 0x40aade
call fcn.00402100
lea eax, [esp + 0x14]
call fcn.00402300
test eax, eax
je 0x40aade
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x40aa0f
push 0x80004005
call fcn.00401000
mov ebx, dword [esp + 0x10]
push edi
push ebx
call fcn.004436db
add esp, 8
test eax, eax
jle 0x40aa35
lea edi, [esi + 0x30]
mov dword [esi + 0x44], 1
call fcn.0040ab20
jmp 0x40aade
push edi
push ebx
call fcn.004436db
add esp, 8
test eax, eax
jne 0x40aa5c
lea ebx, [esi + 0x48]
mov edx, 0x47452c
call fcn.004031f0
mov dword [esi + 0x44], 2
jmp 0x40aade
push edi
push ebx
call fcn.004436db
add esp, 8
test eax, eax
jge 0x40aade
lea ebx, [esi + 0x48]
mov edx, 0x474550
call fcn.004031f0
mov dword [esi + 0x44], 5
jmp 0x40aade
push 0x103
lea ecx, [esp + 0x21]
push ebx
push ecx
mov dword [esi + 0x44], ebx
mov byte [esp + 0x28], bl
call fcn.00446e10
add esp, 0xc
push 1
push 0x26
lea edx, [esp + 0x24]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x1c]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x40aab0
mov ecx, dword [str.RisingRav]
mov edx, dword [0x473cbc]
mov dword [eax], ecx
mov ecx, dword [0x473cc0]
mov dword [eax + 4], edx
lea ebx, [esi + 0x48]
lea edx, [esp + 0x1c]
mov dword [eax + 8], ecx
call fcn.004031f0
lea ecx, [esp + 0x14]
call fcn.004031d0
lea ecx, [esp + 0x10]
call fcn.004031d0
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.004426a0
add esp, 0x124
ret