Function at 0x14001ecb0
Capabilities:
Delete file
Get common file path
Get file size
Read file on windows

Disassembly:
jmp 0x14001ecb0
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x6b8]
sub rsp, 0x790
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x680], rax
mov rsi, rcx
lea rax, [fcn.14001f840]
mov qword [0x140041aa8], rax
add rcx, 0x9d0
mov edx, 1
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x8f8]
mov edx, 1
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x160]
mov edx, 1
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0xaa8]
mov edx, 1
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x820]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x748]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
xor edx, edx
lea rcx, [rsi + 0xd30]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
xor edx, edx
lea rcx, [rsi + 0xc58]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0xb80]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x598]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x4c0]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x670]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0xe08]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsi + 0x3e8]
xor edx, edx
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_296]
nop
mov edx, 0x12c
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_4855]
mov rdx, rax
mov r8d, 0x12a
lea rcx, [rsi + 0xd30]
call qword [sym.imp.mfc120u.dll_Ordinal_7433]
or edx, 0xffffffff
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_12110]
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_306]
mov rdx, qword [rax]
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_1031]
cmp byte [rbp + 0x1c0], 0
jne 0x14001eead
mov rdi, qword [rsi + 0x40]
mov edx, 0xfffffffa
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbx, rax
mov r9d, 0x12c
lea r8, [rsp + 0x60]
mov edx, 0x80
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadStringA]
mov r9d, 0x12c
lea r8, [rbp + 0x90]
mov edx, 0xe726
mov rcx, rbx
call qword [sym.imp.USER32.dll_LoadStringA]
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x90]
jmp 0x14001ef6e
mov edx, 0x12c
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_4855]
mov rdx, rax
mov r8d, 0x12a
lea rcx, [rsi + 0xc58]
call qword [sym.imp.mfc120u.dll_Ordinal_7433]
or edx, 0xffffffff
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_12110]
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_306]
mov rdx, qword [rax]
lea rcx, [rbp + 0x2f0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc120u.dll_Ordinal_1031]
cmp byte [rbp + 0x2f0], 0
jne 0x14001efa4
mov rdi, qword [rsi + 0x40]
mov edx, 0xfffffffa
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbx, rax
mov r9d, 0x12c
lea r8, [rbp + 0x90]
mov edx, 0x80
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadStringA]
mov r9d, 0x12c
lea r8, [rsp + 0x60]
mov edx, 0xe729
mov rcx, rbx
call qword [sym.imp.USER32.dll_LoadStringA]
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
mov r9d, 0x10
mov rcx, rdi
call qword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [0x140041bf4], 0
je 0x14001f1ad
cmp dword [0x140041bf0], 0
jne 0x14001f1ad
xor ecx, ecx
call qword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x14001f1ad
xor ebx, ebx
mov qword [rsp + 0x30], rbx
lea ecx, [rbx + 0x10]
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov r13, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14001effa
mov word [rax], bx
mov qword [rax + 8], rbx
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14001effd
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [r13 + 8], rax
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14001effd
mov r13, rbx
mov edx, 1
mov rcx, r13
call fcn.14002ab70
mov r15, rax
test rax, rax
jne 0x14001f01e
lea rdx, str.Unable_to_open_source_file.
jmp 0x14001f197
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov r12, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14001f070
mov word [rax], bx
mov qword [rax + 8], rbx
lea rcx, [rbp + 0x2f0]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x14001f073
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [r12 + 8], rax
lea rdx, [rbp + 0x2f0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x14001f073
mov r12, rbx
mov edx, 1
mov rcx, r12
call fcn.14002ab70
test rax, rax
je 0x14001f11c
mov rcx, rax
call fcn.14002a9e0
mov rdi, qword [rsi + 0x40]
mov edx, 0xfffffffa
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbx, rax
mov r9d, 0x12c
lea r8, [rbp + 0x90]
mov edx, 0x80
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadStringA]
mov r9d, 0x12c
lea r8, [rsp + 0x60]
mov edx, 0xe72c
mov rcx, rbx
call qword [sym.imp.USER32.dll_LoadStringA]
mov r9d, 0x14
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.USER32.dll_MessageBoxA]
mov ebx, eax
cmp dword [0x140041bf4], 0
je 0x14001f111
cmp dword [0x140041bf0], 0
jne 0x14001f111
xor ecx, ecx
call qword [sym.imp.USER32.dll_PostQuitMessage]
cmp ebx, 7
je 0x14001f1ad
xor ebx, ebx
mov edx, 0xb
mov rcx, r12
call fcn.14002ab70
mov rdi, rax
test rax, rax
jne 0x14001f13a
lea rdx, str.Unable_to_create_destination_file.
jmp 0x14001f197
lea rdx, [rbp + 0x420]
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
lea r9, [rbp + 0x550]
xor r8d, r8d
lea rdx, [0x140032948]
lea rcx, [rbp + 0x420]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea rcx, [rbp + 0x550]
call fcn.14002ae90
mov qword [rsp + 0x48], rax
mov edx, 0xb
mov rcx, rax
call fcn.14002ab70
mov r14, rax
test rax, rax
jne 0x14001f1be
lea rdx, str.Unable_to_convert_file.
mov r9d, 0x40
lea r8, str.Spell_Utility
mov rcx, rsi
call qword [sym.imp.mfc120u.dll_Ordinal_8331]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x310]
jmp case.default.0x14001f208
mov dword [rsi + 0xee4], 1
mov dword [rsi + 0x158], ebx
inc dword [0x140041bf0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x147
mov rcx, qword [rsi + 0xe48]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 8
ja case.default.0x14001f208
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1f6a0]
add rax, rcx
jmp rax
mov r8, r14
lea rcx, [rbp + 0x1c0]
call fcn.140024590
movzx ebx, ax
test ebx, ebx
jne 0x14001f4ce
mov rdx, rdi
mov rcx, r14
call fcn.14000c9b0
movzx ebx, ax
jmp 0x14001f4ce
mov rcx, rdi
call fcn.140027680
test eax, eax
jle 0x14001f262
mov rdx, rdi
lea rcx, [rbp + 0x1c0]
call fcn.140024bf0
movzx ebx, ax
mov rcx, rdi
call fcn.140027770
jmp 0x14001f4ce
mov ebx, 0x6a
jmp 0x14001f4ce
mov edx, 1
mov r8, r14
mov rcx, r15
call fcn.140025180
jmp 0x14001f219
mov edx, 2
mov r8, r14
mov rcx, r15
call fcn.140025180
jmp 0x14001f219
mov edx, 4
mov r8, r14
mov rcx, r15
call fcn.140025180
jmp 0x14001f219
mov rdx, rdi
mov rcx, r15
call fcn.140024430
jmp 0x14001f22f
mov rdx, rdi
mov rcx, r15
call fcn.140024430
movzx ebx, ax
test ebx, ebx
jne 0x14001f4ce
mov rcx, rdi
call fcn.14002a9e0
xor ecx, ecx
mov edi, ecx
lea r9d, [rbx + 3]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.wtli.dll_wsupOpenFile]
cmp eax, 0x10b
jne 0x14001f318
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.wtli.dll_wsupConvertData]
neg eax
sbb ebx, ebx
and ebx, 0x6b
jmp 0x14001f31d
mov ebx, 0x6b
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.wtli.dll_wsupClose]
jmp 0x14001f4ce
mov edx, 9
mov r8, r14
mov rcx, r15
call fcn.140025180
movzx ebx, ax
test ebx, ebx
jne 0x14001f4ce
mov rcx, rdi
call fcn.14002a9e0
xor ecx, ecx
mov edi, ecx
lea r9d, [rbx + 3]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.wtli.dll_wsupCreateFile]
test eax, eax
jne 0x14001f318
xor edx, edx
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.14002ad10
mov ecx, ebx
call qword [sym.imp.MSVCR120.dll_malloc]
mov r10, rax
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x14001f3b4
lea eax, [rdi + 4]
mov edx, dword [rsp + 0x40]
jmp 0x14001f430
xor ecx, ecx
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x40]
mov r8d, ebx
mov rdx, rax
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14001f40c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001f3f0
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x14001f3f5
mov ecx, 0x106
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], dil
mov edx, dword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
mov rcx, r10
cmp word [r10], di
je 0x14001f42e
nop
not byte [rcx]
not byte [rcx + 1]
lea rcx, [rcx + 2]
cmp word [rcx], di
jne 0x14001f420
xor eax, eax
movzx ebx, ax
test ebx, ebx
jne 0x14001f31d
mov r8, qword [rsp + 0x30]
mov rcx, r10
call fcn.1400230a0
xor ecx, ecx
mov ebx, 0x6b
test eax, eax
cmove ecx, ebx
mov ebx, ecx
jmp 0x14001f31d
mov rcx, r15
call fcn.14002a9e0
mov r15, rbx
mov r9d, 1
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
xor r8d, r8d
xor edx, edx
mov rcx, r13
call qword [sym.imp.wtli.dll_wsupOpenFile]
mov ebx, eax
test eax, eax
jne 0x14001f4c9
mov rcx, rdi
call fcn.140027680
test eax, eax
jle 0x14001f4b4
mov rdx, rdi
mov rcx, qword [rsp + 0x30]
call fcn.1400232e0
mov ebx, 0x6b
test eax, eax
cmovne eax, ebx
mov ebx, eax
mov rcx, rdi
call fcn.140027770
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.wtli.dll_wsupClose]
jmp 0x14001f4ce
mov ebx, 0x6b
dec dword [0x140041bf0]
mov ecx, 0x64
mov r8d, ecx
lea rdx, [0x140032980]
call fcn.14001f840
mov rcx, r14
call fcn.14002a9e0
test rdi, rdi
je 0x14001f4fd
mov rcx, rdi
call fcn.14002a9e0
test r15, r15
je 0x14001f50a
mov rcx, r15
call fcn.14002a9e0
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rdi + 8]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov rcx, rdi
call fcn.14002af10
mov rcx, r13
call fcn.14002af10
mov rcx, r12
call fcn.14002af10
mov edx, ebx
mov rcx, qword [rsi + 0x40]
call fcn.140021b80
xor eax, eax
mov dword [rsi + 0xee4], eax
xor edx, edx
lea rcx, [rsi + 0x9d0]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
xor edx, edx
lea rcx, [rsi + 0x8f8]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
xor edx, edx
lea rcx, [rsi + 0x160]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
xor edx, edx
lea rcx, [rsi + 0xaa8]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0x820]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0x748]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0xd30]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0xc58]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0xb80]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0x598]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0x4c0]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0x670]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0xe08]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
mov edx, 1
lea rcx, [rsi + 0x3e8]
call qword [sym.imp.mfc120u.dll_Ordinal_4291]
xor r9d, r9d
xor r8d, r8d
mov edx, Ordinal_1030
mov rcx, qword [rsi + 0x350]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, Ordinal_1030
mov rcx, qword [rsi + 0x278]
call qword [sym.imp.USER32.dll_SendMessageW]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc120u.dll_Ordinal_1030]
mov rcx, qword [rbp + 0x680]
xor rcx, rsp
call fcn.14002c960
lea r11, [rsp + 0x790]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret