Function at 0x404e40
Capabilities:
Check if file exists

Disassembly:
mov eax, 0x5014
call fcn.0040fae0
mov eax, dword [0x43217c]
xor eax, esp
mov dword [esp + 0x5010], eax
push ebx
push esi
xor ebx, ebx
mov esi, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0x2f
mov byte [esp + 0xb], 1
cmp esi, ebx
je 0x40538d
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x404e80
sub eax, edx
sar eax, 1
je 0x40538d
push ebp
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404f5d
push 0x42b644
mov ecx, 0x434070
call fcn.00402cb0
push 0x3ff
push esi
lea ebp, [edi + 0x800]
push 0x400
push ebp
call fcn.004084c5
push ebp
push str.Source_Dir_:___s_
mov ecx, 0x434070
call fcn.00402cb0
mov eax, ebp
add esp, 0x1c
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x404ee3
sub eax, edx
sar eax, 1
cmp word [edi + eax*2 + 0x7fe], 0x5c
jne 0x404f1b
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x404f02
sub eax, edx
sar eax, 1
xor ecx, ecx
mov word [edi + eax*2 + 0x7fe], cx
push 0x5c
push ebp
call fcn.00408245
add esp, 8
cmp eax, ebx
je 0x404f2f
add eax, 2
jmp 0x404f31
mov eax, ebp
push eax
push str._s.exe
mov edx, edi
call fcn.00402980
mov al, byte [esp + 0x17]
add esp, 8
pop ebp
pop esi
pop ebx
mov ecx, dword [esp + 0x5010]
xor ecx, esp
call fcn.0040800b
add esp, 0x5014
ret
push 0x2000
lea edx, [esp + 0x3020]
push ebx
push edx
call fcn.00409180
push 0xfff
push esi
lea eax, [esp + 0x3030]
push 0x1000
push eax
call fcn.004084c5
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x3040]
push eax
call fcn.004082c2
mov esi, eax
add esp, 0x28
cmp esi, ebx
je 0x405371
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x2000
lea ecx, [esp + 0x1020]
push ebx
push ecx
call fcn.00409180
push 0xfff
push esi
lea edx, [esp + 0x1030]
push 0x1000
push edx
call fcn.004084c5
push 0xc
lea eax, [esp + 0x103c]
push str.installparam
push eax
call fcn.00408acb
add esp, 0x28
test eax, eax
jne 0x405066
push 0xfff
lea ecx, [esp + 0x1038]
push ecx
lea esi, [edi + 0x1800]
push 0x1000
push esi
call fcn.004084c5
mov ecx, 0x42b6c8
mov edx, esi
call fcn.00405ac0
mov ecx, 0x42b6c8
mov edx, esi
call fcn.00405c70
push 0x42b640
push 0x42b6d0
push esi
call fcn.00405820
push 0x42b6d8
push 0x42b6dc
push esi
call fcn.00405820
push esi
push 0x42b6e0
mov ecx, 0x434070
call fcn.00402cb0
add esp, 0x30
jmp 0x405354
push 0xa
lea edx, [esp + 0x1020]
push str.installcmd
push edx
call fcn.00408acb
add esp, 0xc
test eax, eax
jne 0x4050cf
push 0x3ff
lea eax, [esp + 0x1034]
push eax
lea esi, [edi + 0x1000]
push 0x400
push esi
call fcn.004084c5
mov ecx, 0x42b6c8
mov edx, esi
call fcn.00405ac0
mov ecx, 0x42b6c8
mov edx, esi
call fcn.00405c70
push esi
push str.Command:___s_
mov ecx, 0x434070
call fcn.00402cb0
add esp, 0x18
jmp 0x405354
push 8
lea ecx, [esp + 0x1020]
push str.compress
push ecx
call fcn.00408acb
add esp, 0xc
test eax, eax
jne 0x405132
push 0x3ff
lea edx, [esp + 0x1030]
push edx
push 0x400
push edi
call fcn.004084c5
mov ecx, 0x42b6c8
mov edx, edi
call fcn.00405ac0
mov ecx, 0x42b6c8
mov edx, edi
call fcn.00405c70
push edi
push str.Target:___s_
mov ecx, 0x434070
call fcn.00402cb0
add esp, 0x18
jmp 0x405354
push 3
lea eax, [esp + 0x1020]
push 0x42b75c
push eax
call fcn.00408acb
add esp, 0xc
test eax, eax
jne 0x405275
push 0x800
lea ecx, [esp + 0x20]
push ebx
push ecx
call fcn.00409180
push 0x3ff
lea edx, [esp + 0x1032]
push edx
lea eax, [esp + 0x30]
push 0x400
push eax
call fcn.004084c5
add esp, 0x1c
mov ecx, 0x42b6c8
lea edx, [esp + 0x1c]
call fcn.00405ac0
mov ecx, 0x42b6c8
lea edx, [esp + 0x1c]
call fcn.00405c70
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [esp + 0x1c]
push ecx
call esi
test eax, eax
jne 0x405239
push 0x800
lea edx, [esp + 0x820]
push ebx
push edx
call fcn.00409180
add esp, 0xc
push 0x400
lea eax, [esp + 0x820]
push eax
push ebx
call ebp
test eax, eax
je 0x405221
lea ecx, [esp + 0x81c]
push 0x5c
push ecx
call fcn.00408245
add esp, 8
cmp eax, ebx
je 0x4051f6
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x820]
push ecx
push 0x429df4
lea edx, [edi + 0x800]
call fcn.00402980
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
call esi
test eax, eax
jne 0x405257
push str.Set_Source_Path_fail___
mov ecx, 0x434070
call fcn.00402cb0
add esp, 4
mov byte [esp + 0xf], bl
jmp 0x405257
push 0x3ff
lea eax, [esp + 0x20]
push eax
lea ecx, [edi + 0x800]
push 0x400
push ecx
call fcn.004084c5
add esp, 0x10
lea edx, [edi + 0x800]
push edx
push str.Source_Dir_:___s_
mov ecx, 0x434070
call fcn.00402cb0
add esp, 8
jmp 0x405354
push 3
lea eax, [esp + 0x1020]
push 0x42b794
push eax
call fcn.00408acb
add esp, 0xc
test eax, eax
jne 0x405310
push 0x3ff
lea ecx, [esp + 0x1026]
push ecx
lea esi, [edi + 0x3800]
push 0x400
push esi
call fcn.004084c5
add esp, 0x10
mov ecx, 0x42b6c8
mov edx, esi
call fcn.00405ac0
mov ecx, 0x42b6c8
mov edx, esi
call fcn.00405c70
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4052d2
sub eax, edx
sar eax, 1
jne 0x4052fb
push 0x3ff
push str.NOT_USE_RESOURCE_UPDATE
push 0x400
push esi
call fcn.004084c5
add esp, 0x10
push esi
push str.Resource_Module_:___s_
mov ecx, 0x434070
call fcn.00402cb0
add esp, 8
jmp 0x405354
push 9
lea edx, [esp + 0x1020]
push str.noversion
push edx
call fcn.00408acb
add esp, 0xc
test eax, eax
jne 0x405333
mov byte [edi + 0x4000], bl
jmp 0x405354
push 6
lea eax, [esp + 0x1020]
push str.noicon
push eax
call fcn.00408acb
add esp, 0xc
test eax, eax
jne 0x405354
mov byte [edi + 0x4001], bl
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push ebx
call fcn.004082c2
mov esi, eax
add esp, 0xc
cmp esi, ebx
jne 0x404fb2
mov al, byte [esp + 0xf]
pop ebp
pop esi
pop ebx
mov ecx, dword [esp + 0x5010]
xor ecx, esp
call fcn.0040800b
add esp, 0x5014
ret
mov ecx, dword [esp + 0x5018]
pop esi
pop ebx
xor ecx, esp
mov al, 1
call fcn.0040800b
add esp, 0x5014
ret