Function at 0x1800032d0
Capabilities:
Move file

Disassembly:
push rbx
sub rsp, 0x20
sub rdx, 0x3e8
mov rbx, rcx
je 0x180002c28
dec rdx
je 0x180002bee
dec rdx
jne 0x180002c65
mov rax, qword [rcx]
call qword [rax]
lea rdx, str._Titan__Will_update_TitanCore..._n
mov r8, qword [rax]
mov rcx, rax
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rcx, qword [rbx + 0x10]
mov edx, 0x3ea
call qword [sym.imp.USER32.dll_KillTimer]
mov rcx, rbx
call fcn.1800024c0
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x1800032d0
mov rax, qword [rcx]
call qword [rax]
lea rdx, str._Titan__Will_update_TitanShell..._n
mov r8, qword [rax]
mov rcx, rax
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rcx, qword [rbx + 0x10]
mov edx, 0x3e9
call qword [sym.imp.USER32.dll_KillTimer]
mov rcx, rbx
call fcn.1800024c0
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x180002c70
mov rax, qword [rcx]
call qword [rax]
lea rdx, str._Titan__Will_update_TitanShell_and_TitanCore..._n
mov r8, qword [rax]
mov rcx, rax
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rcx, qword [rbx + 0x10]
mov edx, 0x3e8
call qword [sym.imp.USER32.dll_KillTimer]
mov rcx, rbx
call fcn.1800024c0
mov rcx, rbx
call 0x180002c70
mov rcx, rbx
call 0x1800032d0
add rsp, 0x20
pop rbx
ret
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rax - 0xa08]
sub rsp, 0xae0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1800180a0]
xor rax, rsp
mov qword [rbp + 0x9d0], rax
mov rsi, rcx
cmp word [rcx + 0x118], 0
je 0x1800032a5
xor r14d, r14d
mov word [rbp - 0x80], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0x7e]
call fcn.1800083f0
mov r8d, 0x104
lea rdx, [rbp - 0x80]
mov rcx, qword [0x18001a620]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov word [rbp + 0x7c0], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x7c2]
call fcn.1800083f0
mov word [rbp + 0x3a0], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x3a2]
call fcn.1800083f0
mov word [rbp + 0x5b0], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x5b2]
call fcn.1800083f0
mov r11, qword [rsi]
mov rcx, rsi
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
mov r9, rax
lea r8, [0x1800143f4]
mov edx, 0x104
lea rcx, [rbp + 0x5b0]
call fcn.180001860
lea rcx, [rbp - 0x80]
call fcn.180003800
mov rcx, rsi
test eax, eax
mov rax, qword [rsi]
je 0x180002d91
call qword [rax]
mov r9, qword [rax]
lea r8, [rbp - 0x80]
lea rdx, str._Titan__Unregister__s_Done_
mov rcx, rax
call qword [r9 + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180002db3
call qword [rax]
mov rbx, rax
mov rdi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rbp - 0x80]
lea rdx, str._Titan__Failed_to_unregister__s__Error:__d
mov rcx, rbx
call qword [rdi + 0x18]
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x180002de6
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov r9, qword [rax]
lea r8, [rbp - 0x80]
lea rdx, str._Titan__Delay_remove__s_Done__n
mov rcx, rax
call qword [r9 + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180002e1c
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x180002e1c
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov rbx, rax
mov rdi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rbp - 0x80]
lea rdx, str._Titan__Failed_to_delay_remove__s__Error:__d._n
mov rcx, rbx
call qword [rdi + 0x18]
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov word [rbp + 0x190], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x192]
call fcn.1800083f0
lea rcx, [rsi + 0x118]
cmp dword [rsi + 0x730], r14d
je 0x180002ffa
lea rdx, [0x180013e48]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov rbx, r14
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x30], r14d
lea rdx, [rsp + 0x30]
lea rcx, [rsi + 0x118]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
lea r13, str.shell
test eax, eax
je 0x180002fca
mov r9d, eax
lea r8, [rsp + 0x30]
lea rdx, [rsi + 0x118]
lea rcx, [rsp + 0x38]
call fcn.180004c60
test al, al
je 0x180002fc5
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x180002ed0
mov rax, qword [rax]
mov r9, rax
lea r8, [0x1800143f4]
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x180002efd
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x180002f16
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x80]
lea r8, str._sTitan64__s.dll
mov edx, 0x104
lea rcx, [rbp + 0x190]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x180002f49
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x180002f62
mov rax, qword [rax]
mov r9, rax
lea r8, str.Titan64__s.dll
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x180002f8f
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
lea r9, [rsi + 0x528]
lea r8, [rbp + 0x7c0]
lea rdx, str.shell_ver
lea rcx, str.titan
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180002fc0
call fcn.180006374
mov rbx, r14
jmp 0x180002ff5
mov rbx, qword [rsp + 0x38]
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x3a0]
lea r8, [rbp + 0x5b0]
lea rdx, str.update
mov rcx, rsi
call fcn.1800038e0
nop
jmp 0x180003199
lea rdx, [0x180013e60]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov rbx, r14
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x30], r14d
lea rdx, [rsp + 0x30]
lea rcx, [rsi + 0x118]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
lea r13, str.shell
test eax, eax
je 0x18000316e
mov r9d, eax
lea r8, [rsp + 0x30]
lea rdx, [rsi + 0x118]
lea rcx, [rsp + 0x38]
call fcn.180004c60
test al, al
je 0x180003169
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x180003074
mov rax, qword [rax]
mov r9, rax
lea r8, [0x1800143f4]
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x1800030a1
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x1800030ba
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x80]
lea r8, str._sTitan__s.dll
mov edx, 0x104
lea rcx, [rbp + 0x190]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x1800030ed
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x180003106
mov rax, qword [rax]
mov r9, rax
lea r8, str.Titan__s.dll
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x180003133
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
lea r9, [rsi + 0x528]
lea r8, [rbp + 0x7c0]
lea rdx, str.shell_ver
lea rcx, str.titan
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180003164
call fcn.180006374
mov rbx, r14
jmp 0x180003199
mov rbx, qword [rsp + 0x38]
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x3a0]
lea r8, [rbp + 0x5b0]
lea rdx, str.update
mov rcx, rsi
call fcn.1800038e0
nop
test rbx, rbx
je 0x1800031a6
mov rcx, rbx
call fcn.180006374
mov r8d, 3
lea rdx, [rbp + 0x190]
lea rcx, [rsi + 0x118]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rcx, rsi
test eax, eax
mov rax, qword [rsi]
je 0x180003249
call qword [rax]
mov r10, qword [rax]
lea r9, [rbp + 0x190]
lea r8, [rsi + 0x118]
lea rdx, str._Titan__Move__s_to__s_Done__n
mov rcx, rax
call qword [r10 + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rbp + 0x190]
call fcn.180003720
mov rcx, rsi
test eax, eax
mov rax, qword [rsi]
je 0x180003222
call qword [rax]
mov r9, qword [rax]
lea r8, [rbp + 0x190]
lea rdx, str._Titan__Register__s_Done_
mov rcx, rax
call qword [r9 + reloc.OLEAUT32.dll_VariantClear]
mov dword [rsp + 0x28], r14d
jmp 0x18000327b
call qword [rax]
mov rbx, rax
mov rdi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rbp + 0x190]
lea rdx, str._Titan__Failed_to_register__s__Error:__d
mov rcx, rbx
call qword [rdi + 0x18]
jmp 0x18000329d
call qword [rax]
mov rbx, rax
mov rdi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x80]
lea r8, [rsi + 0x118]
lea rdx, str._Titan__Failed_to_move__s_to__s__Error:__d
mov rcx, rbx
call qword [rdi + 0x18]
mov dword [rsp + 0x28], 6
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x3a0]
lea r8, [rbp + 0x5b0]
lea rdx, str.update
mov rcx, rsi
call fcn.1800038e0
mov word [rsi + 0x118], r14w
mov rcx, qword [rbp + 0x9d0]
xor rcx, rsp
call fcn.180005a00
lea r11, [rsp + 0xae0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rax - 0x5e8]
sub rsp, 0x6c0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1800180a0]
xor rax, rsp
mov qword [rbp + 0x5b0], rax
mov r13, rcx
cmp word [rcx + 0x320], 0
je 0x1800036e8
xor r14d, r14d
mov word [rbp - 0x80], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0x7e]
call fcn.1800083f0
mov r8d, 0x104
lea rdx, [rbp - 0x80]
mov rcx, qword [0x18001a620]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov word [rbp + 0x190], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x192]
call fcn.1800083f0
mov word [rbp + 0x3a0], r14w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x3a2]
call fcn.1800083f0
mov r11, qword [r13]
mov rcx, r13
call qword [r11 + 0x10]
mov r9, rax
lea r8, [0x1800143f4]
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.180001860
lea rcx, [r13 + 0x320]
cmp dword [r13 + 0x730], r14d
je 0x180003550
lea rdx, str.TitanCore64.dll
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.TitanCore64.dll
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov r12d, r14d
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x30], r14d
lea rdx, [rsp + 0x30]
lea rcx, [r13 + 0x320]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
test eax, eax
je 0x180003498
mov r9d, eax
lea r8, [rsp + 0x30]
lea rdx, [r13 + 0x320]
lea rcx, [rsp + 0x38]
call fcn.180004c60
test al, al
je 0x180003493
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x180003448
mov rax, qword [rax]
mov r9, rax
lea r8, [0x1800143f4]
mov edx, 0x104
lea rcx, [rbp + 0x190]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x180003475
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180003484
call fcn.180006374
mov r12, r14
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x40], r14d
jmp 0x180003498
mov r12, qword [rsp + 0x38]
mov r8d, 3
lea rdx, [rbp - 0x80]
lea rcx, [r13 + 0x320]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rcx, r13
test eax, eax
jne 0x180003517
mov rax, qword [r13]
call qword [rax]
mov rbx, rax
mov rdi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x80]
lea r8, [r13 + 0x320]
lea rdx, str._Titan__Failed_to_move__s_to__s__Error:__d
mov rcx, rbx
call qword [rdi + 0x18]
mov dword [rsp + 0x28], 6
lea rax, str.core
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x190]
lea r8, [rbp + 0x3a0]
lea rdx, str.update
mov rcx, r13
call fcn.1800038e0
jmp 0x18000354b
mov dword [rsp + 0x28], r14d
lea rax, str.core
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x190]
lea r8, [rbp + 0x3a0]
lea rdx, str.update
call fcn.1800038e0
mov rcx, r13
call fcn.1800021a0
nop
jmp 0x1800036d3
lea rdx, str.TitanCore.dll
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.TitanCore.dll
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov r12, r14
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x30], r14d
lea rdx, [rsp + 0x30]
lea rcx, [r13 + 0x320]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
test eax, eax
je 0x180003620
mov r9d, eax
lea r8, [rsp + 0x30]
lea rdx, [r13 + 0x320]
lea rcx, [rsp + 0x38]
call fcn.180004c60
test al, al
je 0x18000361b
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.180001930
cmp qword [rax + 0x18], 8
jb 0x1800035d0
mov rax, qword [rax]
mov r9, rax
lea r8, [0x1800143f4]
mov edx, 0x104
lea rcx, [rbp + 0x190]
call fcn.180001860
cmp qword [rsp + 0x68], 8
jb 0x1800035fd
mov rcx, qword [rsp + 0x50]
call fcn.180005a20
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18000360c
call fcn.180006374
mov r12, r14
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x40], r14d
jmp 0x180003620
mov r12, qword [rsp + 0x38]
mov r8d, 3
lea rdx, [rbp - 0x80]
lea rcx, [r13 + 0x320]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rcx, r13
test eax, eax
jne 0x18000369f
mov rax, qword [r13]
call qword [rax]
mov rbx, rax
mov rdi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x80]
lea r8, [r13 + 0x320]
lea rdx, str._Titan__Failed_to_move__s_to__s__Error:__d
mov rcx, rbx
call qword [rdi + 0x18]
mov dword [rsp + 0x28], 6
lea rax, str.core
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x190]
lea r8, [rbp + 0x3a0]
lea rdx, str.update
mov rcx, r13
call fcn.1800038e0
jmp 0x1800036d3
mov dword [rsp + 0x28], r14d
lea rax, str.core
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x190]
lea r8, [rbp + 0x3a0]
lea rdx, str.update
call fcn.1800038e0
mov rcx, r13
call fcn.1800021a0
nop
test r12, r12
je 0x1800036e0
mov rcx, r12
call fcn.180006374
mov word [r13 + 0x320], r14w
mov rcx, qword [rbp + 0x5b0]
xor rcx, rsp
call fcn.180005a00
lea r11, [rsp + 0x6c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret