Function at 0x401de0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x108
mov eax, dword [0x464a38]
xor eax, esp
mov dword [esp + 0x104], eax
push ebx
push str.szwb_map
push 1
xor ebx, ebx
push ebx
push 4
push ebx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
cmp eax, ebx
mov dword [0x465f90], eax
je 0x401f1b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
push str.szwb_simeg
push 0x10a0
je 0x40200f
mov eax, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov ecx, dword [sym.imp.StrokeMBHandle.dll_void__hSImeG]
push eax
push ecx
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_MappingMem_void____char____int__char__]
add esp, 0x10
test eax, eax
je 0x401f1b
mov edx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov eax, dword [edx]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov ecx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov eax, dword [ecx]
push eax
add eax, 0x104
push str._s_szwb_
push eax
call fcn.0043590c
add esp, 0xc
push 1
push 0x1a
lea edx, [esp + 0xc]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov ecx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov edx, dword [ecx]
lea eax, [esp + 4]
push eax
add edx, 0x208
push str._s_szwb_
push edx
call fcn.0043590c
add esp, 0xc
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadInitData_void_]
test eax, eax
je 0x401f1b
push 1
push str.szwb.ini
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadIniFile_char___int_]
add esp, 8
test eax, eax
je 0x401f1b
push str.Tips.ini
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadTipsFile_char__]
add esp, 4
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadRecordData_void_]
test eax, eax
je 0x401f1b
push 1
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadZPhraseData_int_]
add esp, 4
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadInputPhrase_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadMB_void_]
test eax, eax
jne 0x401f33
mov eax, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov ecx, dword [eax]
mov dword [ecx + 0x480], ebx
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.00434975
add esp, 0x108
ret
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_IsVistaSystem_void_]
test eax, eax
je 0x401f9c
push esi
mov esi, dword [sym.imp.StrokeMBHandle.dll_unsigned_long_int___cdecl_LowMap_char_const__]
push str.szwb_map
call esi
push str.szwb_simeg
call esi
push str.szwb_config
call esi
push str.szwb_record
call esi
push str.szwb_cpart
call esi
push str.szwb_codeunit
call esi
push str.szwb_gbkunit
call esi
push str.szwb_phrase
call esi
push str.szwb_zphrase
call esi
push str.szwb_batphrase
call esi
push str.szwb_inputphrase
call esi
push str.szwb_pushcontent
call esi
add esp, 0x30
pop esi
mov edx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov eax, dword [edx]
mov dword [eax + 0x480], 1
mov ecx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov edx, dword [ecx]
mov dword [edx + 0x4cc], 1
mov eax, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov ecx, dword [eax]
mov dword [ecx + 0x4ac], ebx
mov edx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov eax, dword [edx]
mov dword [eax + 0x484], ebx
mov ecx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov edx, dword [ecx]
mov dword [edx + 0x4c4], ebx
mov eax, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov ecx, dword [eax]
mov byte [ecx + 0x498], bl
mov edx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov eax, dword [edx]
mov dword [eax + 0x494], ebx
call dword [sym.imp.StrokeMBHandle.dll_void___cdecl_ReadSoftwareInfo_void_]
jmp 0x402095
mov ecx, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov edx, dword [sym.imp.StrokeMBHandle.dll_void__hSImeG]
push ecx
push edx
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_MappingMem_void____char____int__char__]
add esp, 0x10
test eax, eax
je 0x401f1b
mov eax, dword [sym.imp.StrokeMBHandle.dll_struct__tagImeG__sImeG]
mov ecx, dword [eax]
cmp dword [ecx + 0x480], ebx
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadInitDataFromMem_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadRecordDataFromMem_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadZPhraseDataFromMem_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadMBFromMem_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadIniFileFromMem_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_ReadInputPhraseFromMem_void_]
test eax, eax
je 0x401f1b
call dword [sym.imp.StrokeMBHandle.dll_int___cdecl_GetFuncTime_void_]
mov ecx, dword [esp + 0x108]
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00434975
add esp, 0x108
ret