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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56fdc7
mov eax, dword fs:[0]
push eax
sub esp, 0xb24
mov eax, dword [0x5f0bf8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov esi, ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x40b825
lea ecx, [ebp - 0x7e4]
lea edi, [esi + 0xb8]
push ecx
mov ecx, edi
mov dword [ebp - 0x7f0], edi
call fcn.004032f0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x12c]
push eax
call fcn.00403760
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7e4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40afa7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x7e4]
push ecx
mov ecx, edi
call fcn.004093a0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x130]
push eax
call fcn.00403760
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7e4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40afeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, esi
call fcn.0040ac80
call fcn.004337c0
cmp dword [esi + 0xe0], 0
je 0x40b04d
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567811
mov byte [ebp - 4], 5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x964]
call fcn.0042d280
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x964]
call fcn.0044dcb2
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x964]
call fcn.0042d340
jmp 0x40b7f8
cmp dword [esi + 0xc4], 0
je 0x40b7e2
mov eax, dword [esi + 0xf4]
push eax
mov ecx, 0x5f60b0
call fcn.004088e0
push 0x587f8c
lea ecx, [ebp - 0x7e0]
call fcn.00404420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7e4]
push ecx
mov ecx, edi
call fcn.004092e0
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x7e0]
call fcn.00403760
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x7e4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b0c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x7e4]
push str.Update_List
push ecx
call fcn.005693e5
add esp, 0xc
mov byte [ebp - 4], 0xa
mov eax, dword [eax]
test eax, eax
je 0x40b0e8
add eax, 0xc
jmp 0x40b0ed
mov eax, 0x587f8c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b102
push 0x80004005
call fcn.00401090
mov edx, dword [ebp - 0x7e0]
push eax
push edx
call fcn.00543f07
add esp, 8
test eax, eax
sete bl
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7e4]
call fcn.005685da
test bl, bl
je 0x40b177
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567811
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x964]
call fcn.0042d280
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x964]
call fcn.0044dcb2
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x964]
call fcn.0042d340
jmp 0x40b77c
push 0xffffffffffffffff
lea eax, [ebp - 0x7e4]
push str.Auto_Updater
push eax
call fcn.005693e5
add esp, 0xc
mov byte [ebp - 4], 0xd
mov eax, dword [eax]
test eax, eax
je 0x40b19c
add eax, 0xc
jmp 0x40b1a1
mov eax, 0x587f8c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b1b6
push 0x80004005
call fcn.00401090
mov ecx, dword [ebp - 0x7e0]
push eax
push ecx
call fcn.00543f07
add esp, 8
test eax, eax
sete bl
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7e4]
call fcn.005685da
test bl, bl
je 0x40b588
mov edi, dword [esi + 0xf4]
test edi, edi
je 0x40b1fd
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40b1fd
push edi
call fcn.00447e8e
push 0x58962c
push str.Updated
push str.SOFTWAREFoxit_SoftwareFoxit_Updater
push SysReAllocString
call fcn.0042fe50
push 0xb4
call fcn.00440708
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x7ec], edi
mov bl, 0xe
mov byte [ebp - 4], bl
test edi, edi
je 0x40b25f
push 0
push 0
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x7e8], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567811
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], bl
mov ecx, edi
call fcn.00424050
jmp 0x40b261
xor eax, eax
mov byte [ebp - 4], 7
mov dword [esi + 0xf8], eax
push str.Update_List
lea ecx, [ebp - 0x2c]
mov dword [eax + 0x1c], 1
call fcn.00403e20
mov byte [ebp - 4], 0x10
mov ecx, dword [esi + 0xf8]
lea edx, [ebp - 0x2c]
push edx
call fcn.0042b6e0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2c]
call fcn.00402bb0
mov ecx, dword [esi + 0xf8]
call fcn.00422370
cmp dword [0x5f61b0], 0
je 0x40b341
push 0
lea ecx, [ebp - 0x634]
call fcn.00406e50
mov bl, 0x11
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x634]
call fcn.0044dcb2
cmp eax, 1
jne 0x40b31b
push eax
mov eax, dword [esi + 0xf8]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567811
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], bl
mov ecx, dword [esi + 0xf8]
call fcn.00421f10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x634]
call fcn.00406fa0
jmp 0x40b77c
cmp eax, 0x435
jne 0x40b32d
mov ecx, dword [esi + 0xf8]
call fcn.004279b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x634]
call fcn.00406fa0
jmp 0x40b77c
cmp dword [esi + 0x104], 0
je 0x40b46e
mov ecx, dword [esi + 0xf8]
call fcn.00421fa0
test eax, eax
je 0x40b46e
push ecx
mov dword [ebp - 0x7ec], esp
mov ecx, esp
push 0xffffffffffffffff
push 0x5895b8
call fcn.005685f4
mov byte [ebp - 4], 0x13
push ecx
mov dword [ebp - 0x7e8], esp
mov ecx, esp
push 0xffffffffffffffff
push str.SoftwareFoxit_SoftwareFoxit_Reader_7.0pluginsUpdater
call fcn.005685f4
mov byte [ebp - 4], 0x14
push SysReAllocString
lea ecx, [ebp - 0x7e4]
push ecx
mov byte [ebp - 4], 7
call fcn.0042fc70
add esp, 0x10
mov byte [ebp - 4], 0x15
mov eax, dword [eax]
test eax, eax
je 0x40b3ba
add eax, 0xc
jmp 0x40b3bf
mov eax, 0x587f8c
push eax
lea ecx, [ebp - 0x804]
call fcn.00404420
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x7e4]
call fcn.005685da
push 0x5895b4
lea ecx, [ebp - 0x804]
call fcn.00406800
test eax, eax
je 0x40b45a
mov ecx, dword [esi + 0xf8]
lea edx, [ebp - 0x7f8]
push edx
call fcn.004268e0
mov bl, 0x18
mov byte [ebp - 4], bl
push 0
push ecx
lea eax, [ebp - 0x7f8]
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push eax
call fcn.00402a10
mov byte [ebp - 4], 0x19
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x508]
call fcn.00407be0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x508]
call fcn.0044dcb2
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x508]
call fcn.00407b10
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x7f8]
call fcn.004023c0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x804]
call fcn.004023c0
jmp 0x40b77c
cmp dword [esi + 0xfc], 0
je 0x40b77c
push ecx
mov dword [ebp - 0x7ec], esp
mov ecx, esp
push 0xffffffffffffffff
push 0x5895b8
call fcn.005685f4
mov byte [ebp - 4], 0x1b
push ecx
mov dword [ebp - 0x7e8], esp
mov ecx, esp
push 0xffffffffffffffff
push str.SoftwareFoxit_SoftwareFoxit_Reader_7.0pluginsUpdater
call fcn.005685f4
mov byte [ebp - 4], 0x1c
push SysReAllocString
lea ecx, [ebp - 0x7e4]
push ecx
mov byte [ebp - 4], 7
call fcn.0042fc70
add esp, 0x10
mov byte [ebp - 4], 0x1d
mov eax, dword [eax]
test eax, eax
je 0x40b4d4
add eax, 0xc
jmp 0x40b4d9
mov eax, 0x587f8c
push eax
lea ecx, [ebp - 0x7f8]
call fcn.00404420
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x7e4]
call fcn.005685da
push 0x5895b4
lea ecx, [ebp - 0x7f8]
call fcn.00406800
test eax, eax
je 0x40b574
push str.Update_List
lea ecx, [ebp - 0x2c]
call fcn.00403e20
mov bl, 0x20
mov byte [ebp - 4], bl
mov edx, dword [esi + 0xf8]
push 0
push edx
lea eax, [ebp - 0x2c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push ecx
mov ecx, dword [ebp - 0x7f0]
call fcn.00409340
mov byte [ebp - 4], 0x21
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x7dc]
call fcn.00410fb0
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x2c]
call fcn.00402bb0
lea ecx, [ebp - 0x7dc]
call fcn.0044dcb2
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x7dc]
call fcn.00410e00
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7f8]
call fcn.004023c0
jmp 0x40b77c
push str.Foxit_PDF_Creator_X32
lea ecx, [ebp - 0x7e0]
call fcn.00405d00
test eax, eax
je 0x40b7a4
push str.Foxit_PDF_Creator_X64
lea ecx, [ebp - 0x7e0]
call fcn.00405d00
test eax, eax
je 0x40b7a4
mov esi, dword [esi + 0xf4]
xor edi, edi
test esi, esi
je 0x40b5d7
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40b5d7
push esi
call fcn.00447e8e
mov edi, eax
mov edx, dword [ebp - 0x7e0]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x40b5ff
push 0
lea ecx, [ebp - 0x7e0]
call fcn.00401e20
mov edx, dword [ebp - 0x7e0]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00403ee0
mov byte [ebp - 4], 0x24
push 8
push 0
push 0x589548
lea ecx, [ebp - 0x2c]
call fcn.00401c70
test eax, eax
je 0x40b6fd
push 4
push 0
push str.lang
lea ecx, [ebp - 0x2c]
call fcn.00401c70
test eax, eax
je 0x40b6fd
push edi
push ecx
lea edx, [ebp - 0x7e0]
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push edx
call fcn.00402a10
mov byte [ebp - 4], 0x28
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xb30]
call fcn.00418280
mov bl, 0x29
mov byte [ebp - 4], bl
lea ecx, [ebp - 0xb30]
call fcn.0044dcb2
cmp eax, 1
jne 0x40b6ec
push 0
push 0
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push 0x587f88
call fcn.00567811
mov byte [ebp - 4], 0x2a
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x900]
call fcn.00424050
mov byte [ebp - 4], 0x2b
push 0
push 0
push ecx
mov ecx, dword [ebp - 0x7e0]
mov eax, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push ecx
push eax
call fcn.005684d1
add esp, 0xc
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x900]
call fcn.00421f10
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x900]
call fcn.00422ee0
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xb30]
call fcn.00408b70
jmp 0x40b770
push 0
push 0
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push 0x587f88
call fcn.00567811
mov byte [ebp - 4], 0x25
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x900]
call fcn.00424050
mov bl, 0x26
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7e0]
push 0
push 0
push ecx
mov edx, esp
mov dword [ebp - 0x7ec], esp
push 0xffffffffffffffff
push eax
push edx
call fcn.005684d1
add esp, 0xc
mov byte [ebp - 4], 0x27
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x900]
call fcn.00421f10
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x900]
call fcn.00422ee0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2c]
call fcn.00402be0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7e0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b7f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40b7f8
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7e0]
call fcn.004023c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.004023c0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005437e5
mov esp, ebp
pop ebp
ret 8
cmp dword [esi + 0xc8], 0
je 0x40b7f8
mov ecx, esi
call fcn.00409de0
mov dword [ebx], 1
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b81e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x40b7c4
push 0x587f8c
lea ecx, [ebp - 0x7e0]
call fcn.00404420
mov byte [ebp - 4], 0x2e
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, dword [ebp - 0x7e0]
mov edi, eax
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40b873
push 0x104
lea ecx, [ebp - 0x7e0]
call fcn.00401e20
mov edx, dword [ebp - 0x7e0]
push 0x104
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [ebp - 0x7e0]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.00543dc3
add esp, 8
test eax, eax
js 0x40c123
mov ecx, dword [ebp - 0x7e0]
cmp eax, dword [ecx - 8]
jg 0x40c123
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x7e0]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x7e0]
push 0x5c
push eax
call fcn.00543d95
add esp, 8
test eax, eax
jne 0x40b8d3
or eax, 0xffffffff
jmp 0x40b8db
sub eax, dword [ebp - 0x7e0]
sar eax, 1
push eax
lea ecx, [ebp - 0x7f0]
push ecx
lea ecx, [ebp - 0x7e0]
call fcn.00405f30
mov byte [ebp - 4], 0x2f
push eax
lea ecx, [ebp - 0x7e0]
call fcn.00403760
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x7f0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b924
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
lea ecx, [ebp - 0x7f0]
push ecx
lea ecx, [ebp - 0x7e0]
call fcn.00406b40
mov byte [ebp - 4], 0x31
push 0x588d00
push eax
call fcn.00405de0
add esp, 8
mov bl, al
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x7f0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b972
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x40b988
push 1
push 0x588d00
lea ecx, [ebp - 0x7e0]
call fcn.00409220
push 0x587f8c
lea ecx, [ebp - 0x804]
call fcn.00404420
mov byte [ebp - 4], 0x33
push ecx
mov dword [ebp - 0x7e8], esp
mov ecx, esp
push 0xffffffffffffffff
push str.InstallAppName
call fcn.005685f4
mov byte [ebp - 4], 0x34
push ecx
mov dword [ebp - 0x80c], esp
mov ecx, esp
push 0xffffffffffffffff
push str.SOFTWAREFoxit_SoftwareFoxit_Reader
call fcn.005685f4
mov byte [ebp - 4], 0x35
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x7f0]
push ecx
mov byte [ebp - 4], 0x33
call fcn.0042fc70
add esp, 0x10
mov byte [ebp - 4], 0x36
mov eax, dword [eax]
test eax, eax
je 0x40b9f5
add eax, 0xc
jmp 0x40b9fa
mov eax, 0x587f8c
push eax
lea ecx, [ebp - 0x7f8]
call fcn.00404420
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x7f0]
call fcn.005685da
lea edx, [ebp - 0x7f8]
push edx
lea eax, [ebp - 0x7e0]
push eax
lea ecx, [ebp - 0x7f0]
push ecx
call fcn.00409b60
add esp, 0xc
mov byte [ebp - 4], 0x39
push eax
lea ecx, [ebp - 0x804]
call fcn.00403760
mov byte [ebp - 4], 0x38
mov eax, dword [ebp - 0x7f0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ba68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x804]
push 0
push ecx
call fcn.00544011
add esp, 8
test eax, eax
je 0x40bc61
push 0xffffffffffffffff
push 0x587f8c
lea ecx, [ebp - 0x7f4]
call fcn.005685f4
mov byte [ebp - 4], 0x3b
lea edx, [ebp - 0x7e8]
push edx
mov ecx, esi
call fcn.004085d0
mov byte [ebp - 4], 0x3c
mov eax, dword [eax]
test eax, eax
je 0x40bab4
add eax, 0xc
jmp 0x40bab9
mov eax, 0x587f8c
push eax
lea eax, [ebp - 0x80c]
push eax
mov ecx, esi
call fcn.00408700
mov bl, 0x3d
mov byte [ebp - 4], bl
mov eax, dword [eax]
test eax, eax
je 0x40bad8
add eax, 0xc
jmp 0x40badd
mov eax, 0x587f8c
push eax
push 0x2a29
push ecx
mov ecx, esp
mov dword [ebp - 0x810], esp
push 0xffffffffffffffff
push str.FoxitUpdater_DLL
call fcn.00567811
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x7f0]
push ecx
mov byte [ebp - 4], bl
call fcn.004337e0
add esp, 0xc
mov byte [ebp - 4], 0x3f
mov eax, dword [eax]
test eax, eax
je 0x40bb1d
add eax, 0xc
jmp 0x40bb22
mov eax, 0x587f8c
push eax
lea edx, [ebp - 0x7f4]
push edx
call fcn.0056934a
add esp, 0x10
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x7f0]
call fcn.005685da
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x80c]
call fcn.005685da
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x7e8]
call fcn.005685da
lea eax, [ebp - 0x7e8]
push eax
mov ecx, esi
call fcn.004085d0
mov byte [ebp - 4], 0x40
mov eax, dword [eax]
lea ecx, [eax + 0xc]
test eax, eax
jne 0x40bb7e
mov ecx, 0x587f8c
mov eax, dword [ebp - 0x7f4]
test eax, eax
je 0x40bb8d
add eax, 0xc
jmp 0x40bb92
mov eax, 0x587f8c
push 0x30
push ecx
push eax
push 0
mov ecx, 0x5f60b0
call fcn.0040aed0
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x7e8]
call fcn.005685da
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x7f4]
call fcn.005685da
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x7f8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bbe6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x804]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bc0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7e0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bc32
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b7c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40b7c2
push 0x587f8c
lea ecx, [ebp - 0x800]
call fcn.00404420
mov byte [ebp - 4], 0x45
push 4
push str._run
lea ecx, [ebp - 0x800]
call fcn.00409220
push 0xc
push 0x5894a8
lea ecx, [ebp - 0x800]
call fcn.00409220
push 1
push 0x5894a4
lea ecx, [ebp - 0x800]
call fcn.00409220
push 1
push 0x5894a0
lea ecx, [ebp - 0x800]
call fcn.00409220
mov eax, dword [ebp - 0x7e0]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x800]
call fcn.00409220
push 1
push 0x5894a0
lea ecx, [ebp - 0x800]
call fcn.00409220
push 0x587f8c
lea ecx, [ebp - 0x808]
call fcn.00404420
mov byte [ebp - 4], 0x46
push 0x587f8c
lea ecx, [ebp - 0x7fc]
call fcn.00404420
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x7ec]
push ecx
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov edx, dword [ebp - 0x7fc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40bd4e
push 0x104
lea ecx, [ebp - 0x7fc]
call fcn.00401e20
mov edx, dword [ebp - 0x7fc]
push edx
mov edx, dword [ebp - 0x7ec]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x7fc]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.00543dc3
add esp, 8
test eax, eax
js 0x40c123
mov ecx, dword [ebp - 0x7fc]
cmp eax, dword [ecx - 8]
jg 0x40c123
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x7fc]
xor ecx, ecx
mov word [edx + eax*2], cx
call fcn.0044184e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bdaf
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7f4], eax
mov bl, 0x49
mov byte [ebp - 4], bl
push str.Foxit_SoftwareAddonFoxit_Reader_
lea ecx, [ebp - 0x7fc]
push ecx
lea edx, [ebp - 0x7e8]
push edx
call fcn.00406d70
add esp, 0xc
mov byte [ebp - 4], 0x4a
push eax
lea ecx, [ebp - 0x7f4]
call fcn.00403760
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7e8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40be16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.FoxitReaderUpdater.exe
lea ecx, [ebp - 0x7f4]
push ecx
lea edx, [ebp - 0x7e8]
push edx
call fcn.00406d70
add esp, 0xc
mov byte [ebp - 4], 0x4c
push eax
lea ecx, [ebp - 0x808]
call fcn.00403760
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7e8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40be66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x7f4]
push ecx
mov ecx, esi
call fcn.004089d0
push str.FoxitUpdater.exe
lea edx, [ebp - 0x7e0]
push edx
lea eax, [ebp - 0x7e8]
push eax
call fcn.00406d70
add esp, 0xc
mov byte [ebp - 4], 0x4e
mov ecx, dword [ebp - 0x808]
mov eax, dword [eax]
xor edi, edi
push edi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7e8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40becb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.lang
lea ecx, [ebp - 0x7f4]
push ecx
lea edx, [ebp - 0x7e4]
push edx
call fcn.00406d70
add esp, 0xc
mov byte [ebp - 4], 0x50
mov eax, dword [ebp - 0x7e4]
push eax
mov ecx, esi
call fcn.0040a510
push 0x5893fc
lea ecx, [ebp - 0x7f0]
call fcn.00403d20
mov byte [ebp - 4], 0x51
push ecx
mov ecx, esp
mov dword [ebp - 0x810], esp
lea edx, [ebp - 0x7f0]
push edx
lea eax, [ebp - 0x7f4]
push eax
push ecx
call fcn.00409b60
mov byte [ebp - 4], 0x52
add esp, 8
mov ecx, esp
mov dword [ebp - 0x7e8], esp
push str.lang
lea edx, [ebp - 0x7e0]
push edx
push ecx
call fcn.00406d70
add esp, 0xc
mov byte [ebp - 4], 0x53
mov byte [ebp - 4], 0x51
mov ecx, esi
call fcn.0040a790
mov byte [ebp - 4], 0x50
mov eax, dword [ebp - 0x7f0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bf82
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x38
lea ecx, [ebp - 0x848]
push edi
push ecx
call fcn.00543b50
mov edx, dword [ebp - 0x808]
mov eax, dword [ebp - 0x800]
add esp, 0xc
lea ecx, [ebp - 0x84c]
push ecx
mov dword [ebp - 0x84c], 0x3c
mov dword [ebp - 0x848], 0x40
mov dword [ebp - 0x844], edi
mov dword [ebp - 0x840], edi
mov dword [ebp - 0x83c], edx
mov dword [ebp - 0x838], eax
mov dword [ebp - 0x834], edi
mov dword [ebp - 0x830], 5
mov dword [ebp - 0x82c], edi
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7e4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c014
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x47
mov eax, dword [ebp - 0x7f4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c03a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x46
mov eax, dword [ebp - 0x7fc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c060
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x45
mov eax, dword [ebp - 0x808]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c086
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x38
mov eax, dword [ebp - 0x800]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x7f8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x804]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7e0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c11e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40bc32
push 0x80070057
call fcn.00401090
int3