Function at 0x6d377799
Capabilities:
Check os version
Get common file path
Get session user name
Get system information on windows
Identify system language via api

Disassembly:
push ebp
lea ebp, [esp - 0x2b8]
sub esp, 0x338
mov eax, dword [0x6d38bb70]
xor eax, ebp
mov dword [ebp + 0x2b4], eax
push ebx
xor ebx, ebx
cmp dword [0x6d38bc14], ebx
jne 0x6d377ba9
push esi
push edi
lea eax, [ebp + 0x44]
push eax
push 0x105
mov dword [0x6d38bc70], 0x6d384b78
call dword [sym.imp.kernel32.dll_GetTempPathW]
mov esi, dword [sym.imp.msvcr100.dll__wcsdup]
lea eax, [ebp + 0x44]
push eax
call esi
mov edi, dword [sym.imp.msvcr100.dll__wgetenv]
mov dword [0x6d38bc0c], eax
mov dword [0x6d38bc68], 0x6d384b5c
mov dword [0x6d38bc6c], 0x6d384b38
mov dword [esp], str.JAVA2D_FONTPATH
call edi
pop ecx
cmp eax, ebx
je 0x6d377822
push eax
call esi
pop ecx
mov dword [0x6d38bc10], eax
jmp 0x6d377828
mov dword [0x6d38bc10], ebx
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 0x58], 0x9c
call dword [sym.imp.kernel32.dll_GetVersionExA]
push 0x24
lea eax, [ebp - 0x80]
push ebx
push eax
call sub.msvcr100.dll_memset
add esp, 0xc
push str.GetNativeSystemInfo
push 0x6d384af4
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
cmp eax, ebx
je 0x6d37786b
lea ecx, [ebp - 0x80]
push ecx
call eax
jmp 0x6d377875
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x48]
sub eax, ebx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
je 0x6d37799f
dec eax
je 0x6d37795c
dec eax
je 0x6d37789f
mov dword [0x6d38bc00], str.Windows__unknown_
jmp 0x6d3779a9
cmp edx, 4
ja 0x6d3778b3
mov dword [0x6d38bc00], str.Windows_NT
jmp 0x6d3779a9
cmp edx, 5
jne 0x6d377902
mov eax, ecx
sub eax, ebx
je 0x6d3778f3
dec eax
je 0x6d3778e4
dec eax
jne 0x6d377950
cmp byte [ebp + 0x42], 1
jne 0x6d3778d5
cmp word [ebp - 0x80], 9
je 0x6d3778e4
mov dword [0x6d38bc00], str.Windows_2003
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_XP
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_2000
jmp 0x6d3779a9
cmp edx, 6
jne 0x6d377950
cmp byte [ebp + 0x42], 1
mov eax, ecx
jne 0x6d377931
sub eax, ebx
je 0x6d377925
dec eax
jne 0x6d377950
mov dword [0x6d38bc00], str.Windows_7
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_Vista
jmp 0x6d3779a9
sub eax, ebx
je 0x6d377944
dec eax
jne 0x6d377950
mov dword [0x6d38bc00], str.Windows_Server_2008_R2
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_Server_2008
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_NT__unknown_
jmp 0x6d3779a9
cmp edx, 4
jne 0x6d377993
cmp ecx, ebx
je 0x6d377987
cmp ecx, 0xa
je 0x6d37797b
cmp ecx, 0x5a
jne 0x6d377993
mov dword [0x6d38bc00], str.Windows_Me
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_98
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_95
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_9X__unknown_
jmp 0x6d3779a9
mov dword [0x6d38bc00], str.Windows_3.1
push ecx
push edx
lea eax, [ebp + 0x250]
push str._d._d
push eax
call dword [sym.imp.msvcr100.dll_sprintf]
mov esi, dword [sym.imp.msvcr100.dll__strdup]
lea eax, [ebp + 0x250]
push eax
call esi
mov dword [0x6d38bc04], eax
lea eax, [ebp - 0x44]
push eax
mov dword [0x6d38bc08], 0x6d3849fc
call esi
mov dword [0x6d38bc84], eax
mov dword [0x6d38bc88], 0x6d3849f4
mov dword [0x6d38bc7c], 0x6d3849ec
call fcn.6d37e410
push str.USERNAME
mov dword [0x6d38bc78], eax
call edi
mov esi, eax
add esp, 0x1c
cmp esi, ebx
je 0x6d377a2f
push esi
call dword [sym.imp.msvcr100.dll_wcslen]
pop ecx
test eax, eax
je 0x6d377a2f
push esi
call dword [sym.imp.msvcr100.dll__wcsdup]
pop ecx
mov dword [0x6d38bc24], eax
jmp 0x6d377a8a
mov edi, dword [sym.imp.advapi32.dll_GetUserNameW]
lea eax, [ebp - 0x5c]
push eax
push ebx
mov dword [ebp - 0x5c], ebx
call edi
test eax, eax
jne 0x6d377a74
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x6d377a74
mov eax, dword [ebp - 0x5c]
add eax, eax
push eax
call dword [sym.imp.msvcr100.dll_malloc]
mov esi, eax
pop ecx
cmp esi, ebx
je 0x6d377a80
lea eax, [ebp - 0x5c]
push eax
push esi
call edi
test eax, eax
jne 0x6d377a76
push esi
call dword [sym.imp.msvcr100.dll_free]
pop ecx
xor esi, esi
mov dword [0x6d38bc24], esi
cmp esi, ebx
jne 0x6d377a8a
mov dword [0x6d38bc24], str.unknown
call fcn.6d37745b
cmp eax, ebx
jne 0x6d377aa1
call fcn.6d37750a
cmp eax, ebx
jne 0x6d377aa1
mov eax, 0x6d3849c0
push eax
call dword [sym.imp.msvcr100.dll__wcsdup]
pop ecx
mov dword [0x6d38bc28], eax
call dword [sym.imp.kernel32.dll_GetUserDefaultLCID]
mov edi, eax
call dword [sym.imp.kernel32.dll_GetSystemDefaultLCID]
mov ebx, eax
call dword [sym.imp.kernel32.dll_GetUserDefaultUILanguage]
movzx esi, ax
lea eax, [ebp - 0x5c]
push eax
push 0x6d38bc50
push 0x6d38bc44
push 0x6d38bc2c
mov edx, 0x6d38bc38
mov ecx, esi
call fcn.6d37e410
push 0x6d38bc5c
push 0x6d38bc54
push 0x6d38bc48
push 0x6d38bc30
mov edx, 0x6d38bc3c
mov ecx, edi
call fcn.6d37e410
lea eax, [ebp - 0x5c]
push eax
push 0x6d38bc58
push 0x6d38bc4c
push 0x6d38bc34
mov edx, 0x6d38bc40
mov ecx, esi
call fcn.6d37e410
push ebx
call fcn.6d3772ae
add esp, 0x34
mov dword [0x6d38bc60], eax
mov eax, 0xc04
cmp di, ax
pop edi
pop esi
jne 0x6d377b54
cmp dword [ebp - 0x54], 6
jne 0x6d377b54
mov eax, str.MS950_HKSCS
mov dword [0x6d38bc5c], eax
mov dword [0x6d38bc60], eax
lea eax, [ebp + 0x44]
push eax
push 0x104
mov dword [0x6d38bc74], 0x6d3849a4
mov dword [0x6d38bc64], 0x6d383cef
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x6d377b8b
lea eax, [ebp + 0x44]
push eax
call dword [sym.imp.msvcr100.dll__wcsdup]
pop ecx
mov dword [0x6d38bc14], eax
mov dword [0x6d38bc18], 0x6d3847c4
mov dword [0x6d38bc1c], 0x6d3849a0
mov dword [0x6d38bc20], 0x6d38499c
mov ecx, dword [ebp + 0x2b4]
xor ecx, ebp
mov eax, 0x6d38bc00
pop ebx
call fcn.6d381820
add ebp, 0x2b8
leave
ret