Function at 0x42ea60
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58ac8b
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
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 - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xc0], 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 - 0xbc], eax
mov dword [ebp - 0xb8], 0x11
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], 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 - 0xbc], eax
test ecx, ecx
jne 0x42eb0c
call fcn.0045e880
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0xbc]
mov dword [eax + 4], ecx
mov edx, dword [esi + 0xb0]
xor eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x6c], eax
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x70], eax
mov eax, dword [esi + 0xbc]
lea ecx, [ebp - 0xc0]
lea edi, [esi + 0xbc]
mov dword [ebp - 0x58], ecx
sub eax, 0x10
mov dword [ebp - 0xb8], 2
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x78], edx
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x42eb89
push 0
mov ecx, edi
call fcn.00401de0
mov edx, dword [esi + 0xb4]
mov esi, dword [ebx + 8]
mov ecx, dword [edi]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x34], esi
test esi, esi
jle 0x4305ac
xor ecx, ecx
mov eax, esi
mov edx, 0x418
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045de9b
mov edi, dword [ebp - 0x34]
xor ecx, ecx
add esp, 4
xor esi, esi
cmp edi, ecx
mov dword [ebp - 0x38], eax
jle 0x42ec31
xor edx, edx
add eax, 0x10
jmp 0x42ebe2
xor ecx, ecx
cmp edx, ecx
mov dword [eax - 4], ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
jl 0x42eb07
cmp esi, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, edx
mov ecx, dword [ecx + 0x1c]
mov dword [eax - 8], ecx
cmp esi, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, edx
mov ecx, dword [ecx + 0x18]
mov dword [eax - 0x10], ecx
mov dword [eax - 0xc], 0
inc esi
add edx, 0x138
add eax, 0x418
cmp esi, edi
jl 0x42ebe0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xa8]
add edi, 0xa8
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x42ec5b
push 0
mov ecx, edi
call fcn.00401de0
cmp dword [ebp + 0x10], 3
mov edx, dword [edi]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x68], edx
lea edx, [ebp - 0x78]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
jne 0x42ecae
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x42ec97
push 0
lea ecx, [ebp + 0xc]
call fcn.00401de0
mov edx, dword [ebp + 0xc]
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push edx
call fcn.00401a30
mov eax, dword [ebp - 0x58]
push 0
push eax
call fcn.00405aa0
call fcn.00467a9c
mov eax, dword [eax + 4]
lea esi, [ebp - 0x4c]
call fcn.00401030
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx - 0xc], 0
push ecx
mov dword [ebp - 0x3c], esp
mov ecx, esp
jne 0x42ece3
push 0x5bab58
call fcn.00401a30
mov edx, dword [ebp - 0x58]
push 1
push edx
jmp 0x42ecf3
push 0x5ba8f4
call fcn.00401a30
mov eax, dword [ebp - 0x58]
push 1
push eax
call fcn.00405aa0
call fcn.00467a9c
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x68]
mov dword [eax + 0x124], 0x13
mov dword [eax + 0x128], ecx
call fcn.00467a9c
call fcn.00467a9c
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
mov dword [ebp - 0x30], 0xffffffff
test esi, esi
je 0x42ed58
mov eax, dword [esi + 0x60]
test eax, eax
je 0x42ed58
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x42ed58
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
push edx
push ecx
call eax
mov dword [ebp - 0x30], eax
mov dword [esi + 0x5c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
cmp eax, 0xfffffffe
je 0x42ed6e
cmp eax, 0x80000000
jne 0x42ee09
mov eax, dword [edi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x42ed8b
push 0
mov ecx, edi
call fcn.00401de0
mov edx, dword [edi]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x88], edx
lea edx, [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edx
call fcn.00467a9c
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x88]
mov dword [eax + 0x124], 8
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 0x42ee06
mov eax, dword [esi + 0x60]
test eax, eax
je 0x42ee06
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x42ee06
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 - 0x30], edi
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x1c], 0
jle 0x430577
lea ebx, [ebx]
mov eax, dword [ebp - 0x1c]
test eax, eax
jl 0x42eb07
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebx + 4]
mov edx, eax
imul edx, edx, 0x418
mov edi, eax
imul edi, edi, 0x138
add esi, edx
mov edx, dword [esi + 0xc]
add ecx, edi
mov dword [ecx + 0xb8], edx
cmp eax, dword [ebx + 8]
mov dword [ebp - 0x18], edi
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0xc]
add ecx, edi
mov dword [ecx + 0xb4], edx
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x10]
add ecx, edi
mov dword [ecx + 0xbc], edx
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x14]
add ecx, edi
mov dword [ecx + 0xb0], edx
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x14]
add ecx, edi
mov dword [ecx + 0x3c], edx
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 4]
add eax, edi
add eax, 0x2c
mov dword [ebp - 0x2c], eax
test ecx, ecx
jne 0x42eed2
xor eax, eax
jmp 0x42eef0
mov eax, ecx
lea edx, [eax + 2]
mov dword [ebp - 0x24], edx
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x42eee0
sub eax, dword [ebp - 0x24]
sar eax, 1
push eax
push ecx
mov ecx, dword [ebp - 0x2c]
call fcn.00401e90
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, edi
add esi, 0x18
lea ecx, [eax + 0x30]
jne 0x42ef17
xor eax, eax
jmp 0x42ef30
mov eax, esi
lea edx, [eax + 2]
mov dword [ebp - 0x24], edx
nop
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x42ef20
sub eax, dword [ebp - 0x24]
sar eax, 1
push eax
push esi
call fcn.00401e90
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, edi
mov dword [eax + 0x14], 0x270f
cmp esi, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, edi
mov dword [eax + 0xd4], 1
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4305e3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 3
cmp dword [eax - 0xc], 0
jne 0x42f0d8
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ApplicationName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 4
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov byte [ebp - 4], 5
cmp esi, dword [ebx + 8]
jge 0x42eb07
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 - 0x24], esp
mov dword [ebp - 0x24], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x42f000
cmp eax, dword [esi]
jne 0x42f000
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42f03b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0xa0]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 3
call fcn.0040fc90
add esp, 0x10
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov esi, dword [ebp - 0x2c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x42f0b2
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x42f0a5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f0a5
push eax
call fcn.00401ff0
mov dword [ebp - 0x24], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42f09a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x24]
add ecx, 0x10
mov dword [ebp - 0x2c], ecx
jmp 0x42f0b2
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00401e90
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xa0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f0d8
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 - 0x20], esp
push str._Firmware_Update_
call fcn.00401a30
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0040f790
add esp, 8
mov byte [ebp - 4], 7
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4305e3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x24], eax
push 0
push 0x5b95a8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.00401e90
mov byte [ebp - 4], 9
xor eax, eax
cmp dword [ebp + 0x10], 2
jne 0x42f142
mov eax, 1
mov esi, dword [ebp + 0xc]
push eax
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x20], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x42f174
cmp eax, dword [esi]
jne 0x42f174
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x42f1af
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov dword [ecx], edi
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x48]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x42f1ec
cmp eax, dword [esi]
jne 0x42f1ec
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42f227
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov dword [ecx], edi
lea edx, [ebp - 0x8c]
push edx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 9
call fcn.004142e0
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0xb
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0x98]
lea edi, [ecx + 0x98]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42f2b7
cmp dword [esi + 0xc], 0
jl 0x42f2ab
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f2ab
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f2a1
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42f2b7
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 9
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 0x42f2dd
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 - 0x20], esp
push str.ApplicationDescription
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0xd
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42f348
cmp eax, dword [esi]
jne 0x42f348
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42f383
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x44]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 9
call fcn.0040fc90
add esp, 0x10
lea esi, [ebp - 0x44]
mov byte [ebp - 4], 0xe
call fcn.0041c1a0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x44]
mov esi, dword [eax + 0xa4]
lea edi, [eax + 0xa4]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42f419
cmp dword [esi + 0xc], 0
jl 0x42f40d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f40d
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f403
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42f419
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.NewVersion
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xf
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov edx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x10
cmp edx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42f484
cmp eax, dword [esi]
jne 0x42f484
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x42f4bf
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x98]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xe
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x11
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0x9c]
lea edi, [ecx + 0x9c]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42f54f
cmp dword [esi + 0xc], 0
jl 0x42f543
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f543
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f539
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42f54f
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x98]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f575
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.CurrentVersion
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 - 0x1c]
mov byte [ebp - 4], 0x13
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42f5e0
cmp eax, dword [esi]
jne 0x42f5e0
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42f61b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xa4]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xe
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x14
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0xa0]
lea edi, [ecx + 0xa0]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42f6ab
cmp dword [esi + 0xc], 0
jl 0x42f69f
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f69f
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f695
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42f6ab
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0xa4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f6d1
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.ExecuteName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x15
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x16
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42f73c
cmp eax, dword [esi]
jne 0x42f73c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42f777
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x90]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xe
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x17
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 8]
lea edi, [ecx + 8]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42f801
cmp dword [esi + 0xc], 0
jl 0x42f7f5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f7f5
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f7eb
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42f801
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f827
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 0x42f993
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.UpdateInfoLocation
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x18
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov edx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x19
cmp edx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42f8a2
cmp eax, dword [esi]
jne 0x42f8a2
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x42f8dd
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x94]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xe
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x1a
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0xa8]
lea edi, [ecx + 0xa8]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42f96d
cmp dword [esi + 0xc], 0
jl 0x42f961
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42f961
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42f957
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42f96d
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f993
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.RequiredOption
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x1b
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x1c
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42f9fe
cmp eax, dword [esi]
jne 0x42f9fe
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42fa39
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x54]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xe
call fcn.0040fc90
add esp, 0x10
mov byte [ebp - 4], 0x1d
mov esi, dword [ebp - 0x54]
cmp dword [esi - 0xc], 0
je 0x42faf0
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x28], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x42fa90
cmp eax, dword [esi]
jne 0x42fa90
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x42facb
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov dword [ecx], edi
call fcn.004342d0
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov dword [ecx + 0xe4], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx + 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea edi, [edx + ecx]
push eax
push 0
push str.LastFirmVer
push 0x5bfa40
call esi
mov dword [edi + 0xc0], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.PrinterOnline
push 0x5bfa40
call esi
mov dword [edi + 0xc4], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.DefaultInstall
push 0x5bfa40
call esi
mov dword [edi + 0xc8], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.UpdateOnly
push 0x5bfa40
call esi
mov dword [edi + 0xcc], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.RunServerOS
push 0x5bfa40
call esi
mov dword [edi + 0xd0], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.Essential
push 0x5bfa40
call esi
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.Status
mov dword [edi + 0xd8], eax
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x1e
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x1f
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x18]
push ecx
mov esi, dword [eax + 0x30]
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 0x42fc75
cmp eax, dword [esi]
jne 0x42fc75
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42fcb0
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4305ed
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x9c]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0x1d
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x20
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0xdc]
lea edi, [ecx + 0xdc]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x42fd40
cmp dword [esi + 0xc], 0
jl 0x42fd34
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42fd34
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42fd2a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x42fd40
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42fd66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x18]
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 + 0xc]
call fcn.00430600
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x21
cmp ecx, dword [ebx + 8]
jge 0x42eb07
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 - 0x20], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x42fdf4
cmp eax, dword [edi]
jne 0x42fdf4
mov dword [ebp - 0x18], edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42fe33
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 - 0x18], eax
test eax, eax
je 0x4305ed
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x18]
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 - 0x18]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edx], ecx
mov byte [ebp - 4], 0x1d
call fcn.00433ba0
mov edi, dword [ebp - 0x1c]
cmp edi, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, esi
mov dword [ecx + 0xe0], eax
cmp edi, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, esi
mov dword [ebp - 0x18], 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 - 0x18]
mov dword [ecx + 0xec], eax
cmp edi, dword [ebx + 8]
jge 0x42eb07
mov edx, dword [ebx + 4]
lea eax, [esi + edx]
mov dword [ebp - 0x18], 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 - 0x18]
mov dword [ecx + 0xf0], eax
cmp edi, dword [ebx + 8]
jge 0x42eb07
mov edx, dword [ebx + 4]
lea eax, [esi + edx]
mov dword [ebp - 0x18], 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 - 0x18]
mov dword [ecx + 0xf4], eax
cmp edi, dword [ebx + 8]
jge 0x42eb07
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 0x42eb07
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], 0x22
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov byte [ebp - 4], 0x23
cmp edi, dword [ebx + 8]
jge 0x42eb07
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 - 0x14], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x42ff99
cmp eax, dword [edi]
jne 0x42ff99
mov dword [ebp - 0x18], edi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x42ffd8
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 - 0x18], eax
test eax, eax
je 0x4305ed
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x18]
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 - 0x18]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x3c]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1d
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x24
cmp ecx, dword [ebx + 8]
jge 0x42eb07
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 - 0x18], edx
cmp eax, edi
je 0x43006e
cmp dword [edi + 0xc], 0
jl 0x430061
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x430061
push eax
call fcn.00401ff0
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x430054
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [edx], ecx
jmp 0x43006e
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.00401e90
mov byte [ebp - 4], 0x1d
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 0x430091
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], 0x25
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x26
cmp ecx, dword [ebx + 8]
jge 0x42eb07
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 - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x4300fd
cmp eax, dword [edi]
jne 0x4300fd
mov dword [ebp - 0x18], edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43013c
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 - 0x18], eax
test eax, eax
je 0x4305ed
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x18]
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 - 0x18]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x50]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1d
call fcn.0040fc90
lea ecx, [ebp - 0x50]
push ecx
lea edx, [ebp - 0xd8]
push edx
mov byte [ebp - 4], 0x27
call fcn.004344a0
add esp, 0x18
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x28
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov ecx, dword [ebx + 4]
add ecx, esi
push eax
lea eax, [ecx + 0x100]
call fcn.00420de0
mov byte [ebp - 4], 0x27
mov edi, dword [ebp - 0xcc]
xor eax, eax
cmp edi, eax
je 0x4301e7
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x14], eax
cmp edi, eax
je 0x4301dc
lea esp, [esp]
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 0x4301ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 4
cmp edi, dword [ebp - 0x14]
jne 0x4301b0
mov edi, dword [ebp - 0xcc]
push edi
call fcn.0045dea6
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xd8]
push ecx
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
call fcn.0045dea6
mov edx, dword [ebp - 0x1c]
add esp, 4
cmp edx, dword [ebx + 8]
jge 0x42eb07
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 - 0x1c]
mov dword [edi + 0xfc], eax
cmp ecx, dword [ebx + 8]
jge 0x42eb07
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 - 0x1c]
cmp edx, dword [ebx + 8]
mov dword [ebp - 0x14], eax
jge 0x42eb07
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 0x4302ae
mov eax, dword [edi + 0x98]
push str.Epson_Download_Navigator_HFX
push eax
call fcn.00558f06
add esp, 8
test eax, eax
je 0x4302ae
mov dword [edi + 0x134], 0
jmp 0x4302b7
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x134], eax
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.DLFileName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x29
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x5bfa40
call fcn.00401a30
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x2a
cmp ecx, dword [ebx + 8]
jge 0x42eb07
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 - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x430323
cmp eax, dword [edi]
jne 0x430323
mov dword [ebp - 0x18], edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x430362
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 - 0x18], eax
test eax, eax
je 0x4305ed
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x18]
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 - 0x18]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x40]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x27
call fcn.0040fc90
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x2b
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, esi
mov eax, dword [eax + 0x30]
push eax
push 0
push str.RemoveByLimitComp
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp - 0x40]
cmp dword [edx - 0xc], 0
mov edi, eax
je 0x43042a
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, esi
lea ecx, [ebp - 0x40]
push ecx
add eax, 0x98
push eax
mov ecx, 0x5f844c
call fcn.00406b10
test eax, eax
je 0x43042a
test edi, edi
je 0x43042a
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, esi
lea edi, [eax + 0x98]
push edi
mov eax, 0x5f844c
call fcn.00407a20
cmp eax, 0xffffffff
je 0x43042a
push eax
mov eax, 0x5f8480
call fcn.00408210
inc dword [eax + 0xc]
mov eax, dword [edi]
push eax
push str.GALog:Add_Remove_Count__s__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebx + 8]
jge 0x42eb07
mov eax, dword [ebx + 4]
add eax, esi
mov eax, dword [eax + 0x30]
push eax
push 0
push str.OnDemand
push 0x5bfa40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebx + 8]
mov edi, eax
jge 0x42eb07
mov ecx, dword [ebx + 4]
xor eax, eax
add ecx, esi
cmp edi, 1
sete al
mov byte [ebp - 4], 0x27
or edx, 0xffffffff
mov dword [ecx + 0x130], eax
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430495
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4304b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4304db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
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 0x4304fe
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 - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430521
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
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 0x430544
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 - 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430567
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
jl 0x42ee20
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43059a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x38], 0
je 0x4305ac
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.0045dea6
add esp, 4
mov byte [ebp - 4], 0
lea edi, [ebp - 0xc0]
mov dword [ebp - 0xc0], 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 + 0xc]
call fcn.0042d520
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x2c
push 0x80004005
call fcn.00401fd0
call fcn.00405a90
int3