Function at 0x419590
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572010
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push esi
push edi
mov eax, dword [0x5d2614]
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 0x5a12d4
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
push ecx
mov byte [ebp - 4], 2
call fcn.0040b600
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.00403ee0
mov edx, dword [ebp - 0x10]
mov eax, dword [edx - 0xc]
cmp eax, edi
je 0x419a92
lea esi, [ebp - 0x34]
call fcn.00428530
mov byte [ebp - 4], 4
call fcn.00448a4d
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x41963c
push 0x80004005
call fcn.00401fd0
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 0x41967d
call fcn.00402000
add esp, 4
lea ecx, [ebp + 0xc]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00429180
mov byte [ebp - 4], 6
jmp 0x419697
call fcn.00402000
add esp, 4
lea ecx, [ebp + 0xc]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00419b70
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x14]
call fcn.00401f40
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 0x4196c3
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 0x419a30
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0xc], esp
mov esi, esp
push eax
call fcn.00402000
add esp, 4
lea ecx, [ebp - 0x18]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00419cb0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x18]
push ebx
push edx
call fcn.00542bb8
add esp, 8
cmp eax, edi
je 0x419a0d
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x20], esp
mov esi, esp
push eax
call fcn.00402000
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.00402000
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.00402000
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 8
call fcn.00419e90
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp + 0xc]
cmp dword [ecx - 0xc], edi
je 0x419966
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.00402070
push ecx
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a200
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.00402070
push ecx
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a200
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.00402070
push ecx
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a200
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.00402070
push ecx
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a200
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.00402070
push ecx
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a560
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.00402070
push ecx
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a560
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.00402070
push ecx
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402070
mov byte [ebp - 4], 0xb
call fcn.0041a560
mov esi, dword [ebp + 0xc]
call fcn.00407c10
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.0041f4e0
test eax, eax
je 0x4199e8
mov ecx, str.TaskGUID
jmp 0x4199d8
mov esi, dword [ebp - 0x10]
call fcn.00407c10
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.0041f4e0
test eax, eax
je 0x4199e8
push str.TaskGUID
mov eax, ebx
mov edi, esi
call fcn.0041fa50
mov ecx, str.DrvCheckTiming
mov eax, esi
call fcn.0041f850
mov ecx, str.LatestLaunchTime
mov eax, esi
call fcn.0041f850
mov ecx, str.DriverNoUpdate
mov eax, esi
call fcn.0041f850
mov ecx, str.DrvNextUpdate
mov eax, esi
call fcn.0041f850
mov ecx, str.DrvUpdateSpan
lea eax, [ebp - 0x44]
call fcn.0041f850
lea esi, [ebp - 0x44]
call fcn.0041f520
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 0x419a0b
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 0x419a30
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 0x419a50
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 0x419a73
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 0x419a92
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 0x419ab5
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 0x419ad8
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 0x419af0
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 0x419b19
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