Function at 0x422290
Capabilities:
Accept command line arguments
Enumerate gui resources
Get common file path
Get cpu information
Get geographical location
Get memory capacity
Get system information on windows
Identify system language via api
Query or enumerate registry value
Read .ini file
Terminate process
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x43b9ac
mov eax, dword fs:[0]
push eax
sub esp, 0x348
mov eax, dword [0x44f008]
xor eax, esp
mov dword [esp + 0x344], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44f008]
xor eax, esp
push eax
lea eax, [esp + 0x35c]
mov dword fs:[0], eax
call fcn.00420a20
call fcn.00425800
push 0x49d6d0
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
xor ebx, ebx
xor esi, esi
cmp dword [0x49d6e4], ebx
jbe 0x422373
mov ebp, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edi, 0x49d6f8
push esi
push str.HARDWAREDESCRIPTIONSystemCentralProcessor_d
lea edx, [esp + 0x25c]
call fcn.00422720
add esp, 8
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x258]
push ecx
push 0x80000002
mov dword [esp + 0x20], 0
call ebp
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
push edi
push 0
push 0
push str.ProcessorNameString
push eax
mov dword [esp + 0x30], 0x200
call ebx
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, 0x10
jae 0x422371
add esi, 1
add edi, 0x200
cmp esi, dword [0x49d6e4]
jb 0x422301
xor ebx, ebx
push 0xff
lea edx, [esp + 0x159]
push ebx
push edx
mov byte [esp + 0x160], 0
call sub.MSVCR80.dll_memset
add esp, 0xc
push ebx
push 0x25
lea eax, [esp + 0x15c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov esi, dword [sym.imp.MSVCR80.dll_strncat_s]
push pe_nt_image_headers32
push str.oeminfo.ini
lea ecx, [esp + 0x15c]
push pe_nt_image_headers32
push ecx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0x10
lea edx, [esp + 0x154]
push edx
push 0x200
push 0x49c260
push 0x4439a3
push str.Manufacturer
push str.General
call edi
lea eax, [esp + 0x154]
push eax
push 0x200
push 0x49c060
push 0x4439a3
push str.Model
push str.General
call edi
push 0x49d690
mov dword [0x49d690], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
push 0x49c560
mov dword [0x49c560], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
cmp ax, 0x404
jne 0x422456
push str.Chinese__Taiwan_
push 0x4451a8
jmp 0x4224b9
cmp ax, 0x804
jne 0x422468
push str.Chinese__PRC_
push 0x4451a8
jmp 0x4224b9
cmp ax, 0xc04
jne 0x42247a
push str.Chinese__PRC_
push 0x4451a8
jmp 0x4224b9
cmp ax, 0x1004
jne 0x42248c
push str.Chinese__Singapore_
push 0x4451a8
jmp 0x4224b9
cmp ax, 0x409
jne 0x42249e
push str.English__United_States_
push 0x4451a8
jmp 0x4224b9
cmp ax, 0x411
jne 0x4224b0
push str.Japanese
push 0x4451a8
jmp 0x4224b9
movzx ecx, ax
push ecx
push str.0x_04x
lea edx, [esp + 0x5c]
call fcn.00422720
add esp, 8
push pe_nt_image_headers32
lea edx, [esp + 0x58]
push edx
push pe_nt_image_headers32
push 0x49c460
call dword [sym.imp.MSVCR80.dll_strncpy_s]
add esp, 0x10
push pe_nt_image_headers32
lea eax, [esp + 0x58]
push eax
push 0xa
push 0x400
mov byte [esp + 0x64], 0
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push pe_nt_image_headers32
push 0x4451fc
push pe_nt_image_headers32
push 0x49c460
call esi
push pe_nt_image_headers32
lea ecx, [esp + 0x68]
push ecx
push pe_nt_image_headers32
push 0x49c460
call esi
push pe_nt_image_headers32
push 0x4443e8
push pe_nt_image_headers32
push 0x49c460
call esi
mov esi, dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
add esp, 0x30
push ebx
push 0x49c600
push ebx
push ebx
mov dword [0x49c5fc], ebx
mov dword [0x49c600], 0x1a8
call esi
test eax, eax
je 0x42259b
jmp 0x422570
mov eax, dword [0x49c5fc]
add eax, 1
mov edx, eax
imul edx, edx, 0x1a8
push ebx
lea ecx, [edx + 0x49c600]
push ecx
push eax
push ebx
mov dword [0x49c5fc], eax
mov dword [ecx], 0x1a8
call esi
test eax, eax
jne 0x422570
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push str._sysinfo
push eax
call dword [sym.imp.MSVCR80.dll_strstr]
add esp, 8
test eax, eax
je 0x4226b9
lea eax, [esp + 0x18]
push eax
push 0x4747e0
mov dword [esp + 0x20], 0x2880
call sub.iphlpapi.dll_GetAdaptersInfo
call fcn.00420d20
call fcn.00420e70
push ebx
push 0x420e00
mov dword [0x4547cc], ebx
call dword [sym.imp.USER32.dll_EnumWindows]
lea ecx, [esp + 0x254]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [esp + 0x254]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push str._tyj_sysinfo.txt
lea ecx, [esp + 0x20]
mov dword [esp + 0x368], ebx
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const__]
mov eax, dword [esp + 0x20]
mov edi, 0x10
cmp dword [esp + 0x34], edi
jae 0x422639
lea eax, [esp + 0x20]
push ebx
push ebx
push 2
push ebx
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x422696
lea eax, [esp + 0x38]
push eax
call fcn.00421280
mov eax, dword [esp + 0x40]
add esp, 4
cmp dword [esp + 0x50], edi
mov dword [esp + 0x14], ebx
jae 0x422672
lea eax, [esp + 0x3c]
mov edx, dword [esp + 0x4c]
push ebx
lea ecx, [esp + 0x18]
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x364], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [esp + 0x35c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x344]
xor ecx, esp
call fcn.00436b14
add esp, 0x354
ret