Function at 0x40ee30
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Create thread
Delete file
Get common file path
Read file on windows
Terminate process
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x5368
call fcn.00406e00
mov eax, dword [str.AdobePatentID_P758_]
mov dword [ebp - 0xb04], eax
mov ecx, dword [0x4146a4]
mov dword [ebp - 0xb00], ecx
mov edx, dword [0x4146a8]
mov dword [ebp - 0xafc], edx
mov eax, dword [0x4146ac]
mov dword [ebp - 0xaf8], eax
mov ecx, dword [0x4146b0]
mov dword [ebp - 0xaf4], ecx
mov dl, byte [0x4146b4]
mov byte [ebp - 0xaf0], dl
lea eax, [ebp - 0xb04]
test eax, eax
jne 0x40ee95
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push str.AttachConsole
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 0
je 0x40eec6
push 0xffffffffffffffff
call dword [ebp - 0x884]
add esp, 4
push 0
push 0
push 0
push 0x40eb20
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x105
lea ecx, [ebp - 0xaa8]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0xaec], eax
cmp dword [ebp - 0xaec], 0
je 0x40ef0a
cmp dword [ebp - 0xaec], 0x105
jne 0x40ef12
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea edx, [ebp - 0x430]
push edx
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0xaec], eax
cmp dword [ebp - 0xaec], 0
je 0x40ef3f
cmp dword [ebp - 0xaec], 0x105
jne 0x40ef47
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [ebp - 0x880]
push eax
push 0
push 0x4146e4
lea ecx, [ebp - 0x430]
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0
jne 0x40ef79
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea edx, [ebp - 0x880]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
lea eax, [ebp - 0x880]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0
jne 0x40efac
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov dword [ebp - 0x898], 0
mov ecx, dword [ebp - 0x898]
movzx edx, word [ebp + ecx*2 - 0x880]
test edx, edx
je 0x40efd9
mov eax, dword [ebp - 0x898]
add eax, 1
mov dword [ebp - 0x898], eax
jmp 0x40efb6
mov dword [ebp - 0x21c], 0
jmp 0x40eff4
mov ecx, dword [ebp - 0x21c]
add ecx, 1
mov dword [ebp - 0x21c], ecx
mov edx, dword [ebp - 0x21c]
movzx eax, word [ebp + edx*2 - 0x880]
test eax, eax
je 0x40f024
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x21c]
mov ax, word [ebp + edx*2 - 0x880]
mov word [ebp + ecx*2 - 0x218], ax
jmp 0x40efe5
mov ecx, 0x5c
mov edx, dword [ebp - 0x21c]
mov word [ebp + edx*2 - 0x218], cx
mov eax, dword [ebp - 0x21c]
lea ecx, [ebp + eax*2 - 0x216]
mov dword [ebp - 0x890], ecx
xor edx, edx
mov eax, dword [ebp - 0x898]
mov word [ebp + eax*2 - 0x87e], dx
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea ecx, [ebp - 0xaa8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0xffffffff
jne 0x40f08d
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, dword [ebp - 0x220]
push edx
call fcn.0040e960
add esp, 4
mov dword [ebp - 0x894], eax
cmp dword [ebp - 0x894], 0
jne 0x40f0b3
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov dword [ebp - 0x88c], 0
cmp dword [ebp - 0x894], 2
jne 0x40f4b6
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x4d7c], eax
lea ecx, [ebp - 0x4d84]
push ecx
call fcn.004074d0
add esp, 4
push 0
lea edx, [ebp - 0x4d78]
push edx
call fcn.00407930
add esp, 8
lea eax, [ebp - 0x4d84]
mov dword [ebp - 0x4d68], eax
lea ecx, [ebp - 0x4d78]
push ecx
call fcn.00407960
add esp, 4
mov dword [ebp - 0x4d94], 0x407720
mov dword [ebp - 0x4d90], 0x407710
mov dword [ebp - 0x4d8c], 0x407720
mov dword [ebp - 0x4d88], 0x407710
call fcn.00409cf0
lea edx, [ebp - 0xd58]
push edx
call fcn.00407970
add esp, 4
lea eax, [ebp - 0x4d8c]
push eax
lea ecx, [ebp - 0x4d94]
push ecx
lea edx, [ebp - 0x4d78]
push edx
lea eax, [ebp - 0xd58]
push eax
call fcn.00409cb0
add esp, 0x10
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
jne 0x40f49b
mov dword [ebp - 0x4d9c], 0xffffffff
mov dword [ebp - 0x4d98], 0
mov dword [ebp - 0x4da0], 0
mov dword [ebp - 0x21c], 0
jmp 0x40f1bd
mov ecx, dword [ebp - 0x21c]
add ecx, 1
mov dword [ebp - 0x21c], ecx
mov edx, dword [ebp - 0x21c]
cmp edx, dword [ebp - 0xd3c]
jae 0x40f484
mov eax, dword [ebp - 0x21c]
shl eax, 5
add eax, dword [ebp - 0xd48]
mov dword [ebp - 0x4da8], eax
mov ecx, dword [ebp - 0x4da8]
movzx edx, byte [ecx + 0x19]
test edx, edx
je 0x40f1f4
jmp 0x40f1ae
lea eax, [ebp - 0x4d8c]
push eax
lea ecx, [ebp - 0x4d94]
push ecx
lea edx, [ebp - 0x4db0]
push edx
lea eax, [ebp - 0x4db4]
push eax
lea ecx, [ebp - 0x4da0]
push ecx
lea edx, [ebp - 0x4d98]
push edx
lea eax, [ebp - 0x4d9c]
push eax
mov ecx, dword [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x4d78]
push edx
lea eax, [ebp - 0xd58]
push eax
call fcn.004074f0
add esp, 0x28
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
je 0x40f256
jmp 0x40f484
mov ecx, dword [ebp - 0x4da8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x4fd0], edx
mov eax, dword [ebp - 0x4da8]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00401130
add esp, 4
mov dword [ebp - 0x4dac], eax
mov edx, dword [ebp - 0x4dac]
mov eax, dword [ebp - 0x898]
lea ecx, [eax + edx + 1]
cmp ecx, 0x104
jb 0x40f29d
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x104
lea edx, [ebp - 0x4fc8]
push edx
mov eax, dword [ebp - 0x4dac]
push eax
mov ecx, dword [ebp - 0x4fd0]
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0
jne 0x40f2db
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor edx, edx
mov eax, dword [ebp - 0xae8]
mov word [ebp + eax*2 - 0x4fc8], dx
mov dword [ebp - 0x4fd4], 0
jmp 0x40f306
mov ecx, dword [ebp - 0x4fd4]
add ecx, 1
mov dword [ebp - 0x4fd4], ecx
mov edx, dword [ebp - 0x4fd4]
cmp edx, dword [ebp - 0x4dac]
jae 0x40f3dd
jmp 0x40f329
mov eax, dword [ebp - 0x4fd4]
add eax, 1
mov dword [ebp - 0x4fd4], eax
mov ecx, dword [ebp - 0x4fd4]
cmp ecx, dword [ebp - 0x4dac]
jae 0x40f36b
mov edx, dword [ebp - 0x4fd0]
add edx, dword [ebp - 0x4fd4]
movsx eax, byte [edx]
cmp eax, 0x2f
je 0x40f36b
mov ecx, dword [ebp - 0x4fd4]
mov edx, dword [ebp - 0x890]
mov eax, dword [ebp - 0x4fd4]
mov ax, word [ebp + eax*2 - 0x4fc8]
mov word [edx + ecx*2], ax
jmp 0x40f31a
xor ecx, ecx
mov edx, dword [ebp - 0x4fd4]
mov eax, dword [ebp - 0x890]
mov word [eax + edx*2], cx
mov ecx, dword [ebp - 0x4fd4]
movzx edx, word [ebp + ecx*2 - 0x4fc8]
cmp edx, 0x2f
jne 0x40f3d8
push 0
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0
jne 0x40f3c3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40f3c3
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, 0x2f
mov edx, dword [ebp - 0x4fd4]
mov eax, dword [ebp - 0x890]
mov word [eax + edx*2], cx
jmp 0x40f2f7
push 0
push 0x80
push 1
push 0
push 2
push 0x40000000
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x4da4], eax
cmp dword [ebp - 0x4da4], 0xffffffff
jne 0x40f413
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, dword [ebp - 0x4db0]
mov dword [ebp - 0x4fcc], edx
lea eax, [ebp - 0x4fcc]
push eax
mov ecx, dword [ebp - 0x4d98]
add ecx, dword [ebp - 0x4db4]
push ecx
lea edx, [ebp - 0x4da4]
push edx
call fcn.00407370
add esp, 0xc
test eax, eax
jne 0x40f454
mov eax, dword [ebp - 0x4fcc]
cmp eax, dword [ebp - 0x4db0]
je 0x40f460
mov dword [ebp - 0xd14], 0xb
jmp 0x40f484
lea ecx, [ebp - 0x4da4]
push ecx
call fcn.004072c0
add esp, 4
test eax, eax
je 0x40f47f
mov dword [ebp - 0xd14], 0xb
jmp 0x40f484
jmp 0x40f1ae
mov edx, dword [ebp - 0x4d98]
push edx
lea eax, [ebp - 0x4d94]
push eax
call dword [ebp - 0x4d90]
add esp, 8
lea ecx, [ebp - 0x4d94]
push ecx
lea edx, [ebp - 0xd58]
push edx
call fcn.00407990
add esp, 8
jmp 0x40f9db
push 0
lea eax, [ebp - 0x88c]
push eax
push 0x1e
lea ecx, [ebp - 0x4ff4]
push ecx
mov edx, dword [ebp - 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x40f4ec
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [ebp - 0x88c], 0x1e
je 0x40f4fd
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
movzx eax, byte [ebp - 0x4ff4]
cmp eax, 0x50
jne 0x40f52d
movzx ecx, byte [ebp - 0x4ff3]
cmp ecx, 0x4b
jne 0x40f52d
movzx edx, byte [ebp - 0x4ff2]
cmp edx, 3
jne 0x40f52d
movzx eax, byte [ebp - 0x4ff1]
cmp eax, 4
je 0x40f532
jmp 0x40f9db
movzx ecx, word [ebp - 0x4fda]
mov edx, dword [ebp - 0x898]
lea eax, [edx + ecx + 1]
cmp eax, 0x104
jb 0x40f552
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0
lea ecx, [ebp - 0x88c]
push ecx
movzx edx, word [ebp - 0x4fda]
push edx
lea eax, [ebp - 0x5100]
push eax
mov ecx, dword [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x40f58e
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
movzx edx, word [ebp - 0x4fda]
cmp dword [ebp - 0x88c], edx
je 0x40f5a5
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x104
lea eax, [ebp - 0x5320]
push eax
movzx ecx, word [ebp - 0x4fda]
push ecx
lea edx, [ebp - 0x5100]
push edx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0
jne 0x40f5e4
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor eax, eax
mov ecx, dword [ebp - 0xae8]
mov word [ebp + ecx*2 - 0x5320], ax
movzx edx, word [ebp - 0x4fda]
movzx eax, word [ebp + edx*2 - 0x5322]
cmp eax, 0x2f
jne 0x40f63d
push 1
push 0
movzx ecx, word [ebp - 0x4fd8]
push ecx
mov edx, dword [ebp - 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x5324], eax
cmp dword [ebp - 0x5324], 0xffffffff
jne 0x40f638
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
jmp 0x40f4b6
mov dword [ebp - 0x5328], 0
jmp 0x40f658
mov eax, dword [ebp - 0x5328]
add eax, 1
mov dword [ebp - 0x5328], eax
movzx ecx, word [ebp - 0x4fda]
cmp dword [ebp - 0x5328], ecx
jae 0x40f730
jmp 0x40f67c
mov edx, dword [ebp - 0x5328]
add edx, 1
mov dword [ebp - 0x5328], edx
movzx eax, word [ebp - 0x4fda]
cmp dword [ebp - 0x5328], eax
jae 0x40f6be
mov ecx, dword [ebp - 0x5328]
movzx edx, word [ebp + ecx*2 - 0x5320]
cmp edx, 0x2f
je 0x40f6be
mov eax, dword [ebp - 0x5328]
mov ecx, dword [ebp - 0x890]
mov edx, dword [ebp - 0x5328]
mov dx, word [ebp + edx*2 - 0x5320]
mov word [ecx + eax*2], dx
jmp 0x40f66d
xor eax, eax
mov ecx, dword [ebp - 0x5328]
mov edx, dword [ebp - 0x890]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x5328]
movzx ecx, word [ebp + eax*2 - 0x5320]
cmp ecx, 0x2f
jne 0x40f72b
push 0
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0
jne 0x40f716
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40f716
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, 0x2f
mov ecx, dword [ebp - 0x5328]
mov edx, dword [ebp - 0x890]
mov word [edx + ecx*2], ax
jmp 0x40f649
push 1
push 0
movzx eax, word [ebp - 0x4fd8]
push eax
mov ecx, dword [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x510c], eax
cmp dword [ebp - 0x510c], 0xffffffff
jne 0x40f760
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0
push 0x80
push 1
push 0
push 2
push 0x40000000
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x5104], eax
cmp dword [ebp - 0x5104], 0xffffffff
jne 0x40f796
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebp - 0x4fde]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x5108], eax
movzx ecx, word [ebp - 0x4fec]
test ecx, ecx
je 0x40f911
mov edx, dword [ebp - 0x4fe2]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x532c], eax
push 0
lea eax, [ebp - 0x88c]
push eax
mov ecx, dword [ebp - 0x4fe2]
push ecx
mov edx, dword [ebp - 0x532c]
push edx
mov eax, dword [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x40f818
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, dword [ebp - 0x88c]
cmp ecx, dword [ebp - 0x4fe2]
je 0x40f82e
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, dword [ebp - 0x532c]
mov dword [ebp - 0x5364], edx
mov eax, dword [ebp - 0x4fe2]
mov dword [ebp - 0x5360], eax
mov ecx, dword [ebp - 0x5108]
mov dword [ebp - 0x5358], ecx
mov edx, dword [ebp - 0x4fde]
mov dword [ebp - 0x5354], edx
mov dword [ebp - 0x5344], 0
mov dword [ebp - 0x5340], 0
mov dword [ebp - 0x533c], 0
push 0x38
push str.1.2.3
push 0xfffffffffffffff1
lea eax, [ebp - 0x5364]
push eax
call fcn.0040c60f
add esp, 0x10
mov dword [ebp - 0x510c], eax
cmp dword [ebp - 0x510c], 0
je 0x40f8ab
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 4
lea ecx, [ebp - 0x5364]
push ecx
call fcn.0040c7a1
add esp, 8
mov dword [ebp - 0x510c], eax
cmp dword [ebp - 0x510c], 1
je 0x40f8d3
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea edx, [ebp - 0x5364]
push edx
call fcn.0040d9ed
add esp, 4
mov dword [ebp - 0x510c], eax
cmp dword [ebp - 0x510c], 0
je 0x40f8f9
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebp - 0x532c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x40f962
push 0
lea ecx, [ebp - 0x88c]
push ecx
mov edx, dword [ebp - 0x4fde]
push edx
mov eax, dword [ebp - 0x5108]
push eax
mov ecx, dword [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x40f94c
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, dword [ebp - 0x88c]
cmp edx, dword [ebp - 0x4fde]
je 0x40f962
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0
lea eax, [ebp - 0x88c]
push eax
mov ecx, dword [ebp - 0x4fde]
push ecx
mov edx, dword [ebp - 0x5108]
push edx
mov eax, dword [ebp - 0x5104]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x40f99d
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, dword [ebp - 0x88c]
cmp ecx, dword [ebp - 0x4fde]
je 0x40f9b3
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov edx, dword [ebp - 0x5104]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x5108]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x40f4b6
mov ecx, dword [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x438], eax
mov edx, dword [ebp - 0x438]
movzx eax, word [edx]
cmp eax, 0x2d
je 0x40fa6f
mov ecx, dword [ebp - 0x438]
movzx edx, word [ecx]
cmp edx, 0x22
sete al
lea eax, [eax + eax + 0x20]
movsx cx, al
mov word [ebp - 0x5368], cx
mov edx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x438]
add eax, 2
mov dword [ebp - 0x438], eax
test edx, edx
je 0x40fa6f
mov ecx, dword [ebp - 0x438]
movzx edx, word [ecx]
test edx, edx
jne 0x40fa48
jmp 0x40fa6f
mov eax, dword [ebp - 0x438]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x5368]
cmp ecx, edx
jne 0x40fa6d
mov eax, dword [ebp - 0x438]
add eax, 2
mov dword [ebp - 0x438], eax
jmp 0x40fa6f
jmp 0x40fa20
mov ecx, dword [ebp - 0x438]
mov dword [ebp - 0x434], ecx
lea edx, [ebp - 0x880]
push edx
push 0x104
lea eax, [ebp - 0xd10]
push eax
call fcn.00401000
push str..launch
lea ecx, [ebp - 0xd10]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
lea edx, [ebp - 0xd10]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0xffffffff
setne al
mov byte [ebp - 0x465], al
mov byte [ebp - 0x43d], 0
movzx ecx, byte [ebp - 0x465]
test ecx, ecx
je 0x40fb13
lea edx, [ebp - 0x670]
push edx
lea eax, [ebp - 0x880]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.0040ece0
add esp, 0xc
movzx edx, al
test edx, edx
jne 0x40fb11
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
jmp 0x40fb3d
lea eax, [ebp - 0x880]
push eax
push 0x104
lea ecx, [ebp - 0x670]
push ecx
call fcn.00401000
push str.Adobe_AIR_Installer.exe
lea edx, [ebp - 0x670]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov dword [ebp - 0xae4], 0x3c
mov dword [ebp - 0xae0], 0x40
mov dword [ebp - 0xadc], 0
mov dword [ebp - 0xad8], str.open
lea eax, [ebp - 0x670]
mov dword [ebp - 0xad4], eax
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 0xad0], ecx
mov dword [ebp - 0xacc], 0
mov dword [ebp - 0xac8], 0
mov dword [ebp - 0xac4], 0
mov dword [ebp - 0xac0], 0
mov dword [ebp - 0xabc], 0
mov dword [ebp - 0xab8], 0
mov dword [ebp - 0xab4], 0
mov dword [ebp - 0xab0], 0
mov dword [ebp - 0xaac], 0
lea edx, [ebp - 0xae4]
push edx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov dword [ebp - 0x888], eax
cmp dword [ebp - 0x888], 0
jne 0x40fbfb
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0xffffffffffffffff
mov eax, dword [ebp - 0xaac]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0xae8], eax
cmp dword [ebp - 0xae8], 0xffffffff
jne 0x40fc21
push 5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov dword [ebp - 0x43c], 5
lea ecx, [ebp - 0x43c]
push ecx
mov edx, dword [ebp - 0xaac]
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x40fc58
mov dword [ebp - 0x43c], 5
movzx eax, byte [ebp - 0x43d]
test eax, eax
je 0x40fc72
mov ecx, dword [ebp - 0x434]
push ecx
call fcn.0040109f
add esp, 4
mov edx, dword [ebp - 0xaac]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 3
lea eax, [ebp - 0x880]
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x454], 0
mov ecx, 0x614
mov word [ebp - 0x450], cx
mov dword [ebp - 0x44e], 0
mov dword [ebp - 0x44a], 0
mov dword [ebp - 0x446], 0
lea edx, [ebp - 0x460]
push edx
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov eax, dword [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_ExitProcess]