Function at 0x4231d0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x589350
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push esi
push edi
mov eax, dword [0x5ef60c]
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 0x5b93a4
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
push ecx
mov byte [ebp - 4], 2
call fcn.0040afd0
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.00403ed0
mov edx, dword [ebp - 0x10]
mov eax, dword [edx - 0xc]
cmp eax, edi
je 0x4236d2
lea esi, [ebp - 0x34]
call fcn.00436cd0
mov byte [ebp - 4], 4
call fcn.0045e972
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x42327c
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 0x4232bd
call fcn.00401ff0
add esp, 4
lea ecx, [ebp + 0xc]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00437920
mov byte [ebp - 4], 6
jmp 0x4232d7
call fcn.00401ff0
add esp, 4
lea ecx, [ebp + 0xc]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00423770
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 0x423303
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 0x423670
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0xc], esp
mov esi, esp
push eax
call fcn.00401ff0
add esp, 4
lea ecx, [ebp - 0x18]
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.004238b0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x18]
push ebx
push edx
call fcn.00558f06
add esp, 8
cmp eax, edi
je 0x42364d
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x20], esp
mov esi, esp
push eax
call fcn.00401ff0
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.00401ff0
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.00401ff0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 8
call fcn.00423a90
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp + 0xc]
cmp dword [ecx - 0xc], edi
je 0x4235a6
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.00402060
push ecx
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00423e00
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.00402060
push ecx
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00423e00
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.00402060
push ecx
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00423e00
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.00402060
push ecx
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00423e00
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.00402060
push ecx
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00424160
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.00402060
push ecx
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00424160
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.00402060
push ecx
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.00402060
mov byte [ebp - 4], 0xb
call fcn.00424160
mov esi, dword [ebp + 0xc]
call fcn.0040fe50
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.00428d30
test eax, eax
je 0x423628
mov ecx, str.TaskGUID
jmp 0x423618
mov esi, dword [ebp - 0x10]
call fcn.0040fe50
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.00428d30
test eax, eax
je 0x423628
push str.TaskGUID
mov eax, ebx
mov edi, esi
call fcn.004292a0
mov ecx, str.DrvCheckTiming
mov eax, esi
call fcn.004290a0
mov ecx, str.LatestLaunchTime
mov eax, esi
call fcn.004290a0
mov ecx, str.DriverNoUpdate
mov eax, esi
call fcn.004290a0
mov ecx, str.DrvNextUpdate
mov eax, esi
call fcn.004290a0
mov ecx, str.DrvUpdateSpan
lea eax, [ebp - 0x44]
call fcn.004290a0
lea esi, [ebp - 0x44]
call fcn.00428d70
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 0x42364b
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 0x423670
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 0x423690
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 0x4236b3
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 0x4236d2
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 0x4236f5
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 0x423718
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 0x423730
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 0x423759
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