Function at 0x419570
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5711a0
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push esi
push edi
mov eax, dword [0x5d1614]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x44], vtable.Registry.0
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edi
push str.SoftwareEPSONUpdateNavi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.00401a30
push 0x5a02d4
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
push ecx
mov byte [ebp - 4], 2
call fcn.0040b670
add esp, 0xc
mov byte [ebp - 4], 3
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.00403ec0
mov edx, dword [ebp - 0x10]
mov eax, dword [edx - 0xc]
cmp eax, edi
je 0x419a72
lea esi, [ebp - 0x34]
call fcn.00427c40
mov byte [ebp - 4], 4
call fcn.00447edb
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x41961c
push 0x80004005
call fcn.00401fc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 5
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
cmp dword [ebp + 0xc], edi
mov esi, esp
mov dword [ebp + 0xc], esp
push eax
je 0x41965d
call fcn.00401fe0
add esp, 4
lea ecx, [ebp + 0xc]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00428890
mov byte [ebp - 4], 6
jmp 0x419677
call fcn.00401fe0
add esp, 4
lea ecx, [ebp + 0xc]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00419b50
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x14]
call fcn.00401f10
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4196a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x14]
cmp dword [ebx - 0xc], edi
je 0x419a10
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0xc], esp
mov esi, esp
push eax
call fcn.00401fe0
add esp, 4
lea ecx, [ebp - 0x18]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00419c90
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x18]
push ebx
push edx
call fcn.00541d4b
add esp, 8
cmp eax, edi
je 0x4199ed
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x20], esp
mov esi, esp
push eax
call fcn.00401fe0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 9
lea eax, [ebx - 0x10]
mov dword [ebp - 0x24], esp
mov esi, esp
push eax
call fcn.00401fe0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov esi, esp
push eax
call fcn.00401fe0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 8
call fcn.00419e70
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp + 0xc]
cmp dword [ecx - 0xc], edi
je 0x419946
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.DrvLastCheck
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xc
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a1e0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.DrvNextUpdate
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xe
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a1e0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.LatestLaunchTime
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x10
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a1e0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.TaskGUID
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x12
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a1e0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.DriverNoUpdate
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x14
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a540
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.DrvCheckTiming
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x16
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a540
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.DrvUpdateSpan
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x18
lea edx, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push edx
call fcn.00402050
push ecx
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402050
mov byte [ebp - 4], 0xb
call fcn.0041a540
mov esi, dword [ebp + 0xc]
call fcn.00407c00
mov edi, eax
dec edi
neg edi
sbb edi, edi
and edi, 0xffffff00
add edi, 0x100
mov edx, esi
or edi, 0x20006
lea esi, [ebp - 0x44]
call fcn.0041f540
test eax, eax
je 0x4199c8
mov ecx, str.TaskGUID
jmp 0x4199b8
mov esi, dword [ebp - 0x10]
call fcn.00407c00
mov edi, eax
dec edi
neg edi
sbb edi, edi
and edi, 0xffffff00
add edi, 0x100
mov edx, esi
or edi, 0x20006
lea esi, [ebp - 0x44]
call fcn.0041f540
test eax, eax
je 0x4199c8
push str.TaskGUID
mov eax, ebx
mov edi, esi
call fcn.0041fab0
mov ecx, str.DrvCheckTiming
mov eax, esi
call fcn.0041f8b0
mov ecx, str.LatestLaunchTime
mov eax, esi
call fcn.0041f8b0
mov ecx, str.DriverNoUpdate
mov eax, esi
call fcn.0041f8b0
mov ecx, str.DrvNextUpdate
mov eax, esi
call fcn.0041f8b0
mov ecx, str.DrvUpdateSpan
lea eax, [ebp - 0x44]
call fcn.0041f8b0
lea esi, [ebp - 0x44]
call fcn.0041f580
mov byte [ebp - 4], 8
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4199eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor edi, edi
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a30
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a53
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a72
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419ab8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], vtable.Registry.0
cmp eax, edi
je 0x419ad0
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x40], edi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x3c], edi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419af9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8