Function at 0x40d320
Capabilities:
Set registry value

Disassembly:
sub esp, 0x610
push ebx
push ebp
push esi
push edi
mov dx, word [0x44dd14]
mov esi, ecx
mov word [esp + 0xc4], dx
mov ecx, dword [0x44dd10]
mov edx, dword [0x44dcfc]
mov dword [esp + 0xc0], ecx
mov ecx, dword [str.Configuration_File]
mov dword [esp + 0x128], ecx
mov ecx, dword [0x44dd04]
mov dword [esp + 0x12c], edx
mov dx, word [0x44dd08]
mov eax, dword [str.Attributes]
mov dword [esp + 0x134], ecx
mov ecx, dword [str.RASDDUI.DLL]
mov word [esp + 0x138], dx
mov edx, dword [0x44dcf0]
mov dword [esp + 0x78], ecx
mov ecx, dword [str.Data_File]
mov dword [esp + 0x7c], edx
mov edx, dword [0x44dce4]
mov dword [esp + 0xe0], ecx
mov ecx, dword [0x44dcd0]
mov dword [esp + 0xe4], edx
mov edx, dword [0x44dcd4]
mov dword [esp + 0x5c], ecx
mov cl, byte [0x44dcdc]
mov dword [esp + 0xbc], eax
mov al, byte [0x44dd16]
mov dword [esp + 0x60], edx
mov edx, dword [str.Datatype]
mov byte [esp + 0x68], cl
mov cl, byte [0x44dccc]
mov byte [esp + 0xc6], al
mov eax, dword [0x44dd00]
mov dword [esp + 0x90], edx
mov edx, dword [str.Dependent_Files]
mov byte [esp + 0x98], cl
mov ecx, dword [0x44dcb8]
mov dword [esp + 0x130], eax
mov al, byte [0x44dd0a]
mov dword [esp + 0x13c], edx
mov edx, dword [0x44dcbc]
mov dword [esp + 0x140], ecx
mov ecx, dword [0x44dcc0]
mov byte [esp + 0x13a], al
mov eax, dword [0x44dcf4]
mov dword [esp + 0x144], edx
mov dx, word [0x4681a0]
mov dword [esp + 0x148], ecx
mov cl, byte [0x4681a2]
mov dword [esp + 0x80], eax
mov ax, word [0x44dce8]
mov word [esp + 0x20], dx
mov edx, dword [str.Driver]
mov byte [esp + 0x22], cl
mov cx, word [0x44dcb0]
mov word [esp + 0xe8], ax
mov eax, dword [0x44dcd8]
mov dword [esp + 0x54], edx
mov dl, byte [0x44dcb2]
mov word [esp + 0x58], cx
mov ecx, dword [str.RASDD.DLL]
mov dword [esp + 0x64], eax
mov eax, dword [0x44dcc8]
mov byte [esp + 0x5a], dl
mov edx, dword [0x44dca4]
mov dword [esp + 0x48], ecx
mov cx, word [0x44dca8]
mov dword [esp + 0x94], eax
mov al, byte [0x46819c]
mov dword [esp + 0x4c], edx
mov edx, dword [str.DriverDate]
mov word [esp + 0x50], cx
mov ecx, dword [0x44dc98]
mov dword [esp + 0x44], 1
mov byte [esp + 0x17], al
mov dword [esp + 0xc8], edx
mov dx, word [0x44dc9c]
mov dword [esp + 0xcc], ecx
mov cl, byte [0x44dc9e]
mov word [esp + 0xd0], dx
mov edx, dword [str.DriverVersion]
mov byte [esp + 0xd2], cl
mov ecx, dword [0x44dc88]
mov dword [esp + 0x118], edx
mov edx, dword [0x44dc8c]
mov dword [esp + 0x11c], ecx
mov cx, word [0x44dc90]
mov dword [esp + 0x120], edx
mov edx, dword [str.HardwareID]
mov word [esp + 0x124], cx
mov ecx, dword [0x44dc7c]
mov dword [esp + 0xd4], edx
mov dx, word [0x44dc80]
mov dword [esp + 0xd8], ecx
mov cl, byte [0x44dc82]
mov word [esp + 0xdc], dx
mov edx, dword [str.Help_File]
mov byte [esp + 0xde], cl
mov ecx, dword [0x44dc70]
mov dword [esp + 0xec], edx
mov dx, word [0x44dc74]
mov dword [esp + 0xf0], ecx
mov ecx, dword [str.RASDDUI.HLP]
mov word [esp + 0xf4], dx
mov edx, dword [0x44dc64]
mov dword [esp + 0x6c], ecx
mov ecx, dword [0x44dc68]
mov dword [esp + 0x70], edx
mov edx, dword [str.Manufacturer]
mov dword [esp + 0x74], ecx
mov ecx, dword [0x44dc54]
mov dword [esp + 0xf8], edx
mov edx, dword [0x44dc58]
mov dword [esp + 0xfc], ecx
mov cl, byte [0x44dc5c]
mov dword [esp + 0x100], edx
mov edx, dword [str.Monitor]
mov byte [esp + 0x104], cl
mov ecx, dword [0x44dc4c]
mov dword [esp + 0x9c], edx
mov edx, dword [str.OEM_URL]
mov byte [esp + 0x16], al
mov byte [esp + 0x15], al
mov eax, dword [0x44dc34]
mov dword [esp + 0xa0], ecx
mov ecx, dword [0x44dc44]
mov dword [esp + 0xac], edx
mov edx, dword [str.Previous_Names]
mov dword [esp + 0x10c], eax
mov al, byte [0x44dc3e]
mov dword [esp + 0xb0], ecx
mov ecx, dword [0x44dc38]
mov dword [esp + 0x108], edx
mov dx, word [0x44dc3c]
xor ebx, ebx
mov byte [esp + 0x116], al
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov dword [esp + 0x110], ecx
mov word [esp + 0x114], dx
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], bl
mov al, 0x90
mov edx, dword [0x44dc28]
mov ecx, dword [str.Provider]
mov byte [esp + 0x26], al
mov byte [esp + 0x27], al
mov al, byte [0x44dc2c]
mov dword [esp + 0x88], edx
mov edx, dword [0x44dc20]
mov byte [esp + 0x8c], al
mov eax, dword [str.Version]
mov dword [esp + 0xb8], edx
mov edx, dword [str.SOFTWAREMicrosoft]
mov dword [esp + 0xa4], eax
mov eax, dword [0x44dc04]
mov dword [esp + 0x84], ecx
mov ecx, dword [str.TempDir]
mov dword [esp + 0x14c], edx
mov edx, dword [0x44dc0c]
mov dword [esp + 0x150], eax
mov ax, word [0x44dc10]
mov dword [esp + 0xb4], ecx
mov ecx, dword [0x44dc18]
mov dword [esp + 0x158], edx
lea edx, [esp + 0x1e0]
mov word [esp + 0x15c], ax
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x44dc08]
push edx
lea eax, [esp + 0x474]
push 0x104
push eax
mov dword [esp + 0x160], ecx
mov cl, byte [0x44dc12]
push 1
push ebx
push ebx
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], bl
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], 2
mov byte [esp + 0x176], cl
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryA
lea ecx, [esp + 0x470]
push 0x442af8
push ecx
push str._s_s2
push 0x453300
call fcn.004205cb
push 0x453300
call fcn.004208f7
push 0x446cd4
lea edx, [esp + 0x488]
push 0x442af8
push edx
push 0x4498f0
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x28
mov ecx, esi
push 1
push 0xa8
call fcn.00408420
push 0x446cd4
push 0x442af8
lea eax, [esp + 0x478]
push 0x442af8
push eax
push str._s_s2_s_s
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x18
mov ecx, esi
push 1
push 0xa8
call fcn.00408420
push 0x446cc4
lea ecx, [esp + 0x474]
push 0x442af8
mov byte [0x453408], bl
push ecx
push 0x4498f0
push 0x453300
call fcn.004205cb
add esp, 0x14
mov ecx, esi
push 1
push 0xa7
call fcn.00408420
push 0x446cc4
push 0x442af8
lea edx, [esp + 0x478]
push 0x442af8
push edx
push str._s_s2_s_s
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x18
mov ecx, esi
push 1
push 0xa7
call fcn.00408420
push 0x446ce4
lea eax, [esp + 0x474]
push 0x442af8
push eax
push 0x4498f0
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x14
mov ecx, esi
push 1
push 0xa9
call fcn.00408420
push 0x446ce4
push 0x442af8
lea ecx, [esp + 0x478]
push 0x442af8
push ecx
push str._s_s2_s_s
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x18
mov ecx, esi
push 1
push 0xa9
call fcn.00408420
push 0x446cf0
lea edx, [esp + 0x474]
push 0x442af8
push edx
push 0x4498f0
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x14
mov ecx, esi
push 1
push 0xaa
call fcn.00408420
push 0x446cf0
push 0x442af8
lea eax, [esp + 0x478]
push 0x442af8
push eax
push str._s_s2_s_s
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x18
mov ecx, esi
push 1
push 0xaa
call fcn.00408420
push 0x446cfc
lea ecx, [esp + 0x474]
push 0x442af8
mov byte [0x453408], bl
push ecx
push 0x4498f0
push 0x453300
call fcn.004205cb
add esp, 0x14
mov ecx, esi
push 1
push 0xab
call fcn.00408420
push 0x446cfc
push 0x442af8
lea edx, [esp + 0x478]
push 0x442af8
push edx
push str._s_s2_s_s
push 0x453300
mov byte [0x453408], bl
call fcn.004205cb
add esp, 0x18
mov ecx, esi
push 1
push 0xab
call fcn.00408420
mov ecx, 0xc
mov esi, str.SOFTWAREMicrosoftWindows_NTCurrentVersionPorts
lea edi, [esp + 0x578]
lea eax, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push eax
push 0xf003f
lea ecx, [esp + 0x154]
push ebx
push ecx
push connect
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x40dac4
mov edx, dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call esi
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push 0xf003f
push ebx
push ebx
lea edx, [esp + 0x590]
push ebx
push edx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40dac4
mov ecx, 0x20
lea edi, [esp + 0x1e4]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x1e4]
push ecx
mov ecx, dword [esp + 0x14]
push eax
push 1
push ebx
push 0x442a34
push ecx
call ebp
mov edx, dword [esp + 0x10]
push edx
call esi
mov ecx, 0x15
mov esi, str.SYSTEMCurrentControlSetControlPrintEnvironmentsWindows_NT_x86DriversVersion_2
lea edi, [esp + 0x418]
lea eax, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
push eax
push 0xf003f
lea ecx, [esp + 0x420]
push ebx
push ecx
push connect
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x40dc3e
lea edx, [esp + 0x1c]
lea eax, [esp + 0x10]
push edx
push eax
push ebx
push 0xf003f
push ebx
push ebx
lea ecx, [esp + 0x430]
push ebx
push ecx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40dc49
mov edi, 0x44db54
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x160]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1e4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x44b010
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x160]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, str.MajorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 4
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x164]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
mov dword [esp + 0x1c], 2
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
push ecx
push 4
push ebx
push edx
push eax
call ebp
mov edi, str.MinorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x164]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x40dc43
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 0x1c
mov esi, str.SYSTEMCurrentControlSetControlPrintEnvironmentsWindows_NT_x86DriversVersion_2ElectraSoft_NT_Print_to_Fax
lea edi, [esp + 0x5ac]
lea eax, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
push eax
push 0xf003f
lea ecx, [esp + 0x420]
push ebx
push ecx
push connect
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40df7a
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push 0xf003f
push ebx
push ebx
lea edx, [esp + 0x5c4]
push ebx
push edx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40df7a
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push 4
push eax
push 4
lea ecx, [esp + 0xc8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x78]
push ecx
push eax
push 1
lea ecx, [esp + 0x134]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x5c]
push ecx
push eax
push 1
lea ecx, [esp + 0xec]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x17]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x17]
push ecx
push eax
push 1
lea ecx, [esp + 0x9c]
push ebx
push ecx
push edx
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push 3
push eax
push 7
lea ecx, [esp + 0x148]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x48]
push ecx
push eax
push 1
lea ecx, [esp + 0x60]
push ebx
push ecx
push edx
call ebp
lea edx, [esp + 0x160]
mov edi, str.DriverDate
or ecx, 0xffffffff
xor eax, eax
push 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xcc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push ecx
push 3
push ebx
push edx
push eax
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push 8
push ecx
push 3
lea edx, [esp + 0x124]
push ebx
push edx
push eax
call ebp
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x1e4]
lea edx, [esp + 0xd4]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xec]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x104]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x16]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x16]
push ecx
push eax
push 1
lea ecx, [esp + 0xa8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x15]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x15]
push ecx
push eax
push 1
lea ecx, [esp + 0xb8]
push ebx
push ecx
push edx
call ebp
mov edi, str.Previous_Names
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 6
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x10c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
push ecx
push 7
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x90]
push ebx
push ecx
push edx
call ebp
mov edi, str.TempDir
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
lea edx, [esp + 0xb8]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
push 4
push ecx
push 4
lea edx, [esp + 0xb0]
push ebx
push edx
push eax
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 5
mov esi, str.SYSTEMControlSet001
lea edi, [esp + 0x264]
lea edx, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0x14
mov esi, str.SYSTEMControlSet001ControlPrintEnvironmentsWindows_NT_x86DriversVersion_2
lea edi, [esp + 0x370]
push edx
rep movsd dword es:[edi], dword [esi]
push 0xf003f
lea eax, [esp + 0x26c]
movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push ebx
push eax
push connect
call esi
test eax, eax
jne 0x40e477
mov ecx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call edi
lea edx, [esp + 0x10]
lea eax, [esp + 0x370]
push edx
push 0xf003f
push ebx
push eax
push connect
call esi
test eax, eax
je 0x40e13f
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
push edx
push ebx
push 0xf003f
push ebx
push ebx
lea eax, [esp + 0x388]
push ebx
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40e146
mov edi, 0x44db54
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x160]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1e4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x44b010
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x160]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, str.MajorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 4
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x164]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
mov dword [esp + 0x1c], 2
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
push ecx
push 4
push ebx
push edx
push eax
call ebp
mov edi, str.MinorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x164]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40e146
mov edx, dword [esp + 0x10]
push edx
call edi
mov ecx, 0x1b
mov esi, str.SYSTEMControlSet001ControlPrintEnvironmentsWindows_NT_x86DriversVersion_2ElectraSoft_NT_Print_to_Fax
lea edi, [esp + 0x2ac]
lea eax, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
push eax
push 0xf003f
lea ecx, [esp + 0x378]
push ebx
push ecx
push connect
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40e477
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push 0xf003f
push ebx
push ebx
lea edx, [esp + 0x2c4]
push ebx
push edx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40e477
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push 4
push eax
push 4
lea ecx, [esp + 0xc8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x78]
push ecx
push eax
push 1
lea ecx, [esp + 0x134]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x5c]
push ecx
push eax
push 1
lea ecx, [esp + 0xec]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x17]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x17]
push ecx
push eax
push 1
lea ecx, [esp + 0x9c]
push ebx
push ecx
push edx
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push 3
push eax
push 7
lea ecx, [esp + 0x148]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x48]
push ecx
push eax
push 1
lea ecx, [esp + 0x60]
push ebx
push ecx
push edx
call ebp
lea edx, [esp + 0x160]
mov edi, str.DriverDate
or ecx, 0xffffffff
xor eax, eax
push 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xcc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push ecx
push 3
push ebx
push edx
push eax
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push 8
push ecx
push 3
lea edx, [esp + 0x124]
push ebx
push edx
push eax
call ebp
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x1e4]
lea edx, [esp + 0xd4]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xec]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x104]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x16]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x16]
push ecx
push eax
push 1
lea ecx, [esp + 0xa8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x15]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x15]
push ecx
push eax
push 1
lea ecx, [esp + 0xb8]
push ebx
push ecx
push edx
call ebp
mov edi, str.Previous_Names
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 6
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x10c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
push ecx
push 7
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x90]
push ebx
push ecx
push edx
call ebp
mov edi, str.TempDir
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
lea edx, [esp + 0xb8]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
push 4
push ecx
push 4
lea edx, [esp + 0xb0]
push ebx
push edx
push eax
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 5
mov esi, str.SYSTEMControlSet002
lea edi, [esp + 0x294]
lea edx, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0x14
mov esi, str.SYSTEMControlSet002ControlPrintEnvironmentsWindows_NT_x86DriversVersion_2
lea edi, [esp + 0x31c]
push edx
rep movsd dword es:[edi], dword [esi]
push 0xf003f
lea eax, [esp + 0x29c]
movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push ebx
push eax
push connect
call esi
test eax, eax
jne 0x40e974
mov ecx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call edi
lea edx, [esp + 0x10]
lea eax, [esp + 0x31c]
push edx
push 0xf003f
push ebx
push eax
push connect
call esi
test eax, eax
je 0x40e63c
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
push edx
push ebx
push 0xf003f
push ebx
push ebx
lea eax, [esp + 0x334]
push ebx
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40e643
mov edi, 0x44db54
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x160]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1e4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x44b010
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x160]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, str.MajorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 4
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x164]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
mov dword [esp + 0x1c], 2
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
push ecx
push 4
push ebx
push edx
push eax
call ebp
mov edi, str.MinorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x164]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40e643
mov edx, dword [esp + 0x10]
push edx
call edi
mov ecx, 0x1b
mov esi, str.SYSTEMControlSet002ControlPrintEnvironmentsWindows_NT_x86DriversVersion_2ElectraSoft_NT_Print_to_Fax
lea edi, [esp + 0x2ac]
lea eax, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
push eax
push 0xf003f
lea ecx, [esp + 0x324]
push ebx
push ecx
push connect
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40e974
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push 0xf003f
push ebx
push ebx
lea edx, [esp + 0x2c4]
push ebx
push edx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40e974
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push 4
push eax
push 4
lea ecx, [esp + 0xc8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x78]
push ecx
push eax
push 1
lea ecx, [esp + 0x134]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x5c]
push ecx
push eax
push 1
lea ecx, [esp + 0xec]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x17]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x17]
push ecx
push eax
push 1
lea ecx, [esp + 0x9c]
push ebx
push ecx
push edx
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push 3
push eax
push 7
lea ecx, [esp + 0x148]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x48]
push ecx
push eax
push 1
lea ecx, [esp + 0x60]
push ebx
push ecx
push edx
call ebp
lea edx, [esp + 0x160]
mov edi, str.DriverDate
or ecx, 0xffffffff
xor eax, eax
push 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xcc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push ecx
push 3
push ebx
push edx
push eax
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push 8
push ecx
push 3
lea edx, [esp + 0x124]
push ebx
push edx
push eax
call ebp
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x1e4]
lea edx, [esp + 0xd4]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xec]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x104]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x16]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x16]
push ecx
push eax
push 1
lea ecx, [esp + 0xa8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x15]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x15]
push ecx
push eax
push 1
lea ecx, [esp + 0xb8]
push ebx
push ecx
push edx
call ebp
mov edi, str.Previous_Names
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 6
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x10c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
push ecx
push 7
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x90]
push ebx
push ecx
push edx
call ebp
mov edi, str.TempDir
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
lea edx, [esp + 0xb8]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
push 4
push ecx
push 4
lea edx, [esp + 0xb0]
push ebx
push edx
push eax
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 5
mov esi, str.SYSTEMControlSet003
lea edi, [esp + 0x27c]
lea edx, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, 0x14
mov esi, str.SYSTEMControlSet003ControlPrintEnvironmentsWindows_NT_x86DriversVersion_2
lea edi, [esp + 0x3c4]
push edx
rep movsd dword es:[edi], dword [esi]
push 0xf003f
lea eax, [esp + 0x284]
movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push ebx
push eax
push connect
call esi
test eax, eax
jne 0x40ee71
mov ecx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call edi
lea edx, [esp + 0x10]
lea eax, [esp + 0x3c4]
push edx
push 0xf003f
push ebx
push eax
push connect
call esi
test eax, eax
je 0x40eb39
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
push edx
push ebx
push 0xf003f
push ebx
push ebx
lea eax, [esp + 0x3dc]
push ebx
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40eb40
mov edi, 0x44db54
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x160]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1e4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x44b010
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x160]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, str.MajorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 4
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x164]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
mov dword [esp + 0x1c], 2
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
push ecx
push 4
push ebx
push edx
push eax
call ebp
mov edi, str.MinorVersion
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x164]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40eb40
mov edx, dword [esp + 0x10]
push edx
call edi
mov ecx, 0x1b
mov esi, str.SYSTEMControlSet003ControlPrintEnvironmentsWindows_NT_x86DriversVersion_2ElectraSoft_NT_Print_to_Fax
lea edi, [esp + 0x2ac]
lea eax, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
push eax
push 0xf003f
lea ecx, [esp + 0x3cc]
push ebx
push ecx
push connect
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40ee71
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push 0xf003f
push ebx
push ebx
lea edx, [esp + 0x2c4]
push ebx
push edx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40ee71
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push 4
push eax
push 4
lea ecx, [esp + 0xc8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x78]
push ecx
push eax
push 1
lea ecx, [esp + 0x134]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x5c]
push ecx
push eax
push 1
lea ecx, [esp + 0xec]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x17]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x17]
push ecx
push eax
push 1
lea ecx, [esp + 0x9c]
push ebx
push ecx
push edx
call ebp
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push 3
push eax
push 7
lea ecx, [esp + 0x148]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x48]
push ecx
push eax
push 1
lea ecx, [esp + 0x60]
push ebx
push ecx
push edx
call ebp
lea edx, [esp + 0x160]
mov edi, str.DriverDate
or ecx, 0xffffffff
xor eax, eax
push 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xcc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push ecx
push 3
push ebx
push edx
push eax
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push 8
push ecx
push 3
lea edx, [esp + 0x124]
push ebx
push edx
push eax
call ebp
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x1e4]
lea edx, [esp + 0xd4]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x1e4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x1e8]
push ecx
push 1
push ebx
push edx
push eax
call ebp
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xec]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
push 1
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x104]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x16]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x16]
push ecx
push eax
push 1
lea ecx, [esp + 0xa8]
push ebx
push ecx
push edx
call ebp
lea edi, [esp + 0x15]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x15]
push ecx
push eax
push 1
lea ecx, [esp + 0xb8]
push ebx
push ecx
push edx
call ebp
mov edi, str.Previous_Names
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 6
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x10c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
push ecx
push 7
push ebx
push edx
push eax
call ebp
mov edi, 0x4468ac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x4468ac
push 1
lea ecx, [esp + 0x90]
push ebx
push ecx
push edx
call ebp
mov edi, str.TempDir
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push 4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x44]
lea edx, [esp + 0xb8]
push ecx
push 4
push ebx
push edx
push eax
mov dword [esp + 0x30], ebx
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
push 4
push ecx
push 4
lea edx, [esp + 0xb0]
push ebx
push edx
push eax
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x610
ret