Function at 0x409d10
Capabilities:
Copy file
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5753de
mov eax, dword fs:[0]
push eax
sub esp, 0xb2c
mov eax, dword [0x5f6998]
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 0x40a594
lea ecx, [ebp - 0x7ec]
lea edi, [esi + 0xb8]
push ecx
mov ecx, edi
mov dword [ebp - 0x80c], edi
call fcn.00402ed0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x138]
push eax
call fcn.00403340
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7ec]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409da7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x7ec]
push ecx
mov ecx, edi
call fcn.00408100
mov byte [ebp - 4], 3
lea ecx, [esi + 0x13c]
push eax
call fcn.00403340
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7ec]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409deb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
push ecx
mov dword [ebp - 0x7f0], esp
mov ecx, esp
push 0xffffffffffffffff
push 0x58df78
call fcn.00568ba9
mov byte [ebp - 4], 5
push 1
mov byte [ebp - 4], 0
call fcn.005719b0
add esp, 0xc
cmp dword [esi + 0xe4], 0
je 0x409e6a
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567cd2
mov byte [ebp - 4], 6
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x970]
call fcn.004302f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x970]
call fcn.0044cf2a
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x970]
call fcn.004303b0
jmp 0x40a567
cmp dword [esi + 0xc8], 0
je 0x40a551
mov eax, dword [esi + 0xf8]
push eax
mov ecx, 0x5fc290
call fcn.00407680
push 0x58df78
lea ecx, [ebp - 0x7e8]
call fcn.00403d90
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x7ec]
push ecx
mov ecx, edi
call fcn.00408040
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x7e8]
call fcn.00403340
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x7ec]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409ee0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x7ec]
push str.Update_List
push ecx
call fcn.00569858
add esp, 0xc
mov byte [ebp - 4], 0xb
mov eax, dword [eax]
test eax, eax
je 0x409f05
add eax, 0xc
jmp 0x409f0a
mov eax, 0x58df78
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409f1f
push 0x80004005
call fcn.00401090
mov edx, dword [ebp - 0x7e8]
push eax
push edx
call fcn.005430ac
add esp, 8
test eax, eax
sete bl
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x7ec]
call fcn.00567cb8
test bl, bl
je 0x409f94
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567cd2
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x970]
call fcn.004302f0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x970]
call fcn.0044cf2a
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x970]
call fcn.004303b0
jmp 0x40a4eb
push 0xffffffffffffffff
lea eax, [ebp - 0x7ec]
push str.Auto_Updater
push eax
call fcn.00569858
add esp, 0xc
mov byte [ebp - 4], 0xe
mov eax, dword [eax]
test eax, eax
je 0x409fb9
add eax, 0xc
jmp 0x409fbe
mov eax, 0x58df78
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x409fd3
push 0x80004005
call fcn.00401090
mov ecx, dword [ebp - 0x7e8]
push eax
push ecx
call fcn.005430ac
add esp, 8
test eax, eax
sete bl
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x7ec]
call fcn.00567cb8
test bl, bl
je 0x40a2f7
mov edi, dword [esi + 0xf8]
test edi, edi
je 0x40a01a
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40a01a
push edi
call fcn.004470e0
push 0x58f414
push str.Updated
push str.SOFTWAREFoxit_SoftwareFoxit_Updater
push SysReAllocStringLen
call fcn.004331c0
push 0x9c
call fcn.0043f938
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x7f0], edi
mov bl, 0xf
mov byte [ebp - 4], bl
test edi, edi
je 0x40a07c
push 0
push 0
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x7f4], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567cd2
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], bl
mov ecx, edi
call fcn.00424e40
jmp 0x40a07e
xor eax, eax
mov byte [ebp - 4], 8
mov dword [esi + 0xfc], eax
mov edi, 1
push str.Update_List
lea ecx, [ebp - 0x2c]
mov dword [eax + 0x18], edi
call fcn.00403a00
mov byte [ebp - 4], 0x11
mov ecx, dword [esi + 0xfc]
lea edx, [ebp - 0x2c]
push edx
call fcn.0042e740
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2c]
call fcn.00402790
mov ecx, dword [esi + 0xfc]
call fcn.00422c40
push ecx
mov dword [ebp - 0x7f0], esp
mov ecx, esp
push 0xffffffffffffffff
push 0x58f3a0
call fcn.00568ba9
mov byte [ebp - 4], 0x12
push ecx
mov dword [ebp - 0x7f4], esp
mov ecx, esp
push 0xffffffffffffffff
push str.SoftwareFoxit_SoftwareFoxit_Reader_8.0pluginsUpdater
call fcn.00568ba9
mov byte [ebp - 4], 0x13
push SysReAllocStringLen
lea eax, [ebp - 0x7ec]
push eax
mov byte [ebp - 4], 8
call fcn.004330a0
add esp, 0x10
mov byte [ebp - 4], 0x14
mov eax, dword [eax]
test eax, eax
je 0x40a120
add eax, 0xc
jmp 0x40a125
mov eax, 0x58df78
push eax
lea ecx, [ebp - 0x808]
call fcn.00403d90
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x7ec]
call fcn.00567cb8
cmp dword [0x5fc394], 0
je 0x40a1fc
mov ecx, dword [esi + 0xfc]
push 0
push ecx
lea ecx, [ebp - 0x634]
call fcn.00406940
mov bl, 0x17
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x634]
call fcn.0044cf2a
cmp eax, edi
jne 0x40a1c7
mov edx, dword [esi + 0xfc]
push edi
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push str.Update_List
call fcn.00567cd2
mov byte [ebp - 4], 0x18
mov byte [ebp - 4], bl
mov ecx, dword [esi + 0xfc]
call fcn.00422890
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x634]
call fcn.00406ab0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x808]
call fcn.00401f60
jmp 0x40a4eb
cmp eax, 0x435
jne 0x40a1d9
mov ecx, dword [esi + 0xfc]
call fcn.0042a110
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x634]
call fcn.00406ab0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x808]
call fcn.00401f60
jmp 0x40a4eb
push 0x58f39c
lea ecx, [ebp - 0x808]
call fcn.00406210
test eax, eax
jne 0x40a26e
mov dword [esi + 0x114], edi
cmp dword [esi + 0x100], eax
je 0x40a2e3
push str.Update_List
lea ecx, [ebp - 0x2c]
call fcn.00403a00
mov bl, 0x19
mov byte [ebp - 4], bl
mov eax, dword [esi + 0xfc]
push 0
push eax
lea ecx, [ebp - 0x2c]
push ecx
push ecx
mov ecx, dword [ebp - 0x80c]
mov edx, esp
mov dword [ebp - 0x7f0], esp
push edx
call fcn.004080a0
mov byte [ebp - 4], 0x1a
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x7e4]
call fcn.0040f1b0
mov byte [ebp - 4], 0x1c
jmp 0x40a2c1
cmp dword [esi + 0x100], 0
je 0x40a2e3
push str.Update_List
lea ecx, [ebp - 0x2c]
call fcn.00403a00
mov bl, 0x1d
mov byte [ebp - 4], bl
mov eax, dword [esi + 0xfc]
push 0
push eax
lea ecx, [ebp - 0x2c]
push ecx
push ecx
mov ecx, dword [ebp - 0x80c]
mov edx, esp
mov dword [ebp - 0x7f0], esp
push edx
call fcn.004080a0
mov byte [ebp - 4], 0x1e
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x7e4]
call fcn.0040f1b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x2c]
call fcn.00402790
lea ecx, [ebp - 0x7e4]
call fcn.0044cf2a
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x7e4]
call fcn.0040f000
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x808]
call fcn.00401f60
jmp 0x40a4eb
push str.Foxit_PDF_Creator_X32
lea ecx, [ebp - 0x7e8]
call fcn.004056e0
test eax, eax
je 0x40a513
push str.Foxit_PDF_Creator_X64
lea ecx, [ebp - 0x7e8]
call fcn.004056e0
test eax, eax
je 0x40a513
mov esi, dword [esi + 0xf8]
xor edi, edi
test esi, esi
je 0x40a346
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40a346
push esi
call fcn.004470e0
mov edi, eax
mov edx, dword [ebp - 0x7e8]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x40a36e
push 0
lea ecx, [ebp - 0x7e8]
call fcn.004019c0
mov edx, dword [ebp - 0x7e8]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00403ac0
mov byte [ebp - 4], 0x21
push 8
push 0
push 0x58f330
lea ecx, [ebp - 0x2c]
call fcn.00401810
test eax, eax
je 0x40a46c
push 4
push 0
push str.lang
lea ecx, [ebp - 0x2c]
call fcn.00401810
test eax, eax
je 0x40a46c
push edi
push ecx
lea eax, [ebp - 0x7e8]
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push eax
call fcn.004025f0
mov byte [ebp - 4], 0x25
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0xb38]
call fcn.00417f90
mov bl, 0x26
mov byte [ebp - 4], bl
lea ecx, [ebp - 0xb38]
call fcn.0044cf2a
cmp eax, 1
jne 0x40a45b
push 0
push 0
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push 0x58e1fe
call fcn.00567cd2
mov byte [ebp - 4], 0x27
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x8f4]
call fcn.00424e40
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x7e8]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push edx
push ecx
call fcn.00568a88
add esp, 0xc
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x8f4]
call fcn.00422890
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x8f4]
call fcn.00423c10
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0xb38]
call fcn.00407ca0
jmp 0x40a4df
push 0
push 0
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push 0x58e1fe
call fcn.00567cd2
mov byte [ebp - 4], 0x22
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x8f4]
call fcn.00424e40
mov bl, 0x23
mov byte [ebp - 4], bl
push 0
push 0
push ecx
mov ecx, dword [ebp - 0x7e8]
mov eax, esp
mov dword [ebp - 0x7f0], esp
push 0xffffffffffffffff
push ecx
push eax
call fcn.00568a88
add esp, 0xc
mov byte [ebp - 4], 0x24
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x8f4]
call fcn.00422890
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x8f4]
call fcn.00423c10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2c]
call fcn.004027c0
mov byte [ebp - 4], 0
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 0x40a567
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40a567
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7e8]
call fcn.00401f60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00401f60
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.00542c3e
mov esp, ebp
pop ebp
ret 8
cmp dword [esi + 0xcc], 0
je 0x40a567
mov ecx, esi
call fcn.00409690
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 0x40a58d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x40a533
push 0x58df78
lea ecx, [ebp - 0x7e8]
call fcn.00403d90
mov byte [ebp - 4], 0x2b
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, dword [ebp - 0x7e8]
mov edi, eax
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40a5e2
push 0x104
lea ecx, [ebp - 0x7e8]
call fcn.004019c0
mov edx, dword [ebp - 0x7e8]
push 0x104
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [ebp - 0x7e8]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.00542f68
add esp, 8
test eax, eax
js 0x40aeac
mov ecx, dword [ebp - 0x7e8]
cmp eax, dword [ecx - 8]
jg 0x40aeac
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x7e8]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x7e8]
push 0x5c
push eax
call fcn.00542f3a
add esp, 8
test eax, eax
jne 0x40a642
or eax, 0xffffffff
jmp 0x40a64a
sub eax, dword [ebp - 0x7e8]
sar eax, 1
push eax
lea ecx, [ebp - 0x7f8]
push ecx
lea ecx, [ebp - 0x7e8]
call fcn.00405910
mov byte [ebp - 4], 0x2c
push eax
lea ecx, [ebp - 0x7e8]
call fcn.00403340
mov byte [ebp - 4], 0x2b
mov eax, dword [ebp - 0x7f8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a693
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
lea ecx, [ebp - 0x7f8]
push ecx
lea ecx, [ebp - 0x7e8]
call fcn.00406570
mov byte [ebp - 4], 0x2e
push 0x58eb80
push eax
call fcn.004057c0
add esp, 8
mov bl, al
mov byte [ebp - 4], 0x2b
mov eax, dword [ebp - 0x7f8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a6e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x40a6f7
push 1
push 0x58eb80
lea ecx, [ebp - 0x7e8]
call fcn.004066d0
push 0x58df78
lea ecx, [ebp - 0x808]
call fcn.00403d90
mov byte [ebp - 4], 0x30
push ecx
mov dword [ebp - 0x7f4], esp
mov ecx, esp
push 0xffffffffffffffff
push str.InstallAppName
call fcn.00568ba9
mov byte [ebp - 4], 0x31
push ecx
mov dword [ebp - 0x814], esp
mov ecx, esp
push 0xffffffffffffffff
push str.SOFTWAREFoxit_SoftwareFoxit_Reader
call fcn.00568ba9
mov byte [ebp - 4], 0x32
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x7f8]
push ecx
mov byte [ebp - 4], 0x30
call fcn.004330a0
add esp, 0x10
mov byte [ebp - 4], 0x33
mov eax, dword [eax]
test eax, eax
je 0x40a764
add eax, 0xc
jmp 0x40a769
mov eax, 0x58df78
push eax
lea ecx, [ebp - 0x80c]
call fcn.00403d90
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x7f8]
call fcn.00567cb8
lea edx, [ebp - 0x80c]
push edx
lea eax, [ebp - 0x7e8]
push eax
lea ecx, [ebp - 0x7f8]
push ecx
call fcn.00408920
add esp, 0xc
mov byte [ebp - 4], 0x36
push eax
lea ecx, [ebp - 0x808]
call fcn.00403340
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0x7f8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a7d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x808]
push 0
push ecx
call fcn.005431b6
add esp, 8
test eax, eax
je 0x40a9ef
push 0xffffffffffffffff
push 0x58df78
lea ecx, [ebp - 0x7fc]
call fcn.00568ba9
mov byte [ebp - 4], 0x38
lea edx, [ebp - 0x7f4]
push edx
mov ecx, esi
call fcn.00407370
mov byte [ebp - 4], 0x39
mov eax, dword [eax]
test eax, eax
je 0x40a823
add eax, 0xc
jmp 0x40a828
mov eax, 0x58df78
push eax
lea eax, [ebp - 0x814]
push eax
mov ecx, esi
call fcn.004074a0
mov bl, 0x3a
mov byte [ebp - 4], bl
mov eax, dword [eax]
test eax, eax
je 0x40a847
add eax, 0xc
jmp 0x40a84c
mov eax, 0x58df78
push eax
push 0x2a29
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push 0xffffffffffffffff
push str.FoxitUpdater_DLL
call fcn.00567cd2
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x818]
push ecx
mov byte [ebp - 4], bl
call fcn.00571a50
add esp, 0xc
mov byte [ebp - 4], 0x3c
mov eax, dword [eax]
test eax, eax
je 0x40a88c
add eax, 0xc
jmp 0x40a891
mov eax, 0x58df78
push eax
lea edx, [ebp - 0x7f8]
push edx
call fcn.0056de60
add esp, 0x10
mov byte [ebp - 4], 0x3d
push eax
lea ecx, [ebp - 0x7fc]
call fcn.005691b6
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x7f8]
call fcn.00567cb8
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x818]
call fcn.00567cb8
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x814]
call fcn.00567cb8
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x7f4]
call fcn.00567cb8
lea eax, [ebp - 0x7f4]
push eax
mov ecx, esi
call fcn.00407370
mov byte [ebp - 4], 0x3e
mov eax, dword [eax]
lea ecx, [eax + 0xc]
test eax, eax
jne 0x40a90c
mov ecx, 0x58df78
mov eax, dword [ebp - 0x7fc]
test eax, eax
je 0x40a91b
add eax, 0xc
jmp 0x40a920
mov eax, 0x58df78
push 0x30
push ecx
push eax
push 0
mov ecx, 0x5fc290
call fcn.00409a40
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x7f4]
call fcn.00567cb8
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x7fc]
call fcn.00567cb8
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x80c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a974
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2b
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 0x40a99a
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 - 0x7e8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a9c0
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 0x40a531
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40a531
push 0x58df78
lea ecx, [ebp - 0x800]
call fcn.00403d90
mov byte [ebp - 4], 0x43
push 4
push str._run
lea ecx, [ebp - 0x800]
call fcn.004066d0
push 0xc
push 0x58f2e8
lea ecx, [ebp - 0x800]
call fcn.004066d0
push 1
push 0x58f2e4
lea ecx, [ebp - 0x800]
call fcn.004066d0
push 1
push 0x58f2e0
lea ecx, [ebp - 0x800]
call fcn.004066d0
mov eax, dword [ebp - 0x7e8]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x800]
call fcn.004066d0
push 1
push 0x58f2e0
lea ecx, [ebp - 0x800]
call fcn.004066d0
push 0x58df78
lea ecx, [ebp - 0x810]
call fcn.00403d90
mov byte [ebp - 4], 0x44
push 0x58df78
lea ecx, [ebp - 0x804]
call fcn.00403d90
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x7f0]
push ecx
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov edx, dword [ebp - 0x804]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40aadc
push 0x104
lea ecx, [ebp - 0x804]
call fcn.004019c0
mov edx, dword [ebp - 0x804]
push edx
mov edx, dword [ebp - 0x7f0]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x804]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.00542f68
add esp, 8
test eax, eax
js 0x40aeac
mov ecx, dword [ebp - 0x804]
cmp eax, dword [ecx - 8]
jg 0x40aeac
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x804]
xor ecx, ecx
mov word [edx + eax*2], cx
call fcn.00440a7e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40ab3d
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 - 0x7fc], eax
mov bl, 0x47
mov byte [ebp - 4], bl
push str.Foxit_SoftwareAddonFoxit_Reader_
lea ecx, [ebp - 0x804]
push ecx
lea edx, [ebp - 0x7f4]
push edx
call fcn.00406860
add esp, 0xc
mov byte [ebp - 4], 0x48
push eax
lea ecx, [ebp - 0x7fc]
call fcn.00403340
mov byte [ebp - 4], bl
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 0x40aba4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.FoxitReaderUpdater.exe
lea ecx, [ebp - 0x7fc]
push ecx
lea edx, [ebp - 0x7f4]
push edx
call fcn.00406860
add esp, 0xc
mov byte [ebp - 4], 0x4a
push eax
lea ecx, [ebp - 0x810]
call fcn.00403340
mov byte [ebp - 4], bl
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 0x40abf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x7fc]
push edi
mov ecx, esi
call fcn.00407770
push str.FoxitUpdater.exe
lea ecx, [ebp - 0x7e8]
push ecx
lea edx, [ebp - 0x7f4]
push edx
call fcn.00406860
add esp, 0xc
mov byte [ebp - 4], 0x4c
mov ecx, dword [ebp - 0x810]
mov eax, dword [eax]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7f4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ac58
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.lang
lea ecx, [ebp - 0x7fc]
push ecx
lea edx, [ebp - 0x7ec]
push edx
call fcn.00406860
add esp, 0xc
mov byte [ebp - 4], 0x4e
mov eax, dword [ebp - 0x7ec]
push eax
mov ecx, esi
call fcn.00438180
push 0x58f230
lea ecx, [ebp - 0x7f8]
call fcn.00403900
mov byte [ebp - 4], 0x4f
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
lea edx, [ebp - 0x7f8]
push edx
lea eax, [ebp - 0x7fc]
push eax
push ecx
call fcn.00408920
mov byte [ebp - 4], 0x50
add esp, 8
mov ecx, esp
mov dword [ebp - 0x7f4], esp
push str.lang
lea edx, [ebp - 0x7e8]
push edx
push ecx
call fcn.00406860
add esp, 0xc
mov byte [ebp - 4], 0x51
mov byte [ebp - 4], 0x4f
mov ecx, esi
call fcn.004091a0
mov byte [ebp - 4], 0x4e
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 0x40ad0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x38
xor esi, esi
lea ecx, [ebp - 0x854]
push esi
push ecx
call fcn.00542dc0
mov edx, dword [ebp - 0x810]
mov eax, dword [ebp - 0x800]
add esp, 0xc
lea ecx, [ebp - 0x858]
push ecx
mov dword [ebp - 0x858], 0x3c
mov dword [ebp - 0x854], 0x40
mov dword [ebp - 0x850], esi
mov dword [ebp - 0x84c], esi
mov dword [ebp - 0x848], edx
mov dword [ebp - 0x844], eax
mov dword [ebp - 0x840], esi
mov dword [ebp - 0x83c], 5
mov dword [ebp - 0x838], esi
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x7ec]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ada3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x45
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40adc3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x44
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 0x40ade9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x43
mov eax, dword [ebp - 0x810]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x35
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 0x40ae35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x80c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2b
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 0x40ae81
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 - 0x7e8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aea7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40a9c0
push 0x80070057
call fcn.00401090
int3