Function at 0x14001f400
Capabilities:
Copy file

Disassembly:
push rdi
sub rsp, 0x4a0
mov rax, qword [0x14012df80]
xor rax, rsp
mov qword [rsp + 0x470], rax
mov rdi, rcx
mov rcx, qword [rcx]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SETUPAPI.dll_SetupGetFileCompressionInfoW]
test eax, eax
jne 0x14001f820
cmp dword [rsp + 0x30], 1
jne 0x14001f820
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14001f463
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rdi]
lea rdx, [rsp + 0x260]
call sub.LZ32.dll_GetExpandedNameW
xor ecx, ecx
test eax, eax
setg cl
test rcx, rcx
jle 0x14001f81b
mov qword [rsp + 0x4b8], rbx
lea rdx, [rsp + 0x260]
mov rcx, rdi
mov qword [rsp + 0x498], rsi
mov qword [rsp + 0x490], r12
call fcn.14001e120
cmp word [rsp + 0x50], 0
movsxd rsi, eax
lea rax, [rsp + 0x50]
je 0x14001f4e0
nop
nop
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
cmp word [rax], 0
jne 0x14001f4c0
lea rcx, [rsp + 0x50]
cmp rcx, rax
ja 0x14001f517
nop
nop
movzx ecx, word [rax]
cmp cx, 0x2f
je 0x14001f517
cmp cx, 0x5c
je 0x14001f517
cmp cx, 0x3a
je 0x14001f517
lea rcx, [rsp + 0x50]
cmp rax, rcx
je 0x14001f565
lea rcx, [rsp + 0x50]
mov rdx, rax
call qword [sym.imp.USER32.dll_CharPrevW]
lea rcx, [rsp + 0x50]
cmp rcx, rax
jbe 0x14001f4e0
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov r8, rax
lea r12, [rdi + 0x258]
mov ebx, 0x104
mov rcx, r12
sub r8, r12
mov rdx, rbx
nop
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14001f56c
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14001f56c
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14001f540
jmp 0x14001f571
lea r8, [rsp + 0x50]
jmp 0x14001f523
test rdx, rdx
jne 0x14001f575
sub rcx, 2
test rsi, rsi
mov word [rcx], 0
jle 0x14001f7e7
test byte [rdi + 8], 4
jne 0x14001f7d6
mov qword [rsp + 0x4c0], rbp
mov edx, 0x8a8
mov ecx, 0x40
mov qword [rsp + 0x488], r13
mov qword [rsp + 0x480], r14
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, qword [rdi]
mov r8w, 0x20
mov rdx, rax
mov r13, rax
call sub.LZ32.dll_LZOpenFileW
mov rcx, qword [rdi + 0x18]
xor edx, edx
mov r14d, eax
call fcn.14001d310
mov r11, qword [rdi + 0x18]
lea rax, [rsp + 0x50]
sub r11, rax
mov edx, 0x100
lea rcx, [rsp + 0x50]
nop
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x14001f615
movzx eax, word [r11 + rcx]
test ax, ax
je 0x14001f615
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14001f5f0
jmp 0x14001f61a
test rdx, rdx
jne 0x14001f61e
sub rcx, 2
cmp word [rsp + 0x260], 0
mov word [rcx], 0
lea rax, [rsp + 0x260]
je 0x14001f652
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
cmp word [rax], 0
jne 0x14001f636
lea rcx, [rsp + 0x260]
cmp rcx, rax
ja 0x14001f692
movzx ecx, word [rax]
cmp cx, 0x2f
je 0x14001f692
cmp cx, 0x5c
je 0x14001f692
cmp cx, 0x3a
je 0x14001f692
lea rcx, [rsp + 0x260]
cmp rax, rcx
je 0x14001f6de
lea rcx, [rsp + 0x260]
mov rdx, rax
call qword [sym.imp.USER32.dll_CharPrevW]
lea rcx, [rsp + 0x260]
cmp rcx, rax
jbe 0x14001f652
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
lea rcx, [rsp + 0x50]
mov rdx, rax
call fcn.1400202c0
and dword [rdi + 8], 0xbfffffff
mov rcx, qword [rdi]
mov ebp, dword [rdi + 8]
lea rdx, [rsp + 0x50]
call fcn.1400cdd20
test eax, eax
je 0x14001f6e8
lea rcx, [rsp + 0x50]
call fcn.14001de50
test eax, eax
je 0x14001f6e8
test eax, eax
jle 0x14001f6f4
or dword [rdi + 8], 0x40000000
jmp 0x14001f6f4
lea rax, [rsp + 0x260]
jmp 0x14001f69b
or dword [rdi + 8], 0x60000000
mov ebp, 0x100
bt dword [rdi + 8], 0x1e
jae 0x14001f753
lea rcx, [rsp + 0x50]
mov edx, 0x100
call fcn.14001df40
lea rcx, [rsp + 0x50]
call fcn.14000fe50
lea rcx, [rdi + 0x4c]
mov r11, rax
sub r11, rcx
nop
lea rax, [rbx + 0x7ffffefa]
test rax, rax
je 0x14001f745
movzx eax, word [r11 + rcx]
test ax, ax
je 0x14001f745
mov word [rcx], ax
add rcx, 2
sub rbx, 1
jne 0x14001f720
jmp 0x14001f74a
test rbx, rbx
jne 0x14001f74e
sub rcx, 2
mov word [rcx], 0
lea rcx, [rsp + 0x50]
mov r8w, 0x1021
mov rdx, r13
call sub.LZ32.dll_LZOpenFileW
mov ecx, r14d
mov edx, eax
mov ebx, eax
call sub.LZ32.dll_LZCopy
xor esi, esi
mov ecx, ebx
test eax, eax
setg sil
call sub.LZ32.dll_LZClose
mov ecx, r14d
call sub.LZ32.dll_LZClose
bt dword [rdi + 8], 0x1e
mov r14, qword [rsp + 0x480]
jae 0x14001f7b4
mov r8, qword [rdi + 0x18]
lea rcx, [rdi + 0x4c]
mov r9d, ebp
mov rdx, r12
call fcn.14001e430
and dword [rdi + 8], 0xbfffffff
movsxd rsi, eax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r13, qword [rsp + 0x488]
mov rbp, qword [rsp + 0x4c0]
test rsi, rsi
jle 0x14001f7e7
mov eax, dword [rsp + 0x34]
add dword [rdi + 0x20], 1
add qword [rdi + 0x28], rax
mov rbx, qword [rsp + 0x4b8]
mov r12, qword [rsp + 0x490]
mov rax, rsi
mov rsi, qword [rsp + 0x498]
mov rcx, qword [rsp + 0x470]
xor rcx, rsp
call fcn.1400cd6e0
add rsp, 0x4a0
pop rdi
ret
mov rax, rcx
jmp 0x14001f802
or rax, 0xffffffffffffffff
jmp 0x14001f802