Function at 0x412126
Capabilities:
Delete file
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2c4
mov eax, dword [0x448010]
xor eax, esp
mov dword [esp + 0x2bc], eax
push ebx
push ebp
mov ebp, ecx
lea ecx, [esp + 0x20]
push esi
push edi
lea edi, [ebp + 0x28]
mov edx, edi
call fcn.0041d87e
mov esi, dword [esp + 0x28]
xor ebx, ebx
cmp dword [esi - 0xc], ebx
je 0x4121a3
lea eax, [esp + 0x28]
push eax
lea ecx, [ebp + 0x34]
call fcn.00409e7f
cmp byte [0x449ac4], bl
je 0x41219c
lea ecx, [esp + 0x20]
call fcn.00415236
mov edi, eax
push str.Newer_version_is_at_a_local_URL.
mov ecx, edi
call fcn.004028da
push edi
mov ecx, 0x449a94
call fcn.0041466e
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov bl, 1
jmp 0x4124c5
xor eax, eax
lea edx, [esp + 0xc0]
mov word [esp + 0xc0], ax
call fcn.00420539
test al, al
je 0x4121da
cmp word [esp + 0xc0], bx
je 0x4121da
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x1c]
call fcn.00404f61
jmp 0x4121e3
lea ecx, [esp + 0x18]
call fcn.0040ab91
lea eax, [esp + 0x18]
lea esi, [ebp + 0x34]
push eax
mov ecx, esi
call fcn.00409e7f
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, esi
call fcn.0040ab6c
push ecx
push esi
lea ecx, [esp + 0x40]
call fcn.00418be7
lea esi, [ebp + 0x30]
mov eax, dword [esi]
lea ecx, [ebp + 0x34]
push dword [eax - 0xc]
push eax
call fcn.00402b67
call fcn.0040522e
push eax
lea ecx, [esp + 0x20]
call fcn.004028b4
lea eax, [esp + 0x1c]
push eax
push ecx
push ebx
push esi
push dword [ebp + 0x2c]
lea ecx, [esp + 0x4c]
push edi
call fcn.00418ccc
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004052ff
push ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov ecx, dword [ebp + 4]
neg eax
push ebx
sbb al, al
inc al
mov dword [esp + 0x38], eax
call fcn.00413db6
push eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x70]
call fcn.0042027d
call dword [sym.imp.USER32.dll_GetActiveWindow]
push ebx
push ebx
lea ecx, [esp + 0x78]
mov esi, eax
call fcn.0040a921
test eax, eax
jne 0x4122a2
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
or edi, 0xffffffff
jmp 0x4122cb
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0040a8cc
push ebx
push 0x40a836
push esi
push 0xd8
push dword [0x448e14]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov edi, eax
push 0xffffffffffffffff
push dword [esp + 0x9c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [esp + 0x98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [esp + 0x24]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x98], ebx
test esi, esi
jne 0x412317
lea edx, [esp + 0x2c]
lea ecx, [ebp + 0x34]
call fcn.0040b772
mov eax, dword [esp + 0x2c]
cmp eax, dword [ebp + 0x2c]
je 0x412317
mov al, 1
mov byte [esp + 0x17], al
jmp 0x412321
mov al, bl
mov byte [esp + 0x17], al
test esi, esi
jne 0x41232e
cmp edi, 1
jne 0x41232e
test al, al
je 0x412429
push dword [ebp + 0x34]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp + 0x34]
sub ecx, 0x10
call fcn.0040ab13
add eax, 0x10
lea ecx, [esp + 0x20]
push str..part
mov dword [esp + 0x24], eax
call fcn.004028da
mov edi, dword [esp + 0x20]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esp + 0x24], 2
jge 0x41243e
call fcn.0040522e
push eax
lea ecx, [esp + 0x20]
call fcn.004028b4
cmp byte [esp + 0x17], 0
je 0x412393
push 0x111
lea ecx, [esp + 0x20]
call fcn.00404cca
jmp 0x4123b6
push ecx
mov edx, esi
lea ecx, [esp + 0x34]
call fcn.0041a559
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00409e7f
mov ecx, dword [esp + 0x30]
lea ecx, [ecx - 0x10]
call fcn.004052ff
call fcn.0040522e
push eax
lea ecx, [esp + 0x1c]
call fcn.004028b4
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push esi
push 0x102
push eax
call fcn.0040a582
mov ecx, dword [ebp + 4]
add esp, 0xc
push ebx
call fcn.00413db6
mov ebx, eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0x45
push ebx
lea edx, [esp + 0x20]
mov ecx, eax
call fcn.00410fa4
mov dword [esp + 0x28], eax
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
cmp eax, 2
je 0x41242d
call fcn.004052ff
lea ecx, [esi - 0x10]
call fcn.004052ff
lea ecx, [edi - 0x10]
call fcn.004052ff
xor ebx, ebx
jmp 0x41227e
mov bl, 1
jmp 0x4124a2
call fcn.004052ff
lea ecx, [esi - 0x10]
call fcn.004052ff
mov esi, dword [esp + 0x20]
cmp byte [0x449ac4], 0
je 0x412498
push ecx
mov edx, esi
lea ecx, [esp + 0x30]
call fcn.0041a559
pop ecx
lea ecx, [esp + 0x30]
mov ebx, dword [eax]
call fcn.00415236
mov esi, eax
push str.Failed_to_download_a_newer_version._Error:
mov ecx, esi
call fcn.004028da
push ebx
mov ecx, esi
call fcn.0041524a
push eax
mov ecx, 0x449a94
call fcn.0041466e
mov ecx, dword [esp + 0x30]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx - 0x10]
call fcn.004052ff
lea ecx, [edi - 0x10]
call fcn.004052ff
xor ebx, ebx
lea ecx, [esp + 0x68]
call fcn.004202e9
cmp byte [esp + 0x34], 0
je 0x4124b8
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [esp + 0x38]
call fcn.00418c36
mov esi, dword [esp + 0x28]
lea ecx, [esi - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x2cc]
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004246ea
add esp, 0x2c4
ret