Function at 0x4306c0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58aae7
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push esi
push edi
mov eax, dword [0x5ef60c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xa8], vtable.CMap_int__int__class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____.0
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0x11
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], 0xa
xor ecx, ecx
mov eax, 2
mov edx, 4
mul edx
seto cl
mov byte [ebp - 4], 1
neg ecx
or ecx, eax
push ecx
call fcn.0045de9b
xor ecx, ecx
add esp, 4
test eax, eax
setne cl
mov dword [ebp - 0xa4], eax
test ecx, ecx
jne 0x430770
call fcn.0045e880
xor ecx, ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0xa4]
mov dword [eax + 4], ecx
mov esi, dword [ebx + 8]
xor eax, eax
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xa0], 2
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x30], esi
test esi, esi
jle 0x432205
xor ecx, ecx
mov eax, esi
mov edx, 0x414
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045de9b
mov edi, dword [ebp - 0x30]
add esp, 4
xor esi, esi
mov dword [ebp - 0x24], eax
test edi, edi
jle 0x43081a
mov ecx, dword [ebp - 0x24]
xor eax, eax
xor edx, edx
add ecx, 8
jmp 0x4307e2
xor eax, eax
cmp edx, eax
mov dword [ecx - 4], eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
jl 0x43076b
cmp esi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax + 0xc]
mov dword [ecx - 8], eax
inc esi
add edx, 0x138
add ecx, 0x414
cmp esi, edi
jl 0x4307e0
cmp dword [ebp + 0x14], 3
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x58], edx
jne 0x430865
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x43084e
push 0
lea ecx, [ebp + 0x10]
call fcn.00401de0
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push edx
call fcn.00401a30
mov eax, dword [ebp - 0x4c]
push 0
push eax
call fcn.00405aa0
push ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xbc]
sub eax, 0x10
mov dword [ebp - 0x3c], esp
mov esi, esp
push eax
call fcn.00401ff0
add esp, 4
add eax, 0x10
mov dword [esi], eax
mov edx, dword [ebp - 0x4c]
push 1
push edx
call fcn.00405aa0
call fcn.00467a9c
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x58]
mov dword [eax + 0x124], 0x14
mov dword [eax + 0x128], ecx
call fcn.00467a9c
call fcn.00467a9c
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
or edi, 0xffffffff
test esi, esi
je 0x4308eb
mov eax, dword [esi + 0x60]
test eax, eax
je 0x4308eb
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4308eb
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
push edx
push ecx
call eax
mov edi, eax
mov dword [esi + 0x5c], edi
mov dword [ebp - 0x38], edi
cmp edi, 0xfffffffe
je 0x4308fb
cmp edi, 0x80000000
jne 0x43096b
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x64], ecx
call fcn.00467a9c
mov eax, dword [eax + 4]
lea edx, [ebp - 0x64]
mov dword [eax + 0x124], 0xc
mov dword [eax + 0x128], edx
call fcn.00467a9c
call fcn.00467a9c
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
or edi, 0xffffffff
test esi, esi
je 0x430968
mov eax, dword [esi + 0x60]
test eax, eax
je 0x430968
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x430968
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x54]
push ecx
push edx
call eax
mov edi, eax
mov dword [esi + 0x5c], edi
mov dword [ebp - 0x38], edi
cmp dword [ebp - 0x30], 0
mov dword [ebp + 0xc], 0
jle 0x4321f3
lea esp, [esp]
mov esi, dword [ebp + 0xc]
test esi, esi
jl 0x43076b
cmp esi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebx + 4]
mov eax, esi
imul eax, eax, 0x414
mov edi, esi
imul edi, edi, 0x138
add eax, edx
mov edx, dword [eax + 4]
add ecx, edi
mov dword [ecx + 0xd4], edx
cmp esi, dword [ebx + 8]
mov dword [ebp - 0x1c], edi
jge 0x43076b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 8]
add ecx, edi
mov dword [ecx + 0xb4], edx
cmp esi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0xc]
add ecx, edi
mov dword [ecx + 0xbc], edx
cmp esi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x10]
add ecx, edi
mov dword [ecx + 0xb0], edx
cmp esi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x10]
add ecx, edi
mov dword [ecx + 0x3c], edx
cmp esi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
add eax, 0x14
add ecx, 0x30
mov dword [ebp - 0x10], ecx
test eax, eax
jne 0x430a32
xor edx, edx
jmp 0x430a50
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x14], ecx
lea ebx, [ebx]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x430a40
sub edx, dword [ebp - 0x14]
sar edx, 1
mov ecx, dword [ebp - 0x10]
push edx
push eax
call fcn.00401e90
cmp esi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
add eax, edi
mov dword [eax + 0x14], 0x270f
cmp esi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [edi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.UpdateCTI
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
push ecx
mov dword [ecx + 0x1c], eax
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x5bceb4
call fcn.00401a30
push ecx
mov byte [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov byte [ebp - 4], 3
cmp esi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x430b06
cmp eax, dword [esi]
jne 0x430b06
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x430b45
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x6c]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 1
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 4
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0x18]
lea edx, [ecx + 0x18]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x430bd5
cmp dword [esi + 0xc], 0
jl 0x430bc8
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x430bc8
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430bbb
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x430bd5
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401e90
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430bf8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ApplicationName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 5
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 6
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x430c64
cmp eax, dword [esi]
jne 0x430c64
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x430ca3
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x44]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 1
call fcn.0040fc90
add esp, 0xc
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x18], esp
push str._Firmware_Update_
call fcn.00401a30
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x44]
call fcn.0040f790
add esp, 8
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 8
cmp edx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0x98]
lea edx, [ecx + 0x98]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x430d5b
cmp dword [esi + 0xc], 0
jl 0x430d4e
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x430d4e
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430d41
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x430d5b
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401e90
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430d7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ApplicationDescription
call fcn.00401a30
push ecx
mov byte [ebp - 4], 9
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xa
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x430dea
cmp eax, dword [esi]
jne 0x430dea
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x430e29
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x40]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 7
call fcn.0040fc90
add esp, 0x10
lea esi, [ebp - 0x40]
mov byte [ebp - 4], 0xb
call fcn.0041c1a0
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x40]
add eax, edi
mov esi, dword [eax + 0xa4]
lea ecx, [eax + 0xa4]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], ecx
cmp eax, esi
je 0x430ec8
cmp dword [esi + 0xc], 0
jl 0x430ebb
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x430ebb
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x430eae
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
add eax, 0x10
mov dword [ecx], eax
jmp 0x430ec8
mov eax, dword [edx - 0xc]
mov ecx, dword [ebp - 0x14]
push eax
push edx
call fcn.00401e90
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.NewVersion
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xd
cmp edx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x430f34
cmp eax, dword [esi]
jne 0x430f34
mov dword [ebp - 0x10], esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x430f73
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x7c]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xe
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0x9c]
lea edx, [ecx + 0x9c]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x431009
cmp dword [esi + 0xc], 0
jl 0x430ffc
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x430ffc
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430fef
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x431009
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401e90
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43102c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.CurrentVersion
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xf
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x10
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x431098
cmp eax, dword [esi]
jne 0x431098
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4310d7
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x78]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x11
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0xa0]
lea edx, [ecx + 0xa0]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x43116d
cmp dword [esi + 0xc], 0
jl 0x431160
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x431160
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431153
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x43116d
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401e90
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431190
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ExecuteName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x12
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x13
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4311fc
cmp eax, dword [esi]
jne 0x4311fc
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43123b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x88]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x14
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 8]
lea edx, [ecx + 8]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x4312ce
cmp dword [esi + 0xc], 0
jl 0x4312c1
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4312c1
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4312b4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x4312ce
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401e90
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4312f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa4], 0
jne 0x431468
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.UpdateInfoLocation
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x15
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x16
cmp edx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x431370
cmp eax, dword [esi]
jne 0x431370
mov dword [ebp - 0x10], esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4313af
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x80]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x17
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0xa8]
lea edx, [ecx + 0xa8]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x431445
cmp dword [esi + 0xc], 0
jl 0x431438
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x431438
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43142b
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x431445
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401e90
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431468
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.InstallerPath
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x18
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x19
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4314d4
cmp eax, dword [esi]
jne 0x4314d4
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x431513
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x68]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x1a
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov esi, dword [ecx + edi]
add ecx, edi
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], ecx
cmp eax, esi
je 0x4315a0
cmp dword [esi + 0xc], 0
jl 0x431593
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x431593
push eax
call fcn.00401ff0
mov dword [ebp - 0x10], eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x431586
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
add eax, 0x10
mov dword [ecx], eax
jmp 0x4315a0
mov eax, dword [edx - 0xc]
mov ecx, dword [ebp - 0x14]
push eax
push edx
call fcn.00401e90
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x68]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4315c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x432241
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0
push 0x5b95a8
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x1b
call fcn.00401e90
mov byte [ebp - 4], 0x1c
xor eax, eax
cmp dword [ebp + 0x14], 2
jne 0x43160a
mov eax, 1
mov esi, dword [ebp + 0x10]
push eax
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x20], esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x43163d
cmp eax, dword [esi]
jne 0x43163d
mov dword [ebp - 0x10], esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43167c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x20]
add ecx, 0x10
mov dword [edx], ecx
push ecx
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x20], esp
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.SilentInstall
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x1e
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x5bfa40
call fcn.00401a30
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 0x1f
cmp eax, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x20], esp
mov dword [ebp - 0x20], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4316fe
cmp eax, dword [esi]
jne 0x4316fe
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43173d
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, 0x10
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1d
call fcn.0040fc90
add esp, 0x10
lea ecx, [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x1c
call fcn.004142e0
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x20
cmp edx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 4]
lea edx, [ecx + 4]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x10], edx
cmp eax, esi
je 0x4317e0
cmp dword [esi + 0xc], 0
jl 0x4317d3
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4317d3
push eax
call fcn.00401ff0
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4317c6
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x4317e0
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00401e90
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431806
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov edx, dword [eax + edi + 4]
add eax, edi
cmp dword [edx - 0xc], 0
jne 0x431983
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.SilentInstall
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x21
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x5bfa40
call fcn.00401a30
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 0x22
cmp eax, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x18], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x431891
cmp eax, dword [esi]
jne 0x431891
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4318d0
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add ecx, 0x10
lea eax, [ebp - 0x70]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1c
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x23
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 4]
lea edx, [ecx + 4]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x10], edx
cmp eax, esi
je 0x431960
cmp dword [esi + 0xc], 0
jl 0x431953
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x431953
push eax
call fcn.00401ff0
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431946
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x431960
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00401e90
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x70]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431983
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp + 0xc]
cmp esi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
lea eax, [edi + ecx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.LastFirmVer
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp - 0x10]
mov dword [edx + 0xc0], eax
cmp esi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
add eax, edi
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.PrinterOnline
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc4], eax
cmp esi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [edi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.DefaultInstall
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc8], eax
cmp esi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [edi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.UpdateOnly
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xcc], eax
cmp esi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [edi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.RunServerOS
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xd0], eax
cmp esi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [edi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.Essential
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
push ecx
mov dword [ecx + 0xd8], eax
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.Status
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x24
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x5bfa40
call fcn.00401a30
mov byte [ebp - 4], 0x25
cmp esi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x18], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x431b14
cmp eax, dword [esi]
jne 0x431b14
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x431b53
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add ecx, 0x10
lea eax, [ebp - 0x8c]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1c
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x26
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, edi
mov edi, dword [ecx + 0xdc]
lea esi, [ecx + 0xdc]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x431be5
cmp dword [edi + 0xc], 0
jl 0x431bd9
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x431bd9
push eax
call fcn.00401ff0
mov dword [ebp - 0x18], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431bcf
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [esi], ecx
jmp 0x431be5
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00401e90
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x431c0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + edx + 0x30]
lea edi, [esi + edx]
push eax
push 0
push str.NoInternetOnly
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
sub esp, 0x28
mov dword [edi + 0xe8], eax
mov eax, esp
mov dword [ebp - 0x28], esp
push eax
lea edi, [ebp + 0x10]
call fcn.00430600
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x27
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov edi, dword [eax + esi + 0x98]
add eax, esi
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub edi, 0x10
mov dword [ebp - 0x2c], esp
mov dword [ebp - 0x1c], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x431c99
cmp eax, dword [edi]
jne 0x431c99
mov dword [ebp - 0x10], edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x431cd8
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
add ecx, 0x10
mov dword [edx], ecx
mov byte [ebp - 4], 0x1c
call fcn.00433ba0
mov edi, dword [ebp + 0xc]
cmp edi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, esi
mov dword [ecx + 0xe0], eax
cmp edi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
add eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.CDOnly
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xec], eax
cmp edi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [esi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0xffffffffffffffff
push str.GoEpsonCTI
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xf0], eax
cmp edi, dword [ebx + 8]
jge 0x43076b
mov edx, dword [ebx + 4]
lea eax, [esi + edx]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
push eax
push 0
push str.DisableUpdateByEsi
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xf4], eax
cmp edi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
add eax, esi
mov eax, dword [eax + 0x30]
push eax
push 0
push str.NoESI
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp edi, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, esi
xor edx, edx
cmp eax, 1
sete dl
push ecx
mov dword [ebp - 0x28], esp
mov dword [ecx + 0xf8], edx
mov ecx, esp
push str.AppendixURL
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x28
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x5bfa40
call fcn.00401a30
mov byte [ebp - 4], 0x29
cmp edi, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov edi, dword [eax + esi + 0x30]
add eax, esi
push ecx
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub edi, 0x10
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x1c], esp
call edx
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x431e3e
cmp eax, dword [edi]
jne 0x431e3e
mov dword [ebp - 0x10], edi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x431e7d
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
add ecx, 0x10
lea eax, [ebp - 0x3c]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1c
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x2a
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, esi
mov edi, dword [ecx + 0xac]
lea edx, [ecx + 0xac]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub edi, 0x10
mov dword [ebp - 0x10], edx
cmp eax, edi
je 0x431f13
cmp dword [edi + 0xc], 0
jl 0x431f06
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x431f06
push eax
call fcn.00401ff0
mov dword [ebp - 0x1c], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x431ef9
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x431f13
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00401e90
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431f36
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.EssentialAppList
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x2b
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x2c
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
mov edi, dword [eax + esi + 0x30]
add eax, esi
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub edi, 0x10
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x1c], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x431fa2
cmp eax, dword [edi]
jne 0x431fa2
mov dword [ebp - 0x10], edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x431fe1
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x43223c
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
add ecx, 0x10
lea eax, [ebp - 0x48]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1c
call fcn.0040fc90
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0xc0]
push edx
mov byte [ebp - 4], 0x2d
call fcn.004344a0
add esp, 0x18
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x2e
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov ecx, dword [ebx + 4]
add ecx, esi
push eax
lea eax, [ecx + 0x100]
call fcn.00420de0
mov byte [ebp - 4], 0x2d
mov edi, dword [ebp - 0xb4]
xor eax, eax
cmp edi, eax
je 0x432087
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x1c], eax
cmp edi, eax
je 0x43207c
mov edi, edi
mov eax, dword [edi]
sub eax, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43206e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 4
cmp edi, dword [ebp - 0x1c]
jne 0x432050
mov edi, dword [ebp - 0xb4]
push edi
call fcn.0045dea6
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc0]
push ecx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
call fcn.0045dea6
mov edx, dword [ebp + 0xc]
add esp, 4
cmp edx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
lea edi, [esi + eax]
mov eax, dword [edi + 0x30]
push eax
push 1
push str.Diaplay
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp + 0xc]
mov dword [edi + 0xfc], eax
cmp ecx, dword [ebx + 8]
jge 0x43076b
mov eax, dword [ebx + 4]
add eax, esi
mov eax, dword [eax + 0x30]
push eax
push 0
push str.IncrementalUpdate
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp + 0xc]
cmp edx, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
jge 0x43076b
mov edi, dword [ebx + 4]
mov eax, dword [edi + esi + 0x98]
add edi, esi
push str.Epson_Download_Navigator
push eax
call fcn.00558f06
add esp, 8
test eax, eax
je 0x43214e
mov eax, dword [edi + 0x98]
push str.Epson_Download_Navigator_HFX
push eax
call fcn.00558f06
add esp, 8
test eax, eax
je 0x43214e
mov dword [edi + 0x134], 0
jmp 0x432157
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x134], eax
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43217a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43219d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4321c0
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 - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4321e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0xc]
inc eax
cmp eax, dword [ebp - 0x30]
mov dword [ebp + 0xc], eax
jl 0x430980
cmp dword [ebp - 0x24], 0
je 0x432205
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.0045dea6
add esp, 4
mov byte [ebp - 4], 0
lea edi, [ebp - 0xa8]
mov dword [ebp - 0xa8], vtable.CMap_int__int__class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____.0
call fcn.00405da0
lea esi, [ebp + 0x10]
call fcn.0042d520
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x30
call fcn.00405a90
push 0x80004005
call fcn.00401fd0
int3