Function at 0x4713b4
Capabilities:
Check if file exists
Get file attributes
Write file on windows

Disassembly:
push 0x78
mov eax, 0x51e334
call fcn.004d8abf
mov dword [ebp - 0x18], edx
mov edi, ecx
mov dword [ebp - 0x10], edi
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x40], eax
push str.pre_download
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 1
call fcn.00406fea
mov byte [ebp - 4], 2
mov ecx, dword [ebp + 0x20]
push ecx
mov esi, esp
mov al, byte [ecx + 0x29]
mov bl, byte [ecx + 8]
mov dword [ebp - 0x2c], eax
mov al, byte [ecx + 0x2a]
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
lea ecx, [ecx - 0x10]
call fcn.004070e7
push ebx
push dword [ebp - 0x2c]
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
push dword [ebp - 0x28]
add eax, 0x10
mov dl, 1
push dword [ebp + 0x10]
mov dword [esi], eax
push ebx
push dword [ebp - 0x18]
call fcn.0046a80e
add esp, 0x1c
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x78]
call fcn.0040121b
mov byte [ebp - 4], 4
cmp dword [ebp - 0x78], 0
jge 0x4714d6
cmp dword [ebp - 0x74], 0
mov eax, 0x1d19
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov esi, esp
mov dword [ebp + 0x20], esi
mov edi, dword [ebp - 0x70]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 5
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x10]
jmp 0x471f5a
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x6c], 0
je 0x471529
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, edi
jmp 0x471f5a
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [ebx + 0x44]
mov edi, dword [eax]
cmp edi, eax
je 0x471632
lea eax, [ebx + 0x80]
mov dword [ebp - 0x2c], eax
mov ecx, dword [edi + 8]
sub ecx, 0x10
call fcn.004070e7
lea esi, [eax + 0x10]
mov dword [ebp - 0x3c], esi
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 6
call fcn.004acf13
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 7
push eax
push ecx
lea eax, [esi - 0x10]
mov dword [ebp - 0x38], esp
mov ebx, esp
mov dword [ebp - 0x24], eax
mov ecx, eax
mov dword [ebp - 0x34], ebx
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
mov ebx, dword [ebp + 8]
mov byte [ebp - 4], 8
push dword [ebp - 0x2c]
mov ecx, dword [ebx + 0x110]
add ecx, 4
push ecx
mov esi, esp
mov dword [ebp - 0x34], esi
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x78]
mov dword [esi], eax
mov edx, ebx
mov byte [ebp - 4], 7
call fcn.0043f184
add esp, 0x10
mov byte [ebp - 4], 9
cmp dword [ebp - 0x78], 0
jl 0x471606
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx]
mov dword [ebp - 0x28], eax
cmp eax, ecx
je 0x471606
push dword [eax + 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x471668
lea ecx, [ebp - 0x28]
call fcn.004094c2
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x68]
jne 0x4715e8
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x68]
call fcn.004add79
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00407189
mov eax, dword [edi]
mov edi, eax
cmp eax, dword [ebx + 0x44]
jne 0x471559
cmp byte [ebx + 0xc5], 0
je 0x47169f
push 0x43
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x47169f
push 0x1d3b
push 1
push ecx
mov ecx, esp
push str.Skipped__cannot_be_installed_in_safe_mode_
call fcn.00406fea
mov ecx, dword [ebp - 0x10]
call fcn.00406620
jmp 0x4714b8
push 0x1d2f
push 1
push ecx
mov ecx, esp
push str.Skipped__already_installed_update_not_supported_
call fcn.00406fea
mov ecx, dword [ebp - 0x10]
call fcn.00406620
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x68]
call fcn.004add79
mov ecx, dword [ebp - 0x24]
jmp 0x4714b3
push ecx
mov esi, esp
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x1c]
mov dword [esi], eax
call fcn.004284ba
mov ecx, esp
mov byte [ebp - 4], 0xa
push 0x54478c
call fcn.00406fea
lea edx, [ebx + 0xcc]
lea ecx, [ebp - 0x14]
call fcn.004b3176
pop ecx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
je 0x47179e
push 0
push ecx
mov esi, esp
mov dword [ebp - 0x3c], esp
mov dword [ebp - 0x38], esi
mov ecx, dword [ebx + 0xf4]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xc
push dword [ebp + 0x20]
push ecx
mov esi, esp
mov dword [ebp - 0x38], esp
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ebx
push ecx
mov byte [ebp - 4], 0xd
mov esi, esp
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
mov edi, dword [ebp - 0x18]
lea ecx, [ebp - 0x78]
add eax, 0x10
mov edx, edi
mov dword [esi], eax
mov byte [ebp - 4], 0xb
call fcn.0046a038
add esp, 0x18
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x78], 0
je 0x47178e
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x78]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
jmp 0x4714b0
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x14]
jmp 0x4717a1
mov edi, dword [ebp - 0x18]
lea ecx, [eax - 0x10]
call fcn.00407189
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00407189
push dword [ebp + 0x20]
mov edx, edi
lea ecx, [ebp - 0x6c]
push ebx
call fcn.0046b173
pop ecx
pop ecx
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x78]
call fcn.0040121b
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x78], 0
jge 0x471842
cmp dword [ebp - 0x74], 0
mov eax, 0x1d51
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov esi, esp
mov dword [ebp + 0x20], esi
mov edi, dword [ebp - 0x70]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x11
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x64]
jmp 0x4714b0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x6c], 0
je 0x471a19
push str.Flash__ie_
push dword [edi]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
jne 0x471a08
lea ecx, [ebp - 0x18]
call fcn.0040687a
push str._SystemRoot_System32MacromedFlash
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x12
call fcn.00406fea
push ecx
mov byte [ebp - 4], 0x13
lea ebx, [ebp - 0x14]
mov esi, esp
mov dword [ebp + 0x20], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov edx, ebx
mov dword [esi], eax
call fcn.00428612
pop ecx
mov ecx, dword [ebp - 0x7c]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov esi, esp
lea ebx, [ebp - 0x18]
mov dword [ebp + 0x20], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov edx, ebx
mov dword [esi], eax
call fcn.0046c635
pop ecx
mov ecx, dword [ebp - 0x7c]
add ecx, 0xfffffff0
call fcn.00407189
call fcn.004013b8
test al, al
je 0x47198e
mov esi, str.x64:
push esi
call fcn.004ddaa2
pop ecx
push eax
push esi
mov ecx, ebx
call fcn.004d5d16
mov esi, str._SystemRoot_SysnativeMacromedFlash
push esi
call fcn.004ddaa2
pop ecx
push eax
push esi
lea ecx, [ebp - 0x14]
call fcn.00406efb
push ecx
mov esi, esp
lea ebx, [ebp - 0x14]
mov dword [ebp + 0x20], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov edx, ebx
mov dword [esi], eax
call fcn.00428612
pop ecx
mov ecx, dword [ebp - 0x7c]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov esi, esp
lea ebx, [ebp - 0x18]
mov dword [ebp + 0x20], esi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov edx, ebx
mov dword [esi], eax
call fcn.0046c635
pop ecx
mov ecx, dword [ebp - 0x7c]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp + 0x23], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x14
call fcn.0044f24f
mov edi, dword [edi]
mov ebx, eax
push ecx
mov esi, esp
mov dword [ebp - 0x40], esp
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x15
push str.Flash__IE__locked
call fcn.00406fea
push edi
mov ecx, ebx
mov byte [ebp - 4], 0x14
call fcn.0044ed57
lea ecx, [ebp + 0x23]
call fcn.0044f694
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
call fcn.00407189
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x6c]
push eax
call fcn.0040121b
jmp 0x47183a
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, ebx
call fcn.00470ef3
mov eax, dword [ebx + 0x110]
and dword [ebp - 0x1c], 0
mov byte [eax + 0x61], 0
mov eax, dword [ebx + 0x100]
mov esi, dword [eax]
cmp esi, eax
je 0x471d75
mov eax, dword [esi + 8]
mov dword [ebp - 0x20], eax
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.004070e7
mov ebx, eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.004070e7
mov dword [ebp - 0x28], eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x2c], edi
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
add ecx, 0xfffffff0
cmp dword [ecx + 4], 0
je 0x471b15
push ecx
mov edi, esp
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x24], edi
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
push ecx
mov byte [ebp - 4], 0x18
mov edi, esp
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x24], edi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x30]
mov dword [edi], eax
mov byte [ebp - 4], 0x17
call fcn.00470d9b
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x19
call fcn.00405d6e
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov dword [ebp - 0x34], esp
mov edi, dword [ebp - 0x2c]
lea ecx, [edi - 0x10]
call fcn.004070e7
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [ebp - 0x84]
call fcn.00429667
pop ecx
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x110]
add ecx, 4
push ecx
mov dword [ebp - 0x38], esp
mov dword [ebp - 0x4c], esp
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
push 0
mov byte [ebp - 4], 0x1a
push 0
push ecx
mov dword [ebp - 0x3c], esp
mov eax, dword [ebp + 0x1c]
add eax, 0xfffffff0
mov dword [ebp - 0x50], esp
mov ecx, eax
mov dword [ebp - 0x14], eax
call fcn.004070e7
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
push dword [ebp + 0x18]
mov byte [ebp - 4], 0x1b
mov eax, ebx
push dword [ebp - 0x1c]
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push ecx
mov dword [ebp - 0x40], esp
mov ecx, eax
mov dword [ebp - 0x54], esp
mov dword [ebp - 0x28], eax
call fcn.004070e7
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
push ecx
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x1c
mov ebx, esp
mov dword [ebp - 0x58], esp
mov dword [ebp - 0x24], ebx
mov ecx, eax
mov dword [ebp - 0x24], eax
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
mov ebx, dword [ebp + 8]
mov byte [ebp - 4], 0x1d
push dword [ebp - 0x20]
push ebx
push ecx
mov edi, esp
mov dword [ebp - 0x5c], esp
mov dword [ebp - 0x60], edi
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x6c]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
push ecx
mov byte [ebp - 4], 0x1e
mov edi, esp
mov dword [ebp - 0x64], edi
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x60], esp
mov ecx, dword [eax + 0x68]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
push ecx
mov byte [ebp - 4], 0x1f
mov edi, esp
mov dword [ebp - 0x64], edi
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x64]
sub ecx, 0x10
call fcn.004070e7
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x78]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0x17
call fcn.00458a73
add esp, 0x3c
mov byte [ebp - 4], 0x20
cmp dword [ebp - 0x78], 1
je 0x471d0c
cmp dword [ebp - 0x78], 0
jl 0x471c7e
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x4c]
cmp byte [eax], 0
je 0x471c47
mov eax, dword [ebx + 0x110]
mov byte [eax + 0x61], 1
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x24]
call fcn.00407189
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov eax, dword [esi]
mov esi, eax
inc dword [ebp - 0x1c]
cmp eax, dword [ebx + 0x100]
jne 0x471a4d
jmp 0x471d7e
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x471cfe
push eax
lea eax, [ebp - 0x3c]
push 0x54b0f0
push eax
call fcn.004011e0
mov esi, eax
mov byte [ebp - 4], 0x22
mov eax, 0x5446d0
mov edx, dword [ebp - 0x70]
mov ecx, 0x53d648
cmp dword [edx - 0xc], 0
lea edx, [ebp - 0x70]
cmovne ecx, eax
push ecx
lea ecx, [ebp - 0x40]
call fcn.00409442
push esi
mov edx, eax
mov byte [ebp - 4], 0x23
lea ecx, [ebp + 0x20]
call fcn.0040a037
add esp, 0x14
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x24
call fcn.00405d6e
mov ecx, dword [ebp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x78]
push eax
call fcn.0040121b
jmp 0x471d47
push 0x1d7c
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x21
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x24]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
jmp 0x4714c9
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x108]
mov esi, dword [eax]
cmp esi, eax
je 0x471f33
mov edi, dword [esi + 8]
lea edx, [ebp + 0xc]
push 0x53d64c
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x24], edi
call fcn.00409442
push edi
mov edx, eax
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x40]
call fcn.0040a037
pop ecx
pop ecx
xor ecx, ecx
push ecx
push ecx
push 1
push ecx
push ecx
push 2
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp + 0x20], edi
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp edi, 0xffffffff
je 0x47204f
test edi, edi
je 0x47204f
mov eax, dword [ebp - 0x24]
cmp byte [eax + 8], 0
lea ecx, [eax + 4]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x38], edx
je 0x471eca
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0x29
mov ecx, dword [ebx + 0x110]
mov ecx, dword [ecx + 4]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x2b
push 1
push dword [ebp - 0x38]
push ecx
mov ebx, esp
mov dword [ebp - 0x64], esp
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x38], eax
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0x2c
lea eax, [ecx + 0x80]
push eax
push ecx
push ecx
mov ebx, esp
mov dword [ebp - 0x60], ebx
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x78]
mov dword [ebx], eax
mov dl, 1
mov byte [ebp - 4], 0x2b
call fcn.0043e855
mov ecx, dword [ebp - 0x28]
add esp, 0x18
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
call fcn.00407189
mov byte [ebp - 4], 0x2d
cmp dword [ebp - 0x78], 0
jl 0x471f60
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ebx, dword [ebp + 8]
jmp 0x471ed2
push ecx
mov ecx, edx
call fcn.00405d6e
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x1c]
mov eax, dword [eax + 0xc]
push dword [eax]
call fcn.004af36d
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x20]
and dword [ebp - 0x20], 0
push 0
push ecx
push dword [eax - 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x471ff5
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
add ecx, 0xfffffff0
cmp eax, dword [ecx + 4]
jne 0x471fb8
call fcn.00407189
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 1
call fcn.00427477
mov esi, dword [esi]
cmp esi, dword [ebx + 0x108]
jne 0x471d8e
mov esi, dword [ebp - 0x10]
and dword [esi], 0
lea ecx, [esi + 8]
and dword [esi + 4], 0
call fcn.0040687a
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
call fcn.00407189
mov eax, esi
call fcn.004d8a8d
ret
cmp dword [ebp - 0x74], 0
mov eax, 0x1d9a
cmovne eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x78]
push ecx
mov esi, esp
mov dword [ebp - 0x64], esi
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x84]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x2e
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x70]
jmp 0x47209c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1da3
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov byte [ebp - 4], 0x31
jmp 0x472030
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1da2
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
jmp 0x47209c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1d96
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x84]
call fcn.00406620
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0x28
call fcn.0040121b
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp + 0x20]
call fcn.00427477
jmp 0x471d62