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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d7fc
mov eax, dword fs:[0]
push eax
mov eax, 0x21b54
call fcn.00539330
mov eax, dword [0x5b4450]
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
mov eax, dword [0x58f9fc]
push 0x206
mov edi, ecx
mov cx, word [0x58fa00]
xor esi, esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x21e]
xor edx, edx
push esi
push eax
mov dword [ebp - 0x21b2c], edi
mov word [ebp - 0x14], cx
mov dword [ebp - 0x21b58], 9
mov word [ebp - 0x220], dx
call fcn.005373f0
add edi, 0x650
push edi
lea ecx, [ebp - 0x220]
push 0x104
push ecx
call fcn.00535afa
add esp, 0x18
call fcn.0044033f
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x428da9
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x21b30], ebx
mov edi, dword [ebp - 0x21b2c]
mov dword [ebp - 4], esi
call fcn.0042bfa0
push 0x104
lea ecx, [ebp - 0x4e8]
push esi
push ecx
call fcn.005373f0
mov eax, dword [edi + 0x160]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 0xc
push eax
lea edx, [ebp - 0x4e8]
push edx
call esi
push str.uninst.ini
lea eax, [ebp - 0x4e8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0
lea ecx, [ebp - 0x4e8]
push ecx
lea edx, [ebp - 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp eax, 1
je 0x428e73
push 0x30
push 3
mov eax, edi
push eax
mov ecx, 0x1e
call fcn.0042b650
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 0x428e55
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.005337cb
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
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.005373f0
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x7fff
lea eax, [ebp - 0x21b00]
push eax
push str.Uninstall_Drivers
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
call fcn.0044033f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b28]
call fcn.004053e0
push 9
push 0
lea ebx, [ebp - 0x21b28]
mov byte [ebp - 4], 1
call fcn.00408110
push 9
push 0x3b
call fcn.00408110
mov ebx, dword [ebp - 0x21b28]
mov eax, dword [ebx - 0xc]
test eax, eax
jns 0x428f1e
or eax, 0xffffffff
jmp 0x428f38
lea edx, [ebp - 0x18]
push edx
push ebx
call fcn.00535a9a
add esp, 8
test eax, eax
jne 0x428f34
or eax, 0xffffffff
jmp 0x428f38
sub eax, ebx
sar eax, 1
push eax
lea eax, [ebp - 0x21b48]
push eax
lea ecx, [ebp - 0x21b28]
call fcn.00413a00
mov ecx, dword [ebp - 0x21b2c]
add ecx, 0xbc
push eax
mov byte [ebp - 4], 2
call fcn.00401520
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x21b48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428f87
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx - 0xc], 0
jl 0x4296e4
lea ecx, [ebp - 0x18]
push ecx
push ebx
call fcn.00535a9a
add esp, 8
test eax, eax
je 0x4296e4
sub eax, ebx
sar eax, 1
mov edi, eax
js 0x4296e4
mov esi, dword [ebx - 0xc]
cmp edi, esi
jge 0x4296e4
cmp dword [ebx - 4], 1
jle 0x428fd5
push esi
lea ecx, [ebp - 0x21b28]
call fcn.00401840
mov ebx, dword [ebp - 0x21b28]
xor eax, eax
mov word [ebx + edi*2], ax
test esi, esi
js 0x4296e4
cmp esi, dword [ebx - 8]
jg 0x4296e4
xor ecx, ecx
mov dword [ebx - 0xc], esi
mov word [ebx + esi*2], cx
mov ecx, dword [ebx - 0xc]
test eax, eax
js 0x42902e
cmp eax, ecx
jg 0x42902e
lea edx, [ebp - 0x21b58]
push edx
lea eax, [ebx + eax*2]
push eax
call fcn.00535a9a
add esp, 8
test eax, eax
je 0x42902e
sub eax, ebx
sar eax, 1
test eax, eax
jle 0x42902e
mov ecx, dword [ebp - 0x21b2c]
inc dword [ecx + 0x138]
inc eax
jmp 0x428ff5
mov eax, dword [ebp - 0x21b2c]
mov eax, dword [eax + 0xbc]
sub eax, 0x10
push eax
call fcn.004017c0
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x21b38], esi
push 0x58a8c8
lea ecx, [ebp - 0x21b3c]
mov byte [ebp - 4], 3
call fcn.00401210
push 0x58a8c8
lea ecx, [ebp - 0x21b34]
mov byte [ebp - 4], 4
call fcn.00401210
mov byte [ebp - 4], 5
xor ebx, ebx
lea ecx, [ecx]
mov eax, dword [esi - 0xc]
test ebx, ebx
js 0x429195
cmp ebx, eax
jge 0x429195
lea ecx, [esi + ebx*2]
push 9
push ecx
call fcn.00534181
add esp, 8
test eax, eax
je 0x429195
sub eax, esi
sar eax, 1
mov edi, eax
mov dword [ebp - 0x21b48], edi
js 0x429195
cmp edi, ebx
jle 0x42918d
mov edx, edi
sub edx, ebx
push edx
push ebx
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b38]
call fcn.00404fc0
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x21b34]
lea eax, [ecx - 0x10]
add ebx, 0xfffffff0
cmp eax, ebx
je 0x429148
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x429132
mov edx, dword [eax]
cmp edx, dword [ebx]
jne 0x429132
push eax
call fcn.004017c0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x429121
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x21b34], edi
mov edi, dword [ebp - 0x21b48]
jmp 0x429142
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x21b34]
call fcn.004016b0
mov esi, dword [ebp - 0x21b38]
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 0x42916e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x21b2c]
mov eax, dword [ecx + 0x188]
add ecx, 0x180
lea edx, [ebp - 0x21b34]
push edx
push eax
call fcn.00442275
lea ebx, [edi + 1]
jmp 0x429080
push ebx
lea ecx, [ebp - 0x21b48]
push ecx
lea ecx, [ebp - 0x21b38]
call fcn.00413950
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov esi, dword [ebp - 0x21b3c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x429209
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x4291f9
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4291f9
push eax
call fcn.004017c0
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4291ee
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0x21b3c], edi
jmp 0x429209
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x21b3c]
call fcn.004016b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x21b48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42922f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x21b2c]
mov eax, dword [ecx + 0x188]
add ecx, 0x180
lea edx, [ebp - 0x21b3c]
push edx
push eax
call fcn.00442275
push 0x7fff
lea eax, [ebp - 0x21b00]
push 0
push eax
call fcn.005373f0
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.0044033f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42929c
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
push 2
mov ecx, eax
mov eax, dword [edx]
push 0x7fff
call eax
test eax, eax
jne 0x4292b4
call fcn.00401830
add eax, 0x10
cmp dword [eax - 8], 0x7fff
mov dword [ebp - 0x21b20], eax
jl 0x4296e4
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.005339f7
add esp, 0x10
push 9
push 0
lea ebx, [ebp - 0x21b20]
mov byte [ebp - 4], 8
call fcn.00408110
push 9
push 0x3b
call fcn.00408110
mov edi, dword [ebp - 0x21b20]
cmp dword [edi - 0xc], 0
jge 0x429321
or eax, 0xffffffff
jmp 0x42933b
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.00535a9a
add esp, 8
test eax, eax
jne 0x429337
or eax, 0xffffffff
jmp 0x42933b
sub eax, edi
sar eax, 1
push eax
lea ecx, [ebp - 0x21b24]
push ecx
lea ecx, [ebp - 0x21b20]
call fcn.00413a00
mov ebx, dword [ebp - 0x21b2c]
mov byte [ebp - 4], 9
mov ecx, dword [eax]
mov esi, dword [ebx + 0xc0]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4293c5
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4293af
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4293af
push eax
call fcn.004017c0
mov dword [ebp - 0x21b48], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42939e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x21b48]
add ecx, 0x10
mov dword [ebx + 0xc0], ecx
jmp 0x4293bf
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebx + 0xc0]
call fcn.004016b0
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 0x4293eb
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 0x4296e4
lea ecx, [ebp - 0x18]
push ecx
push edi
call fcn.00535a9a
add esp, 8
test eax, eax
je 0x4296e4
mov ecx, dword [ebp - 0x21b20]
sub eax, ecx
sar eax, 1
mov edi, eax
js 0x4296e4
mov ebx, dword [ecx - 0xc]
cmp edi, ebx
jge 0x4296e4
cmp dword [ecx - 4], 1
jle 0x429445
mov edx, ecx
mov eax, dword [edx - 0xc]
push eax
lea ecx, [ebp - 0x21b20]
call fcn.00401840
mov ecx, dword [ebp - 0x21b20]
xor edx, edx
mov word [ecx + edi*2], dx
test ebx, ebx
js 0x4296e4
cmp ebx, dword [ecx - 8]
jg 0x4296e4
xor eax, eax
mov dword [ecx - 0xc], ebx
mov word [ecx + ebx*2], ax
mov eax, dword [ecx - 0xc]
test esi, esi
js 0x4294a8
cmp esi, eax
jg 0x4294a8
mov edi, dword [ebp - 0x21b20]
lea ecx, [ebp - 0x21b58]
push ecx
lea edx, [edi + esi*2]
push edx
call fcn.00535a9a
add esp, 8
test eax, eax
je 0x4294a8
sub eax, edi
sar eax, 1
mov esi, eax
test esi, esi
jle 0x4294a8
mov eax, dword [ebp - 0x21b2c]
inc dword [eax + 0x13c]
inc esi
mov ecx, edi
jmp 0x429465
mov edi, dword [ebp - 0x21b2c]
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 0x4294d8
push 0x800
lea ecx, [edi + 0x164]
call fcn.00401760
mov eax, dword [edi + 0x164]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push 0x58aac4
push str.ShowMsgDlg
push str.Debug_Info
call ebx
mov eax, dword [edi + 0x164]
mov ecx, dword [eax - 8]
test eax, eax
je 0x429521
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [edi + 0x164]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 - 0x21b50], esi
jge 0x429571
push 0x800
mov ecx, esi
call fcn.00401760
mov eax, dword [esi]
lea edx, [ebp - 0x220]
push edx
push 0x800
push eax
push 0x58aac4
push str.PRT_2KXP
push str.Borderline_Driver_Versions
call ebx
mov eax, dword [esi]
mov ecx, 0x58aac4
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4295be
test dx, dx
je 0x4295ba
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4295be
add eax, 4
add ecx, 4
test dx, dx
jne 0x429598
xor eax, eax
jmp 0x4295c3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4296ee
push str.PRT_2KXP
push str.Borderline_Driver_Versions
push edi
call fcn.0042b7b0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4295fb
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x429637
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42965d
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429683
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296a9
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
push 0x80070057
call fcn.004010a0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x429705
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 - 0x21b44], esi
jge 0x429749
push 0x800
mov ecx, esi
call fcn.00401760
mov eax, dword [esi]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push 0x58aac4
push str.FAX_2KXP
push str.Borderline_Driver_Versions
call ebx
mov eax, dword [esi]
mov ecx, 0x58aac4
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x429796
test dx, dx
je 0x429792
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x429796
add eax, 4
add ecx, 4
test dx, dx
jne 0x429770
xor eax, eax
jmp 0x42979b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4298c0
push str.FAX_2KXP
push str.Borderline_Driver_Versions
push edi
call fcn.0042b7b0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4297d3
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x42980f
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429835
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42985b
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429881
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4298db
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x42991b
push 0x800
lea ecx, [edi + 0xcc]
call fcn.00401760
mov eax, dword [edi + 0xcc]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push 0x58aac4
push str.OLD_VER
push str.Borderline_Driver_Versions
call ebx
mov eax, dword [edi + 0xcc]
mov ecx, 0x58aac4
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x429976
test dx, dx
je 0x429972
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x429976
add eax, 4
add ecx, 4
test dx, dx
jne 0x429950
xor eax, eax
jmp 0x42997b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x429aac
push str.OLD_VER
push str.Borderline_Driver_Versions
push edi
call fcn.0042b7b0
mov eax, dword [edi + 0xcc]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4299b7
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [edi + 0xcc]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x4299fb
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429a21
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429a47
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429a6d
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
mov eax, dword [edi + 0xcc]
mov ecx, dword [eax - 8]
test eax, eax
je 0x429acb
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [edi + 0xcc]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x429b15
push 0x800
mov ecx, esi
call fcn.00401760
mov eax, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push 0x58aac4
push 0x58faf4
push 0x58faf4
call ebx
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x429c69
push 0x58faf4
push 0x58faf4
push edi
call fcn.0042b7b0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x429b7c
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x429bb8
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429bde
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429c04
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429c2a
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x429c84
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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.004017c0
add eax, 0x10
mov dword [ebp - 0x21b40], eax
push 0x58dfd4
push esi
mov byte [ebp - 4], 0xa
call fcn.00401940
add esp, 0xc
test al, al
je 0x429cd4
push str.PCL5e
lea ecx, [ebp - 0x21b40]
call fcn.004012d0
mov eax, dword [edi + 0x5e8]
lea esi, [edi + 0x5e8]
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 0x429d06
push 0x800
mov ecx, esi
call fcn.00401760
mov eax, dword [esi]
lea ecx, [ebp - 0x220]
push ecx
push 0x800
push eax
push 0x58a8c8
push str.PDL_TYPE
push 0x58faf4
call ebx
push str.LIPS4
push esi
call fcn.00425300
add esp, 8
test al, al
je 0x429d9e
push 0x58dfd4
push esi
call fcn.00425300
add esp, 8
test al, al
je 0x429d9e
push 0x58fb1c
push esi
call fcn.00425300
add esp, 8
test al, al
je 0x429d9e
push 0x58d4c8
push esi
call fcn.00425300
add esp, 8
test al, al
je 0x429d9e
push str.UFRII
push esi
call fcn.00425300
add esp, 8
test al, al
je 0x429d9e
push str.CAPT
push esi
call fcn.00425300
add esp, 8
test al, al
je 0x429d9e
push 0x58a8c8
mov ecx, esi
call fcn.004012d0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x429db9
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 0x429e04
push 2
push 0x58fb30
lea ecx, [edi + 0xd4]
call fcn.004058b0
mov eax, dword [edi + 0x13c]
add eax, dword [edi + 0x138]
inc esi
cmp esi, eax
jl 0x429de1
mov ecx, dword [edi + 0xd4]
mov eax, dword [ecx - 0xc]
lea esi, [edi + 0xd4]
dec eax
mov dword [ebp - 0x21b24], eax
js 0x4296e4
mov eax, ecx
mov ebx, dword [eax - 0xc]
cmp dword [ebp - 0x21b24], ebx
jge 0x4296e4
cmp dword [eax - 4], 1
jle 0x429e3f
push ebx
mov ecx, esi
call fcn.00401840
mov eax, dword [esi]
mov edx, dword [ebp - 0x21b24]
xor ecx, ecx
mov word [eax + edx*2], cx
test ebx, ebx
js 0x4296e4
mov eax, dword [esi]
cmp ebx, dword [eax - 8]
jg 0x4296e4
mov dword [eax - 0xc], ebx
mov eax, dword [esi]
mov word [eax + ebx*2], cx
lea ecx, [edi + 0xd8]
push esi
call fcn.00401520
mov ecx, dword [ebp - 0x21b28]
lea edx, [ebp - 0x21b5c]
push edx
lea eax, [ebp - 0x21b58]
push eax
push ecx
mov dword [ebp - 0x21b5c], 0
call fcn.00534921
mov esi, eax
add esp, 0xc
test esi, esi
je 0x429f4b
jmp 0x429eb0
push str._FAX_
push esi
call fcn.00535a9a
add esp, 8
lea ebx, [edi + 0xdc]
test eax, eax
jne 0x429eed
mov edx, dword [ebp - 0x21b50]
mov edx, dword [edx]
test edx, edx
je 0x429f11
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x429ee0
jmp 0x429f0d
mov eax, dword [ebp - 0x21b44]
mov edx, dword [eax]
test edx, edx
jne 0x429efd
xor eax, eax
jmp 0x429f11
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x429f02
sub eax, esi
sar eax, 1
push eax
push edx
mov ecx, ebx
call fcn.004058b0
lea ecx, [ebp - 0x21b5c]
push ecx
lea edx, [ebp - 0x21b58]
push edx
push 0
call fcn.00534921
mov esi, eax
add esp, 0xc
test esi, esi
je 0x429f4b
push 1
push 0x58ac04
mov ecx, ebx
call fcn.004058b0
jmp 0x429eb0
mov edx, dword [ebp - 0x21b20]
lea eax, [ebp - 0x21b5c]
push eax
lea ecx, [ebp - 0x21b58]
push ecx
push edx
call fcn.00534921
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42a00b
push str._FAX_
push esi
call fcn.00535a9a
add esp, 8
lea ebx, [edi + 0xdc]
test eax, eax
jne 0x429fad
mov eax, dword [ebp - 0x21b50]
mov edx, dword [eax]
test edx, edx
jne 0x429f9a
xor eax, eax
jmp 0x429fd1
mov eax, edx
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x429fa0
jmp 0x429fcd
mov ecx, dword [ebp - 0x21b44]
mov edx, dword [ecx]
test edx, edx
jne 0x429fbd
xor eax, eax
jmp 0x429fd1
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x429fc2
sub eax, esi
sar eax, 1
push eax
push edx
mov ecx, ebx
call fcn.004058b0
lea edx, [ebp - 0x21b5c]
push edx
lea eax, [ebp - 0x21b58]
push eax
push 0
call fcn.00534921
mov esi, eax
add esp, 0xc
test esi, esi
je 0x42a00b
push 1
push 0x58ac04
mov ecx, ebx
call fcn.004058b0
jmp 0x429f72
push 0x800
lea ecx, [ebp - 0x14e8]
push 0
push ecx
call fcn.005373f0
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 0x58aac4
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 0x42a054
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x14e8]
push 0x58aac4
push ecx
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a18d
push str.KEY_PRINTER
push str.Registrys
push edi
call fcn.0042b7b0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x21b40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a0b6
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 0x42a0dc
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a102
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a128
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a14e
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
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 0x42a1a0
sub eax, ebx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push edx
call fcn.004016b0
push 0x800
lea eax, [ebp - 0x14e8]
push 0
push eax
call fcn.005373f0
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edx, [ebp - 0x14e8]
push edx
push 0x58aac4
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 0x42a200
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x14e8]
push 0x58aac4
push eax
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a339
push str.KEY_PRINTER2
push str.Registrys
push edi
call fcn.0042b7b0
mov byte [ebp - 4], 8
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 0x42a262
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 0x42a288
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a2ae
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a2d4
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a2fa
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
lea eax, [ebp - 0x14e8]
lea ecx, [edi + 0xf8]
lea ebx, [eax + 2]
jmp 0x42a350
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x42a350
sub eax, ebx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push edx
call fcn.004016b0
push 0x800
lea eax, [ebp - 0x14e8]
push 0
push eax
call fcn.005373f0
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edx, [ebp - 0x14e8]
push edx
push 0x58aac4
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 0x42a3b0
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x14e8]
push 0x58aac4
push eax
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a4e9
push str.KEY_BEFORE
push str.Registrys
push edi
call fcn.0042b7b0
mov byte [ebp - 4], 8
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 0x42a412
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 0x42a438
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 - 0x21b34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a45e
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 - 0x21b3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a484
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 - 0x21b38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a4aa
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 - 0x21b28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4296cf
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 0x428e3c
lea ecx, [ebp - 0x14e8]
push ecx
lea ecx, [edi + 0xfc]
call fcn.004012d0
push 0x800
lea edx, [ebp - 0x14e8]
push 0
push edx
call fcn.005373f0
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
push 0x800
lea ecx, [ebp - 0x14e8]
push ecx
push 0x58aac4
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 0x42a540
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push 0x58aac4
push edx
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a5ca
push str.KEY_BEFORE2
push str.Registrys
push edi
call fcn.0042b7b0
lea ecx, [ebp - 0x21b40]
call fcn.00401500
lea ecx, [ebp - 0x21b20]
call fcn.00401500
lea ecx, [ebp - 0x21b34]
call fcn.00401500
lea ecx, [ebp - 0x21b3c]
call fcn.00401500
lea ecx, [ebp - 0x21b38]
call fcn.00401500
lea ecx, [ebp - 0x21b28]
call fcn.00401500
lea ecx, [ebp - 0x21b30]
call fcn.00401500
jmp 0x428e55
lea eax, [ebp - 0x14e8]
push eax
lea ecx, [edi + 0x100]
call fcn.004012d0
push 0x800
lea ecx, [ebp - 0x14e8]
push 0
push ecx
call fcn.005373f0
add esp, 0xc
lea edx, [ebp - 0x220]
push edx
push 0x800
lea eax, [ebp - 0x14e8]
push eax
push 0x58aac4
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 0x42a620
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x14e8]
push 0x58aac4
push ecx
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a652
push str.KEY_BEFORE3
jmp 0x42a56d
lea edx, [ebp - 0x14e8]
push edx
lea ecx, [edi + 0x104]
call fcn.004012d0
push 0x800
lea eax, [ebp - 0x14e8]
push 0
push eax
call fcn.005373f0
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edx, [ebp - 0x14e8]
push edx
push 0x58aac4
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 0x42a6a7
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x14e8]
push 0x58aac4
push eax
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a6d9
push str.KEY_PDRVCAP
jmp 0x42a56d
lea ecx, [ebp - 0x14e8]
push ecx
lea ecx, [edi + 0x108]
call fcn.004012d0
push 0x800
lea edx, [ebp - 0x14e8]
push 0
push edx
call fcn.005373f0
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
push 0x800
lea ecx, [ebp - 0x14e8]
push ecx
push 0x58aac4
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 0x42a730
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x14e8]
push 0x58aac4
push edx
call fcn.00534305
add esp, 0xc
test eax, eax
jne 0x42a762
push str.KEY_PDRVCAP2
jmp 0x42a56d
lea eax, [ebp - 0x14e8]
push eax
lea ecx, [edi + 0x10c]
call fcn.004012d0
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.005373f0
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.0044033f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b4c]
call fcn.004053e0
mov byte [ebp - 4], 0xb
test ebx, ebx
je 0x42a7eb
push 9
push 0
lea ebx, [ebp - 0x21b4c]
call fcn.00408110
push 9
push 0x3b
call fcn.00408110
jmp 0x42a7fb
push str.Non_Printer_t_t
lea ecx, [ebp - 0x21b4c]
call fcn.004012d0
mov ebx, dword [ebp - 0x21b4c]
cmp dword [ebx - 0xc], 0
jge 0x42a80c
or eax, 0xffffffff
jmp 0x42a826
lea edx, [ebp - 0x18]
push edx
push ebx
call fcn.00535a9a
add esp, 8
test eax, eax
jne 0x42a822
or eax, 0xffffffff
jmp 0x42a826
sub eax, ebx
sar eax, 1
push eax
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b4c]
call fcn.00413a00
lea ecx, [edi + 0x110]
push eax
mov byte [ebp - 4], 0xc
call fcn.00401520
lea ecx, [ebp - 0x21b24]
mov byte [ebp - 4], 0xb
call fcn.00401500
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.005373f0
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.0044033f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b44]
call fcn.004053e0
push 9
push 0
lea ebx, [ebp - 0x21b44]
mov byte [ebp - 4], 0xd
call fcn.00408110
push 9
push 0x3b
call fcn.00408110
mov ebx, dword [ebp - 0x21b44]
cmp dword [ebx - 0xc], 0
jge 0x42a8d2
or eax, 0xffffffff
jmp 0x42a8ec
lea edx, [ebp - 0x18]
push edx
push ebx
call fcn.00535a9a
add esp, 8
test eax, eax
jne 0x42a8e8
or eax, 0xffffffff
jmp 0x42a8ec
sub eax, ebx
sar eax, 1
push eax
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b44]
call fcn.00413a00
lea ecx, [edi + 0xe0]
push eax
mov byte [ebp - 4], 0xe
call fcn.00401520
lea ecx, [ebp - 0x21b24]
mov byte [ebp - 4], 0xd
call fcn.00401500
push 0x7fff
lea ecx, [ebp - 0x21b00]
push 0
push ecx
call fcn.005373f0
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.0044033f
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
lea ecx, [ebp - 0x21b54]
call fcn.004053e0
push 9
push 0
lea ebx, [ebp - 0x21b54]
mov byte [ebp - 4], 0xf
call fcn.00408110
push 9
push 0x3b
call fcn.00408110
mov esi, dword [ebp - 0x21b54]
cmp dword [esi - 0xc], 0
jge 0x42a998
or eax, 0xffffffff
jmp 0x42a9b2
lea edx, [ebp - 0x18]
push edx
push esi
call fcn.00535a9a
add esp, 8
test eax, eax
jne 0x42a9ae
or eax, 0xffffffff
jmp 0x42a9b2
sub eax, esi
sar eax, 1
push eax
lea eax, [ebp - 0x21b24]
push eax
lea ecx, [ebp - 0x21b54]
call fcn.00413a00
lea ecx, [edi + 0xe4]
push eax
mov byte [ebp - 4], 0x10
call fcn.00401520
lea ecx, [ebp - 0x21b24]
mov byte [ebp - 4], 0xf
call fcn.00401500
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [edi + 0xe8]
push 0x800
mov ecx, esi
call fcn.00401590
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x58aac4
push str.PDL_NAME
push str.Profiles
call ebx
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42aa93
push str.PDL_NAME
push str.Profiles
push edi
call fcn.0042b7b0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42aa57
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b54]
call fcn.00401500
lea ecx, [ebp - 0x21b44]
call fcn.00401500
lea ecx, [ebp - 0x21b4c]
call fcn.00401500
jmp 0x42a578
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42aaae
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b50]
call fcn.004011e0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x21b48]
push 0x58dfd4
push edx
call fcn.00401940
add esp, 8
lea ecx, [ebp - 0x21b50]
test al, al
je 0x42aafd
push 0x58aac4
call fcn.004012d0
jmp 0x42ab03
push esi
call fcn.00401520
lea eax, [ebp - 0x220]
push eax
push 0x800
lea esi, [edi + 0xec]
push 0x800
mov ecx, esi
call fcn.00401590
mov ecx, dword [ebp - 0x21b50]
push eax
push ecx
push str.PDL_NAME2
push str.Profiles
call ebx
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42ab98
push str.PDL_NAME2
push str.Profiles
push edi
call fcn.0042b7b0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42ab72
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
xor ecx, ecx
mov word [edx + eax*2], cx
lea ecx, [ebp - 0x21b50]
call fcn.00401500
jmp 0x42aa6d
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42abb3
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov esi, dword [ebp - 0x21b2c]
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.00401590
push eax
push 0x58aac4
push str.UninstallLevel
push str.Profiles
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0x58aac4
push edi
call fcn.00401940
add esp, 8
test al, al
jne 0x42b5a4
push 0x58fc9c
push edi
call fcn.00425300
add esp, 8
test al, al
je 0x42ac53
push 0x58e1bc
push edi
call fcn.00425300
add esp, 8
test al, al
je 0x42ac53
push 0x58f9f8
push edi
call fcn.00425300
add esp, 8
test al, al
jne 0x42b5a4
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42ac6e
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
mov ebx, dword [ebp - 0x21b2c]
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.004267a0
push eax
lea ecx, [ebp - 0x21b30]
mov byte [ebp - 4], 0x12
call fcn.00401520
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.00401500
lea eax, [ebp - 0x21b30]
push eax
push 0x58fc9c
call fcn.004252a0
add esp, 8
test al, al
jne 0x42acfe
lea ecx, [ebp - 0x21b30]
push ecx
push 0x58e1bc
call fcn.004252a0
add esp, 8
test al, al
jne 0x42acfe
lea edx, [ebp - 0x21b30]
push edx
push 0x58f9f8
call fcn.004252a0
add esp, 8
test al, al
je 0x42ad0c
lea eax, [ebp - 0x21b30]
push eax
mov ecx, edi
call fcn.00401520
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [ebx + 0x114]
push 0x800
mov ecx, esi
call fcn.00401590
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x58aac4
push 0x58fca0
push str.Profiles
call edi
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42ad60
push 0x58f8c0
mov ecx, esi
call fcn.004012d0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42ad7b
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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.00401590
push eax
push 0x58aac4
push str.VDCService
push str.Profiles
call edi
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42addf
push str.DEFAULT_STOP
mov ecx, esi
call fcn.004012d0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42adfa
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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.00401590
push eax
push 0x58aac4
push str.NetWorkPrinter
push str.Profiles
call edi
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42ae5e
push 0x58f8c0
mov ecx, esi
call fcn.004012d0
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42ae79
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
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 + 0x124]
push 0x800
mov ecx, esi
call fcn.00401590
push eax
push 0x58aac4
push str.AUTHORITYCHECK
push str.Profiles
call edi
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42aedd
push 0x58f8c0
mov ecx, esi
call fcn.004012d0
push 0xffffffffffffffff
mov ecx, esi
call fcn.00413b40
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea esi, [ebx + 0x130]
push 0x800
mov ecx, esi
call fcn.00401590
push eax
push 0x58aac4
push str.CCD3_VER_2KXP
push str.Borderline_CCD3_Driver_Versions
call edi
push 0x58aac4
push esi
call fcn.00401940
add esp, 8
test al, al
je 0x42af34
push str.0.00
mov ecx, esi
call fcn.004012d0
push 0xffffffffffffffff
mov ecx, esi
call fcn.00413b40
lea edx, [ebp - 0x220]
push edx
push 0
push str.DrvNum
push str.GetDrvInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea esi, [ebx + 0x630]
mov edi, eax
mov dword [ebp - 0x21b24], eax
call fcn.00408360
test edi, edi
jle 0x42b046
cmp edi, 0x20
jle 0x42af81
mov edi, 0x20
mov dword [ebp - 0x21b24], edi
xor eax, eax
test edi, edi
jle 0x42b046
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edi, [eax + 1]
push edi
push str.DrvFile_
lea eax, [ebp - 0x1b00]
push str._s_d
push eax
mov edx, 0x104
mov dword [ebp - 0x21b2c], edi
call fcn.0042c8c0
add esp, 0x10
lea ecx, [ebp - 0x220]
push ecx
push 0x104
lea edx, [ebp - 0x18f8]
push edx
push 0x58a8c8
lea eax, [ebp - 0x1b00]
push eax
push str.GetDrvInfo
call esi
push 0x58a8c8
lea ecx, [ebp - 0x18f8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x42b036
lea eax, [ebp - 0x18f8]
lea ecx, [ebp - 0x21b1c]
call fcn.004050d0
lea ecx, [ebp - 0x21b1c]
lea edi, [ebx + 0x630]
mov byte [ebp - 4], 0x13
call fcn.00408280
lea esi, [ebp - 0x21b1c]
mov byte [ebp - 4], 0x11
call fcn.00405110
mov edi, dword [ebp - 0x21b2c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, edi
cmp eax, dword [ebp - 0x21b24]
jl 0x42af91
jmp 0x42b04c
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x220]
push edx
push 0x20
lea eax, [ebp - 0x2e0]
push eax
push 0x58f914
push str.CheckJobMonitor
push str.Profiles
call esi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x58f8c0
lea ecx, [ebp - 0x2e0]
push ecx
call edi
neg eax
sbb eax, eax
inc eax
lea edx, [ebp - 0x220]
push edx
push 0x20
mov dword [ebx + 0x640], eax
lea eax, [ebp - 0x2a0]
push eax
push 0x58f914
push str.DelRestoreFile
push str.Profiles
call esi
push 0x58f8c0
lea ecx, [ebp - 0x2a0]
push ecx
call edi
neg eax
sbb eax, eax
inc eax
mov dword [ebx + 0x644], eax
call fcn.0040bea0
cmp eax, 0xa
jne 0x42b168
xor edx, edx
push 0xfffc
push edx
lea eax, [ebp - 0x11afe]
push eax
mov word [ebp - 0x11b00], dx
call fcn.005373f0
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x7fff
lea edx, [ebp - 0x11b00]
push edx
push str.DriverStoreInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
test eax, eax
je 0x42b149
cmp word [ebp - 0x11b00], 0
lea edi, [ebp - 0x11b00]
je 0x42b149
cmp word [edi], 0x3b
je 0x42b136
push edi
lea ecx, [ebx + 0x1b4]
call fcn.00413b90
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp word [edi + eax*2 + 2], 0
lea edi, [edi + eax*2 + 2]
jne 0x42b124
lea eax, [ebp - 0x220]
push eax
push 0xa
push str.WaitDeleteDriverPacakge
push str.UninstallDriverStore
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebx + 0x1c8], eax
push 0x206
xor edi, edi
lea edx, [ebp - 0x16ee]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x16f0], cx
call fcn.005373f0
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
push 0x7fff
lea ecx, [ebp - 0x21b00]
push ecx
push 0x58a8c8
push edi
push str.DeleteMonitor
mov dword [ebp - 0x21b2c], edi
mov dword [ebp - 0x21b24], edi
mov dword [ebp - 0x21b60], edi
call esi
cmp eax, edi
jbe 0x42b339
xor ecx, ecx
cmp eax, edi
jbe 0x42b1ea
cmp word [ebp + ecx*2 - 0x21b00], di
jne 0x42b1e5
inc dword [ebp - 0x21b24]
mov edx, 9
mov word [ebp + ecx*2 - 0x21b00], dx
inc ecx
cmp ecx, eax
jb 0x42b1c8
mov edi, dword [ebp - 0x21b24]
inc edi
xor ecx, ecx
mov eax, edi
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.004401c2
add esp, 4
test eax, eax
je 0x42b242
push 0x4279e0
push 0x42b600
push edi
mov dword [eax], edi
add eax, 4
push 8
push eax
mov dword [ebp - 0x21b24], eax
call fcn.00533992
mov eax, dword [ebp - 0x21b24]
jmp 0x42b244
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.00534921
mov edi, eax
add esp, 0xc
test edi, edi
je 0x42b307
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x64
jg 0x42b2e5
lea ecx, [ebp - 0x220]
push ecx
push 0x208
lea edx, [ebp - 0x16f0]
push edx
push 0x58a8c8
push edi
push str.DeleteMonitor
call esi
dec eax
cmp eax, 0x63
ja 0x42b2e5
mov eax, dword [ebp - 0x21b2c]
mov ecx, dword [ebx + 0x134]
add eax, eax
add eax, eax
add eax, eax
push edi
add ecx, eax
call fcn.004012d0
mov ecx, dword [ebx + 0x134]
lea eax, [ebp - 0x16f0]
push eax
mov eax, dword [ebp - 0x21b2c]
add eax, eax
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 4]
call fcn.004012d0
inc dword [ebp - 0x21b2c]
lea edx, [ebp - 0x21b60]
push edx
lea eax, [ebp - 0x21b58]
push eax
push 0
call fcn.00534921
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x42b271
mov edi, dword [ebp - 0x21b2c]
mov ecx, dword [ebx + 0x134]
add edi, edi
add edi, edi
add edi, edi
push 0x58a8c8
add ecx, edi
call fcn.004012d0
mov ecx, dword [ebx + 0x134]
push 0x58a8c8
lea ecx, [ecx + edi + 4]
call fcn.004012d0
xor edx, edx
push 0x3e
push edx
lea eax, [ebp - 0x25e]
push eax
mov word [ebp - 0x260], dx
call fcn.005373f0
add esp, 0xc
lea ecx, [ebp - 0x220]
push ecx
push 0x20
lea edx, [ebp - 0x260]
push edx
push 0x58fc9c
push str.UsePrintUI
push str.Profiles
call esi
lea eax, [ebp - 0x260]
push 0x58e1bc
push eax
call fcn.00533c47
add esp, 8
neg eax
lea ecx, [ebp - 0x220]
push ecx
sbb eax, eax
push 0x800
inc eax
push 0x800
lea ecx, [ebx + 0x878]
mov dword [ebx + 0x5f8], eax
call fcn.00401590
push eax
push 0x58aac4
push str.Uninst
push str.MFNP
call esi
push 0xffffffffffffffff
lea ecx, [ebx + 0x878]
call fcn.00413b40
lea edx, [ebp - 0x220]
push edx
push 0x800
push 0x800
lea ecx, [ebx + 0x87c]
call fcn.00401590
push eax
push 0x58aac4
push 0x58fee0
push str.MFNP
call esi
push 0xffffffffffffffff
lea ecx, [ebx + 0x87c]
call fcn.00413b40
mov eax, dword [ebp - 0x21b48]
push str.CAPT
push eax
call fcn.00401940
add esp, 8
test al, al
je 0x42b521
lea ecx, [ebp - 0x220]
push ecx
push 0x800
lea edi, [ebx + 0x620]
push 0x800
mov ecx, edi
call fcn.00401590
push eax
push 0x58a8c8
push str.CAPTModuleName
push str.CAPTInfo
call esi
push 0xffffffffffffffff
mov ecx, edi
call fcn.00413b40
lea edx, [ebp - 0x220]
push edx
push 0x800
lea ecx, [ebx + 0x624]
push 0x800
call fcn.00401590
push eax
push 0x58a8c8
push str.VirtualChannel
push str.CAPTInfo
call esi
push 0xffffffffffffffff
lea ecx, [ebx + 0x624]
call fcn.00413b40
lea eax, [ebp - 0x220]
push eax
push 0x800
lea ecx, [ebx + 0x628]
push 0x800
call fcn.00401590
push eax
push 0x58a8c8
push str.ModuleNamePreFix
push str.CAPTInfo
call esi
push 0xffffffffffffffff
lea ecx, [ebx + 0x628]
call fcn.00413b40
push 0x58a8c8
push edi
call fcn.00425300
add esp, 8
test al, al
je 0x42b521
lea eax, [ebx + 0x624]
push 0x58a8c8
push eax
call fcn.00425300
add esp, 8
test al, al
je 0x42b521
lea eax, [ebx + 0x628]
push 0x58a8c8
push eax
call fcn.00425300
add esp, 8
test al, al
je 0x42b521
mov dword [ebx + 0x62c], 1
lea ecx, [ebp - 0x21b50]
call fcn.00401500
lea ecx, [ebp - 0x21b54]
call fcn.00401500
lea ecx, [ebp - 0x21b44]
call fcn.00401500
lea ecx, [ebp - 0x21b4c]
call fcn.00401500
lea ecx, [ebp - 0x21b40]
call fcn.00401500
lea ecx, [ebp - 0x21b20]
call fcn.00401500
lea ecx, [ebp - 0x21b34]
call fcn.00401500
lea ecx, [ebp - 0x21b3c]
call fcn.00401500
lea ecx, [ebp - 0x21b38]
call fcn.00401500
lea ecx, [ebp - 0x21b28]
call fcn.00401500
lea ecx, [ebp - 0x21b30]
call fcn.00401500
mov eax, 1
jmp 0x428e57
push str.UninstallLevel
push str.Profiles
push esi
call fcn.0042b7b0
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42b5cf
push ecx
push eax
call fcn.005343a3
add esp, 8
test eax, eax
js 0x4296e4
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x4296e4
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
xor edx, edx
mov word [ecx + eax*2], dx
lea ecx, [ebp - 0x21b50]
call fcn.00401500
jmp 0x42aa6d