Function at 0x4243b0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x573476
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push esi
push edi
mov eax, dword [0x5d2614]
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 - 0x30], 0xffffffff
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0xa0], 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 - 0x9c], eax
mov dword [ebp - 0x98], 0x11
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], 0xa
xor ecx, ecx
mov eax, 1
mov edx, 4
mul edx
seto cl
mov byte [ebp - 4], 1
neg ecx
or ecx, eax
push ecx
call fcn.00447f3e
xor ecx, ecx
add esp, 4
test eax, eax
setne cl
mov dword [ebp - 0x9c], eax
test ecx, ecx
jne 0x424460
call fcn.00448939
mov dword [eax], 0
mov esi, dword [ebx + 8]
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x98], 1
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x24], esi
test esi, esi
jle 0x425a38
xor ecx, ecx
mov eax, esi
mov edx, 0x414
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00447f3e
mov edi, dword [ebp - 0x24]
add esp, 4
xor esi, esi
mov dword [ebp - 0x20], eax
test edi, edi
jle 0x42450a
mov ecx, dword [ebp - 0x20]
xor eax, eax
xor edx, edx
add ecx, 8
jmp 0x4244d2
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 0x42445b
cmp esi, dword [ebx + 8]
jge 0x42445b
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax + 0xc]
mov dword [ecx - 8], eax
inc esi
add edx, 0xe0
add ecx, 0x414
cmp esi, edi
jl 0x4244d0
cmp dword [ebp + 0x14], 3
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x54], edx
jne 0x424555
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x42453e
push 0
lea ecx, [ebp + 0x10]
call fcn.00401de0
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, esp
mov dword [ebp - 0x44], esp
push edx
call fcn.00401a30
mov eax, dword [ebp - 0x48]
push 0
push eax
call fcn.00427d00
call fcn.00451b96
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x54]
mov dword [eax + 0x124], 0x14
mov dword [eax + 0x128], ecx
call fcn.00451b96
call fcn.00451b96
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
or edi, 0xffffffff
test esi, esi
je 0x4245b0
mov eax, dword [esi + 0x60]
test eax, eax
je 0x4245b0
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4245b0
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 edi, 0xfffffffe
je 0x4245c0
cmp edi, 0x80000000
jne 0x424630
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x60], ecx
call fcn.00451b96
mov eax, dword [eax + 4]
lea edx, [ebp - 0x60]
mov dword [eax + 0x124], 0xc
mov dword [eax + 0x128], edx
call fcn.00451b96
call fcn.00451b96
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
or edi, 0xffffffff
test esi, esi
je 0x42462d
mov eax, dword [esi + 0x60]
test eax, eax
je 0x42462d
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x42462d
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 - 0x30], edi
cmp dword [ebp - 0x24], 0
mov dword [ebp + 0xc], 0
jle 0x425a26
mov esi, dword [ebp + 0xc]
test esi, esi
jl 0x42445b
cmp esi, dword [ebx + 8]
jge 0x42445b
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebx + 4]
mov eax, esi
imul eax, eax, 0x414
mov edi, esi
imul edi, edi, 0xe0
add eax, edx
mov edx, dword [eax + 4]
add ecx, edi
mov dword [ecx + 0xc8], edx
cmp esi, dword [ebx + 8]
mov dword [ebp - 0x40], edi
jge 0x42445b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 8]
add ecx, edi
mov dword [ecx + 0xa8], edx
cmp esi, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0xc]
add ecx, edi
mov dword [ecx + 0xb0], edx
cmp esi, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x10]
add ecx, edi
mov dword [ecx + 0xa4], edx
cmp esi, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x10]
add ecx, edi
mov dword [ecx + 0x3c], edx
cmp esi, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
add ecx, edi
add eax, 0x14
add ecx, 0x30
mov dword [ebp - 0x10], ecx
test eax, eax
jne 0x4246f3
xor edx, edx
jmp 0x424710
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x14], ecx
jmp 0x424700
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x424700
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 0x42445b
mov eax, dword [ebx + 4]
add eax, edi
mov dword [eax + 0x14], 0x270f
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x5a5b30
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 0x5a325c
call fcn.00401a30
push ecx
mov byte [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov byte [ebp - 4], 3
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x4247c6
cmp eax, dword [esi]
jne 0x4247c6
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x424805
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x84]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 1
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 4
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x424898
cmp dword [esi + 0xc], 0
jl 0x42488b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42488b
push eax
call fcn.00402000
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 0x42487e
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 0x424898
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 - 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4248be
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 6
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x42492a
cmp eax, dword [esi]
jne 0x42492a
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x424969
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x38]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 1
call fcn.00407a20
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 - 0x78]
push ecx
lea ecx, [ebp - 0x38]
call fcn.00407740
add esp, 8
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 8
cmp edx, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0x90]
lea edx, [ecx + 0x90]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x424a21
cmp dword [esi + 0xc], 0
jl 0x424a14
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x424a14
push eax
call fcn.00402000
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 0x424a07
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 0x424a21
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 - 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424a44
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xa
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x424ab0
cmp eax, dword [esi]
jne 0x424ab0
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x424aef
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x28]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 7
call fcn.00407a20
add esp, 0x10
lea esi, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.004154a0
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebx + 8]
jge 0x42445b
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x28]
add eax, edi
mov esi, dword [eax + 0x9c]
lea ecx, [eax + 0x9c]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], ecx
cmp eax, esi
je 0x424b8e
cmp dword [esi + 0xc], 0
jl 0x424b81
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x424b81
push eax
call fcn.00402000
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 0x424b74
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 0x424b8e
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xd
cmp edx, dword [ebx + 8]
jge 0x42445b
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 0x424bfa
cmp eax, dword [esi]
jne 0x424bfa
mov dword [ebp - 0x10], esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x424c39
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 0x425a6f
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.00541902
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.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xe
cmp ecx, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
add ecx, edi
mov esi, dword [ecx + 0x94]
lea edx, [ecx + 0x94]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], edx
cmp eax, esi
je 0x424ccf
cmp dword [esi + 0xc], 0
jl 0x424cc2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x424cc2
push eax
call fcn.00402000
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 0x424cb5
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 0x424ccf
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 0x424cf2
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x10
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x424d5e
cmp eax, dword [esi]
jne 0x424d5e
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x424d9d
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x74]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x11
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x424e33
cmp dword [esi + 0xc], 0
jl 0x424e26
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x424e26
push eax
call fcn.00402000
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 0x424e19
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 0x424e33
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 - 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424e56
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x13
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x424ec2
cmp eax, dword [esi]
jne 0x424ec2
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x424f01
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x64]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x14
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x424f91
cmp dword [esi + 0xc], 0
jl 0x424f84
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x424f84
push eax
call fcn.00402000
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 0x424f77
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 0x424f91
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 - 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424fb4
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 0x425128
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x16
cmp edx, dword [ebx + 8]
jge 0x42445b
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 0x425030
cmp eax, dword [esi]
jne 0x425030
mov dword [ebp - 0x10], esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x42506f
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 0x425a6f
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.00541902
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.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x17
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x425105
cmp dword [esi + 0xc], 0
jl 0x4250f8
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4250f8
push eax
call fcn.00402000
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 0x4250eb
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 0x425105
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 - 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x425128
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 - 0x1c], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x19
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x425194
cmp eax, dword [esi]
jne 0x425194
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4251d3
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add ecx, 0x10
lea eax, [ebp - 0x70]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0xb
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x1a
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x425260
cmp dword [esi + 0xc], 0
jl 0x425253
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x425253
push eax
call fcn.00402000
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 0x425246
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 0x425260
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 - 0x70]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x425283
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00448a4d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x425a74
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 0x5a14b0
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 0x4252ca
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 - 0x3c], esp
mov dword [ebp - 0x1c], esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4252fd
cmp eax, dword [esi]
jne 0x4252fd
mov dword [ebp - 0x10], esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x42533c
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
add ecx, 0x10
mov dword [edx], ecx
push ecx
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1c], esp
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push str.SilentInstall
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x1e
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x5a5b30
call fcn.00401a30
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 0x1f
cmp eax, dword [ebx + 8]
jge 0x42445b
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 - 0x1c], esp
mov dword [ebp - 0x1c], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4253be
cmp eax, dword [esi]
jne 0x4253be
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4253fd
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add ecx, 0x10
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1d
call fcn.00407a20
add esp, 0x10
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x1c
call fcn.0040bf50
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x20
cmp edx, dword [ebx + 8]
jge 0x42445b
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 0x42549d
cmp dword [esi + 0xc], 0
jl 0x425490
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x425490
push eax
call fcn.00402000
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 0x425483
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 0x42549d
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 - 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4254c0
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 0x42445b
mov eax, dword [ebx + 4]
mov edx, dword [eax + edi + 4]
add eax, edi
cmp dword [edx - 0xc], 0
jne 0x42563d
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.SilentInstall
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x21
mov ecx, esp
mov dword [ebp - 0x34], esp
push 0x5a5b30
call fcn.00401a30
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 0x22
cmp eax, dword [ebx + 8]
jge 0x42445b
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 - 0x3c], esp
mov dword [ebp - 0x18], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x42554b
cmp eax, dword [esi]
jne 0x42554b
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42558a
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add ecx, 0x10
lea eax, [ebp - 0x7c]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1c
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x23
cmp ecx, dword [ebx + 8]
jge 0x42445b
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 0x42561a
cmp dword [esi + 0xc], 0
jl 0x42560d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42560d
push eax
call fcn.00402000
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 0x425600
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 0x42561a
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 - 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42563d
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 0x42445b
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 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp - 0x10]
mov dword [edx + 0xb4], eax
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xb8], eax
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xbc], eax
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc0], eax
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc4], eax
cmp esi, dword [ebx + 8]
jge 0x42445b
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 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x10]
push ecx
mov dword [ecx + 0xcc], eax
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.Status
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x24
mov ecx, esp
mov dword [ebp - 0x34], esp
push 0x5a5b30
call fcn.00401a30
mov byte [ebp - 4], 0x25
cmp esi, dword [ebx + 8]
jge 0x42445b
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 - 0x3c], esp
mov dword [ebp - 0x18], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4257ce
cmp eax, dword [esi]
jne 0x4257ce
mov dword [ebp - 0x10], esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42580d
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 0x425a6f
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add ecx, 0x10
lea eax, [ebp - 0x44]
mov dword [edx], ecx
push eax
mov byte [ebp - 4], 0x1c
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x26
cmp ecx, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
add ecx, edi
mov edi, dword [ecx + 0xd0]
lea esi, [ecx + 0xd0]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x42589c
cmp dword [edi + 0xc], 0
jl 0x425890
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x425890
push eax
call fcn.00402000
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 0x425886
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 0x42589c
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00401e90
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4258bf
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 0x42445b
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + edx + 0x30]
lea edi, [esi + edx]
push eax
push 0
push str.NoInternetOnly
push 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
sub esp, 0x28
mov dword [edi + 0xdc], eax
mov eax, esp
mov dword [ebp - 0x2c], esp
push eax
lea edi, [ebp + 0x10]
call fcn.004242f0
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x27
cmp ecx, dword [ebx + 8]
jge 0x42445b
mov eax, dword [ebx + 4]
mov edi, dword [eax + esi + 0x90]
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 - 0x18], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x42594c
cmp eax, dword [edi]
jne 0x42594c
mov esi, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x425987
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x425a6f
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [esi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x18]
add esi, 0x10
mov dword [ecx], esi
mov byte [ebp - 4], 0x1c
call fcn.00427280
mov esi, dword [ebp + 0xc]
cmp esi, dword [ebx + 8]
jge 0x42445b
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x40]
mov byte [ebp - 4], 0xb
mov dword [ecx + 0xd4], eax
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4259d3
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 - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4259f6
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 - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x425a19
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, dword [ebp - 0x24]
mov dword [ebp + 0xc], esi
jl 0x424641
cmp dword [ebp - 0x20], 0
je 0x425a38
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.00447f33
add esp, 4
mov byte [ebp - 4], 0
lea edi, [ebp - 0xa0]
mov dword [ebp - 0xa0], 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.004282d0
lea esi, [ebp + 0x10]
call fcn.00421b00
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 0x30
call fcn.00401ff0
push 0x80004005
call fcn.00401fd0
int3