Function at 0x100037c0
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4d0
push ebx
push esi
mov dword [ebp - 4], ecx
push edi
add ecx, 0x44
call fcn.100042d4
test eax, eax
ja 0x100037e3
push 3
pop eax
jmp 0x10003eea
xor ebx, ebx
push 0x104
push ebx
push dword [ebp + 8]
call fcn.1000c340
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x4cf]
mov byte [ebp - 0x4d0], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 0xc
lea ecx, [ebp - 0x70]
stosb byte es:[edi], al
mov al, byte [ebp + 0xf]
push ebx
mov byte [ebp - 0x70], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0xc0], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x80]
mov byte [ebp - 0x80], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x60]
mov byte [ebp - 0x60], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 0xa0], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0xd0]
mov byte [ebp - 0xd0], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x50], al
call fcn.1000457c
push dword [ebp + 0xc]
call fcn.1000c430
pop ecx
push eax
lea ecx, [ebp - 0x50]
push dword [ebp + 0xc]
call fcn.100046e7
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x90]
mov byte [ebp - 0x90], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x18]
mov byte [ebp - 0x18], al
call fcn.1000457c
mov al, byte [ebp + 0xf]
mov esi, dword [str.UIMng]
push ebx
lea ecx, [ebp - 0x28]
mov dword [ebp - 8], 3
mov byte [ebp - 0x28], al
call fcn.1000457c
push esi
call fcn.1000c430
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.100046e7
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x50]
push eax
call fcn.10004867
neg eax
sbb al, al
push 1
inc al
lea ecx, [ebp - 0x28]
mov byte [ebp + 0xf], al
call fcn.1000457c
cmp byte [ebp + 0xf], bl
je 0x1000393a
mov esi, str._ProgramFiles_
push esi
call fcn.1000c430
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.100046e7
jmp 0x10003944
lea eax, [ebp - 0x38]
push eax
call fcn.100050c8
pop ecx
mov esi, 0x1001b70c
push esi
call fcn.1000c430
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.100043a2
mov edi, dword [ebp - 4]
push dword [0x100175ac]
lea ecx, [edi + 0x58]
push ebx
push ecx
mov ecx, eax
call fcn.1000431a
push esi
mov dword [ebp + 0xc], eax
call fcn.1000c430
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push esi
call fcn.100043a2
lea eax, [ebp - 0x38]
push eax
call fcn.10005103
mov eax, dword [ebp - 0x34]
pop ecx
cmp eax, ebx
jne 0x10003999
mov eax, 0x100175a8
push eax
call fcn.1000537a
pop ecx
lea eax, [edi + 0x68]
push dword [0x100175ac]
lea ecx, [ebp - 0x38]
push ebx
push eax
call fcn.1000431a
push esi
mov dword [ebp + 0xc], eax
call fcn.1000c430
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push esi
call fcn.100043a2
lea eax, [ebp - 0x38]
push eax
call fcn.10005103
mov eax, dword [ebp - 0x34]
pop ecx
cmp eax, ebx
mov esi, 0x100175a8
jne 0x100039df
mov eax, esi
push eax
call fcn.1000537a
pop ecx
lea eax, [ebp - 0x50]
push ebx
sub esp, 0x10
mov ecx, esp
push eax
call fcn.100041bf
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.10003ef1
push dword [0x100175ac]
lea ecx, [ebp - 0x90]
push ebx
call fcn.100041e9
push dword [0x100175ac]
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x90]
push ebx
push eax
call fcn.1000431a
push dword [0x100175ac]
lea ecx, [ebp - 0x70]
push ebx
push ecx
mov ecx, eax
call fcn.1000431a
mov eax, dword [ebp - 0x8c]
mov byte [ebp + 0xf], 1
cmp eax, ebx
jne 0x10003a4a
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x10003ba4
xor eax, eax
lea edi, [ebp - 0x3e]
mov word [ebp - 0x40], bx
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0x8c]
cmp eax, ebx
jne 0x10003a74
mov eax, 0x100175a8
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.10004f81
pop ecx
test al, al
pop ecx
je 0x10003bc8
mov eax, dword [ebp - 0x4c]
mov esi, 0x100175a8
cmp eax, ebx
jne 0x10003a96
mov eax, esi
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x20]
call fcn.100060fd
lea ecx, [ebp - 0xb0]
push str.version
push ecx
mov ecx, eax
call fcn.10006005
push dword [0x100175ac]
lea ecx, [ebp - 0xa0]
push ebx
push eax
call fcn.100043f9
push 1
lea ecx, [ebp - 0xb0]
call fcn.1000457c
movzx eax, word [ebp - 0x3a]
push eax
movzx eax, word [ebp - 0x3c]
push eax
movzx eax, word [ebp - 0x3e]
push eax
movzx eax, word [ebp - 0x40]
push eax
push str._d._d._d._d
lea eax, [ebp - 0x4d0]
push 0x3e8
push eax
call fcn.1000b1c8
mov al, byte [ebp + 0xf]
add esp, 0x1c
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x28], al
push ebx
call fcn.1000457c
lea eax, [ebp - 0x4d0]
push eax
call fcn.1000c430
pop ecx
push eax
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x28]
call fcn.100046e7
mov ecx, dword [ebp - 0x24]
cmp ecx, ebx
jne 0x10003b37
mov ecx, esi
mov eax, dword [ebp - 0x9c]
cmp eax, ebx
jne 0x10003b43
mov eax, esi
cmp dword [ebp - 0x4c], ebx
je 0x10003b4b
mov esi, dword [ebp - 0x4c]
push ecx
push eax
push esi
push str.check_and_update__s_:_verOnSvr_s__verOnInstall_s
call fcn.100049c1
add esp, 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0xa0]
push eax
call fcn.10004867
test eax, eax
jne 0x10003b8c
push dword [0x100175ac]
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0x18]
push ebx
push eax
call fcn.100043f9
mov byte [ebp + 0xf], bl
mov dword [ebp - 8], ebx
jmp 0x10003b90
mov byte [ebp + 0xf], 1
push 1
lea ecx, [ebp - 0x28]
call fcn.1000457c
mov edi, dword [ebp - 4]
mov esi, 0x100175a8
jmp 0x10003bbd
mov eax, dword [ebp - 0x8c]
cmp eax, ebx
jne 0x10003bb0
mov eax, esi
push eax
push str.does_not_exist_file:__s
call fcn.100049c1
pop ecx
pop ecx
cmp byte [ebp + 0xf], bl
je 0x10003e65
jmp 0x10003bd0
mov edi, dword [ebp - 4]
mov esi, 0x100175a8
push 1
lea eax, [ebp - 0x50]
sub esp, 0x10
mov ecx, esp
push eax
call fcn.100041bf
lea eax, [ebp - 0xc0]
mov ecx, edi
push eax
call fcn.10003ef1
push dword [0x100175ac]
lea ecx, [ebp - 0x80]
push ebx
call fcn.100041e9
lea eax, [ebp - 0xb0]
push eax
call fcn.100051d6
pop ecx
push dword [0x100175ac]
lea ecx, [ebp - 0x80]
push ebx
push eax
call fcn.1000431a
push dword [0x100175ac]
lea ecx, [ebp - 0xc0]
push ebx
push ecx
mov ecx, eax
call fcn.1000431a
push 1
lea ecx, [ebp - 0xb0]
call fcn.1000457c
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
jne 0x10003c45
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [edi + 0x14]
cmp eax, ebx
jne 0x10003c55
mov eax, esi
mov edx, dword [ebp - 0xbc]
cmp edx, ebx
jne 0x10003c61
mov edx, esi
mov ecx, dword [ebp - 0x7c]
cmp ecx, ebx
jne 0x10003c6a
mov ecx, esi
push dword [edi + 0x54]
push eax
push edx
push ecx
call fcn.10004cd3
add esp, 0x10
test al, al
je 0x10003e65
push dword [0x100175ac]
lea ecx, [ebp - 0x60]
push ebx
call fcn.100041e9
lea eax, [ebp - 0xb0]
push eax
call fcn.100051d6
pop ecx
push dword [0x100175ac]
lea ecx, [ebp - 0x60]
push ebx
push eax
call fcn.1000431a
push dword [0x100175ac]
lea ecx, [ebp - 0x70]
push ebx
push ecx
mov ecx, eax
call fcn.1000431a
push 1
lea ecx, [ebp - 0xb0]
call fcn.1000457c
mov ecx, dword [ebp - 0x6c]
cmp ecx, ebx
jne 0x10003cd4
mov ecx, esi
mov eax, dword [ebp - 0x5c]
cmp eax, ebx
jne 0x10003cdd
mov eax, esi
push ecx
push eax
push str.temp_dll:__s__s
call fcn.100049c1
mov ecx, dword [ebp - 0x5c]
add esp, 0xc
cmp ecx, ebx
jne 0x10003cf5
mov ecx, esi
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
jne 0x10003cfe
mov eax, esi
push ecx
push eax
call fcn.10005939
pop ecx
test al, al
pop ecx
je 0x10003e65
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
jne 0x10003d18
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [0x100175ac]
lea ecx, [ebp - 0x18]
push ebx
call fcn.100041e9
mov al, byte [ebp + 0xf]
mov edi, dword [str.GWStub]
push ebx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x28], al
call fcn.1000457c
push edi
call fcn.1000c430
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28]
call fcn.100046e7
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x50]
push eax
call fcn.10004867
neg eax
sbb al, al
push 1
inc al
lea ecx, [ebp - 0x28]
mov byte [ebp + 0xf], al
call fcn.1000457c
push dword [0x100175ac]
cmp byte [ebp + 0xf], bl
push ebx
je 0x10003e56
lea ecx, [ebp - 0x18]
call fcn.100041e9
push dword [0x100175ac]
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x18]
push ebx
push eax
call fcn.1000431a
push dword [0x100175ac]
lea ecx, [ebp - 0x70]
push ebx
push ecx
mov ecx, eax
call fcn.1000431a
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jne 0x10003db9
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jne 0x10003dc9
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x10003e24
push dword [0x100175ac]
lea ecx, [ebp - 0x18]
push ebx
call fcn.100041e9
push dword [0x100175ac]
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x18]
push ebx
push eax
call fcn.1000431a
mov esi, str.new_
mov edi, eax
push esi
call fcn.1000c430
pop ecx
push eax
push esi
mov ecx, edi
call fcn.100043a2
push dword [0x100175ac]
lea ecx, [ebp - 0x70]
push ebx
push ecx
mov ecx, eax
call fcn.1000431a
mov esi, 0x100175a8
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jne 0x10003e2d
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x5c]
cmp eax, ebx
jne 0x10003e3d
mov eax, esi
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.100054cd
neg al
sbb eax, eax
pop ecx
and al, 0xfe
pop ecx
inc eax
inc eax
mov dword [ebp - 8], eax
jmp 0x10003e65
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0x18]
push eax
call fcn.1000431a
mov dword [ebp - 8], ebx
cmp dword [ebp - 0x14], ebx
je 0x10003e6d
mov esi, dword [ebp - 0x14]
push esi
push 0x1001b658
push dword [ebp + 8]
call fcn.1000c640
add esp, 0xc
lea ecx, [ebp - 0x18]
push 1
pop esi
push esi
call fcn.1000457c
push esi
lea ecx, [ebp - 0x90]
call fcn.1000457c
push esi
lea ecx, [ebp - 0x38]
call fcn.1000457c
push esi
lea ecx, [ebp - 0x50]
call fcn.1000457c
push esi
lea ecx, [ebp - 0xd0]
call fcn.1000457c
push esi
lea ecx, [ebp - 0xa0]
call fcn.1000457c
push esi
lea ecx, [ebp - 0x60]
call fcn.1000457c
push esi
lea ecx, [ebp - 0x80]
call fcn.1000457c
push esi
lea ecx, [ebp - 0xc0]
call fcn.1000457c
push esi
lea ecx, [ebp - 0x70]
call fcn.1000457c
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret 8