Function at 0x430890
Capabilities:
Copy file
Read .ini file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x567378
mov eax, dword fs:[0]
push eax
mov eax, 0x21b78
call fcn.00542ad0
mov eax, dword [0x5c0490]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xfffe
xor edi, edi
lea eax, [ebp - 0x21b00]
mov esi, ecx
push edi
push eax
mov dword [ebp - 0x21b28], esi
call fcn.00541d20
push 0x1000
lea ecx, [ebp - 0x14e8]
push edi
push ecx
call fcn.00541d20
mov edx, dword [0x59a4d4]
mov ax, word [0x59a4d8]
push 0x206
mov dword [ebp - 0x18], edx
lea edx, [ebp - 0x21e]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x14], ax
mov dword [ebp - 0x21b58], 9
mov word [ebp - 0x220], cx
call fcn.00541d20
add esi, 0x64c
push esi
lea eax, [ebp - 0x220]
push 0x104
push eax
call fcn.0053e407
push 0x208
lea ecx, [ebp - 0x4e8]
push edi
push ecx
call fcn.00541d20
add esp, 0x3c
call fcn.00448c3f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x43096f
push 0x80004005
call fcn.00404160
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x21b30], ebx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x21b28]
call fcn.00433ef0
mov eax, dword [edi + 0x160]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push eax
lea ecx, [ebp - 0x4e8]
push ecx
call esi
push str.uninst.ini
lea edx, [ebp - 0x4e8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x220]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp eax, 1
je 0x430a24
push 0x30
push 3
mov edx, edi
push edx
mov ecx, 0x1e
call fcn.00433320
mov dword [ebp - 4], 0xffffffff
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053ca73
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
lea ecx, [ebp - 0x4e8]
push ecx
lea edx, [ebp - 0x220]
push edx
call esi
push 0x80
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
call ebx
lea ecx, [ebp - 0x220]
push ecx
push 0x7fff
lea edx, [ebp - 0x21b00]
push edx
push str.Uninstall_Drivers
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
call fcn.00448c3f
push eax
push 0x7fff
lea eax, [ebp - 0x21b00]
push eax
lea ecx, [ebp - 0x21b2c]
call fcn.0040a700
push 9
push 0
lea ebx, [ebp - 0x21b2c]
mov byte [ebp - 4], 1
call fcn.00412690
push 9
push 0x3b
call fcn.00412690
mov ebx, dword [ebp - 0x21b2c]
mov eax, dword [ebx - 0xc]
test eax, eax
jns 0x430ab9
or eax, 0xffffffff
jmp 0x430ad3
lea ecx, [ebp - 0x18]
push ecx
push ebx
call fcn.0053d6a8
add esp, 8
test eax, eax
jne 0x430acf
or eax, 0xffffffff
jmp 0x430ad3
sub eax, ebx
sar eax, 1
push eax
lea edx, [ebp - 0x21b40]
push edx
lea ecx, [ebp - 0x21b2c]
call fcn.00410460
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x21b28]
add ecx, 0xbc
push eax
call fcn.004063a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x21b40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430b22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx - 0xc], 0
jl 0x431284
lea ecx, [ebp - 0x18]
push ecx
push ebx
call fcn.0053d6a8
add esp, 8
test eax, eax
je 0x431284
sub eax, ebx
sar eax, 1
mov edi, eax
js 0x431284
mov esi, dword [ebx - 0xc]
cmp edi, esi
jge 0x431284
cmp dword [ebx - 4], 1
jle 0x430b70
push esi
lea ecx, [ebp - 0x21b2c]
call fcn.00405650
mov ebx, dword [ebp - 0x21b2c]
xor eax, eax
mov word [ebx + edi*2], ax
test esi, esi
js 0x431284
cmp esi, dword [ebx - 8]
jg 0x431284
xor ecx, ecx
mov dword [ebx - 0xc], esi
mov word [ebx + esi*2], cx
mov ecx, dword [ebx - 0xc]
test eax, eax
js 0x430bc9
cmp eax, ecx
jg 0x430bc9
lea edx, [ebp - 0x21b58]
push edx
lea eax, [ebx + eax*2]
push eax
call fcn.0053d6a8
add esp, 8
test eax, eax
je 0x430bc9
sub eax, ebx
sar eax, 1
test eax, eax
jle 0x430bc9
mov ecx, dword [ebp - 0x21b28]
inc dword [ecx + 0x138]
inc eax
jmp 0x430b90
mov eax, dword [ebp - 0x21b28]
mov eax, dword [eax + 0xbc]
sub eax, 0x10
push eax
call fcn.00406410
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x21b3c], esi
push 0x5988ec
lea ecx, [ebp - 0x21b34]
mov byte [ebp - 4], 3
call fcn.00404f00
push 0x5988ec
lea ecx, [ebp - 0x21b38]
mov byte [ebp - 4], 4
call fcn.00404f00
mov byte [ebp - 4], 5
xor ebx, ebx
jmp 0x430c20
mov eax, dword [esi - 0xc]
test ebx, ebx
js 0x430d35
cmp ebx, eax
jge 0x430d35
lea ecx, [esi + ebx*2]
push 9
push ecx
call fcn.0053d8a3
add esp, 8
test eax, eax
je 0x430d35
sub eax, esi
sar eax, 1
mov edi, eax
mov dword [ebp - 0x21b40], edi
js 0x430d35
cmp edi, ebx
jle 0x430d2d
mov edx, edi
sub edx, ebx
push edx
push ebx
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b3c]
call fcn.0040a450
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x21b38]
lea eax, [ecx - 0x10]
add ebx, 0xfffffff0
cmp eax, ebx
je 0x430ce8
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x430cd2
mov edx, dword [eax]
cmp edx, dword [ebx]
jne 0x430cd2
push eax
call fcn.00406410
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x430cc1
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x21b38], edi
mov edi, dword [ebp - 0x21b40]
jmp 0x430ce2
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x21b38]
call fcn.00405470
mov esi, dword [ebp - 0x21b3c]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430d0e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x21b28]
mov eax, dword [ecx + 0x188]
add ecx, 0x180
lea edx, [ebp - 0x21b38]
push edx
push eax
call fcn.0044ab55
lea ebx, [edi + 1]
jmp 0x430c20
push ebx
lea ecx, [ebp - 0x21b40]
push ecx
lea ecx, [ebp - 0x21b3c]
call fcn.004103b0
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov esi, dword [ebp - 0x21b34]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x430da9
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x430d99
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x430d99
push eax
call fcn.00406410
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x430d8e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0x21b34], edi
jmp 0x430da9
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x21b34]
call fcn.00405470
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430dcf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x21b28]
mov eax, dword [ecx + 0x188]
add ecx, 0x180
lea edx, [ebp - 0x21b34]
push edx
push eax
call fcn.0044ab55
push 0x7fff
lea eax, [ebp - 0x21b00]
push 0
push eax
call fcn.00541d20
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x7fff
lea edx, [ebp - 0x21b00]
push edx
push str.Uninstall_Old_Drivers
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
call fcn.00448c3f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430e3c
push 0x80004005
call fcn.00404160
mov edx, dword [eax]
push 2
mov ecx, eax
mov eax, dword [edx]
push 0x7fff
call eax
test eax, eax
jne 0x430e54
call fcn.00405640
add eax, 0x10
cmp dword [eax - 8], 0x7fff
mov dword [ebp - 0x21b20], eax
jl 0x431284
push 0xfffe
lea edx, [ebp - 0x21b00]
push edx
xor ecx, ecx
push 0xfffe
mov dword [eax - 0xc], 0x7fff
push eax
mov word [eax + 0xfffe], cx
call fcn.0053d708
add esp, 0x10
push 9
push 0
lea ebx, [ebp - 0x21b20]
mov byte [ebp - 4], 8
call fcn.00412690
push 9
push 0x3b
call fcn.00412690
mov edi, dword [ebp - 0x21b20]
cmp dword [edi - 0xc], 0
jge 0x430ec1
or eax, 0xffffffff
jmp 0x430edb
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.0053d6a8
add esp, 8
test eax, eax
jne 0x430ed7
or eax, 0xffffffff
jmp 0x430edb
sub eax, edi
sar eax, 1
push eax
lea ecx, [ebp - 0x21b24]
push ecx
lea ecx, [ebp - 0x21b20]
call fcn.00410460
mov byte [ebp - 4], 9
mov ebx, dword [ebp - 0x21b28]
mov ecx, dword [eax]
mov esi, dword [ebx + 0xc0]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x430f65
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x430f4f
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x430f4f
push eax
call fcn.00406410
mov dword [ebp - 0x21b40], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x430f3e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x21b40]
add ecx, 0x10
mov dword [ebx + 0xc0], ecx
jmp 0x430f5f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebx + 0xc0]
call fcn.00405470
mov edi, dword [ebp - 0x21b20]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x21b24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430f8b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor esi, esi
cmp dword [edi - 0xc], esi
jl 0x431284
lea ecx, [ebp - 0x18]
push ecx
push edi
call fcn.0053d6a8
add esp, 8
test eax, eax
je 0x431284
mov ecx, dword [ebp - 0x21b20]
sub eax, ecx
sar eax, 1
mov edi, eax
js 0x431284
mov ebx, dword [ecx - 0xc]
cmp edi, ebx
jge 0x431284
cmp dword [ecx - 4], 1
jle 0x430fe5
mov edx, ecx
mov eax, dword [edx - 0xc]
push eax
lea ecx, [ebp - 0x21b20]
call fcn.00405650
mov ecx, dword [ebp - 0x21b20]
xor edx, edx
mov word [ecx + edi*2], dx
test ebx, ebx
js 0x431284
cmp ebx, dword [ecx - 8]
jg 0x431284
xor eax, eax
mov dword [ecx - 0xc], ebx
mov word [ecx + ebx*2], ax
mov eax, dword [ecx - 0xc]
test esi, esi
js 0x431048
cmp esi, eax
jg 0x431048
mov edi, dword [ebp - 0x21b20]
lea ecx, [ebp - 0x21b58]
push ecx
lea edx, [edi + esi*2]
push edx
call fcn.0053d6a8
add esp, 8
test eax, eax
je 0x431048
sub eax, edi
sar eax, 1
mov esi, eax
test esi, esi
jle 0x431048
mov eax, dword [ebp - 0x21b28]
inc dword [eax + 0x13c]
inc esi
mov ecx, edi
jmp 0x431005
mov edi, dword [ebp - 0x21b28]
mov eax, dword [edi + 0x164]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x800
or eax, ecx
jge 0x431078
push 0x800
lea ecx, [edi + 0x164]
call fcn.00405520
mov eax, dword [edi + 0x164]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push str.item_not_found__
push str.ShowMsgDlg
push str.Debug_Info
call ebx
mov eax, dword [edi + 0x164]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4310c1
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [edi + 0x164]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [edi + 0x164]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [edi + 0xc4]
lea esi, [edi + 0xc4]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x800
or eax, ecx
mov dword [ebp - 0x21b4c], esi
jge 0x431111
push 0x800
mov ecx, esi
call fcn.00405520
mov eax, dword [esi]
lea edx, [ebp - 0x220]
push edx
push 0x800
push eax
push str.item_not_found__
push str.PRT_2KXP
push str.Borderline_Driver_Versions
call ebx
mov eax, dword [esi]
mov ecx, str.item_not_found__
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x43115e
test dx, dx
je 0x43115a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x43115e
add eax, 4
add ecx, 4
test dx, dx
jne 0x431138
xor eax, eax
jmp 0x431163
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x43128e
push str.PRT_2KXP
push str.Borderline_Driver_Versions
push edi
call fcn.00433480
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43119b
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4311d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4311fd
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431223
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431249
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
push 0x80070057
call fcn.00404160
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4312a5
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [edi + 0xc8]
lea esi, [edi + 0xc8]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x800
or eax, ecx
mov dword [ebp - 0x21b48], esi
jge 0x4312e9
push 0x800
mov ecx, esi
call fcn.00405520
mov eax, dword [esi]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push str.item_not_found__
push str.FAX_2KXP
push str.Borderline_Driver_Versions
call ebx
mov eax, dword [esi]
mov ecx, str.item_not_found__
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x431336
test dx, dx
je 0x431332
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x431336
add eax, 4
add ecx, 4
test dx, dx
jne 0x431310
xor eax, eax
jmp 0x43133b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x431460
push str.FAX_2KXP
push str.Borderline_Driver_Versions
push edi
call fcn.00433480
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x431373
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4313af
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4313d5
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4313fb
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431421
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43147b
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [edi + 0xcc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x800
or eax, ecx
jge 0x4314bb
push 0x800
lea ecx, [edi + 0xcc]
call fcn.00405520
mov eax, dword [edi + 0xcc]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push str.item_not_found__
push str.OLD_VER
push str.Borderline_Driver_Versions
call ebx
mov eax, dword [edi + 0xcc]
mov ecx, str.item_not_found__
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x431516
test dx, dx
je 0x431512
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x431516
add eax, 4
add ecx, 4
test dx, dx
jne 0x4314f0
xor eax, eax
jmp 0x43151b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x43164c
push str.OLD_VER
push str.Borderline_Driver_Versions
push edi
call fcn.00433480
mov eax, dword [edi + 0xcc]
mov ecx, dword [eax - 8]
test eax, eax
je 0x431557
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [edi + 0xcc]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [edi + 0xcc]
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43159b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4315c1
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4315e7
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43160d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
mov eax, dword [edi + 0xcc]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43166b
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [edi + 0xcc]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov ecx, dword [edi + 0xcc]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [edi + 0xd0]
lea esi, [edi + 0xd0]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x800
or eax, ecx
jge 0x4316b5
push 0x800
mov ecx, esi
call fcn.00405520
mov eax, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push str.item_not_found__
push 0x59a5cc
push 0x59a5cc
call ebx
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x431809
push 0x59a5cc
push 0x59a5cc
push edi
call fcn.00433480
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43171c
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x431758
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43177e
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4317a4
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4317ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x431824
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [esi]
sub eax, 0x10
push eax
call fcn.00406410
add eax, 0x10
mov dword [ebp - 0x21b44], eax
push 0x598ecc
push esi
mov byte [ebp - 4], 0xa
call fcn.00406a50
add esp, 0xc
test al, al
je 0x431874
push str.PCL5e
lea ecx, [ebp - 0x21b44]
call fcn.00404fc0
mov eax, dword [edi + 0x5e4]
lea esi, [edi + 0x5e4]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x800
or eax, ecx
mov dword [ebp - 0x21b40], esi
jge 0x4318a6
push 0x800
mov ecx, esi
call fcn.00405520
mov eax, dword [esi]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push 0x5988ec
push str.PDL_TYPE
push 0x59a5cc
call ebx
push str.LIPS4
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x43193e
push 0x598ecc
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x43193e
push 0x59a5f4
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x43193e
push 0x5983c0
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x43193e
push str.UFRII
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x43193e
push str.CAPT
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x43193e
push 0x5988ec
mov ecx, esi
call fcn.00404fc0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x431959
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
mov edx, dword [edi + 0x13c]
add edx, dword [edi + 0x138]
xor esi, esi
test edx, edx
jle 0x4319a4
push 2
push 0x59a608
lea ecx, [edi + 0xd4]
call fcn.0040a930
mov eax, dword [edi + 0x13c]
add eax, dword [edi + 0x138]
inc esi
cmp esi, eax
jl 0x431981
mov ecx, dword [edi + 0xd4]
mov eax, dword [ecx - 0xc]
lea esi, [edi + 0xd4]
dec eax
mov dword [ebp - 0x21b24], eax
js 0x431284
mov eax, ecx
mov ebx, dword [eax - 0xc]
cmp dword [ebp - 0x21b24], ebx
jge 0x431284
cmp dword [eax - 4], 1
jle 0x4319df
push ebx
mov ecx, esi
call fcn.00405650
mov eax, dword [esi]
mov edx, dword [ebp - 0x21b24]
xor ecx, ecx
mov word [eax + edx*2], cx
test ebx, ebx
js 0x431284
mov eax, dword [esi]
cmp ebx, dword [eax - 8]
jg 0x431284
mov dword [eax - 0xc], ebx
mov eax, dword [esi]
mov word [eax + ebx*2], cx
lea ecx, [edi + 0xd8]
push esi
call fcn.004063a0
mov ecx, dword [ebp - 0x21b2c]
lea edx, [ebp - 0x21b5c]
push edx
lea eax, [ebp - 0x21b58]
push eax
push ecx
mov dword [ebp - 0x21b5c], 0
call fcn.0053deaa
mov esi, eax
add esp, 0xc
test esi, esi
je 0x431aeb
jmp 0x431a50
push str._FAX_
push esi
call fcn.0053d6a8
add esp, 8
lea ebx, [edi + 0xdc]
test eax, eax
jne 0x431a8d
mov edx, dword [ebp - 0x21b4c]
mov edx, dword [edx]
test edx, edx
je 0x431ab1
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431a80
jmp 0x431aad
mov eax, dword [ebp - 0x21b48]
mov edx, dword [eax]
test edx, edx
jne 0x431a9d
xor eax, eax
jmp 0x431ab1
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431aa2
sub eax, esi
sar eax, 1
push eax
push edx
mov ecx, ebx
call fcn.0040a930
lea ecx, [ebp - 0x21b5c]
push ecx
lea edx, [ebp - 0x21b58]
push edx
push 0
call fcn.0053deaa
mov esi, eax
add esp, 0xc
test esi, esi
je 0x431aeb
push 1
push 0x5958e8
mov ecx, ebx
call fcn.0040a930
jmp 0x431a50
mov edx, dword [ebp - 0x21b20]
lea eax, [ebp - 0x21b5c]
push eax
lea ecx, [ebp - 0x21b58]
push ecx
push edx
call fcn.0053deaa
mov esi, eax
add esp, 0xc
test esi, esi
je 0x431bab
push str._FAX_
push esi
call fcn.0053d6a8
add esp, 8
lea ebx, [edi + 0xdc]
test eax, eax
jne 0x431b4d
mov eax, dword [ebp - 0x21b4c]
mov edx, dword [eax]
test edx, edx
jne 0x431b3a
xor eax, eax
jmp 0x431b71
mov eax, edx
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431b40
jmp 0x431b6d
mov ecx, dword [ebp - 0x21b48]
mov edx, dword [ecx]
test edx, edx
jne 0x431b5d
xor eax, eax
jmp 0x431b71
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431b62
sub eax, esi
sar eax, 1
push eax
push edx
mov ecx, ebx
call fcn.0040a930
lea edx, [ebp - 0x21b5c]
push edx
lea eax, [ebp - 0x21b58]
push eax
push 0
call fcn.0053deaa
mov esi, eax
add esp, 0xc
test esi, esi
je 0x431bab
push 1
push 0x5958e8
mov ecx, ebx
call fcn.0040a930
jmp 0x431b12
push 0x800
lea ecx, [ebp - 0x14e8]
push 0
push ecx
call fcn.00541d20
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x800
lea eax, [ebp - 0x14e8]
push eax
push str.item_not_found__
push str.KEY_PRINTER
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431bf4
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x14e8]
push str.item_not_found__
push ecx
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x431d2d
push str.KEY_PRINTER
push str.Registrys
push edi
call fcn.00433480
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x21b44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x431c56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431c7c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431ca2
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431cc8
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431cee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
lea eax, [ebp - 0x14e8]
lea ecx, [edi + 0xf4]
lea ebx, [eax + 2]
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x431d40
sub eax, ebx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push edx
call fcn.00405470
push 0x800
lea eax, [ebp - 0x14e8]
push 0
push eax
call fcn.00541d20
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edx, [ebp - 0x14e8]
push edx
push str.item_not_found__
push str.KEY_PRINTER2
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431da0
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x14e8]
push str.item_not_found__
push eax
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x431ed9
push str.KEY_PRINTER2
push str.Registrys
push edi
call fcn.00433480
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x21b44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e02
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e4e
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e74
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431e9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
lea eax, [ebp - 0x14e8]
lea ecx, [edi + 0xf8]
lea ebx, [eax + 2]
jmp 0x431ef0
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x431ef0
sub eax, ebx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push edx
call fcn.00405470
push 0x800
lea eax, [ebp - 0x14e8]
push 0
push eax
call fcn.00541d20
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edx, [ebp - 0x14e8]
push edx
push str.item_not_found__
push str.KEY_BEFORE
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431f50
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x14e8]
push str.item_not_found__
push eax
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x432089
push str.KEY_BEFORE
push str.Registrys
push edi
call fcn.00433480
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x21b44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431fb2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431fd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431ffe
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x432024
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43204a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x21b2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43126f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x21b30]
add eax, 0xfffffff0
jmp 0x4309ed
lea ecx, [ebp - 0x14e8]
push ecx
lea ecx, [edi + 0xfc]
call fcn.00404fc0
push 0x800
lea edx, [ebp - 0x14e8]
push 0
push edx
call fcn.00541d20
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
push 0x800
lea ecx, [ebp - 0x14e8]
push ecx
push str.item_not_found__
push str.KEY_BEFORE2
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4320e0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push str.item_not_found__
push edx
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x43216a
push str.KEY_BEFORE2
push str.Registrys
push edi
call fcn.00433480
lea ecx, [ebp - 0x21b44]
call fcn.00405310
lea ecx, [ebp - 0x21b20]
call fcn.00405310
lea ecx, [ebp - 0x21b38]
call fcn.00405310
lea ecx, [ebp - 0x21b34]
call fcn.00405310
lea ecx, [ebp - 0x21b3c]
call fcn.00405310
lea ecx, [ebp - 0x21b2c]
call fcn.00405310
lea ecx, [ebp - 0x21b30]
call fcn.00405310
jmp 0x430a06
lea eax, [ebp - 0x14e8]
push eax
lea ecx, [edi + 0x100]
call fcn.00404fc0
push 0x800
lea ecx, [ebp - 0x14e8]
push 0
push ecx
call fcn.00541d20
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x800
lea eax, [ebp - 0x14e8]
push eax
push str.item_not_found__
push str.KEY_BEFORE3
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4321c0
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x14e8]
push str.item_not_found__
push ecx
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x4321f2
push str.KEY_BEFORE3
jmp 0x43210d
lea edx, [ebp - 0x14e8]
push edx
lea ecx, [edi + 0x104]
call fcn.00404fc0
push 0x800
lea eax, [ebp - 0x14e8]
push 0
push eax
call fcn.00541d20
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edx, [ebp - 0x14e8]
push edx
push str.item_not_found__
push str.KEY_PDRVCAP
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x432247
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x14e8]
push str.item_not_found__
push eax
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x432279
push str.KEY_PDRVCAP
jmp 0x43210d
lea ecx, [ebp - 0x14e8]
push ecx
lea ecx, [edi + 0x108]
call fcn.00404fc0
push 0x800
lea edx, [ebp - 0x14e8]
push 0
push edx
call fcn.00541d20
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
push 0x800
lea ecx, [ebp - 0x14e8]
push ecx
push str.item_not_found__
push str.KEY_PDRVCAP2
push str.Registrys
call esi
lea eax, [ebp - 0x14e8]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4322d0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push str.item_not_found__
push edx
call fcn.0053da48
add esp, 0xc
test eax, eax
jne 0x432302
push str.KEY_PDRVCAP2
jmp 0x43210d
lea eax, [ebp - 0x14e8]
push eax
lea ecx, [edi + 0x10c]
call fcn.00404fc0
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.00541d20
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x7fff
lea eax, [ebp - 0x21b00]
push eax
push str.Registrys_Key
call esi
mov ebx, eax
call fcn.00448c3f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b50]
call fcn.0040a700
mov byte [ebp - 4], 0xb
test ebx, ebx
je 0x43238b
push 9
push 0
lea ebx, [ebp - 0x21b50]
call fcn.00412690
push 9
push 0x3b
call fcn.00412690
jmp 0x43239b
push str.Non_Printer_t_t
lea ecx, [ebp - 0x21b50]
call fcn.00404fc0
mov ebx, dword [ebp - 0x21b50]
cmp dword [ebx - 0xc], 0
jge 0x4323ac
or eax, 0xffffffff
jmp 0x4323c6
lea edx, [ebp - 0x18]
push edx
push ebx
call fcn.0053d6a8
add esp, 8
test eax, eax
jne 0x4323c2
or eax, 0xffffffff
jmp 0x4323c6
sub eax, ebx
sar eax, 1
push eax
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b50]
call fcn.00410460
lea ecx, [edi + 0x110]
push eax
mov byte [ebp - 4], 0xc
call fcn.004063a0
lea ecx, [ebp - 0x21b24]
mov byte [ebp - 4], 0xb
call fcn.00405310
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.00541d20
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x7fff
lea eax, [ebp - 0x21b00]
push eax
push str.VDC_Modules
call esi
call fcn.00448c3f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b48]
call fcn.0040a700
push 9
push 0
lea ebx, [ebp - 0x21b48]
mov byte [ebp - 4], 0xd
call fcn.00412690
push 9
push 0x3b
call fcn.00412690
mov ebx, dword [ebp - 0x21b48]
cmp dword [ebx - 0xc], 0
jge 0x432472
or eax, 0xffffffff
jmp 0x43248c
lea edx, [ebp - 0x18]
push edx
push ebx
call fcn.0053d6a8
add esp, 8
test eax, eax
jne 0x432488
or eax, 0xffffffff
jmp 0x43248c
sub eax, ebx
sar eax, 1
push eax
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b48]
call fcn.00410460
lea ecx, [edi + 0xe0]
push eax
mov byte [ebp - 4], 0xe
call fcn.004063a0
lea ecx, [ebp - 0x21b24]
mov byte [ebp - 4], 0xd
call fcn.00405310
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.00541d20
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x7fff
lea eax, [ebp - 0x21b00]
push eax
push str.DIAS_Modules
call esi
call fcn.00448c3f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b54]
call fcn.0040a700
push 9
push 0
lea ebx, [ebp - 0x21b54]
mov byte [ebp - 4], 0xf
call fcn.00412690
push 9
push 0x3b
call fcn.00412690
mov esi, dword [ebp - 0x21b54]
cmp dword [esi - 0xc], 0
jge 0x432538
or eax, 0xffffffff
jmp 0x432552
lea edx, [ebp - 0x18]
push edx
push esi
call fcn.0053d6a8
add esp, 8
test eax, eax
jne 0x43254e
or eax, 0xffffffff
jmp 0x432552
sub eax, esi
sar eax, 1
push eax
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b54]
call fcn.00410460
lea ecx, [edi + 0xe4]
push eax
mov byte [ebp - 4], 0x10
call fcn.004063a0
lea ecx, [ebp - 0x21b24]
mov byte [ebp - 4], 0xf
call fcn.00405310
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [edi + 0xe8]
push 0x800
mov ecx, esi
call fcn.00405110
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push str.item_not_found__
push str.PDL_NAME
push str.Profiles
call ebx
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x432633
push str.PDL_NAME
push str.Profiles
push edi
call fcn.00433480
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4325f7
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b54]
call fcn.00405310
lea ecx, [ebp - 0x21b48]
call fcn.00405310
lea ecx, [ebp - 0x21b50]
call fcn.00405310
jmp 0x432118
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43264e
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b4c]
call fcn.00406370
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x21b40]
push 0x598ecc
push edx
call fcn.00406a50
add esp, 8
lea ecx, [ebp - 0x21b4c]
test al, al
je 0x43269d
push str.item_not_found__
call fcn.00404fc0
jmp 0x4326a3
push esi
call fcn.004063a0
lea eax, [ebp - 0x220]
push eax
push 0x800
lea esi, [edi + 0xec]
push 0x800
mov ecx, esi
call fcn.00405110
mov ecx, dword [ebp - 0x21b4c]
push eax
push ecx
push str.PDL_NAME2
push str.Profiles
call ebx
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x432738
push str.PDL_NAME2
push str.Profiles
push edi
call fcn.00433480
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x432712
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b4c]
call fcn.00405310
jmp 0x43260d
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x432753
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov esi, dword [ebp - 0x21b28]
xor ecx, ecx
mov word [edx + eax*2], cx
lea edx, [ebp - 0x220]
push edx
push 0x800
lea edi, [esi + 0xf0]
push 0x800
mov ecx, edi
call fcn.00405110
push eax
push str.item_not_found__
push str.UninstallLevel
push str.Profiles
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push str.item_not_found__
push edi
call fcn.00406a50
add esp, 8
test al, al
jne 0x433203
push 0x59a774
push edi
call fcn.00410680
add esp, 8
test al, al
je 0x4327f3
push 0x595e00
push edi
call fcn.00410680
add esp, 8
test al, al
je 0x4327f3
push 0x59a4d0
push edi
call fcn.00410680
add esp, 8
test al, al
jne 0x433203
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43280e
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov ebx, dword [ebp - 0x21b28]
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [ebx + 0x140]
lea esi, [ebp - 0x21b24]
call fcn.0042d6d0
push eax
lea ecx, [ebp - 0x21b30]
mov byte [ebp - 4], 0x12
call fcn.004063a0
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.00405310
lea eax, [ebp - 0x21b30]
push eax
push 0x59a774
call fcn.0042c390
add esp, 8
test al, al
jne 0x43289e
lea ecx, [ebp - 0x21b30]
push ecx
push 0x595e00
call fcn.0042c390
add esp, 8
test al, al
jne 0x43289e
lea edx, [ebp - 0x21b30]
push edx
push 0x59a4d0
call fcn.0042c390
add esp, 8
test al, al
je 0x4328ac
lea eax, [ebp - 0x21b30]
push eax
mov ecx, edi
call fcn.004063a0
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [ebx + 0x114]
push 0x800
mov ecx, esi
call fcn.00405110
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push str.item_not_found__
push 0x59a778
push str.Profiles
call edi
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x432900
push 0x59a31c
mov ecx, esi
call fcn.00404fc0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43291b
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea edx, [ebp - 0x220]
push edx
push 0x800
lea esi, [ebx + 0x11c]
push 0x800
mov ecx, esi
call fcn.00405110
push eax
push str.item_not_found__
push str.VDCService
push str.Profiles
call edi
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x43297f
push str.DEFAULT_STOP
mov ecx, esi
call fcn.00404fc0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43299a
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
lea eax, [ebp - 0x220]
push eax
push 0x800
lea esi, [ebx + 0x120]
push 0x800
mov ecx, esi
call fcn.00405110
push eax
push str.item_not_found__
push str.NetWorkPrinter
push str.Profiles
call edi
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x4329fe
push 0x59a31c
mov ecx, esi
call fcn.00404fc0
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041c5d0
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [ebx + 0x124]
push 0x800
mov ecx, esi
call fcn.00405110
push eax
push str.item_not_found__
push str.AUTHORITYCHECK
push str.Profiles
call edi
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x432a55
push 0x59a31c
mov ecx, esi
call fcn.00404fc0
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041c5d0
lea edx, [ebp - 0x220]
push edx
push 0x800
lea esi, [ebx + 0x130]
push 0x800
mov ecx, esi
call fcn.00405110
push eax
push str.item_not_found__
push str.CCD3_VER_2KXP
push str.Borderline_CCD3_Driver_Versions
call edi
push str.item_not_found__
push esi
call fcn.00406a50
add esp, 8
test al, al
je 0x432aac
push str.0.00
mov ecx, esi
call fcn.00404fc0
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041c5d0
lea eax, [ebp - 0x220]
push eax
push 0
push str.DrvNum
push str.GetDrvInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea esi, [ebx + 0x62c]
mov edi, eax
mov dword [ebp - 0x21b24], eax
call fcn.0040b7b0
test edi, edi
jle 0x432bc1
cmp edi, 0x20
jle 0x432af9
mov edi, 0x20
mov dword [ebp - 0x21b24], edi
xor esi, esi
test edi, edi
jle 0x432bc1
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea esp, [esp]
inc esi
push esi
push str.DrvFile_
lea ecx, [ebp - 0x1b00]
push str._s_d
push ecx
mov edx, 0x104
mov dword [ebp - 0x21b28], esi
call fcn.00434640
add esp, 0x10
lea edx, [ebp - 0x220]
push edx
push 0x104
lea eax, [ebp - 0x18f8]
push eax
push 0x5988ec
lea ecx, [ebp - 0x1b00]
push ecx
push str.GetDrvInfo
call edi
push 0x5988ec
lea edx, [ebp - 0x18f8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x432bb3
lea eax, [ebp - 0x18f8]
lea ecx, [ebp - 0x21b1c]
call fcn.00402cf0
lea ecx, [ebp - 0x21b1c]
lea edi, [ebx + 0x62c]
mov byte [ebp - 4], 0x13
call fcn.0040b6d0
lea esi, [ebp - 0x21b1c]
mov byte [ebp - 4], 0x11
call fcn.00402d30
mov esi, dword [ebp - 0x21b28]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp esi, dword [ebp - 0x21b24]
jl 0x432b10
jmp 0x432bc7
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x220]
push eax
push 0x20
lea ecx, [ebp - 0x2a0]
push ecx
push 0x59a370
push str.CheckJobMonitor
push str.Profiles
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x59a31c
lea edx, [ebp - 0x2a0]
push edx
call esi
neg eax
sbb eax, eax
inc eax
mov dword [ebx + 0x63c], eax
lea eax, [ebp - 0x220]
push eax
push 0x20
lea ecx, [ebp - 0x2e0]
push ecx
push 0x59a370
push str.DelRestoreFile
push str.Profiles
call edi
push 0x59a31c
lea edx, [ebp - 0x2e0]
push edx
call esi
neg eax
sbb eax, eax
inc eax
mov dword [ebx + 0x640], eax
call fcn.00414850
cmp eax, 0xa
jne 0x432ce4
xor eax, eax
push 0xfffc
push eax
lea ecx, [ebp - 0x11afe]
push ecx
mov word [ebp - 0x11b00], ax
call fcn.00541d20
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x7fff
lea eax, [ebp - 0x11b00]
push eax
push str.DriverStoreInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
test eax, eax
je 0x432cc5
cmp word [ebp - 0x11b00], 0
lea esi, [ebp - 0x11b00]
je 0x432cc5
nop
cmp word [esi], 0x3b
je 0x432cb2
push esi
lea ecx, [ebx + 0x1b0]
call fcn.0040dc90
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp word [esi + eax*2 + 2], 0
lea esi, [esi + eax*2 + 2]
jne 0x432ca0
lea ecx, [ebp - 0x220]
push ecx
push 0xa
push str.WaitDeleteDriverPacakge
push str.UninstallDriverStore
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebx + 0x1c4], eax
push 0x206
xor esi, esi
lea eax, [ebp - 0x16ee]
xor edx, edx
push esi
push eax
mov word [ebp - 0x16f0], dx
call fcn.00541d20
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x7fff
lea edx, [ebp - 0x21b00]
push edx
push 0x5988ec
push esi
push str.DeleteMonitor
mov dword [ebp - 0x21b28], esi
mov dword [ebp - 0x21b24], esi
mov dword [ebp - 0x21b60], esi
call edi
cmp eax, esi
jbe 0x432eb8
xor ecx, ecx
cmp eax, esi
jbe 0x432d66
cmp word [ebp + ecx*2 - 0x21b00], si
jne 0x432d61
inc dword [ebp - 0x21b24]
mov edx, 9
mov word [ebp + ecx*2 - 0x21b00], dx
inc ecx
cmp ecx, eax
jb 0x432d44
mov esi, dword [ebp - 0x21b24]
inc esi
xor ecx, ecx
mov eax, esi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00448ab7
add esp, 4
test eax, eax
je 0x432dbe
push 0x42ea90
push 0x433260
push esi
mov dword [eax], esi
add eax, 4
push 8
push eax
mov dword [ebp - 0x21b24], eax
call fcn.0053d83e
mov eax, dword [ebp - 0x21b24]
jmp 0x432dc0
xor eax, eax
lea ecx, [ebp - 0x21b60]
push ecx
lea edx, [ebp - 0x21b58]
mov dword [ebx + 0x134], eax
push edx
lea eax, [ebp - 0x21b00]
push eax
call fcn.0053deaa
mov esi, eax
add esp, 0xc
test esi, esi
je 0x432e86
lea ecx, [ecx]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x64
jg 0x432e64
lea ecx, [ebp - 0x220]
push ecx
push 0x208
lea edx, [ebp - 0x16f0]
push edx
push 0x5988ec
push esi
push str.DeleteMonitor
call edi
dec eax
cmp eax, 0x63
ja 0x432e64
mov eax, dword [ebp - 0x21b28]
mov ecx, dword [ebx + 0x134]
add eax, eax
add eax, eax
add eax, eax
push esi
add ecx, eax
call fcn.00404fc0
mov ecx, dword [ebx + 0x134]
lea eax, [ebp - 0x16f0]
push eax
mov eax, dword [ebp - 0x21b28]
add eax, eax
add eax, eax
add eax, eax
lea ecx, [eax + ecx + 4]
call fcn.00404fc0
inc dword [ebp - 0x21b28]
lea edx, [ebp - 0x21b60]
push edx
lea eax, [ebp - 0x21b58]
push eax
push 0
call fcn.0053deaa
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x432df0
mov esi, dword [ebp - 0x21b28]
mov ecx, dword [ebx + 0x134]
add esi, esi
add esi, esi
add esi, esi
push 0x5988ec
add ecx, esi
call fcn.00404fc0
mov ecx, dword [ebx + 0x134]
push 0x5988ec
lea ecx, [esi + ecx + 4]
call fcn.00404fc0
xor edx, edx
push 0x3e
push edx
lea eax, [ebp - 0x25e]
push eax
mov word [ebp - 0x260], dx
call fcn.00541d20
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x20
lea edx, [ebp - 0x260]
push edx
push 0x59a774
push str.UsePrintUI
push str.Profiles
call edi
lea eax, [ebp - 0x260]
push 0x595e00
push eax
call fcn.0053d3bf
add esp, 8
neg eax
lea ecx, [ebp - 0x220]
push ecx
sbb eax, eax
push 0x800
inc eax
push 0x800
lea ecx, [ebx + 0x874]
mov dword [ebx + 0x5f4], eax
call fcn.00405110
push eax
push str.item_not_found__
push str.Uninst
push str.MFNP
call edi
push 0xffffffffffffffff
lea ecx, [ebx + 0x874]
call fcn.0041c5d0
lea edx, [ebp - 0x220]
push edx
push 0x800
push 0x800
lea ecx, [ebx + 0x878]
call fcn.00405110
push eax
push str.item_not_found__
push 0x59a9b8
push str.MFNP
call edi
push 0xffffffffffffffff
lea ecx, [ebx + 0x878]
call fcn.0041c5d0
mov eax, dword [ebp - 0x21b40]
push str.CAPT
push eax
call fcn.00406a50
add esp, 8
test al, al
je 0x4330a0
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [ebx + 0x61c]
push 0x800
mov ecx, esi
call fcn.00405110
push eax
push 0x5988ec
push str.CAPTModuleName
push str.CAPTInfo
call edi
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041c5d0
lea edx, [ebp - 0x220]
push edx
push 0x800
lea ecx, [ebx + 0x620]
push 0x800
call fcn.00405110
push eax
push 0x5988ec
push str.VirtualChannel
push str.CAPTInfo
call edi
push 0xffffffffffffffff
lea ecx, [ebx + 0x620]
call fcn.0041c5d0
lea eax, [ebp - 0x220]
push eax
push 0x800
lea ecx, [ebx + 0x624]
push 0x800
call fcn.00405110
push eax
push 0x5988ec
push str.ModuleNamePreFix
push str.CAPTInfo
call edi
push 0xffffffffffffffff
lea ecx, [ebx + 0x624]
call fcn.0041c5d0
push 0x5988ec
push esi
call fcn.00410680
add esp, 8
test al, al
je 0x4330a0
lea eax, [ebx + 0x620]
push 0x5988ec
push eax
call fcn.00410680
add esp, 8
test al, al
je 0x4330a0
lea eax, [ebx + 0x624]
push 0x5988ec
push eax
call fcn.00410680
add esp, 8
test al, al
je 0x4330a0
mov dword [ebx + 0x628], 1
lea ecx, [ebx + 0x87c]
push ecx
push str.CategoryRegName
lea edx, [ebp - 0x21b84]
push edx
call fcn.0042d790
add ebx, 0x880
push ebx
push str.SupportCategory
lea eax, [ebp - 0x21b74]
push eax
mov byte [ebp - 4], 0x14
call fcn.0042d790
lea ecx, [ebp - 0x21b28]
call fcn.00406370
mov byte [ebp - 4], 0x16
lea esi, [ebp - 0x21b80]
mov dword [ebp - 0x21b40], 2
mov ecx, dword [esi]
mov edx, dword [esi - 4]
mov ebx, dword [esi + 8]
lea eax, [ebp - 0x220]
push eax
push 0x800
mov dword [ebp - 0x21b24], ecx
push 0x800
lea ecx, [ebp - 0x21b28]
mov dword [ebp - 0x21b64], edx
call fcn.00405110
mov ecx, dword [ebp - 0x21b24]
mov edx, dword [ebp - 0x21b64]
push eax
push ebx
push ecx
push edx
call edi
push 0xffffffffffffffff
lea ecx, [ebp - 0x21b28]
call fcn.0041c5d0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x21b28]
push eax
call fcn.004063a0
add esi, 0x10
dec dword [ebp - 0x21b40]
jne 0x4330f3
lea ecx, [ebp - 0x21b28]
call fcn.00405310
push 0x4332b0
push 2
push 0x10
lea ecx, [ebp - 0x21b84]
push ecx
mov byte [ebp - 4], 0x11
call fcn.0053d7db
lea ecx, [ebp - 0x21b4c]
call fcn.00405310
lea ecx, [ebp - 0x21b54]
call fcn.00405310
lea ecx, [ebp - 0x21b48]
call fcn.00405310
lea ecx, [ebp - 0x21b50]
call fcn.00405310
lea ecx, [ebp - 0x21b44]
call fcn.00405310
lea ecx, [ebp - 0x21b20]
call fcn.00405310
lea ecx, [ebp - 0x21b38]
call fcn.00405310
lea ecx, [ebp - 0x21b34]
call fcn.00405310
lea ecx, [ebp - 0x21b3c]
call fcn.00405310
lea ecx, [ebp - 0x21b2c]
call fcn.00405310
lea ecx, [ebp - 0x21b30]
call fcn.00405310
mov eax, 1
jmp 0x430a08
push str.UninstallLevel
push str.Profiles
push esi
call fcn.00433480
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x43322e
push ecx
push eax
call fcn.0053dae6
add esp, 8
test eax, eax
js 0x431284
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x431284
mov dword [ecx - 0xc], eax
mov edx, dword [edi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b4c]
call fcn.00405310
jmp 0x43260d