Function at 0x40a9d0
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x4253ab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1e0
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x31
xor eax, eax
lea edi, [esp + 0x25]
mov byte [esp + 0x24], bl
lea edx, [esp + 0x24]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x4321d4
or ecx, 0xffffffff
xor eax, eax
push 0x5c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x42b74c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
mov ebp, dword [esp + 0x208]
and ecx, 3
lea eax, [ebp + 0xc]
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.00412e40
lea edi, [eax + 1]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x24]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x24]
and ecx, 3
push 0x3001
rep movsb byte es:[edi], byte [esi]
push eax
lea ecx, [esp + 0x1c]
call fcn.0041ef80
mov esi, dword [ebp + 0x114]
mov dword [esp + 0x1f8], ebx
cmp esi, ebx
jne 0x40aac8
push ebx
lea ecx, [esp + 0x18]
call fcn.0041f3ab
mov eax, dword [ebp + 8]
mov edi, 0x4b000
cmp eax, ebx
je 0x40aada
mov edi, dword [ebp + 0x4b118]
lea eax, [esi + esi*2]
push 1
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
shl ecx, 0xc
push ecx
lea ecx, [esp + 0x1c]
call fcn.0041f27f
lea edx, [ebp + 0x118]
push edi
push edx
lea ecx, [esp + 0x1c]
call fcn.0041f234
lea ecx, [esp + 0x14]
call fcn.0041f3d7
lea ecx, [esp + 0x14]
mov esi, eax
call fcn.0041f2f8
cmp dword [ebp + 8], ebx
je 0x40abec
mov eax, dword [ebp + 0x110]
mov dword [esp + 0x10], ebx
cmp esi, eax
jne 0x40abe1
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xed]
mov byte [esp + 0xec], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x4321d4
lea eax, [esp + 0xf0]
push str._s_filesetup.exe
push eax
call fcn.0041269a
add esp, 0xc
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
cmp esi, ebx
je 0x40ac19
push str.WriteClientUpdateFile
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
cmp edi, ebx
je 0x40abd4
lea edx, [esp + 0xec]
push edx
push str.UpdateFile____s
call fcn.00402960
add esp, 8
lea eax, [esp + 0xec]
push eax
call edi
test eax, eax
je 0x40abbf
mov dword [esp + 0x10], 1
call fcn.0040ac30
jmp 0x40abd4
lea ecx, [esp + 0xec]
push ecx
push str.Write_File_Error___FileSetupPath____s
call fcn.00402960
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [esp + 0x10], ebx
jne 0x40abec
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x14]
mov dword [esp + 0x1f8], 0xffffffff
call fcn.0041f020
mov ecx, dword [esp + 0x1f0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1ec
ret
lea edx, [esp + 0x24]
push edx
push str.LoadLibrary_Error__filePath____s
call fcn.00402960
add esp, 8
jmp 0x40abe1