Function at 0x140003c48
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x1403bbc88]
xor rax, rsp
mov qword [rbp + 0x70], rax
movsxd rbx, ecx
lea r14, str.Version
mov rcx, r14
mov qword [rsp + 0x40], rdx
mov r13, rdx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
cmp ebx, 4
ja 0x140004161
xor r12d, r12d
test r13, r13
je 0x140004161
imul rdx, rbx, 0x34
lea rax, [0x140000000]
mov rsi, rbx
lea rax, [rax + 0x3bca30]
add rax, rdx
mov qword [rsp + 0x58], rax
cmp dword [rax], r12d
je 0x140003cdf
lea r8d, [r12 + 0x34]
mov rdx, rax
mov rcx, r13
call fcn.14000d0e0
mov ebx, r12d
jmp 0x140004166
mov ebx, 0xfffffff5
test rdi, rdi
jne 0x140003d06
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x140003d06
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
lea rdx, str.VerQueryValueW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x140003d49
lea r9, str.VerQueryValueW
lea r8, str.Unable_to_locate__s___in__s_n
mov qword [rsp + 0x20], r14
lea rdx, str.get_version_info
mov ecx, 3
call fcn.1400082ac
jmp 0x140004166
test rdi, rdi
jne 0x140003d6b
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x140003d6b
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
lea rdx, str.GetFileVersionInfoW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x140003d8e
lea r9, str.GetFileVersionInfoW
jmp 0x140003d27
test rdi, rdi
jne 0x140003db0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x140003db0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
lea rdx, str.GetFileVersionInfoSizeW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
test rax, rax
jne 0x140003dd4
lea r9, str.GetFileVersionInfoSizeW
jmp 0x140003d27
mov r14d, r12d
lea rbx, str.XV8_
lea r13, [0x140000000]
mov rax, qword [r13 + rsi*8 + 0x3ae530]
lea rdx, str._NULL_
test rax, rax
lea rcx, str._NULL_
cmovne rdx, rax
cmp qword [rbx], r12
cmovne rcx, qword [rbx]
call fcn.14001aa70
test eax, eax
je 0x140003e1f
inc r14d
add rbx, 0x28
cmp r14d, 0x18
jl 0x140003de5
mov r13, qword [rsp + 0x40]
cmp r14d, 0x18
jne 0x140003e34
mov ebx, 0xfffffffb
jmp 0x140004166
lea rcx, str.TEMP
call fcn.140004198
mov rsi, rax
test rax, rax
jne 0x140003e68
lea r8, str.Unable_to_use_TEMP_to_extract_file
lea rdx, str.get_version_info
lea ecx, [rax + 2]
call fcn.1400082ac
mov ebx, 0xfffffff5
jmp 0x140004166
mov edx, 1
mov rcx, rsi
call fcn.1400032ec
mov ebx, eax
mov rcx, rsi
test eax, eax
je 0x140003e88
call fcn.14001b038
jmp 0x140004166
call fcn.14001ad10
inc rax
mov ebx, 0x104
cmp rax, rbx
jae 0x140003ea8
mov rcx, rsi
call fcn.14001ad10
lea r8, [rax + 1]
jmp 0x140003eab
mov r8, rbx
mov rdx, rsi
lea rcx, [rsp + 0x60]
call fcn.14000d0e0
mov rcx, rsi
call fcn.14001ad10
inc rax
cmp rax, rbx
jae 0x140003eda
mov rcx, rsi
call fcn.14001ad10
lea rcx, [rsp + 0x60]
add rcx, rax
jmp 0x140003ede
lea rcx, [rbp + 0x63]
mov byte [rcx], r12b
mov rcx, rsi
call fcn.14001b038
lea rcx, [0x1403862f4]
call fcn.14001ad10
lea rcx, [rsp + 0x60]
mov rbx, rax
call fcn.14001ad10
mov esi, 0x103
mov ecx, esi
sub rcx, rax
lea rax, [rbx + 1]
cmp rax, rcx
jae 0x140003f27
lea rcx, [0x1403862f4]
call fcn.14001ad10
lea r8, [rax + 1]
jmp 0x140003f37
lea rcx, [rsp + 0x60]
call fcn.14001ad10
mov r8, rsi
sub r8, rax
lea rdx, [0x1403862f4]
lea rcx, [rsp + 0x60]
call fcn.14001add0
movsxd rax, r14d
lea r14, [rax + rax*4]
lea rax, [0x140000000]
mov rcx, qword [rax + r14*8 + 0x385298]
test rcx, rcx
je 0x140003fd3
call fcn.14001ad10
lea rcx, [rsp + 0x60]
mov rbx, rax
call fcn.14001ad10
mov rcx, rsi
sub rcx, rax
lea rax, [rbx + 1]
cmp rax, rcx
jae 0x140003fa8
lea rax, [0x140000000]
mov rcx, qword [rax + r14*8 + 0x385298]
test rcx, rcx
jne 0x140003f9d
mov rax, r12
jmp 0x140003fa2
call fcn.14001ad10
lea rsi, [rax + 1]
jmp 0x140003fb5
lea rcx, [rsp + 0x60]
call fcn.14001ad10
sub rsi, rax
mov r8, rsi
lea rcx, [rsp + 0x60]
lea rsi, [0x140000000]
mov rdx, qword [rsi + r14*8 + 0x385298]
call fcn.14001add0
jmp 0x140003fda
lea rsi, [0x140000000]
lea rdx, [0x140386404]
lea rcx, [rsp + 0x60]
call fcn.140003a44
mov rbx, rax
test rax, rax
jne 0x14000401f
xor ecx, ecx
call fcn.140007e4c
lea r9, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r8, str.Failed_to_create_file__s___s_
lea rdx, str.get_version_info
lea ecx, [rbx + 2]
call fcn.1400082ac
jmp 0x140003e5e
mov r8, qword [rsi + r14*8 + 0x3852a0]
mov r9, rbx
mov rcx, qword [rsi + r14*8 + 0x3852b0]
mov edx, 1
call fcn.14001cc9c
mov rcx, rbx
call fcn.14001b854
lea rcx, [rsp + 0x60]
call fcn.1400052f0
xor edx, edx
mov rcx, rax
mov r12, rax
call r15
mov ecx, eax
mov esi, eax
call fcn.14001b04c
xor ebx, ebx
mov r15, rax
test rax, rax
je 0x1400040fd
mov r9, rax
mov r8d, esi
xor edx, edx
mov rcx, r12
call qword [rsp + 0x48]
test eax, eax
je 0x1400040fd
lea r9, [rsp + 0x38]
mov rcx, r15
lea r8, [rsp + 0x30]
lea rdx, [0x140386428]
call qword [rsp + 0x50]
test eax, eax
je 0x1400040fd
movabs rcx, 0x2b6109100
lea rax, [0x140000000]
mov rax, qword [rax + r14*8 + 0x3852a8]
lea esi, [rbx + 0x34]
add rax, rcx
mov r8d, esi
imul rcx, rax, 0x989680
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x30], ecx
mov rax, qword [rsp + 0x30]
sar rcx, 0x20
mov dword [rax + 0x2c], ecx
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
call fcn.14000d0e0
mov rdx, qword [rsp + 0x30]
mov r8d, esi
mov rcx, r13
call fcn.14000d0e0
jmp 0x14000411a
lea r8, str.Unable_to_allocate_buffer_for_version_info
mov ecx, 2
lea rdx, str.get_version_info
call fcn.1400082ac
mov ebx, 0xfffffff5
mov rcx, r12
call fcn.14001b038
mov rcx, r15
call fcn.14001b038
lea rcx, [rsp + 0x60]
call fcn.1400052f0
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, eax
test rsi, rsi
je 0x140004156
mov rcx, rsi
call fcn.14001b038
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140004166
mov ebx, 0xfffffffe
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, ebx
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.14000c340
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret