Function at 0x14007f7c0
Capabilities:
Create directory
Set file attributes
Write file on windows

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x938]
sub rsp, 0xa10
mov qword [rbp + 0x130], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x14017c430]
xor rax, rsp
mov qword [rbp + 0x8e0], rax
mov rsi, rcx
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
lea rcx, [rbp + 0x150]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
xor r13d, r13d
mov qword [rbp + 0x158], r13
movaps xmm0, xmmword [rbp + 0x150]
movdqa xmmword [rbp + 0x200], xmm0
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x200]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
movsd xmm7, qword [0x140132ba8]
movsd xmm6, qword [rbp + 0x70]
test eax, eax
je 0x14007f88b
movzx eax, word [rbp + 0x20e]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
addsd xmm6, xmm0
movsd qword [rbp + 0x70], xmm6
lea rdx, [rbp + 0x190]
movapd xmm0, xmm6
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x14007f8b3
mov r8d, eax
lea rdx, [rbp + 0x190]
movapd xmm0, xmm6
call fcn.140016470
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov r8d, 0xa
lea rdx, [rbp + 0x2b0]
mov ecx, dword [rbp + 0x10]
call fcn.1400da6c8
xor eax, eax
or r12, 0xffffffffffffffff
mov rcx, r12
lea rdi, [rbp + 0x2b0]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14007f959
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14007f9df
cmp dword [rdx + 0x10], eax
jge 0x14007f92b
cmp dword [rbx - 0xc], eax
jge 0x14007f91e
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov dword [rbx - 0x10], r13d
mov word [rbx], r13w
jmp 0x14007f9df
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14007f942
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
jmp 0x14007f9df
mov r14d, dword [rbx - 0x10]
lea r13, [rbp + 0x2b0]
sub r13, rbx
sar r13, 1
test ecx, ecx
jns 0x14007f979
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14007f99b
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.1400020c0
mov rbx, qword [rsp + 0x40]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r13, r14
lea r14, [rax + rax]
mov r9, r14
ja 0x14007f9bf
lea r8, [rbx + r13*2]
call fcn.1400d4ebc
jmp 0x14007f9cb
lea r8, [rbp + 0x2b0]
call fcn.1400d4e34
cmp edi, dword [rbx - 0xc]
jg 0x1400817cb
mov dword [rbx - 0x10], edi
xor r13d, r13d
mov word [r14 + rbx], r13w
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 0xa
lea rdx, [rbp + 0x2b0]
mov ecx, dword [rbp + 0x14]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x2b0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x2b0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, reloc.msi.dll_MsiGetActiveDatabase
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov dword [rbp + 0x158], 0x3b0017
mov dword [rbp + 0x15c], 0x3e7003b
movaps xmm0, xmmword [rbp + 0x150]
movdqa xmmword [rbp + 0x220], xmm0
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x220]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
movsd xmm6, qword [rbp + 0x48]
test eax, eax
je 0x14007faa2
movzx eax, word [rbp + 0x22e]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
addsd xmm6, xmm0
movsd qword [rbp + 0x48], xmm6
lea rdx, [rbp + 0x210]
movapd xmm0, xmm6
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x14007faca
mov r8d, eax
lea rdx, [rbp + 0x210]
movapd xmm0, xmm6
call fcn.140016470
lea rdx, [rbp + 0xc8]
lea rcx, [rbp + 0x210]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov rcx, qword [rbp + 0xc8]
mov qword [rbp + 0x10], rcx
mov r8d, 0xa
lea rdx, [rbp + 0x2b0]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x2b0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x2b0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 0xa
lea rdx, [rbp + 0x2b0]
mov ecx, dword [rbp + 0x14]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x2b0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x2b0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 7
lea rbx, [0x14012b498]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov eax, dword [rsi + 0x148]
dec eax
je 0x1400810a3
dec eax
je 0x140080739
dec eax
je 0x14008019c
dec eax
jne 0x14008179c
lea rcx, [rbp - 0x20]
call fcn.1400853d0
nop
lea r8, [0x14012b480]
lea rdx, [0x14012f6a8]
lea rcx, [rbp - 0x20]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rbp - 0x20]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor ebx, ebx
mov r13d, ebx
mov dword [rsp + 0x48], ebx
mov r15d, ebx
mov qword [rbp - 0x68], rbx
cmp qword [rsi + 0xe8], rbx
jbe 0x140080193
mov edi, ebx
mov r14d, ebx
mov qword [rsp + 0x68], rbx
mov rcx, qword [rbp - 0x20]
add rcx, 0xffffffffffffffe8
call fcn.140001d80
add rax, 0x18
mov qword [rbp - 0x40], rax
cmp rdi, qword [rsi + 0xe8]
jae 0x140080188
imul rdi, rdi, 0x78
add rdi, qword [rsi + 0xe0]
lea rcx, [rdi + 8]
lea rdx, [rbp + 0xb8]
call fcn.1400376c0
nop
lea rcx, [0x14012b498]
mov qword [rsp + 0x20], rcx
mov r9, qword [rax]
mov r8, qword [rbp - 0x20]
lea rdx, str._s_s._s
lea rcx, [rbp - 0x40]
call fcn.140016060
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14007fcb6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
lea rax, vtable.ATL::CImage.0
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rbx
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], 0
mov qword [rbp + 0x100], 0
mov word [rbp + 0x108], 0
mov dword [rbp + 0x10c], r12d
mov dword [rbp + 0x110], 0xffffffff
mov qword [rbp + 0x118], rbx
mov dword [rbp + 0x120], ebx
mov qword [rbp + 0x128], rbx
lea rcx, [0x140181720]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [0x140181748]
lea rcx, [0x140181720]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rbx, qword [rbp - 0x40]
mov rdx, rbx
lea rcx, [rbp + 0xe0]
call fcn.14007e900
test eax, eax
jne 0x14008011f
cmp qword [rbp + 0xe8], rax
setne al
test eax, eax
je 0x14008017d
mov r14d, dword [rbp + 0xfc]
mov r15d, dword [rbp + 0xf8]
xor r9d, r9d
lea r8d, [r9 + 1]
lea rdx, [0x14012b488]
lea rcx, [rsp + 0x40]
call fcn.1400850c0
mov rdi, qword [rsp + 0x40]
cmp dword [rdi - 0x10], 0
jle 0x140080116
lea rcx, [rsp + 0x78]
call fcn.1400853d0
nop
mov rax, qword [0x1401836f8]
test rax, rax
je 0x14007fdd3
cmp dword [rax + 0x2a0], 0
je 0x14007fdd3
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov rdx, qword [rcx + rsi + 0x78]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.14003bd50
xor r8d, r8d
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea r8, [0x14012b478]
lea rdx, [0x14012f530]
lea rcx, [rsp + 0x78]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x90], rax
mov r9, rdi
mov r8, qword [rsp + 0x78]
lea rdx, [0x14012f290]
lea rcx, [rbp + 0x90]
call fcn.140016060
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, qword [rbp + 0x90]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x74], 0x19
movsxd rcx, dword [rbx - 0x10]
add rcx, rcx
mov qword [rbp + 0x80], rcx
add ecx, 0x1b
mov dword [rsp + 0x74], ecx
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x68]
cmp rax, qword [rsi + 0xe8]
jae 0x140080172
mov rax, qword [rsi + 0xe0]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax + 0x28]
mov qword [rsp + 0x20], rax
mov r9d, r15d
mov r8d, r14d
lea rdx, str.BMP___dx_d___db
lea rcx, [rbp - 0x30]
call fcn.140016060
mov rdi, qword [rbp - 0x30]
mov ecx, dword [rdi - 0x10]
mov eax, dword [rsp + 0x74]
lea ecx, [rax + rcx*2]
mov dword [rsp + 0x74], ecx
xor r14d, r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
lea r8d, [r14 + 4]
lea rdx, [rsp + 0x74]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r11, qword [rsi]
movsxd rax, dword [r11 + 4]
lea rcx, [rax + rsi + 0x18]
test rcx, rcx
je 0x14007ff65
add rcx, 8
jmp 0x14007ff68
mov rcx, r14
lea rdx, [rbp + 0x230]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
movaps xmm5, xmmword [rbp + 0x230]
movdqa xmmword [rbp + 0x270], xmm5
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x270]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov byte [rsp + 0x4d], 1
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, 1
lea rdx, [rsp + 0x4d]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [rbp + 0x58], r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, 4
lea rdx, [rbp + 0x58]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, 2
lea rdx, [rbp + 0x80]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rbx - 8], 1
jle 0x14008001e
mov edx, dword [rbx - 0x10]
lea rcx, [rbp - 0x40]
call fcn.140001fb0
mov rbx, qword [rbp - 0x40]
xor r8d, r8d
mov edx, dword [rbp + 0x80]
mov rcx, rbx
call fcn.14009c130
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, dword [rbp + 0x80]
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, dword [rdi - 0x10]
cmp dword [rdi - 8], 1
jle 0x140080064
mov edx, ebx
lea rcx, [rbp - 0x30]
call fcn.140001fb0
mov rdi, qword [rbp - 0x30]
lea edx, [rbx + rbx]
xor r8d, r8d
mov rcx, rdi
call fcn.14009c130
mov ebx, dword [rdi - 0x10]
cmp dword [rdi - 8], 1
jle 0x14008008a
mov edx, ebx
lea rcx, [rbp - 0x30]
call fcn.140001fb0
mov rdi, qword [rbp - 0x30]
lea r8d, [rbx + rbx]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400800ca
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400800ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14008010d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov r13d, dword [rsp + 0x48]
mov rbx, qword [rbp - 0x40]
mov r14, qword [rsp + 0x68]
mov r15, qword [rbp - 0x68]
lea rcx, [rbp + 0xe0]
call fcn.14007e640
nop
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140080147
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
inc r13d
mov dword [rsp + 0x48], r13d
inc r15
mov qword [rbp - 0x68], r15
add r14, 0x78
mov qword [rsp + 0x68], r14
movsxd rdi, r13d
cmp rdi, qword [rsi + 0xe8]
jae 0x140080193
xor ebx, ebx
jmp 0x14007fc32
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov ecx, 0x80004005
call fcn.1400022b0
nop
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov rdx, qword [rbp - 0x20]
jmp 0x140081780
lea rcx, [rbp - 0x38]
call fcn.1400853d0
nop
lea r8, [0x14012b480]
lea rdx, [0x14012f6a8]
lea rcx, [rbp - 0x38]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rbp - 0x38]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ebx, r13d
mov dword [rsp + 0x48], ebx
mov r15, r13
cmp qword [rsi + 0xe8], 0
jbe 0x140080730
mov rdi, r13
nop word [rax + rax]
mov rcx, qword [rbp - 0x38]
add rcx, 0xffffffffffffffe8
call fcn.140001d80
add rax, 0x18
mov qword [rbp - 0x58], rax
cmp rdi, qword [rsi + 0xe8]
jae 0x140080725
imul rdi, rdi, 0x78
add rdi, qword [rsi + 0xe0]
lea rcx, [rdi + 8]
lea rdx, [rbp + 0xd0]
call fcn.1400376c0
nop
lea rcx, [0x14012b498]
mov qword [rsp + 0x20], rcx
mov r9, qword [rax]
mov r8, qword [rbp - 0x38]
lea rdx, str._s_s._s
lea rcx, [rbp - 0x58]
call fcn.140016060
nop
mov rdx, qword [rbp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140080284
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x18], rax
xor r9d, r9d
lea r8d, [r9 + 1]
lea rdx, [0x14012b488]
lea rcx, [rbp + 0x18]
call fcn.1400850c0
mov rdi, qword [rbp + 0x18]
cmp dword [rdi - 0x10], 0
jle 0x14008068a
lea rcx, [rbp - 0x78]
call fcn.1400853d0
nop
mov rax, qword [0x1401836f8]
test rax, rax
je 0x1400802fa
cmp dword [rax + 0x2a0], 0
je 0x1400802fa
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov rdx, qword [rcx + rsi + 0x78]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x78]
call fcn.14003bd50
xor r8d, r8d
mov rdx, qword [rbp - 0x78]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea r8, [0x14012b478]
lea rdx, [0x14012f530]
lea rcx, [rbp - 0x78]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rbp - 0x78]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x98], rax
mov r9, rdi
mov r8, qword [rbp - 0x78]
lea rdx, [0x14012f290]
lea rcx, [rbp + 0x98]
call fcn.140016060
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rbx, qword [rbp + 0x98]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rbp - 0x44], 0x19
mov rdi, qword [rbp - 0x58]
movsxd rcx, dword [rdi - 0x10]
add rcx, rcx
mov qword [rbp + 0x20], rcx
lea edx, [rcx + 0x1b]
mov dword [rbp - 0x44], edx
cmp r15, qword [rsi + 0xe8]
jae 0x14008071a
mov rax, qword [rsi + 0xe0]
mov rax, qword [r13 + rax + 0x18]
mov ecx, dword [rax - 0x10]
lea eax, [rcx + rcx]
mov dword [rsp + 0x68], eax
add edx, eax
mov dword [rbp - 0x44], edx
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x5c]
mov r8d, 4
lea rdx, [rbp - 0x44]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
lea r8, [rbp + 0x260]
lea rdx, [rbp + 0x2a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x5c]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x260]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov byte [rsp + 0x4e], 3
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x5c]
mov r8d, 1
lea rdx, [rsp + 0x4e]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor eax, eax
mov dword [rbp + 0x38], eax
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x5c]
lea r8d, [rax + 4]
lea rdx, [rbp + 0x38]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x5c]
mov r8d, 2
lea rdx, [rbp + 0x20]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rdi - 8], 1
jle 0x1400804f8
mov edx, dword [rdi - 0x10]
lea rcx, [rbp - 0x58]
call fcn.140001fb0
mov rdi, qword [rbp - 0x58]
mov qword [rbp - 8], rdi
cmp dword [rdi - 8], 1
jle 0x140080512
mov edx, dword [rdi - 0x10]
lea rcx, [rbp - 0x58]
call fcn.140001fb0
mov rdi, qword [rbp - 0x58]
xor r8d, r8d
mov edx, dword [rbp + 0x20]
mov rcx, rdi
call fcn.14009c130
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.1400d4f10
test eax, eax
js 0x14008070f
cmp eax, dword [rdi - 0xc]
jg 0x14008070f
mov dword [rdi - 0x10], eax
cdqe
xor ecx, ecx
mov word [rdi + rax*2], cx
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x5c]
mov r8d, dword [rbp + 0x20]
mov rdx, qword [rbp - 8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp r15, qword [rsi + 0xe8]
jae 0x140080704
mov rax, qword [rsi + 0xe0]
lea rdi, [r13 + rax + 0x18]
mov rax, qword [rdi]
cmp dword [rax - 8], 1
jle 0x140080590
mov edx, dword [rax - 0x10]
mov rcx, rdi
call fcn.140001fb0
xor r8d, r8d
mov edx, dword [rsp + 0x68]
mov rcx, qword [rdi]
call fcn.14009c130
cmp r15, qword [rsi + 0xe8]
jae 0x1400806f9
mov rdi, qword [rsi + 0xe0]
mov rcx, qword [r13 + rdi + 0x18]
test rcx, rcx
jne 0x1400805c3
xor edx, edx
mov eax, edx
jmp 0x1400805d6
movsxd rdx, dword [rcx - 0xc]
call fcn.1400d4f10
test eax, eax
js 0x1400806ee
xor edx, edx
mov rcx, qword [r13 + rdi + 0x18]
cmp eax, dword [rcx - 0xc]
jg 0x1400806ee
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [r13 + rdi + 0x18]
mov word [rax + rcx*2], dx
cmp r15, qword [rsi + 0xe8]
jae 0x1400806e3
mov rax, qword [rsi + 0xe0]
lea rdi, [r13 + rax + 0x18]
mov rax, qword [rdi]
cmp dword [rax - 8], 1
jle 0x140080622
mov edx, dword [rax - 0x10]
mov rcx, rdi
call fcn.140001fb0
xor edx, edx
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x5c]
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rdi]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140080663
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140080682
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov ebx, dword [rsp + 0x48]
mov rdi, qword [rbp + 0x18]
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400806a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400806c5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
inc ebx
mov dword [rsp + 0x48], ebx
inc r15
add r13, 0x78
movsxd rdi, ebx
cmp rdi, qword [rsi + 0xe8]
jae 0x140080730
jmp 0x140080200
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov rdx, qword [rbp - 0x38]
jmp 0x140081780
lea rcx, [rbp - 0x18]
call fcn.1400853d0
nop
lea r8, [0x14012b480]
lea rdx, [0x14012f6a8]
lea rcx, [rbp - 0x18]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rbp - 0x18]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov r14d, r13d
mov dword [rsp + 0x48], r13d
mov qword [rbp - 8], r13
cmp qword [rsi + 0xe8], 0
jbe 0x14008109a
mov rdi, r13
mov r15, r13
mov qword [rbp - 0x10], r13
nop dword [rax]
mov dword [rsp + 0x68], 0xa
mov dword [rbp - 0x68], 0xa
mov rcx, qword [rbp - 0x18]
add rcx, 0xffffffffffffffe8
call fcn.140001d80
add rax, 0x18
mov qword [rbp - 0x50], rax
cmp rdi, qword [rsi + 0xe8]
jae 0x14008108f
imul rdi, rdi, 0x78
add rdi, qword [rsi + 0xe0]
lea rcx, [rdi + 8]
lea rdx, [rbp + 0xa8]
call fcn.1400376c0
nop
mov qword [rsp + 0x20], rbx
mov r9, qword [rax]
mov r8, qword [rbp - 0x18]
lea rdx, str._s_s._s
lea rcx, [rbp - 0x50]
call fcn.140016060
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14008082c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rbx, qword [rbp - 0x50]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_GetEnhMetaFileW]
mov r13, rax
test rax, rax
je 0x14008101c
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
mov r14d, eax
test eax, eax
je 0x1400808af
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8d, r14d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x1400808af
mov r8, rax
mov edx, r14d
mov rcx, r13
call qword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
mov eax, dword [rdi + 8]
sub eax, dword [rdi + 0x10]
mov dword [rbp - 0x68], eax
mov r15d, dword [rdi + 0x14]
sub r15d, dword [rdi + 0xc]
mov dword [rsp + 0x68], r15d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, r13
call qword [sym.imp.GDI32.dll_DeleteEnhMetaFile]
lea rcx, [rbp + 0x140]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
xor r14d, r14d
mov qword [rbp + 0x148], r14
movaps xmm0, xmmword [rbp + 0x140]
movdqa xmmword [rbp + 0x1b0], xmm0
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x1b0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
movsd xmm6, qword [rbp + 0x68]
test eax, eax
je 0x140080914
movzx eax, word [rbp + 0x1be]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
addsd xmm6, xmm0
movsd qword [rbp + 0x68], xmm6
lea rdx, [rbp + 0x1f0]
movapd xmm0, xmm6
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x14008093c
mov r8d, eax
lea rdx, [rbp + 0x1f0]
movapd xmm0, xmm6
call fcn.140016470
lea rdx, [rbp]
lea rcx, [rbp + 0x1f0]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov r8d, 0xa
lea rdx, [rbp + 0x4c0]
mov ecx, dword [rbp]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x4c0]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov r13, rcx
test ecx, ecx
jne 0x1400809e3
mov rax, qword [rsp + 0x40]
lea rdx, [rax - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], r14d
je 0x140080a6b
cmp dword [rdx + 0x10], r14d
jge 0x1400809b1
cmp dword [rax - 0xc], r14d
jl 0x140081063
mov dword [rax - 0x10], r14d
mov word [rax], r14w
jmp 0x140080a6b
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400809c8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rbx, qword [rbp - 0x50]
jmp 0x140080a6b
mov rdi, qword [rsp + 0x40]
mov r15d, dword [rdi - 0x10]
lea r14, [rbp + 0x4c0]
sub r14, rdi
sar r14, 1
test ecx, ecx
js 0x140081084
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, r13d
or eax, ecx
jge 0x140080a25
mov edx, r13d
lea rcx, [rsp + 0x40]
call fcn.1400020c0
mov rdi, qword [rsp + 0x40]
movsxd rax, r13d
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x140080a49
lea r8, [rdi + r14*2]
call fcn.1400d4ebc
jmp 0x140080a55
lea r8, [rbp + 0x4c0]
call fcn.1400d4e34
cmp r13d, dword [rdi - 0xc]
jg 0x140081079
mov dword [rdi - 0x10], r13d
xor r14d, r14d
mov word [r15 + rdi], r14w
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 0xa
lea rdx, [rbp + 0x4c0]
mov ecx, dword [rbp + 4]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x4c0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x4c0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, reloc.msi.dll_MsiGetActiveDatabase
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov eax, reloc.WS2_32.dll_socket
mov word [rbp + 0x148], ax
mov dword [rbp + 0x14a], 0x3b003b
mov eax, 0x3e7
mov word [rbp + 0x14e], ax
movaps xmm0, xmmword [rbp + 0x140]
movdqa xmmword [rbp + 0x1d0], xmm0
lea rdx, [rbp + 0x88]
lea rcx, [rbp + 0x1d0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
movsd xmm6, qword [rbp + 0x88]
test eax, eax
je 0x140080b45
movzx eax, word [rbp + 0x1de]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
addsd xmm6, xmm0
movsd qword [rbp + 0x88], xmm6
lea rdx, [rbp + 0x180]
movapd xmm0, xmm6
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x140080b6d
mov r8d, eax
lea rdx, [rbp + 0x180]
movapd xmm0, xmm6
call fcn.140016470
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x180]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov rcx, qword [rbp + 0xb0]
mov qword [rbp], rcx
mov r8d, 0xa
lea rdx, [rbp + 0x4c0]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x4c0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x4c0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 0xa
lea rdx, [rbp + 0x4c0]
mov ecx, dword [rbp + 4]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x4c0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x4c0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 6
lea rdx, [0x14012b488]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov rdi, qword [rsp + 0x40]
cmp dword [rdi - 0x10], 0
jle 0x140081013
lea rcx, [rbp - 0x80]
call fcn.1400853d0
nop
mov rax, qword [0x1401836f8]
test rax, rax
je 0x140080c8d
cmp dword [rax + 0x2a0], 0
je 0x140080c8d
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov rdx, qword [rcx + rsi + 0x78]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x80]
call fcn.14003bd50
xor r8d, r8d
mov rdx, qword [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea r8, [0x14012b478]
lea rdx, [0x14012f530]
lea rcx, [rbp - 0x80]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x60], rax
mov r9, rdi
mov r8, qword [rbp - 0x80]
lea rdx, [0x14012f290]
lea rcx, [rbp + 0x60]
call fcn.140016060
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, qword [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x70], 0x19
movsxd rcx, dword [rbx - 0x10]
add rcx, rcx
mov qword [rbp + 0x50], rcx
add ecx, 0x1b
mov dword [rsp + 0x70], ecx
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 8]
cmp rax, qword [rsi + 0xe8]
jae 0x14008106e
mov rcx, qword [rsi + 0xe0]
mov eax, dword [rsp + 0x68]
cdq
mov r9d, eax
xor r9d, edx
sub r9d, edx
mov eax, dword [rbp - 0x68]
cdq
xor eax, edx
sub eax, edx
mov r15, qword [rbp - 0x10]
mov rcx, qword [r15 + rcx + 0x28]
mov qword [rsp + 0x20], rcx
mov r8d, eax
lea rdx, str.EMF___dx_d___db
lea rcx, [rbp - 0x28]
call fcn.140016060
mov rdi, qword [rbp - 0x28]
mov ecx, dword [rdi - 0x10]
mov eax, dword [rsp + 0x70]
lea ecx, [rax + rcx*2]
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov r8d, 4
lea rdx, [rsp + 0x70]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r11, qword [rsi]
movsxd rax, dword [r11 + 4]
lea rcx, [rax + rsi + 0x18]
test rcx, rcx
je 0x140080e1a
add rcx, 8
jmp 0x140080e1d
mov rcx, r14
lea rdx, [rbp + 0x290]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
movaps xmm5, xmmword [rbp + 0x290]
movdqa xmmword [rbp + 0x280], xmm5
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x280]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov byte [rsp + 0x4f], 2
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov r8d, 1
lea rdx, [rsp + 0x4f]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [rbp + 0x78], r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov r8d, 4
lea rdx, [rbp + 0x78]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov r8d, 2
lea rdx, [rbp + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rbx - 8], 1
jle 0x140080ed0
mov edx, dword [rbx - 0x10]
lea rcx, [rbp - 0x50]
call fcn.140001fb0
mov rbx, qword [rbp - 0x50]
mov rcx, r12
mov rax, qword [rbp + 0x50]
test eax, eax
je 0x140080f0d
mov rdx, rbx
mov r8d, eax
lea r15, [0x14017e9a4]
cmp rcx, 4
jl 0x140080ef3
mov rcx, r14
jmp 0x140080ef6
inc rcx
movzx eax, byte [rcx + r15]
xor byte [rdx], al
inc rdx
dec r8
jne 0x140080ee8
mov r15, qword [rbp - 0x10]
mov rax, qword [rbp + 0x50]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov r8d, eax
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, dword [rdi - 0x10]
cmp dword [rdi - 8], 1
jle 0x140080f3e
mov edx, ebx
lea rcx, [rbp - 0x28]
call fcn.140001fb0
mov rdi, qword [rbp - 0x28]
lea eax, [rbx + rbx]
mov rcx, r12
test eax, eax
je 0x140080f76
mov rdx, rdi
mov r8d, eax
lea r15, [0x14017e9a4]
cmp rcx, 4
jl 0x140080f60
mov rcx, r14
jmp 0x140080f63
inc rcx
movzx eax, byte [rcx + r15]
xor byte [rdx], al
inc rdx
dec r8
jne 0x140080f55
mov r15, qword [rbp - 0x10]
mov ebx, dword [rdi - 0x10]
cmp dword [rdi - 8], 1
jle 0x140080f8e
mov edx, ebx
lea rcx, [rbp - 0x28]
call fcn.140001fb0
mov rdi, qword [rbp - 0x28]
lea r8d, [rbx + rbx]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x58]
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140080fce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140080fee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14008100d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rbx, qword [rbp - 0x50]
jmp 0x140081017
mov r15, qword [rbp - 0x10]
mov r14d, dword [rsp + 0x48]
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140081037
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
inc r14d
mov dword [rsp + 0x48], r14d
inc qword [rbp - 8]
add r15, 0x78
mov qword [rbp - 0x10], r15
movsxd rdi, r14d
cmp rdi, qword [rsi + 0xe8]
jae 0x14008109a
lea rbx, [0x14012b498]
jmp 0x1400807a0
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov rdx, qword [rbp - 0x18]
jmp 0x140081780
lea rcx, [rbp + 0x160]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
mov qword [rbp + 0x168], 0
movaps xmm0, xmmword [rbp + 0x160]
movdqa xmmword [rbp + 0x1a0], xmm0
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x1a0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
movsd xmm6, qword [rbp + 0x30]
test eax, eax
je 0x140081100
movzx eax, word [rbp + 0x1ae]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
addsd xmm6, xmm0
movsd qword [rbp + 0x30], xmm6
lea rdx, [rbp + 0x1c0]
movapd xmm0, xmm6
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x140081128
mov r8d, eax
lea rdx, [rbp + 0x1c0]
movapd xmm0, xmm6
call fcn.140016470
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov r8d, 0xa
lea rdx, [rbp + 0x6d0]
mov ecx, dword [rbp + 8]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x6d0]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rbx, rcx
test ecx, ecx
jne 0x1400811cf
mov rax, qword [rsp + 0x40]
lea rdx, [rax - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], ecx
je 0x14008125a
cmp dword [rdx + 0x10], ecx
jge 0x1400811a1
cmp dword [rax - 0xc], ecx
jge 0x140081194
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov dword [rax - 0x10], r13d
mov word [rax], r13w
jmp 0x14008125a
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400811b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
jmp 0x14008125a
mov rdi, qword [rsp + 0x40]
mov r14d, dword [rdi - 0x10]
lea r13, [rbp + 0x6d0]
sub r13, rdi
sar r13, 1
test ecx, ecx
jns 0x1400811f4
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, ebx
or eax, ecx
jge 0x140081216
mov edx, ebx
lea rcx, [rsp + 0x40]
call fcn.1400020c0
mov rdi, qword [rsp + 0x40]
movsxd rax, ebx
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
add rdx, rdx
cmp r13, r14
lea r14, [rax + rax]
mov r9, r14
ja 0x14008123a
lea r8, [rdi + r13*2]
call fcn.1400d4ebc
jmp 0x140081246
lea r8, [rbp + 0x6d0]
call fcn.1400d4e34
cmp ebx, dword [rdi - 0xc]
jg 0x1400817c0
mov dword [rdi - 0x10], ebx
xor r13d, r13d
mov word [r14 + rdi], r13w
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 0xa
lea rdx, [rbp + 0x6d0]
mov ecx, dword [rbp + 0xc]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x6d0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x6d0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, reloc.msi.dll_MsiGetActiveDatabase
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov dword [rbp + 0x168], 0x3b0017
mov dword [rbp + 0x16c], 0x3e7003b
movaps xmm0, xmmword [rbp + 0x160]
movdqa xmmword [rbp + 0x1e0], xmm0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
movsd xmm6, qword [rbp + 0x40]
test eax, eax
je 0x14008131d
movzx eax, word [rbp + 0x1ee]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
addsd xmm6, xmm0
movsd qword [rbp + 0x40], xmm6
lea rdx, [rbp + 0x170]
movapd xmm0, xmm6
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
test eax, eax
je 0x140081345
mov r8d, eax
lea rdx, [rbp + 0x170]
movapd xmm0, xmm6
call fcn.140016470
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x170]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov rcx, qword [rbp + 0xc0]
mov qword [rbp + 8], rcx
mov r8d, 0xa
lea rdx, [rbp + 0x6d0]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x6d0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x6d0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 0xa
lea rdx, [rbp + 0x6d0]
mov ecx, dword [rbp + 0xc]
call fcn.1400da6c8
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x6d0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rbp + 0x6d0]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 1
lea rdx, [0x14012ffcc]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov r8d, 6
lea rdx, [0x14012b488]
lea rcx, [rsp + 0x40]
call fcn.14003bd50
mov rdx, qword [rsp + 0x40]
cmp dword [rdx - 0x10], 0
jle 0x14008179c
lea rcx, [rbp - 0x70]
call fcn.1400853d0
nop
mov rax, qword [0x1401836f8]
test rax, rax
je 0x140081465
cmp dword [rax + 0x2a0], 0
je 0x140081465
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
mov rdx, qword [rcx + rsi + 0x78]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x70]
call fcn.14003bd50
xor r8d, r8d
mov rdx, qword [rbp - 0x70]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea r8, [0x14012b478]
lea rdx, [0x14012f530]
lea rcx, [rbp - 0x70]
call fcn.140045040
xor r8d, r8d
mov rdx, qword [rbp - 0x70]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov edx, 2
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [0x14017bd30]
mov rax, qword [0x14017bd30]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0xa0], rax
mov r9, qword [rsp + 0x40]
mov r8, qword [rbp - 0x70]
lea rdx, [0x14012f290]
lea rcx, [rbp + 0xa0]
call fcn.140016060
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rdi, qword [rbp + 0xa0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
mov dword [rsp + 0x50], r13d
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x50], 0x19
lea r13, [rsi + 8]
mov rcx, qword [r13]
mov edx, dword [rcx - 0x10]
lea r15d, [rdx + rdx]
movsxd rbx, r15d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x140081756
mov dword [rbp - 0x60], r15d
mov dword [rbp + 0x28], r15d
mov rcx, qword [r13]
cmp dword [rcx - 8], 1
jle 0x140081593
mov edx, dword [rcx - 0x10]
mov rcx, r13
call fcn.140001fb0
mov r9d, r15d
mov r8, qword [r13]
lea rdx, [rbp - 0x60]
mov rcx, rbx
call fcn.1400cf240
test eax, eax
jne 0x1400815c4
mov ecx, dword [rsp + 0x50]
mov eax, dword [rbp - 0x60]
lea ecx, [rcx + rax + 4]
mov dword [rsp + 0x50], ecx
mov dword [rbp - 0x48], 1
xor eax, eax
jmp 0x1400815ce
add dword [rsp + 0x50], r15d
xor eax, eax
mov dword [rbp - 0x48], eax
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
mov r8d, 4
lea rdx, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r11, qword [rsi]
movsxd rax, dword [r11 + 4]
lea rcx, [rax + rsi + 0x18]
test rcx, rcx
je 0x140081605
add rcx, 8
xor esi, esi
jmp 0x140081609
xor esi, esi
mov ecx, esi
lea rdx, [rbp + 0x240]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
movaps xmm5, xmmword [rbp + 0x240]
movdqa xmmword [rbp + 0x250], xmm5
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x60]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x250]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov byte [rsp + 0x4c], 5
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x60]
mov r8d, 1
lea rdx, [rsp + 0x4c]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x60]
mov r8d, 4
lea rdx, [rbp - 0x48]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rbp - 0x48], 0
je 0x1400816b1
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x60]
mov r8d, 4
lea rdx, [rbp + 0x28]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r8d, dword [rbp - 0x60]
mov rdx, rbx
jmp 0x140081722
mov rax, qword [r13]
cmp dword [rax - 8], 1
jle 0x1400816c6
mov edx, dword [rax - 0x10]
mov rcx, r13
call fcn.140001fb0
xor r8d, r8d
mov edx, r15d
mov rcx, qword [r13]
call fcn.14009c130
mov rcx, qword [r13]
test rcx, rcx
jne 0x1400816e2
mov eax, esi
jmp 0x1400816ef
movsxd rdx, dword [rcx - 0xc]
call fcn.1400d4f10
test eax, eax
js 0x14008174b
mov rcx, qword [r13]
cmp eax, dword [rcx - 0xc]
jg 0x14008174b
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [r13]
mov word [rax + rcx*2], si
mov rax, qword [r13]
cmp dword [rax - 8], 1
jle 0x14008171b
mov edx, dword [rax - 0x10]
mov rcx, r13
call fcn.140001fb0
mov r8d, r15d
mov rdx, qword [r13]
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140081756
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14008177c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14008179c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x1400817bc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
xor eax, eax
jmp 0x1400817d6
mov ecx, 0x80070057
call fcn.1400022b0
int3
mov ecx, 0x80070057
call fcn.1400022b0
nop
mov rcx, qword [rbp + 0x8e0]
xor rcx, rsp
call fcn.1400d4d90
lea r11, [rsp + 0xa10]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret