Function at 0x4ec440
Capabilities:
Check if file exists
Check mutex on windows
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
mov esi, ecx
mov edi, dword [ebp + 8]
mov eax, dword [0x7aa024]
xor eax, ebp
mov dword [esp + 0x118], eax
movzx eax, byte [edi + 0xb]
test al, al
jns 0x4ec46d
mov eax, dword [edi + 4]
test eax, eax
je 0x4ec4b5
lea ebx, [esi + 4]
mov eax, dword [esi + 4]
lea ecx, [eax + 1]
cmp ecx, 1
ja 0x4ec4be
xor eax, eax
push str.oauc_registry_mutex
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx], eax
test eax, eax
jne 0x4ec4be
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x4ec4bc
push str.oauc_registry_mutex
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [ebx], eax
jmp 0x4ec4be
mov ebx, 0xffffff02
jmp 0x4ec4dd
mov eax, dword [ebx]
lea ecx, [eax + 1]
cmp ecx, 1
ja 0x4ec4f7
mov ebx, 0xffffff04
push 2
call fcn.005e42f0
add esp, 4
test al, al
jne 0x4ec733
mov ecx, dword [esp + 0x118]
xor ecx, ebp
call fcn.0064d372
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4ec53f
xor ebx, ebx
inc ebx
push 2
call fcn.005e42f0
add esp, 4
test al, al
je 0x4ec4dd
lea esi, [esp + 0x74]
mov ecx, esi
push 2
push 0xe3
push str.....operadesktopcommon_autoupdateupdatecheckerglobalstorage_win.cc
call fcn.005417e0
lea eax, [esp + 0x7c]
push 0x2d
push str._AU__GS:_Couldnt_get_hold_on_an_access_mutex
jmp 0x4ec755
mov ecx, ebx
shr ecx, 0xe
xor eax, eax
inc eax
shl eax, cl
mov dword [esp + 0x1c], eax
mov eax, ebx
shr eax, 0x13
mov dword [esp + 0x18], eax
mov eax, dword [eax*4 + 0x7b1224]
bt eax, ecx
mov dword [esp + 0x10], ebx
jae 0x4ec571
push ebx
call fcn.005e5030
add esp, 4
jmp 0x4ec57d
mov eax, ebx
shr eax, 0x15
mov byte [eax + 0x7b9224], 1
cmp byte [esi + 0x14], 0
mov dword [esp + 8], esi
je 0x4ec632
pcmpeqd xmm0, xmm0
mov eax, esi
lea esi, [esp + 0x20]
movdqu xmmword [esi + 0x3c], xmm0
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
lea edx, [eax + 8]
mov ecx, esi
call fcn.004ec960
mov ecx, esi
mov edx, edi
push dword [ebp + 0xc]
call fcn.004ecaa0
add esp, 4
xor ecx, ecx
mov ebx, 0xffffff04
test al, al
cmovne ebx, ecx
jne 0x4ec5e6
push 2
call fcn.005e42f0
add esp, 4
test al, al
jne 0x4ec91c
mov eax, dword [esp + 8]
mov al, byte [eax + 0x14]
mov byte [esp + 0xf], al
mov esi, dword [esp + 0x68]
test esi, esi
je 0x4ec61c
dec dword [esi + 4]
jne 0x4ec61c
add esi, 4
mov eax, dword [esi - 4]
add esi, 0xfffffffc
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x14], ecx
call dword [section..00cfg]
mov ecx, esi
push 1
call dword [esp + 0x18]
lea ecx, [esp + 0x20]
call fcn.00548720
cmp byte [esp + 0xf], 0
jne 0x4ec8e6
jmp 0x4ec64c
lea eax, [esi + 8]
push eax
call fcn.0054d520
add esp, 4
test al, al
je 0x4ec64c
cmp byte [esi + 0x16], 0
je 0x4ec58b
mov dword [esp + 0x20], 0xffffffff
mov ebx, dword [ebp + 0xc]
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x4ec662
mov eax, dword [ebx + 4]
lea esi, [esp + 0x74]
test eax, eax
je 0x4ec76a
push esi
call fcn.004dc6a0
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x4ec681
mov esi, dword [esp + 0x74]
sub esp, 0x24
xor eax, eax
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
movdqa xmm0, xmmword [0x74d370]
movdqu xmmword [esp + 8], xmm0
mov dword [esp + 4], esi
mov dword [esp], reloc.WS2_32.dll_accept
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov esi, eax
cmp byte [esp + 0x7f], 0
jns 0x4ec6ca
push dword [esp + 0x74]
call fcn.0064cd6e
add esp, 4
test esi, esi
je 0x4ec822
mov ebx, 0xffffff04
push 2
call fcn.005e42f0
add esp, 4
test al, al
mov esi, dword [esp + 8]
je 0x4ec8e0
lea edi, [esp + 0x74]
mov ecx, edi
push 2
push 0x112
push str.....operadesktopcommon_autoupdateupdatecheckerglobalstorage_win.cc
call fcn.005417e0
lea eax, [esp + 0x7c]
push 0x27
push str._AU__GS:_Creating_reg_key_failed_with:
push eax
call fcn.0067fe70
add esp, 0xc
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov esi, dword [esp + 8]
push eax
call fcn.004a3270
mov ecx, edi
jmp 0x4ec818
lea esi, [esp + 0x74]
mov ecx, esi
push 2
push 0xde
push str.....operadesktopcommon_autoupdateupdatecheckerglobalstorage_win.cc
call fcn.005417e0
lea eax, [esp + 0x7c]
push 0x28
push str._AU__GS:_Couldnt_create_an_access_mutex
push eax
call fcn.0067fe70
add esp, 0xc
mov ecx, esi
call fcn.00541c20
jmp 0x4ec4dd
push esi
call fcn.004dc6a0
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x4ec77d
mov esi, dword [esp + 0x74]
lea eax, [esp + 0x20]
push eax
push 0x20006
push 0
push esi
push reloc.WS2_32.dll_accept
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
cmp byte [esp + 0x7f], 0
jns 0x4ec7aa
push dword [esp + 0x74]
call fcn.0064cd6e
add esp, 4
test esi, esi
je 0x4ec8af
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
and eax, 0xfffffffe
xor ebx, ebx
cmp eax, 2
mov esi, dword [esp + 8]
je 0x4ec8e0
mov ebx, 0xffffff04
push 2
call fcn.005e42f0
add esp, 4
test al, al
je 0x4ec8e0
lea ecx, [esp + 0x74]
push 2
push 0x124
push str.....operadesktopcommon_autoupdateupdatecheckerglobalstorage_win.cc
call fcn.005417e0
lea eax, [esp + 0x7c]
push 0x29
push str._AU__GS:_Deleting_reg_value_failed_with:
push eax
call fcn.0067fe70
add esp, 0xc
mov ecx, eax
push edi
call fcn.004a3270
lea ecx, [esp + 0x74]
call fcn.00541c20
jmp 0x4ec8e0
movzx eax, byte [ebx + 0xb]
test al, al
mov esi, dword [esp + 8]
jns 0x4ec833
mov eax, dword [ebx + 4]
mov ebx, dword [ebx]
cmp byte [edi + 0xb], 0
jns 0x4ec83b
mov edi, dword [edi]
push eax
push ebx
push 1
push 0
push edi
push dword [esp + 0x34]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x4ec8d4
mov ebx, 0xffffff04
push 2
call fcn.005e42f0
add esp, 4
test al, al
je 0x4ec8d6
lea edi, [esp + 0x74]
mov ecx, edi
push 2
push 0x10c
push str.....operadesktopcommon_autoupdateupdatecheckerglobalstorage_win.cc
call fcn.005417e0
lea eax, [esp + 0x7c]
push 0x28
push str._AU__GS:_Setting_reg_value_failed_with:
push eax
call fcn.0067fe70
add esp, 0xc
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov esi, dword [esp + 8]
push eax
call fcn.004a3270
mov ecx, edi
call fcn.00541c20
jmp 0x4ec8d6
cmp byte [edi + 0xb], 0
mov esi, dword [esp + 8]
jns 0x4ec8bb
mov edi, dword [edi]
push edi
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
jmp 0x4ec8e0
xor ebx, ebx
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
sete byte [esi + 0x15]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4ec8f6
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test dword [ecx*4 + 0x7b1224], eax
je 0x4ec4dd
push dword [esp + 0x10]
call fcn.005e5140
add esp, 4
jmp 0x4ec4dd
lea esi, [esp + 0x74]
mov ecx, esi
push 2
push 0xf2
push str.....operadesktopcommon_autoupdateupdatecheckerglobalstorage_win.cc
call fcn.005417e0
lea eax, [esp + 0x7c]
push 0x2d
push str._AU__GS:_Writing_to_a_fallback_storage_failed
push eax
call fcn.0067fe70
add esp, 0xc
mov ecx, esi
call fcn.00541c20
jmp 0x4ec5e6