Function at 0x140007af0
Capabilities:
Check if file exists
Copy file
Get common file path
Get file version info
Move file

Disassembly:
push rsi
push rdi
push r12
push r13
push r14
mov eax, 0x1960
call fcn.14002c8a0
sub rsp, rax
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x1998], rbx
mov qword [rsp + 0x19a0], rbp
mov rax, qword [0x140039680]
xor rax, rsp
mov qword [rsp + 0x1950], rax
mov ebp, r9d
mov rsi, r8
mov rbx, rdx
mov r14, rcx
mov word [rsp + 0x6c0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x6c2]
call fcn.140011ab0
mov word [rsp + 0xae0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xae2]
call fcn.140011ab0
mov word [rsp + 0xf00], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xf02]
call fcn.140011ab0
mov word [rsp + 0x1530], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x1532]
call fcn.140011ab0
mov word [rsp + 0x2a0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x2a2]
call fcn.140011ab0
mov word [rsp + 0x8d0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x8d2]
call fcn.140011ab0
mov word [rsp + 0x4b0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x4b2]
call fcn.140011ab0
mov word [rsp + 0x1320], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x1322]
call fcn.140011ab0
mov word [rsp + 0x1740], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x1742]
call fcn.140011ab0
mov rdx, rsi
lea rcx, [rsp + 0x4b0]
sub rcx, rsi
nop
nop
nop
movzx eax, word [rdx]
mov word [rcx + rdx], ax
add rdx, 2
test ax, ax
jne 0x140007c70
mov rcx, rbx
lea rdx, [rsp + 0x6c0]
sub rdx, rbx
nop
movzx eax, word [rcx]
mov word [rdx + rcx], ax
add rcx, 2
test ax, ax
jne 0x140007c90
lea rdi, [rsp + 0x6c0]
xor eax, eax
or r12, 0xffffffffffffffff
mov rcx, r12
repne scasw ax, word [rdi]
lea rdx, [rsp + 0x4b0]
xor ecx, ecx
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x140007cc0
lea rdi, [rsp + 0x6c0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov rax, qword [str.32.ime]
mov qword [rdi - 2], rax
mov eax, dword [0x14002f690]
mov dword [rdi + 6], eax
movzx eax, word [0x14002f694]
mov word [rdi + 0xa], ax
lea rcx, [rsp + 0xae0]
sub rcx, rbx
nop
movzx eax, word [rbx]
mov word [rcx + rbx], ax
add rbx, 2
test ax, ax
jne 0x140007d10
lea rdi, [rsp + 0xae0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
lea rdx, [rsp + 0x4b0]
xor ecx, ecx
nop
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x140007d40
lea rdi, [rsp + 0xae0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov rax, qword [str.64.ime]
mov qword [rdi - 2], rax
mov eax, dword [0x14002f680]
mov dword [rdi + 6], eax
movzx eax, word [0x14002f684]
mov word [rdi + 0xa], ax
lea rcx, [rsp + 0xf00]
sub rcx, rsi
nop
movzx eax, word [rsi]
mov word [rcx + rsi], ax
add rsi, 2
test ax, ax
jne 0x140007d90
lea rdi, [rsp + 0xf00]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov rax, qword [str..ime]
mov qword [rdi - 2], rax
movzx eax, word [0x14002f670]
mov word [rdi + 6], ax
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140007dfe
cmp dword [r14 + 0x50], eax
je 0x140007df7
xor r9d, r9d
lea r8, [0x14002f658]
lea rdx, str.gb0Ri
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x140008b3d
mov edx, 0x104
lea rcx, [rsp + 0x1530]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rdi, [rsp + 0x2a0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
lea rdx, [rsp + 0x1530]
xor ecx, ecx
nop
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x140007e30
lea rdi, [rsp + 0x2a0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov eax, dword [0x14002ee8c]
mov dword [rdi - 2], eax
xor ebx, ebx
mov rcx, rbx
movzx eax, word [rsp + rcx + 0x2a0]
mov word [rsp + rcx + 0x1320], ax
add rcx, 2
test ax, ax
jne 0x140007e60
lea rdi, [rsp + 0x2a0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
lea rdx, [rsp + 0x4b0]
xor ecx, ecx
nop
nop
nop
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x140007ea0
lea rdi, [rsp + 0x2a0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov rax, qword [str..ime]
mov qword [rdi - 2], rax
movzx eax, word [0x14002f670]
mov word [rdi + 6], ax
lea rdx, [rsp + 0x6c0]
lea rcx, str.RegisterIME_ImeFile:_s
call fcn.140011190
xor edx, edx
lea rcx, [rsp + 0x6c0]
call sub.VERSION.dll_GetFileVersionInfoSizeW
movsxd rdi, eax
mov eax, 2
mul rdi
cmovo rax, r12
mov rcx, rax
call fcn.140011950
mov rsi, rax
mov r9, rax
mov r8d, edi
xor edx, edx
lea rcx, [rsp + 0x6c0]
call sub.VERSION.dll_GetFileVersionInfoW
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x70]
lea rdx, str.VarFileInfoTranslation
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x140008b2f
mov rax, qword [rsp + 0x70]
movzx r9d, word [rax + 2]
movzx r8d, word [rax]
lea rax, [0x14002f5e8]
mov qword [rsp + 0x20], rax
lea rdx, str.StringFileInfo_04x_04x_s
lea rcx, [rsp + 0x90]
call fcn.140011ce0
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x90]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x140008b2f
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x1110]
sub rdx, rcx
nop
nop
movzx eax, word [rcx]
mov word [rcx + rdx], ax
add rcx, 2
test ax, ax
jne 0x140007fb0
mov rcx, rsi
call fcn.1400136c0
lea rdx, [rsp + 0x1110]
lea rcx, str.RegisterIME_ImeDescrible:Name:_s
call fcn.140011190
mov rcx, r14
call fcn.140009430
test eax, eax
je 0x140008501
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.1400094a0
mov dword [rsp + 0x54], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
lea rcx, [rsp + 0xae0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140008054
lea r9, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [rsp + 0x4c], ebx
mov dword [rsp + 0x48], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1400080af
lea r9, [rsp + 0x48]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x54], eax
jne 0x1400080c7
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x50], eax
je 0x1400081b5
mov edi, ebx
xor r8d, r8d
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0xae0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400081b5
nop
nop
mov edx, edi
lea rcx, str.RegisterIME_nCopyTimes1:_d
call fcn.140011190
mov word [rsp + 0x90], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011ab0
mov r9d, edi
lea r8, [rsp + 0x2a0]
lea rdx, str._s.bak_d
lea rcx, [rsp + 0x90]
call fcn.140011ce0
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x2a0]
call fcn.1400136d0
xor edx, edx
lea r8d, [rdx + 5]
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp edi, 0xa
jl 0x140008189
mov r9d, 5
lea r8, [0x14002f658]
lea rdx, [0x14002f518]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x1400081ae
add edi, 1
xor r8d, r8d
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0xae0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400081b5
jmp 0x1400080f0
xor eax, eax
jmp 0x140008b3d
test ebp, ebp
je 0x14000821b
mov word [rsp + 0x90], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011ab0
lea r9, [rsp + 0x2a0]
lea r8, [rsp + 0x1320]
lea rdx, str._sregsvr32.exe__s__s
lea rcx, [rsp + 0x90]
call fcn.140011ce0
lea rdx, [rsp + 0x90]
lea rcx, str.RegisterIME_regsvr_Cmd1:_s
call fcn.140011190
lea rcx, [rsp + 0x90]
call fcn.140010b90
mov r8d, 0x104
lea rdx, [rsp + 0x8d0]
mov rcx, r14
call fcn.140009470
lea rdi, [rsp + 0x8d0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov eax, dword [0x14002ee8c]
mov dword [rdi - 2], eax
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x8d0]
mov word [rsp + rcx + 0x1740], ax
add rcx, 2
test ax, ax
jne 0x140008250
lea rdi, [rsp + 0x8d0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
lea rdx, [rsp + 0x4b0]
xor ecx, ecx
nop
nop
nop
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x140008290
lea rdi, [rsp + 0x8d0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov rax, qword [str..ime]
mov qword [rdi - 2], rax
movzx eax, word [0x14002f670]
mov word [rdi + 6], ax
mov dword [rsp + 0x54], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140008323
lea r9, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [rsp + 0x4c], ebx
mov dword [rsp + 0x48], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
lea rcx, [rsp + 0x8d0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14000837e
lea r9, [rsp + 0x48]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x54], eax
jne 0x140008396
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x50], eax
je 0x140008485
mov edi, ebx
xor r8d, r8d
lea rdx, [rsp + 0x8d0]
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x140008485
nop
nop
mov edx, edi
lea rcx, str.RegisterIME_nCopyTimes2:_d
call fcn.140011190
mov word [rsp + 0x90], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011ab0
mov r9d, edi
lea r8, [rsp + 0x8d0]
lea rdx, str._s.bak_d
lea rcx, [rsp + 0x90]
call fcn.140011ce0
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x8d0]
call fcn.1400136d0
xor edx, edx
lea r8d, [rdx + 5]
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp edi, 0xa
jl 0x140008459
mov r9d, 5
lea r8, [0x14002f658]
lea rdx, [0x14002f448]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x14000847e
add edi, 1
xor r8d, r8d
lea rdx, [rsp + 0x8d0]
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x140008485
jmp 0x1400083c0
xor eax, eax
jmp 0x140008b3d
mov rdx, qword [rsp + 0x60]
mov rcx, r14
call fcn.1400094d0
test ebp, ebp
je 0x1400087ad
mov word [rsp + 0x4b0], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x4b2]
call fcn.140011ab0
lea r9, [rsp + 0x8d0]
lea r8, [rsp + 0x1740]
lea rdx, str._sregsvr32.exe__s__s
lea rcx, [rsp + 0x4b0]
call fcn.140011ce0
lea rcx, [rsp + 0x4b0]
call fcn.140010b90
lea rdx, [rsp + 0x4b0]
lea rcx, str.RegisterIME_regsvr_Cmd2:__s___
call fcn.140011450
jmp 0x140008721
mov dword [rsp + 0x54], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14000855c
lea r9, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [rsp + 0x4c], ebx
mov dword [rsp + 0x48], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1400085b7
lea r9, [rsp + 0x48]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x54], eax
jne 0x1400085cf
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x50], eax
je 0x1400086b7
mov edi, ebx
xor r8d, r8d
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400086b7
mov edx, edi
lea rcx, str.RegisterIME_nCopyTimes3:_d
call fcn.140011190
mov word [rsp + 0x90], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011ab0
mov r9d, edi
lea r8, [rsp + 0x2a0]
lea rdx, str._s.bak_d
lea rcx, [rsp + 0x90]
call fcn.140011ce0
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x2a0]
call fcn.1400136d0
xor edx, edx
lea r8d, [rdx + 5]
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp edi, 0xa
jl 0x14000868b
mov r9d, 5
lea r8, [0x14002f658]
lea rdx, [0x14002f518]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x1400086b0
add edi, 1
xor r8d, r8d
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400086b7
jmp 0x1400085f2
xor eax, eax
jmp 0x140008b3d
test ebp, ebp
je 0x1400087ad
mov word [rsp + 0x4b0], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x4b2]
call fcn.140011ab0
lea r9, [rsp + 0x2a0]
lea r8, [rsp + 0x1320]
lea rdx, str._sregsvr32.exe__s__s
lea rcx, [rsp + 0x4b0]
call fcn.140011ce0
lea rcx, [rsp + 0x4b0]
call fcn.140010b90
lea rdx, [rsp + 0x4b0]
lea rcx, str.RegisterIME_regsvr_Cmd3:__s___
call fcn.140011450
lea rcx, str.0804:44741F46_6A9D_49cc_9777_15EB767C35A8D37987E3_6FA3_4eb1_B30A_09DAFF299698
nop
nop
movzx eax, word [rbx + rcx]
mov word [rsp + rbx + 0x4b0], ax
add rbx, 2
test ax, ax
jne 0x140008730
lea rcx, str.RegisterIME_EnableTSF___
call fcn.140011450
lea rcx, str.input.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
jne 0x140008771
lea rcx, str.RegisterIME_Load_InputDll_Failed___
call fcn.140011450
jmp 0x1400087a3
lea rdx, str.InstallLayoutOrTip
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400087a3
mov edx, 0x20
lea rcx, [rsp + 0x4b0]
call rax
mov edx, eax
lea rcx, str.RegisterIME_InstallLayoutOrTip_return__d___
call fcn.140011190
mov eax, 1
jmp 0x140008b3d
lea rdx, [rsp + 0xf00]
mov rcx, r14
call fcn.140007660
lea rcx, [rsp + 0x40]
call fcn.140003990
nop
lea rdx, [rsp + 0xf00]
lea rcx, [rsp + 0x40]
call fcn.140009600
test eax, eax
jne 0x140008826
lea rcx, str.RegisterIME_ImmInstallIME_Install__
call fcn.140011450
lea rdx, [rsp + 0x1110]
lea rcx, [rsp + 0x2a0]
call sub.IMM32.dll_ImmInstallIMEW
test rax, rax
jne 0x14000888e
lea rcx, str.RegisterIME_ImmInstallIME_Failed___
call fcn.140011450
nop
lea rcx, [rsp + 0x40]
call fcn.1400039a0
xor eax, eax
jmp 0x140008b3d
mov word [rsp + 0x90], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011ab0
lea r8, [0x14002f2a8]
lea rdx, [0x14002f290]
lea rcx, [rsp + 0x90]
call fcn.140011ce0
lea rdx, [rsp + 0x90]
lea rcx, str.RegisterIME__s_Installed
call fcn.140011450
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x40]
call fcn.140009820
mov word [rsp + 0x90], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011ab0
mov word [rsp + 0xcf0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xcf2]
call fcn.140011ab0
mov rdx, rbx
nop
movzx eax, word [rsp + rdx + 0x4b0]
mov word [rsp + rdx + 0xcf0], ax
add rdx, 2
test ax, ax
jne 0x1400088d0
lea rdi, [rsp + 0xcf0]
xor eax, eax
mov rcx, r12
repne scasw ax, word [rdi]
mov rax, qword [str..ime]
mov qword [rdi - 2], rax
movzx eax, word [0x14002f670]
mov word [rdi + 6], ax
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0xcf0]
mov rcx, r14
call fcn.140005e70
test eax, eax
jne 0x140008949
lea rcx, str.RegisterIME_GetIMERegInfo_Failed
call fcn.140011190
nop
lea rcx, [rsp + 0x40]
call fcn.1400039a0
xor eax, eax
jmp 0x140008b3d
lea rdx, [rsp + 0xcf0]
lea rcx, str.RegisterIME_DeleteRepeatVectorTImeLayout__s
call fcn.140011190
lea rdx, [rsp + 0xcf0]
mov rcx, r14
call fcn.1400063b0
mov ecx, pe_nt_image_headers64
call fcn.140012470
mov rdi, rax
mov qword [rsp + 0x48], rax
xor edx, edx
mov r8d, pe_nt_image_headers64
mov rcx, rax
call fcn.140011ab0
lea rdx, [rsp + 0x1110]
lea rcx, [rsp + 0x1110]
mov rax, rdi
sub rax, rcx
nop
nop
nop
movzx ecx, word [rdx]
mov word [rax + rdx + 0x8c], cx
add rdx, 2
test cx, cx
jne 0x1400089b0
lea rcx, [rsp + 0x90]
lea rax, [rsp + 0x90]
sub rdi, rax
nop
nop
nop
movzx eax, word [rcx]
mov word [rdi + rcx], ax
add rcx, 2
test ax, ax
jne 0x1400089e0
mov rcx, qword [r14 + 0x48]
mov rax, qword [rcx + 8]
cmp rax, qword [rcx + 0x10]
jbe 0x140008a03
call fcn.140012380
mov ebp, ebx
mov r12, qword [r14 + 0x48]
mov rdi, qword [r12 + 8]
cmp rdi, qword [r12 + 0x10]
jbe 0x140008a1a
call fcn.140012380
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], rdi
nop
nop
nop
mov rsi, qword [r14 + 0x48]
mov r13, qword [rsi + 0x10]
cmp qword [rsi + 8], r13
jbe 0x140008a43
call fcn.140012380
cmp r12, rsi
je 0x140008a4d
call fcn.140012380
cmp rdi, r13
je 0x140008afb
cmp ebp, 1
je 0x140008a75
add ebp, 1
cmp rdi, qword [r12 + 0x10]
jb 0x140008a6a
call fcn.140012380
add rdi, 8
mov qword [rsp + 0x78], rdi
jmp 0x140008a30
mov rsi, qword [r14 + 0x48]
mov rbp, qword [rsi + 8]
test rbp, rbp
je 0x140008aaf
mov rcx, qword [rsi + 0x10]
mov rax, rcx
sub rax, rbp
sar rax, 3
je 0x140008aaf
cmp rbp, rcx
jbe 0x140008a9c
call fcn.140012380
cmp r12, rsi
je 0x140008aa6
call fcn.140012380
sub rdi, rbp
sar rdi, 3
jmp 0x140008ab2
mov rdi, rbx
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x60], xmm0
lea r9, [rsp + 0x48]
mov r8d, 1
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.140007140
mov rbx, qword [rsi + 8]
cmp rbx, qword [rsi + 0x10]
jbe 0x140008ae4
call fcn.140012380
lea rax, [rbx + rdi*8]
cmp rax, qword [rsi + 0x10]
ja 0x140008af4
cmp rax, qword [rsi + 8]
jae 0x140008b09
call fcn.140012380
jmp 0x140008b09
lea rdx, [rsp + 0x48]
mov rcx, qword [r14 + 0x48]
call fcn.140007550
lea rcx, str.RegisterIME_SaveVectorTImeLayout
call fcn.140011190
mov rcx, r14
call fcn.140006d40
nop
lea rcx, [rsp + 0x40]
call fcn.1400039a0
mov eax, 1
jmp 0x140008b3d
lea rcx, str.RegisterIME_Get_ProductName_Failed___
call fcn.140011450
xor eax, eax
mov rcx, qword [rsp + 0x1950]
xor rcx, rsp
call fcn.140011c90
lea r11, [rsp + 0x1960]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret