Function at 0x408da0
Capabilities:
Copy file
Get common file path

Disassembly:
mov rax, rsp
sub rsp, 0x328
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov qword [rax - 8], rbp
mov qword [rax - 0x10], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
mov rax, qword [0x00454a00]
xor rax, rsp
mov qword [rsp + 0x2e0], rax
mov dword [rsp + 0x38], r8d
mov rdi, rdx
mov qword [rsp + 0x50], rdx
mov rsi, rcx
mov qword [rsp + 0x40], rcx
call fcn.00413cb8
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x408e19
mov ecx, 0x80004005
call fcn.00401000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
call fcn.00413cb8
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x408e47
mov ecx, 0x80004005
call fcn.00401000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x20], 1
mov edx, 0x104
lea rcx, [rsp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x408ed1
lea rcx, str.Error_:_Get_windows_path_error_n
call fcn.004042c0
nop
lea rdx, [rbx - 0x18]
mov r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x408ea6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x408ec7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 0x4e25
jmp 0x409bc3
xor r14d, r14d
mov dword [rsp + 0x24], r14d
xor eax, eax
mov qword [rsp + 0x28], rax
lea r15, [r14 - 1]
cmp dword [rsp + 0x38], eax
jbe 0x409b83
lea r12, [0x00439c94]
nop
nop
nop
imul rax, rax, 0x1cc
mov qword [rsp + 0x58], rax
mov eax, dword [rax + rdi + 0x1c4]
test al, 1
je 0x408f24
cmp byte [0x00456478], 0
je 0x409b2a
test al, 2
je 0x408f49
cmp byte [0x00456477], 0
je 0x409b23
mov eax, dword [0x0044a00c]
cmp eax, 6
je 0x408f49
cmp eax, 7
jne 0x409b1c
test rsi, rsi
jne 0x408f52
xor ecx, ecx
jmp 0x408f63
xor eax, eax
mov rcx, r15
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov r8d, ecx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.004025a0
xor eax, eax
mov rcx, r15
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
lea r13, [rcx - 1]
mov rbx, r12
mov rsi, r12
mov rbp, qword [rsp + 0x30]
sub rsi, rbp
mov r12d, dword [rbp - 0x10]
lea edi, [r12 + rcx - 1]
mov edx, 1
sub edx, dword [rbp - 8]
mov eax, dword [rbp - 0xc]
sub eax, edi
or eax, edx
jge 0x408fbd
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.00402030
mov rbp, qword [rsp + 0x30]
cmp rsi, r12
ja 0x408fc6
lea rbx, [rsi + rbp]
movsxd rdx, r13d
lea rcx, [r12 + rbp]
mov r9, rdx
mov r8, rbx
call fcn.00421090
test edi, edi
js 0x409b78
cmp edi, dword [rbp - 0xc]
jg 0x409b78
mov dword [rbp - 0x10], edi
movsxd rax, edi
mov byte [rax + rbp], 0
mov r12d, r14d
imul r12, r12, 0x1cc
mov rcx, qword [rsp + 0x50]
add r12, rcx
jne 0x40900b
xor ebx, ebx
jmp 0x40901c
xor eax, eax
mov rcx, r15
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
lea rbx, [rcx - 1]
mov r13, r12
mov rsi, r12
sub rsi, rbp
mov r14d, dword [rbp - 0x10]
lea edi, [r14 + rbx]
mov edx, 1
sub edx, dword [rbp - 8]
mov eax, dword [rbp - 0xc]
sub eax, edi
or eax, edx
jge 0x40904f
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.00402030
mov rbp, qword [rsp + 0x30]
cmp rsi, r14
ja 0x409058
lea r13, [rsi + rbp]
movsxd rdx, ebx
lea rcx, [r14 + rbp]
mov r9, rdx
mov r8, r13
call fcn.00421090
test edi, edi
js 0x409b6d
cmp edi, dword [rbp - 0xc]
jg 0x409b6d
mov dword [rbp - 0x10], edi
movsxd rax, edi
mov byte [rax + rbp], 0
lea rdx, [rsp + 0x90]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x4090d6
mov r8, rbp
lea rdx, str.Info__:_fail_to_find_files___s__n
lea rcx, [rsp + 0x48]
call fcn.00403500
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.004042c0
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x40]
lea r12, [0x00439c94]
jmp 0x409b42
mov r10d, 0xf
mov qword [rsp + 0x88], r10
xor r8d, r8d
mov qword [rsp + 0x80], r8
mov byte [rsp + 0x70], r8b
xor eax, eax
mov rcx, r15
lea rdi, [rsp + 0x1d0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
cmp rcx, 0xfffffffffffffffe
jbe 0x409128
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x40914c
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x40917d
test rdi, rdi
jne 0x40917d
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x4091d4
test rdi, rdi
je 0x4091d4
lea rcx, [rsp + 0x70]
cmp r10, 0x10
cmovae rcx, qword [rsp + 0x70]
mov r9, rdi
lea r8, [rsp + 0x1d0]
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax + rdi], 0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
lea r13, [r12 + 0x40]
lea rdi, [0x0043a340]
mov rsi, r13
mov ecx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
repe cmpsb byte [rsi], byte [rdi]
jne 0x4091fa
cmp byte [rsp + 0x20], 1
jne 0x4091fa
mov eax, 1
jmp 0x4091fc
xor eax, eax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov dword [rcx + rdx + 0x1c0], eax
test eax, eax
je 0x4094b0
lea rax, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
lea rsi, str._system32
cmp rsi, rax
jb 0x4093ab
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
add rax, r8
cmp rax, rsi
jbe 0x4093ab
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
mov rbx, rsi
sub rbx, rax
cmp r8, rbx
jae 0x40927d
call fcn.00436d70
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
mov rax, r8
sub rax, rbx
mov esi, 9
cmp rax, rsi
cmovb rsi, rax
mov rax, r15
sub rax, r8
cmp rax, rsi
jbe 0x4092a3
lea rax, [r8 + rsi]
cmp rax, r8
jae 0x4092b8
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
test rsi, rsi
je 0x409789
lea rdi, [r8 + rsi]
cmp rdi, 0xfffffffffffffffe
jbe 0x4092e0
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x409304
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409338
test rdi, rdi
jne 0x409338
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
test rdi, rdi
je 0x409789
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
cmp r10, 0x10
cmovae rdx, rcx
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [rax + r8]
lea r8, [rdx + rbx]
mov r9, rsi
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax + rdi], 0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
mov rax, r15
sub rax, r8
cmp rax, 9
jbe 0x4093c0
lea rax, [r8 + 9]
cmp rax, r8
jae 0x4093d5
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
lea rdi, [r8 + 9]
cmp rdi, 0xfffffffffffffffe
jbe 0x4093f4
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x409418
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x40944c
test rdi, rdi
jne 0x40944c
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
test rdi, rdi
je 0x409789
lea rcx, [rsp + 0x70]
cmp r10, 0x10
cmovae rcx, qword [rsp + 0x70]
sub r10, r8
add rcx, r8
mov r9d, 9
mov r8, rsi
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax + rdi], 0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
lea rdx, [r12 + 0x80]
xor eax, eax
mov rcx, r15
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
cmp rcx, 1
je 0x4094f9
mov rcx, r15
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x68]
call fcn.00402e60
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
lea rax, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
lea rsi, str._system32drivers
cmp rsi, rax
jb 0x40968f
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
add rax, r8
cmp rax, rsi
jbe 0x40968f
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
mov rbx, rsi
sub rbx, rax
cmp r8, rbx
jae 0x409561
call fcn.00436d70
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
mov rax, r8
sub rax, rbx
mov esi, 0x11
cmp rax, rsi
cmovb rsi, rax
mov rax, r15
sub rax, r8
cmp rax, rsi
jbe 0x409587
lea rax, [r8 + rsi]
cmp rax, r8
jae 0x40959c
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
test rsi, rsi
je 0x409789
lea rdi, [r8 + rsi]
cmp rdi, 0xfffffffffffffffe
jbe 0x4095c4
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x4095e8
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x40961c
test rdi, rdi
jne 0x40961c
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
test rdi, rdi
je 0x409789
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
cmp r10, 0x10
cmovae rdx, rcx
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [r8 + rax]
lea r8, [rbx + rdx]
mov r9, rsi
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rdi + rax], 0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
mov rax, r15
sub rax, r8
cmp rax, 0x11
jbe 0x4096a4
lea rax, [r8 + 0x11]
cmp rax, r8
jae 0x4096b9
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
lea rdi, [r8 + 0x11]
cmp rdi, 0xfffffffffffffffe
jbe 0x4096d8
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x4096fc
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x40972d
test rdi, rdi
jne 0x40972d
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x409789
test rdi, rdi
je 0x409789
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
sub r10, r8
lea rcx, [r8 + rax]
mov r9d, 0x11
mov r8, rsi
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rdi + rax], 0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
lea rax, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
lea r12, [0x00439c94]
cmp r12, rax
jb 0x4098ff
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
add rax, r8
cmp rax, r12
jbe 0x4098ff
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
mov rbx, r12
sub rbx, rax
cmp r8, rbx
jae 0x4097f1
call fcn.00436d70
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
mov rax, r8
sub rax, rbx
mov esi, 1
cmp rax, rsi
cmovb rsi, rax
mov rax, r15
sub rax, r8
cmp rax, rsi
jbe 0x409817
lea rax, [r8 + rsi]
cmp rax, r8
jae 0x40982c
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
test rsi, rsi
je 0x4099d9
lea rdi, [r8 + rsi]
cmp rdi, 0xfffffffffffffffe
jbe 0x409854
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x409878
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x40989c
test rdi, rdi
jne 0x40989c
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
jmp 0x4099d9
test rdi, rdi
je 0x4099d9
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
cmp r10, 0x10
cmovae rdx, rcx
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [r8 + rax]
lea r8, [rbx + rdx]
mov r9, rsi
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rdi + rax], 0
jmp 0x4099d9
mov rax, r15
sub rax, r8
cmp rax, 1
jbe 0x409914
lea rax, [r8 + 1]
cmp rax, r8
jae 0x409929
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
lea rdi, [r8 + 1]
cmp rdi, 0xfffffffffffffffe
jbe 0x409948
call fcn.00436ca0
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
cmp r10, rdi
jae 0x40996c
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.00402120
mov r10, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
jmp 0x40998d
test rdi, rdi
jne 0x40998d
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax], dil
jmp 0x4099d9
test rdi, rdi
je 0x4099d9
lea rax, [rsp + 0x70]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x70]
sub r10, r8
lea rcx, [r8 + rax]
mov r9d, 1
mov r8, r12
mov rdx, r10
call fcn.00421090
mov qword [rsp + 0x80], rdi
lea rax, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rax, qword [rsp + 0x70]
mov byte [rax + rdi], 0
xor eax, eax
mov rcx, r15
lea rdi, [rsp + 0xbc]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0xbc]
lea rcx, [rsp + 0x68]
call fcn.00402e60
lea r9, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae r9, qword [rsp + 0x70]
mov r8, rbp
lea rdx, str._nInfo__:_Copy_file___s________s___n
lea rcx, [rsp + 0x48]
call fcn.00403500
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.004042c0
lea rdx, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rdx, qword [rsp + 0x70]
xor r8d, r8d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x409a98
lea rcx, str.Error_:_Copy__file_error._n
call fcn.004042c0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
cmp qword [rsp + 0x88], 0x10
jb 0x409b31
mov rcx, qword [rsp + 0x70]
call fcn.004135ec
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x40]
jmp 0x409b42
lea rcx, str.Info__:_Copy_file_OK._n
call fcn.004042c0
lea rdi, [0x0043a340]
mov rsi, r13
mov ecx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
repe cmpsb byte [rsi], byte [rdi]
jne 0x409ac5
cmp byte [rsp + 0x20], 1
jne 0x409ac5
mov eax, 1
jmp 0x409ac7
xor eax, eax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov dword [rcx + rdx + 0x1c0], eax
test eax, eax
je 0x409af1
mov byte [rsp + 0x20], 0
add dword [rsp + 0x24], 0xffffffff
mov rdi, qword [rsp + 0x28]
sub rdi, 1
jmp 0x409af6
mov rdi, qword [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
cmp qword [rsp + 0x88], 0x10
jb 0x409b3d
mov rcx, qword [rsp + 0x70]
call fcn.004135ec
mov rsi, qword [rsp + 0x40]
jmp 0x409b42
mov rdi, qword [rsp + 0x28]
jmp 0x409b42
mov rdi, qword [rsp + 0x28]
jmp 0x409b42
mov rdi, qword [rsp + 0x28]
jmp 0x409b42
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x40]
jmp 0x409b42
mov rsi, qword [rsp + 0x40]
mov eax, dword [rsp + 0x24]
add eax, 1
mov dword [rsp + 0x24], eax
add rdi, 1
mov qword [rsp + 0x28], rdi
cmp eax, dword [rsp + 0x38]
mov r14d, eax
mov rax, rdi
mov rdi, qword [rsp + 0x50]
jb 0x408f00
jmp 0x409b83
mov ecx, 0x80070057
call fcn.00401000
int3
mov ecx, 0x80070057
call fcn.00401000
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x409ba0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
add r15d, 0xffffffff
test r15d, r15d
jg 0x409bc1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rcx, qword [rsp + 0x2e0]
xor rcx, rsp
call fcn.00420600
mov rbx, qword [rsp + 0x348]
mov rbp, qword [rsp + 0x320]
mov rsi, qword [rsp + 0x318]
mov rdi, qword [rsp + 0x310]
mov r12, qword [rsp + 0x308]
mov r13, qword [rsp + 0x300]
mov r14, qword [rsp + 0x2f8]
mov r15, qword [rsp + 0x2f0]
add rsp, 0x328
ret