Function at 0x421ce8
Capabilities:
Check if file exists

Disassembly:
push 0x284
mov eax, 0x46f05b
call fcn.004490ad
mov esi, ecx
mov al, byte [0x49e0ae]
mov edi, 0x4754d0
test al, al
je 0x421d19
push str.deploySelf
movzx eax, al
push edi
push eax
call fcn.00410c97
add esp, 0xc
cmp byte [ebp + 8], 0
je 0x42212a
lea eax, [ebp - 0x230]
mov ecx, esi
push eax
call fcn.0041d3bc
mov cl, byte [0x49e0ae]
xor ebx, ebx
mov dword [ebp - 4], ebx
test cl, cl
je 0x421d66
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
movzx eax, cl
push str.Bootstrapper::deploySelf___Final_file_path_S
push eax
call fcn.00410bbc
add esp, 0xc
cmp byte [0x4f1ad0], bl
je 0x421f4a
push str.Error_when_getting_bootstrapper_filename_for_selfDeploy
lea ecx, [ebp - 0x278]
call fcn.00403e21
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 1
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push eax
call fcn.004158b7
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0
call fcn.00409040
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00403e9d
mov cl, byte [0x49e0ae]
mov byte [ebp - 4], 2
test cl, cl
je 0x421e02
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
movzx eax, cl
push str.GetModuleFileName:__S
push eax
call fcn.00410bbc
add esp, 0xc
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x421ead
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.004236dc
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.004236dc
add esp, 0x10
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x260]
call fcn.0040d525
test eax, eax
je 0x421e89
mov al, byte [0x49e0ae]
test al, al
je 0x421e87
push str.EXE_hash_mismatch__forcing_deploy
movzx eax, al
push edi
push eax
call fcn.00410c97
add esp, 0xc
mov bl, 1
push 0
push 1
lea ecx, [ebp - 0x278]
call fcn.00409040
push 0
push 1
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 2
call fcn.00409040
jmp 0x421eca
mov al, byte [0x49e0ae]
test al, al
je 0x421ec8
push str._PathFileExists
movzx eax, al
push edi
push eax
call fcn.00410c97
add esp, 0xc
mov bl, 1
test bl, bl
je 0x421f43
push 8
pop ebx
cmp dword [ebp - 0x21c], ebx
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x248]
cmovae ecx, dword [ebp - 0x230]
cmp dword [ebp - 0x234], ebx
push ecx
cmovae eax, dword [ebp - 0x248]
push eax
call fcn.0041433a
mov dl, byte [0x49e0ae]
pop ecx
pop ecx
test dl, dl
je 0x421f43
cmp dword [ebp - 0x21c], ebx
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x248]
cmovae ecx, dword [ebp - 0x230]
cmp dword [ebp - 0x234], ebx
push ecx
cmovae eax, dword [ebp - 0x248]
push eax
movzx eax, dl
push str.Copy:_from___S_to__S
push eax
call fcn.00410bbc
add esp, 0x10
xor ebx, ebx
jmp 0x42208b
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov al, byte [0x49e0ae]
jne 0x42209e
test al, al
je 0x421f88
push str._PathFileExists
movzx eax, al
push edi
push eax
call fcn.00410c97
add esp, 0xc
push str.Error_when_getting_bootstrapper_filename_for_selfDeploy
lea ecx, [ebp - 0x260]
call fcn.00403e21
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 5
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push eax
call fcn.004158b7
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], bl
call fcn.00409040
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00403e9d
mov cl, byte [0x49e0ae]
mov byte [ebp - 4], 6
test cl, cl
je 0x422015
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
movzx eax, cl
push str.GetModuleFileName:__S
push eax
call fcn.00410bbc
add esp, 0xc
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x248]
cmovae ecx, dword [ebp - 0x230]
cmp dword [ebp - 0x234], 8
push ecx
cmovae eax, dword [ebp - 0x248]
push eax
call fcn.0041433a
mov dl, byte [0x49e0ae]
pop ecx
pop ecx
test dl, dl
je 0x42208b
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x248]
cmovae ecx, dword [ebp - 0x230]
cmp dword [ebp - 0x234], 8
push ecx
cmovae eax, dword [ebp - 0x248]
push eax
movzx eax, dl
push str.Copy:_from___S_to__S
push eax
call fcn.00410bbc
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], bl
call fcn.00409095
jmp 0x4220b4
test al, al
je 0x4220b4
push str.PathFileExists
movzx eax, al
push edi
push eax
call fcn.00410c97
add esp, 0xc
mov eax, dword [esi]
lea ecx, [ebp - 0x290]
push ecx
mov ecx, esi
call dword [eax + 0x60]
mov eax, dword [esi]
lea ecx, [ebp - 0x260]
push ecx
mov ecx, esi
mov byte [ebp - 4], 7
call dword [eax + 0x90]
cmp dword [ebp - 0x27c], 8
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 8
cmovae ecx, dword [ebp - 0x290]
cmp dword [eax + 0x14], 8
jb 0x4220f7
mov eax, dword [eax]
push ecx
push eax
mov ecx, esi
call fcn.0041da04
push ebx
push 1
lea ecx, [ebp - 0x260]
call fcn.00409095
push ebx
push 1
lea ecx, [ebp - 0x290]
call fcn.00409095
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.00409095
call fcn.00449057
ret 4