Function at 0x42db70
Capabilities:
Enumerate files on windows
Get common file path
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x468d30
mov eax, dword fs:[0]
push eax
mov eax, 0x4f04
call fcn.00454790
mov eax, dword [0x48807c]
xor eax, esp
mov dword [esp + 0x4f00], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48807c]
xor eax, esp
push eax
lea eax, [esp + 0x4f18]
mov dword fs:[0], eax
mov esi, dword [esp + 0x4f28]
mov edi, ecx
push esi
xor ebx, ebx
push str.ProcessSectionVerifyDriver_____s__n
mov dword [esp + 0x70], edi
mov dword [esp + 0xa4], esi
mov dword [esp + 0x20], ebx
call fcn.004454c0
mov ecx, dword [edi + 4]
add esp, 8
push ebx
lea eax, [esp + 0x3f18]
push eax
push ebx
push esi
mov dword [esp + 0x74], ebx
call fcn.00409a10
test al, al
je 0x42fca6
jmp 0x42dc00
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x9c]
lea ecx, [esp + 0x3f14]
push ecx
push edx
push eax
push str.__s___d____s__n
call fcn.004454c0
push 0x1c2d0
call fcn.004534f0
add esp, 0x14
mov dword [esp + 0x30], eax
mov dword [esp + 0x4f20], 0
test eax, eax
je 0x42dc4e
mov ecx, eax
call fcn.00444be0
mov esi, eax
mov dword [esp + 0x48], eax
jmp 0x42dc54
xor esi, esi
mov dword [esp + 0x48], esi
push 0x474298
lea ecx, [esp + 0x3f18]
push ecx
mov ecx, esi
mov dword [esp + 0x4f28], 0xffffffff
call fcn.00444e30
cmp byte [esi + 0x1c2cc], 0
je 0x42dc91
cmp dword [esi + 0x1c2c8], 0
jg 0x42dc89
xor eax, eax
jmp 0x42dc9f
lea eax, [esi + 0x32c8]
jmp 0x42dc9f
xor eax, eax
cmp dword [esi + 0x1c2c8], eax
setle al
dec eax
and eax, esi
push str.CompareVersion
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42fc60
xor edx, edx
push 0x7e
push edx
lea eax, [esp + 0x222e]
push eax
mov word [esp + 0x2230], dx
call fcn.00453450
mov esi, dword [esp + 0x54]
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
mov ebp, 1
je 0x42dcf8
cmp dword [esi + 0x1c2c8], ebp
jg 0x42dcf0
xor ecx, ecx
jmp 0x42dd0a
lea ecx, [esi + 0x3ac8]
jmp 0x42dd0a
cmp dword [esi + 0x1c2c8], ebp
jg 0x42dd04
xor ecx, ecx
jmp 0x42dd0a
lea ecx, [esi + 0x104]
lea edx, [esp + 0x2224]
mov ebx, 2
movzx eax, word [ecx]
mov word [edx], ax
add ecx, ebx
add edx, ebx
test ax, ax
jne 0x42dd16
lea ecx, [esp + 0x2224]
push str.VERIFY_PRN_CONFIG
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
je 0x42dd5b
lea edx, [esp + 0x2224]
push str.VERIFY_PRN_DATA
push edx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42e646
lea eax, [esp + 0x2224]
push eax
mov ecx, edi
call fcn.00418f90
lea ecx, [esp + 0x2224]
push ecx
push 0xffffffffffffffff
push 0xa
mov ecx, edi
call fcn.00418e80
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x30e6]
push eax
mov word [esp + 0x30e8], dx
call fcn.00453450
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x42ddba
cmp dword [esi + 0x1c2c8], ebx
jg 0x42ddb2
xor eax, eax
jmp 0x42ddcc
lea eax, [esi + 0x42c8]
jmp 0x42ddcc
cmp dword [esi + 0x1c2c8], ebx
jg 0x42ddc6
xor eax, eax
jmp 0x42ddcc
lea eax, [esi + 0x208]
mov ecx, dword [edi + 8]
push eax
add ecx, 0x41c
push ecx
lea edx, [esp + 0x30e4]
push 0x46ab98
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
push 0x4fc8
call fcn.004534f0
add esp, 0x14
mov dword [esp + 0x30], eax
mov dword [esp + 0x4f20], ebp
test eax, eax
je 0x42de1f
push 0
lea ecx, [esp + 0x30e0]
push ecx
mov ecx, eax
call fcn.00446910
mov ebx, eax
mov dword [esp + 0x2c], eax
jmp 0x42de25
xor ebx, ebx
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x4c]
call fcn.00407e20
lea edx, [esp + 0x4c]
push edx
mov ecx, ebx
mov dword [esp + 0x4f24], 2
call fcn.00446b20
mov ebp, dword [esp + 0x50]
test ebp, ebp
jle 0x42e62d
lea ecx, [esp + 0x84]
call fcn.00407e20
xor esi, esi
mov byte [esp + 0x4f20], 3
test ebp, ebp
jle 0x42de8c
jmp 0x42de70
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + esi*8]
lea ecx, [esp + 0x84]
push ecx
push eax
mov ecx, ebx
call fcn.00446c10
inc esi
cmp esi, ebp
jl 0x42de70
mov eax, dword [esp + 0x88]
xor ebx, ebx
cmp eax, ebx
mov ebp, eax
mov dword [esp + 0x38], ebp
jle 0x42e60c
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov esi, str.Windows_NT_x86
call fcn.0044b710
test eax, eax
je 0x42dec1
mov esi, str.Windows_x64
mov ecx, dword [edi + 0xc]
cmp byte [ecx + 5], 0
je 0x42decf
mov esi, str.Windows_4.0
mov edx, dword [edi + 8]
cmp byte [edx + 0x1e8b], 0
je 0x42deee
mov esi, str.Windows_x64
call fcn.0044b710
test eax, eax
je 0x42deee
mov esi, str.Windows_NT_x86
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
push ebx
push 3
push esi
push ebx
call sub.WINSPOOL.DRV_EnumPrinterDriversW
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x42e600
push eax
call fcn.00453c61
mov ecx, dword [esp + 0x20]
add esp, 4
mov ebx, eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
push ecx
push ebx
push 3
push esi
push 0
mov dword [esp + 0x50], ebx
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
je 0x42e5f7
cmp dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
jle 0x42e5f7
add ebx, 4
mov dword [esp + 0x24], ebx
lea ebx, [ebx]
mov edx, dword [edi + 8]
cmp byte [edx + 0x1e8c], 0
je 0x42dfa0
push str.UPD__check_if_UPD_n
call fcn.004454c0
mov eax, dword [ebx]
mov ecx, dword [edi + 8]
push eax
add ecx, 0x145c
push ecx
call fcn.00453ad3
add esp, 0xc
test eax, eax
jne 0x42e131
push str.UPD__continue_to_check_version_n
call fcn.004454c0
add esp, 4
xor esi, esi
mov dword [esp + 0x28], esi
test ebp, ebp
jle 0x42e5d9
mov edi, edi
mov edx, dword [esp + 0x84]
mov ecx, dword [ebx]
mov eax, dword [edx + esi*8]
push ecx
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42e5cc
push 0x1f34
push eax
lea edx, [esp + 0x2f8]
push edx
mov byte [esp + 0x4f2c], 4
call fcn.00453450
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x34]
mov eax, dword [eax + esi*8]
add esp, 0xc
lea ecx, [esp + 0x2f0]
push ecx
mov ecx, dword [esp + 0x30]
push eax
call fcn.00448670
mov edx, dword [esp + 0x84]
mov eax, dword [edx + esi*8]
push eax
push str.DRIVER_INSTALLED___s__n
call fcn.004454c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x24be]
push ecx
mov word [esp + 0x24c0], ax
call fcn.00453450
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2ae2]
push eax
mov word [esp + 0x2ae4], dx
call fcn.00453450
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2cf6]
push edx
mov word [esp + 0x2cf8], cx
call fcn.00453450
add esp, 0x2c
push 0
lea eax, [esp + 0x2cd0]
push eax
lea ecx, [esp + 0x30e4]
push ecx
mov ecx, dword [edi + 0xc]
call fcn.0044a990
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x28c6]
xor ebx, ebx
push eax
mov dword [esp + 0x50], ebx
mov word [esp + 0x28c8], dx
call fcn.00453450
add esp, 0xc
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [esp + eax + 0xb50]
mov word [esp + eax + 0x28bc], cx
add eax, 2
test cx, cx
jne 0x42e0c0
lea ecx, [esp + 0x2224]
push str.VERIFY_PRN_CONFIG
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42e26b
xor esi, esi
cmp dword [esp + 0x21e0], esi
jle 0x42e15f
mov edx, dword [esp + 0x21dc]
mov ebp, dword [edx + esi*8]
lea eax, [esp + 0xb50]
push eax
lea ecx, [ebp + 0x210]
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
je 0x42e143
inc esi
cmp esi, dword [esp + 0x21e0]
jl 0x42e100
jmp 0x42e15f
push str.Not_upd__skip_n
call fcn.004454c0
add esp, 4
jmp 0x42e5d9
lea eax, [ebp + 8]
lea edx, [esp + 0x28bc]
sub edx, eax
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x42e150
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x22ae]
push eax
mov word [esp + 0x22b0], dx
call fcn.00453450
xor ebp, ebp
add esp, 0xc
cmp dword [esp + 0x21e0], ebp
jle 0x42e21a
mov edi, edi
mov ecx, dword [esp + 0x21dc]
mov esi, dword [ecx + ebp*8]
lea ebx, [esi + 8]
push ebx
push str.cpt__wszSourceFile___s__n
call fcn.004454c0
lea edx, [esi + 0x210]
push edx
push str.cpt__wszTargetFile___s__n_n
call fcn.004454c0
mov ecx, dword [edi + 0xc]
add esp, 0x10
lea eax, [esp + 0x28bc]
push eax
push ebx
call fcn.004495e0
test eax, eax
jne 0x42e1dd
inc ebp
cmp ebp, dword [esp + 0x21e0]
jl 0x42e190
jmp 0x42e216
mov edx, dword [esp + 0x21ac]
mov ecx, dword [esi]
mov ecx, dword [edx + ecx*8]
lea edx, [esp + 0x22a4]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x42e1f0
lea eax, [esp + 0x22a4]
push eax
push str.wszPathFromSourceDisksNames___s__n
call fcn.004454c0
add esp, 8
mov ebx, dword [esp + 0x44]
cmp word [esp + 0x22a4], 0
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [esp + 0x28bc]
lea eax, [esp + 0x24ac]
push ecx
lea edx, [esp + 0x22a8]
jne 0x42e248
lea edx, [esp + 0x2cd0]
push edx
push 0x46ab98
push eax
call esi
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x10]
push edx
lea eax, [esp + 0x2ad8]
push 0x46de2c
push eax
call esi
add esp, 0x1c
lea ecx, [esp + 0x2224]
push str.VERIFY_PRN_DATA
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42e303
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esp + 0x740]
push edx
lea eax, [esp + 0x2cd0]
push eax
lea ecx, [esp + 0x24b4]
push 0x46ab98
push ecx
call esi
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
push eax
lea ecx, [esp + 0x2ad8]
push 0x46de2c
push ecx
call esi
mov ecx, dword [edi + 0xc]
add esp, 0x1c
push str..ppd
lea edx, [esp + 0x744]
push edx
call fcn.004495e0
test eax, eax
je 0x42e2e5
mov ebx, 1
mov ecx, dword [edi + 0xc]
push str..gpd
lea eax, [esp + 0x744]
push eax
call fcn.004495e0
test eax, eax
je 0x42e303
mov ebx, 2
lea ecx, [esp + 0x24ac]
push ecx
push str.______s__n
call fcn.004454c0
lea edx, [esp + 0x2acc]
push edx
push str.______s__n
call fcn.004454c0
mov esi, dword [esp + 0x28]
add esp, 0x10
test esi, esi
jne 0x42e33b
mov esi, 1
mov dword [esp + 0x18], esi
test ebx, ebx
je 0x42e4c3
jle 0x42e5ac
cmp ebx, 2
jg 0x42e5ac
xor esi, esi
xor ebp, ebp
cmp ebx, 1
jne 0x42e37d
lea eax, [esp + 0x24ac]
push eax
mov ecx, edi
call fcn.0041d4f0
lea ecx, [esp + 0x2ac4]
push ecx
mov ecx, edi
mov esi, eax
call fcn.0041d4f0
jmp 0x42e3a2
cmp ebx, 2
jne 0x42e3a4
lea edx, [esp + 0x24ac]
push edx
mov ecx, edi
call fcn.0041d760
mov esi, eax
lea eax, [esp + 0x2ac4]
push eax
mov ecx, edi
call fcn.0041d760
mov ebp, eax
push ebp
push esi
push str.__d___d__n
call fcn.004454c0
add esp, 0xc
cmp esi, ebp
jbe 0x42e5ac
mov ebp, 2
cmp dword [esp + 0x18], ebp
je 0x42e3ca
mov dword [esp + 0x18], ebp
push 0x208
call fcn.00453c61
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x22b2]
push edx
mov esi, eax
mov word [esp + 0x22b4], cx
call fcn.00453450
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x26ce]
push ecx
mov word [esp + 0x26d0], ax
call fcn.00453450
add esp, 0x1c
cmp ebx, 1
jne 0x42e44a
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x22a4]
push edx
lea eax, [esp + 0x24b0]
push eax
call fcn.0044dc90
lea ecx, [esp + 0x26b4]
push ecx
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x2ac8]
push edx
call fcn.0044dc90
jmp 0x42e47e
cmp ebx, ebp
jne 0x42e47e
lea eax, [esp + 0x22a4]
push eax
lea ecx, [esp + 0x24b0]
push ecx
mov ecx, dword [edi + 0xc]
call fcn.0044e3e0
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x26b4]
push edx
lea eax, [esp + 0x2ac8]
push eax
call fcn.0044e3e0
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx]
lea ecx, [esp + 0x22a4]
push ecx
lea edx, [esp + 0x26b8]
push edx
push eax
push str._DriverName_:___s___DisplayVersion_:___s___SourceDisplayVersion_:___s__
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push 0xffffffffffffffff
push 1
push esi
lea ecx, [edi + 0x4ac8]
call fcn.00403750
mov ecx, dword [ebx]
push ecx
mov ecx, edi
call fcn.00418f90
jmp 0x42e5ac
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x2ac4]
push edx
lea eax, [esp + 0x24b0]
push eax
call fcn.0044ecd0
test eax, eax
jle 0x42e5ac
cmp esi, 2
je 0x42e4f0
mov dword [esp + 0x18], 2
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx]
push ecx
mov ecx, edi
call fcn.00418f90
push 0x208
call fcn.00453c61
xor edx, edx
push 0x206
mov esi, eax
push edx
lea eax, [esp + 0x22b2]
push eax
mov word [esp + 0x22b4], dx
call fcn.00453450
add esp, 0x10
lea ecx, [esp + 0x22a4]
push ecx
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x2ac8]
push edx
call fcn.0044cf50
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x26be]
push ecx
mov word [esp + 0x26c0], ax
call fcn.00453450
mov ecx, dword [edi + 0xc]
add esp, 0xc
lea edx, [esp + 0x26b4]
push edx
lea eax, [esp + 0x24b0]
push eax
call fcn.0044cf50
mov eax, dword [ebx]
lea ecx, [esp + 0x26b4]
push ecx
lea edx, [esp + 0x22a8]
push edx
push eax
push str._DriverName_:___s___DisplayVersion_:___s___SourceDisplayVersion_:___s_
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push 0xffffffffffffffff
push 1
push esi
lea ecx, [edi + 0x4ac8]
call fcn.00403750
lea ecx, [esp + 0x2f0]
mov byte [esp + 0x4f20], 3
call fcn.00405530
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
inc esi
cmp esi, ebp
mov dword [esp + 0x28], esi
jl 0x42dfb0
mov eax, dword [esp + 0x3c]
inc eax
add ebx, 0x28
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ebx
jl 0x42df60
mov ebx, dword [esp + 0x34]
push ebx
call fcn.004534ca
add esp, 4
lea ecx, [esp + 0x84]
call fcn.00401b40
lea ecx, [esp + 0x4c]
call fcn.00401b40
lea ecx, [esp + 0x84]
mov byte [esp + 0x4f20], 2
call fcn.00405350
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4f20], 0xffffffff
call fcn.00405350
mov ebx, 2
lea ecx, [esp + 0x2224]
push str.VERIFY_EXE_DRIVER_STORE
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42ec06
lea edx, [esp + 0x2224]
push edx
mov ecx, edi
call fcn.00418f90
lea eax, [esp + 0x2224]
push eax
push 0xffffffffffffffff
push 0xa
mov ecx, edi
call fcn.00418e80
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x24b6]
push edx
mov word [esp + 0x24b8], cx
call fcn.00453450
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x26ca]
push ecx
mov word [esp + 0x26cc], ax
call fcn.00453450
add esp, 0x18
cmp byte [esi + 0x1c2cc], 0
je 0x42e6df
cmp dword [esi + 0x1c2c8], ebx
jg 0x42e6d7
xor eax, eax
jmp 0x42e6f1
lea eax, [esi + 0x42c8]
jmp 0x42e6f1
cmp dword [esi + 0x1c2c8], ebx
jg 0x42e6eb
xor eax, eax
jmp 0x42e6f1
lea eax, [esi + 0x208]
mov edx, dword [edi + 8]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push eax
add edx, 0x41c
push edx
lea eax, [esp + 0x24b4]
push 0x46ab98
push eax
call ebx
add esp, 0x10
cmp byte [esi + 0x1c2cc], 0
je 0x42e732
cmp dword [esi + 0x1c2c8], 3
jg 0x42e72a
xor eax, eax
jmp 0x42e745
lea eax, [esi + 0x4ac8]
jmp 0x42e745
cmp dword [esi + 0x1c2c8], 3
jg 0x42e73f
xor eax, eax
jmp 0x42e745
lea eax, [esi + 0x30c]
mov ecx, dword [edi + 8]
push eax
add ecx, 0x41c
push ecx
lea edx, [esp + 0x26bc]
push 0x46ab98
push edx
call ebx
push 0x4fc8
call fcn.004534f0
add esp, 0x14
mov dword [esp + 0x30], eax
mov dword [esp + 0x4f20], 5
test eax, eax
je 0x42e794
push 0
lea ecx, [esp + 0x24b0]
push ecx
mov ecx, eax
call fcn.00446910
mov ebp, eax
jmp 0x42e796
xor ebp, ebp
lea ecx, [esp + 0x4c]
call fcn.00407e20
lea edx, [esp + 0x4c]
push edx
mov ecx, ebp
mov dword [esp + 0x4f24], 6
call fcn.00446b20
mov ebx, dword [esp + 0x50]
test ebx, ebx
jle 0x42ebe9
lea ecx, [esp + 0x6c]
call fcn.00407e20
xor esi, esi
mov byte [esp + 0x4f20], 7
test ebx, ebx
jle 0x42e7f9
lea esp, [esp]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + esi*8]
lea ecx, [esp + 0x6c]
push ecx
push eax
mov ecx, ebp
call fcn.00446c10
inc esi
cmp esi, ebx
jl 0x42e7e0
mov eax, dword [esp + 0x70]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x34], eax
jle 0x42ebcf
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
mov esi, str.Windows_NT_x86
call fcn.0044b710
test eax, eax
je 0x42e829
mov esi, str.Windows_x64
mov ecx, dword [edi + 0xc]
cmp byte [ecx + 5], bl
je 0x42e836
mov esi, str.Windows_4.0
mov edx, dword [edi + 8]
cmp byte [edx + 0x1e8b], bl
je 0x42e854
mov esi, str.Windows_x64
call fcn.0044b710
test eax, eax
je 0x42e854
mov esi, str.Windows_NT_x86
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push 8
push esi
push ebx
call sub.WINSPOOL.DRV_EnumPrinterDriversW
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x42ebc6
push eax
call fcn.00453c61
add esp, 4
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x24]
push ecx
push edx
push eax
push 8
push esi
push ebx
mov dword [esp + 0x60], eax
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
je 0x42ebb9
cmp dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ebx
jle 0x42ebb9
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
lea esp, [esp]
xor ebp, ebp
test eax, eax
jle 0x42eba3
lea ebx, [ebx]
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ebp*8]
push ecx
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42eb96
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + ebp*8]
push eax
push str.DRIVER_INSTALLED___s__n
call fcn.004454c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x28ce]
push ecx
mov word [esp + 0x28d0], ax
call fcn.00453450
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x22c2]
push eax
mov word [esp + 0x22c4], dx
call fcn.00453450
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3106]
push edx
mov word [esp + 0x3108], cx
call fcn.00453450
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2d02]
push ecx
mov word [esp + 0x2d04], ax
call fcn.00453450
lea eax, [esp + 0x28f4]
lea edx, [esp + 0x26ec]
mov ecx, eax
add esp, 0x38
mov esi, 0x103
sub edx, ecx
lea esp, [esp]
lea ecx, [esi + 0x7ffffefb]
test ecx, ecx
je 0x42e9b0
movzx ecx, word [eax + edx]
test cx, cx
je 0x42e9b0
mov word [eax], cx
add eax, 2
sub esi, 1
jne 0x42e990
jmp 0x42e9b4
test esi, esi
jne 0x42e9b7
sub eax, 2
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0xa0]
push eax
push edx
lea ecx, [esp + 0x26bc]
push ecx
mov ecx, dword [edi + 0xc]
call fcn.0044a990
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x42ea77
push eax
push str.DRIVER_INF_PATH___s__n
call fcn.004454c0
mov esi, dword [ebx + 0x5c]
lea eax, [esp + 0x2cd4]
mov ecx, eax
add esp, 8
mov edx, 0x103
sub esi, ecx
lea ecx, [edx + 0x7ffffefb]
test ecx, ecx
je 0x42ea21
movzx ecx, word [eax + esi]
test cx, cx
je 0x42ea21
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x42ea01
jmp 0x42ea25
test edx, edx
jne 0x42ea28
sub eax, 2
xor edx, edx
mov word [eax], dx
push edx
lea eax, [esp + 0x30e0]
push eax
lea ecx, [esp + 0x2cd4]
push ecx
mov ecx, dword [edi + 0xc]
call fcn.0044a990
cmp word [esp + 0x30dc], 0
je 0x42ea77
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x30e0]
push eax
lea ecx, [esp + 0x22ac]
push 0x46ab98
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea edx, [esp + 0x28bc]
push edx
push str.__src_____s__n
call fcn.004454c0
lea eax, [esp + 0x22ac]
push eax
push str.__des_____s__n
call fcn.004454c0
add esp, 0x10
cmp dword [esp + 0x18], 0
jne 0x42eaad
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x22a4]
push ecx
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x28c0]
push edx
call fcn.0044ecd0
test eax, eax
jle 0x42eb96
mov eax, 2
cmp dword [esp + 0x18], eax
je 0x42eadc
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
push eax
mov ecx, edi
call fcn.00418f90
push 0x208
call fcn.00453c61
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2ee2]
push edx
mov esi, eax
mov word [esp + 0x2ee4], cx
call fcn.00453450
add esp, 0x10
lea eax, [esp + 0x2ed4]
push eax
lea ecx, [esp + 0x22a8]
push ecx
mov ecx, dword [edi + 0xc]
call fcn.0044cf50
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2ace]
push eax
mov word [esp + 0x2ad0], dx
call fcn.00453450
add esp, 0xc
lea ecx, [esp + 0x2ac4]
push ecx
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x28c0]
push edx
call fcn.0044cf50
mov edx, dword [ebx + 4]
lea eax, [esp + 0x2ac4]
push eax
lea ecx, [esp + 0x2ed8]
push ecx
push edx
push str._DriverName_:___s___DisplayVersion_:___s___SourceDisplayVersion_:___s_
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push 0xffffffffffffffff
push 1
push esi
lea ecx, [edi + 0x4ac8]
call fcn.00403750
mov eax, dword [esp + 0x34]
inc ebp
cmp ebp, eax
jl 0x42e8d0
mov ecx, dword [esp + 0x3c]
inc ecx
add ebx, 0x78
cmp ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
jl 0x42e8c0
mov eax, dword [esp + 0x44]
push eax
call fcn.004534ca
add esp, 4
lea ecx, [esp + 0x6c]
call fcn.00401b40
lea ecx, [esp + 0x4c]
call fcn.00401b40
lea ecx, [esp + 0x6c]
mov byte [esp + 0x4f20], 6
call fcn.00405350
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4f20], 0xffffffff
call fcn.00405350
mov esi, dword [esp + 0x48]
mov ebx, 2
lea ecx, [esp + 0x2224]
push str.VERIFY_INF_DRIVER_STORE
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f184
lea edx, [esp + 0x2224]
push edx
mov ecx, edi
call fcn.00418f90
lea eax, [esp + 0x2224]
push eax
push 0xffffffffffffffff
push 0xa
mov ecx, edi
call fcn.00418e80
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x26be]
push edx
mov word [esp + 0x26c0], cx
call fcn.00453450
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x42ec82
cmp dword [esi + 0x1c2c8], ebx
jg 0x42ec7a
xor eax, eax
jmp 0x42ec94
lea eax, [esi + 0x42c8]
jmp 0x42ec94
cmp dword [esi + 0x1c2c8], ebx
jg 0x42ec8e
xor eax, eax
jmp 0x42ec94
lea eax, [esi + 0x208]
push eax
mov eax, dword [edi + 8]
add eax, 0x41c
push eax
lea ecx, [esp + 0x26bc]
push 0x46ab98
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
push 0x4fc8
call fcn.004534f0
add esp, 0x14
mov dword [esp + 0x30], eax
mov dword [esp + 0x4f20], 8
test eax, eax
je 0x42ece6
push 0
lea edx, [esp + 0x26b8]
push edx
mov ecx, eax
call fcn.00446910
mov ebp, eax
jmp 0x42ece8
xor ebp, ebp
lea ecx, [esp + 0x4c]
call fcn.00407e20
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
mov dword [esp + 0x4f24], 9
call fcn.00446b20
mov ebx, dword [esp + 0x50]
test ebx, ebx
jle 0x42f167
lea ecx, [esp + 0x6c]
call fcn.00407e20
xor esi, esi
mov byte [esp + 0x4f20], 0xa
test ebx, ebx
jle 0x42ed49
jmp 0x42ed30
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + esi*8]
lea edx, [esp + 0x6c]
push edx
push eax
mov ecx, ebp
call fcn.00446c10
inc esi
cmp esi, ebx
jl 0x42ed30
mov eax, dword [esp + 0x70]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x40], eax
jle 0x42f14d
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
mov esi, str.Windows_NT_x86
call fcn.0044b710
test eax, eax
je 0x42ed79
mov esi, str.Windows_x64
mov ecx, dword [edi + 0xc]
cmp byte [ecx + 5], 0
je 0x42ed87
mov esi, str.Windows_4.0
mov eax, dword [edi + 8]
cmp byte [eax + 0x1e8b], 0
je 0x42eda6
mov esi, str.Windows_x64
call fcn.0044b710
test eax, eax
je 0x42eda6
mov esi, str.Windows_NT_x86
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
push ebp
push ebp
push 8
push esi
push ebp
call sub.WINSPOOL.DRV_EnumPrinterDriversW
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x42f144
push eax
call fcn.00453c61
mov edx, dword [esp + 0x24]
add esp, 4
mov ebx, eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
push edx
push ebx
push 8
push esi
push ebp
mov dword [esp + 0x4c], ebx
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
je 0x42f13b
cmp dword [esp + 0x28], 0
mov dword [esp + 0x38], 0
jle 0x42f13b
mov ebp, ebx
mov dword [esp + 0x2c], ebx
xor esi, esi
cmp dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
jle 0x42f121
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebp + 4]
mov eax, dword [eax + esi*8]
push ecx
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f102
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + esi*8]
push eax
push str.DRIVER_INSTALLED___s__n
call fcn.004454c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x22b6]
push ecx
mov word [esp + 0x22b8], ax
call fcn.00453450
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x28da]
push eax
mov word [esp + 0x28dc], dx
call fcn.00453450
lea eax, [esp + 0x22c4]
lea edx, [esp + 0x26d4]
mov ecx, eax
add esp, 0x20
mov esi, 0x103
sub edx, ecx
lea ecx, [esi + 0x7ffffefb]
test ecx, ecx
je 0x42eec2
movzx ecx, word [eax + edx]
test cx, cx
je 0x42eec2
mov word [eax], cx
add eax, 2
sub esi, 1
jne 0x42eea2
jmp 0x42eec6
test esi, esi
jne 0x42eec9
sub eax, 2
xor edx, edx
mov word [eax], dx
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x42ef22
push eax
push str.DRIVER_INF_PATH___s__n
call fcn.004454c0
mov esi, dword [ebp + 0x5c]
lea eax, [esp + 0x28c4]
mov ecx, eax
add esp, 8
mov edx, 0x103
sub esi, ecx
lea ecx, [edx + 0x7ffffefb]
test ecx, ecx
je 0x42ef16
movzx ecx, word [esi + eax]
test cx, cx
je 0x42ef16
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x42eef6
jmp 0x42ef1a
test edx, edx
jne 0x42ef1d
sub eax, 2
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x22a4]
push eax
push str.__src_____s__n
call fcn.004454c0
lea ecx, [esp + 0x28c4]
push ecx
push str.__des_____s__n
call fcn.004454c0
add esp, 0x10
cmp dword [esp + 0x18], 0
jne 0x42ef58
mov dword [esp + 0x18], 1
push 0x206
xor esi, esi
lea eax, [esp + 0x2eda]
xor edx, edx
push esi
push eax
mov word [esp + 0x2ee0], dx
call fcn.00453450
push 0x206
lea edx, [esp + 0x2cde]
xor ecx, ecx
push esi
push edx
mov word [esp + 0x2ce4], cx
call fcn.00453450
mov edi, dword [esp + 0x80]
add esp, 0x18
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x2ed8]
push ecx
lea edx, [esp + 0x22ac]
push edx
mov ecx, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], esi
call fcn.0040da70
mov esi, eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x2cd0]
push ecx
lea edx, [esp + 0x28c4]
push edx
mov ecx, edi
mov dword [esp + 0x40], esi
call fcn.0040da70
mov ebp, dword [esp + 0x1c]
mov edi, eax
movzx eax, bp
push eax
shr ebp, 0x10
movzx eax, bp
movzx ecx, si
push eax
push ecx
shr esi, 0x10
movzx ecx, si
push ecx
push str.__src_____d___d___d___d__n
mov dword [esp + 0x50], edi
call fcn.004454c0
mov ebx, dword [esp + 0x38]
movzx eax, bx
push eax
shr ebx, 0x10
movzx ecx, di
movzx edx, bx
push edx
shr edi, 0x10
movzx eax, di
push ecx
push eax
push str.__des_____d___d___d___d__n
call fcn.004454c0
movzx eax, word [esp + 0x44]
push eax
movzx eax, word [esp + 0x60]
movzx ecx, bp
push ecx
movzx edx, si
push eax
push edx
push str.__src_____d___d___d___d__n
call fcn.004454c0
movzx eax, word [esp + 0x60]
push eax
movzx eax, bx
push eax
movzx eax, word [esp + 0x80]
push eax
movzx ecx, di
push ecx
push str.__des_____d___d___d___d__n
call fcn.004454c0
add esp, 0x50
cmp si, di
jne 0x42f09f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
cmp ax, cx
jne 0x42f09f
cmp bp, bx
jne 0x42f09f
mov dx, word [esp + 0x24]
cmp word [esp + 0x1c], dx
je 0x42f102
mov ax, dx
cmp word [esp + 0x1c], ax
jbe 0x42f102
mov eax, 2
cmp dword [esp + 0x18], eax
je 0x42f0b0
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x2c]
mov ecx, dword [edi + 4]
mov ebx, dword [esp + 0x68]
push ecx
mov ecx, ebx
call fcn.00418f90
push 0x208
call fcn.00453c61
mov ecx, dword [edi + 4]
mov esi, eax
lea edx, [esp + 0x2ed8]
push edx
lea eax, [esp + 0x2cd4]
push eax
push ecx
push str._DriverName_:___s___DisplayVersion_:___s___SourceDisplayVersion_:___s_
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
push 0xffffffffffffffff
push 1
push esi
lea ecx, [ebx + 0x4ac8]
call fcn.00403750
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x2c]
inc esi
cmp esi, dword [esp + 0x40]
mov dword [esp + 0x44], esi
jl 0x42ee20
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
inc eax
add ebp, 0x78
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ebp
jl 0x42ee10
push ebx
call fcn.004534ca
add esp, 4
lea ecx, [esp + 0x6c]
call fcn.00401b40
lea ecx, [esp + 0x4c]
call fcn.00401b40
lea ecx, [esp + 0x6c]
mov byte [esp + 0x4f20], 9
call fcn.00405350
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4f20], 0xffffffff
call fcn.00405350
mov esi, dword [esp + 0x48]
mov ebx, 2
lea edx, [esp + 0x2224]
push str.VERIFY_INF_DATE
push edx
call fcn.00453ad3
add esp, 8
test eax, eax
je 0x42f1ba
lea eax, [esp + 0x2224]
push str.VERIFY_INF_DRIVERVER
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f932
lea ecx, [esp + 0x2224]
push str.VERIFY_INF_DRIVERVER
push ecx
mov byte [esp + 0x1e], 0
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f1dd
mov byte [esp + 0x16], 1
lea edx, [esp + 0x2224]
push edx
mov ecx, edi
call fcn.00418f90
lea eax, [esp + 0x2224]
push eax
push 0xffffffffffffffff
push 0xa
mov ecx, edi
call fcn.00418e80
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x22ae]
push edx
mov word [esp + 0x22b0], cx
call fcn.00453450
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x42f23c
cmp dword [esi + 0x1c2c8], ebx
jg 0x42f234
xor eax, eax
jmp 0x42f24e
lea eax, [esi + 0x42c8]
jmp 0x42f24e
cmp dword [esi + 0x1c2c8], ebx
jg 0x42f248
xor eax, eax
jmp 0x42f24e
lea eax, [esi + 0x208]
push eax
mov eax, dword [edi + 8]
add eax, 0x41c
push eax
lea ecx, [esp + 0x22ac]
push 0x46ab98
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp byte [esp + 0x16], 0
mov ecx, edi
je 0x42f288
push 0
lea edx, [esp + 0x22a8]
push edx
call fcn.0042b910
jmp 0x42f295
lea eax, [esp + 0x22a4]
push eax
call fcn.0041e060
push 0x4fc8
mov dword [esp + 0x28], eax
call fcn.004534f0
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x4f20], 0xb
test eax, eax
je 0x42f2ce
push 0
lea ecx, [esp + 0x22a8]
push ecx
mov ecx, eax
call fcn.00446910
mov ebp, eax
jmp 0x42f2d0
xor ebp, ebp
lea ecx, [esp + 0x4c]
call fcn.00407e20
lea ecx, [esp + 0x84]
mov dword [esp + 0x4f20], 0xc
call fcn.00407e20
lea edx, [esp + 0x4c]
push edx
mov ecx, ebp
mov byte [esp + 0x4f24], 0xd
call fcn.00446b20
mov eax, dword [esp + 0x50]
mov ebx, eax
test eax, eax
je 0x42f33c
xor esi, esi
test eax, eax
jle 0x42f33c
jmp 0x42f320
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + esi*8]
lea ecx, [esp + 0x84]
push ecx
push eax
mov ecx, ebp
call fcn.00446c10
inc esi
cmp esi, ebx
jl 0x42f320
xor bl, bl
push str.Printer
mov ecx, ebp
mov byte [esp + 0x1b], bl
call fcn.00445ce0
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f35d
mov bl, 1
push str.Image
mov ecx, ebp
call fcn.00445ce0
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f37b
mov byte [esp + 0x17], 1
test bl, bl
je 0x42f6f4
mov eax, dword [esp + 0x88]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x38], eax
jle 0x42f6eb
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebp
mov esi, str.Windows_NT_x86
call fcn.0044b710
test eax, eax
je 0x42f3b6
mov esi, str.Windows_x64
mov edx, dword [edi + 0xc]
cmp byte [edx + 5], 0
je 0x42f3c4
mov esi, str.Windows_4.0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
push ebp
push ebp
push 3
push esi
push ebp
call sub.WINSPOOL.DRV_EnumPrinterDriversW
mov eax, dword [esp + 0x28]
cmp eax, ebp
je 0x42f6df
push eax
call fcn.00453c61
mov ecx, dword [esp + 0x2c]
add esp, 4
mov ebx, eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x2c]
push eax
push ecx
push ebx
push 3
push esi
push ebp
mov dword [esp + 0x4c], ebx
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
je 0x42f6d6
cmp dword [esp + 0x20], ebp
mov dword [esp + 0x34], ebp
jle 0x42f6d6
add ebx, 4
mov dword [esp + 0x2c], ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
cmp dword [esp + 0x38], 0
jle 0x42f6ba
mov edx, dword [esp + 0x38]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x40], edx
jmp 0x42f450
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx]
push ecx
push eax
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f6aa
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x42f488
mov dword [esp + 0x18], 1
jmp 0x42f491
cmp eax, 1
jne 0x42f6aa
push 0x104
lea edx, [esp + 0x26b8]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [esp + 0x26b4]
push eax
lea ecx, [esp + 0x24b0]
push str._sinfoem.inf
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x24b0]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
xor ebp, ebp
cmp esi, 0xffffffff
je 0x42f573
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x26b8]
push edx
lea eax, [esp + 0x24b4]
push str._sinf_s
push eax
call ebx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + ecx]
mov ecx, dword [edi + 0xc]
add esp, 0x10
push eax
lea eax, [esp + 0x24b0]
push eax
call fcn.00449760
test al, al
je 0x42f555
cmp byte [esp + 0x16], 0
je 0x42f540
push 0
lea ecx, [esp + 0x24b0]
push ecx
mov ecx, edi
call fcn.0042b910
jmp 0x42f54f
lea edx, [esp + 0x24ac]
push edx
mov ecx, edi
call fcn.0041e060
cmp eax, ebp
jbe 0x42f555
mov ebp, eax
lea eax, [esp + 0xa0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x42f4e1
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [edi + 0xc]
cmp byte [ecx + 5], 0
je 0x42f662
test ebp, ebp
jne 0x42f662
lea edx, [esp + 0x26b4]
push edx
lea eax, [esp + 0x24b0]
push str._sinfother.inf
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x24b0]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x42f662
jmp 0x42f5d0
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x26b8]
push ecx
lea edx, [esp + 0x24b4]
push str._sinfother_s
push edx
call ebx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax]
mov ecx, dword [edi + 0xc]
add esp, 0x10
push eax
lea edx, [esp + 0x24b0]
push edx
call fcn.00449760
test al, al
je 0x42f644
cmp byte [esp + 0x16], 0
je 0x42f62f
push 0
lea eax, [esp + 0x24b0]
push eax
mov ecx, edi
call fcn.0042b910
jmp 0x42f63e
lea ecx, [esp + 0x24ac]
push ecx
mov ecx, edi
call fcn.0041e060
cmp eax, ebp
jbe 0x42f644
mov ebp, eax
lea edx, [esp + 0xa0]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x42f5d0
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [esp + 0x24], ebp
jbe 0x42f6aa
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp]
push eax
mov ecx, edi
mov dword [esp + 0x1c], 2
call fcn.00418f90
push 0x208
call fcn.00453c61
mov ecx, dword [ebp]
push ecx
mov esi, eax
push str._DriverName_:___s_
push esi
call ebx
add esp, 0x10
push 0xffffffffffffffff
push 1
push esi
lea ecx, [edi + 0x4ac8]
call fcn.00403750
add dword [esp + 0x1c], 8
sub dword [esp + 0x40], 1
jne 0x42f450
mov eax, dword [esp + 0x34]
add dword [esp + 0x2c], 0x28
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jl 0x42f430
mov ebx, dword [esp + 0x30]
push ebx
call fcn.004534ca
add esp, 4
lea ecx, [esp + 0x84]
call fcn.00401b40
lea ecx, [esp + 0x4c]
call fcn.00401b40
cmp byte [esp + 0x17], 0
je 0x42f8f5
lea ecx, [esp + 0x6c]
call fcn.00407e20
push 0x478
mov byte [esp + 0x4f24], 0xe
call fcn.004534f0
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x4f20], 0xf
test eax, eax
je 0x42f742
push 0
push 0
push 0
mov ecx, eax
call fcn.00405420
mov esi, eax
mov dword [esp + 0x40], eax
jmp 0x42f748
xor esi, esi
mov dword [esp + 0x40], esi
mov byte [esp + 0x4f20], 0xe
test esi, esi
je 0x42f8e4
push 0
lea edx, [esp + 0x70]
push edx
push str.Image
push 7
push 0
mov ecx, esi
call fcn.004038b0
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x88]
xor ebp, ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ecx
test eax, eax
jle 0x42f8cb
lea esp, [esp]
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + ebp*8]
xor esi, esi
cmp dword [esp + 0x38], esi
mov byte [esp + 0x17], 0
lea ebx, [eax + 0x208]
jle 0x42f8bc
mov edi, edi
mov eax, dword [esp + 0x84]
mov eax, dword [eax + esi*8]
push eax
push ebx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42f7cd
mov byte [esp + 0x17], 1
inc esi
cmp esi, dword [esp + 0x38]
jl 0x42f7b0
cmp byte [esp + 0x17], 0
je 0x42f8bc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x42f7f1
mov dword [esp + 0x18], 1
jmp 0x42f7fa
cmp eax, 1
jne 0x42f8bc
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2ede]
push edx
xor esi, esi
mov word [esp + 0x2ee0], cx
call fcn.00453450
mov eax, dword [esp + 0x78]
mov eax, dword [eax + ebp*8]
lea ecx, [eax + 0x860]
add esp, 0xc
test ecx, ecx
je 0x42f857
add eax, 0x860
cmp byte [esp + 0x16], 0
mov ecx, edi
je 0x42f84b
lea edx, [esp + 0x2ed4]
push edx
push eax
call fcn.0042b910
jmp 0x42f851
push eax
call fcn.0041e060
test eax, eax
jbe 0x42f857
mov esi, eax
cmp dword [esp + 0x24], esi
jbe 0x42f8bc
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x26be]
push ecx
mov dword [esp + 0x24], 2
mov word [esp + 0x26c0], ax
call fcn.00453450
mov edx, dword [esp + 0x78]
mov eax, dword [edx + ebp*8]
lea ecx, [esp + 0x2ee0]
push ecx
add eax, 0x208
push eax
lea edx, [esp + 0x26c8]
push str._s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
lea eax, [esp + 0x26b4]
push eax
mov ecx, edi
call fcn.00418f90
inc ebp
cmp ebp, dword [esp + 0x30]
jl 0x42f790
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x6c]
call fcn.00401b40
mov ecx, esi
call fcn.004054c0
push esi
call fcn.004534ca
add esp, 4
lea ecx, [esp + 0x6c]
mov byte [esp + 0x4f20], 0xd
call fcn.00405350
lea ecx, [esp + 0x84]
call fcn.00401b40
lea ecx, [esp + 0x4c]
call fcn.00401b40
lea ecx, [esp + 0x84]
mov byte [esp + 0x4f20], 0xc
call fcn.00405350
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4f20], 0xffffffff
call fcn.00405350
lea ecx, [esp + 0x2224]
push str.VERIFY_FILE
push ecx
call fcn.00453ad3
add esp, 8
test eax, eax
jne 0x42fc60
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x32ee]
push eax
mov word [esp + 0x32f0], dx
call fcn.00453450
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3502]
push edx
mov word [esp + 0x3504], cx
call fcn.00453450
mov esi, dword [esp + 0x60]
add esp, 0x18
cmp byte [esi + 0x1c2cc], 0
je 0x42f9ae
cmp dword [esi + 0x1c2c8], 2
jg 0x42f9a6
xor eax, eax
jmp 0x42f9c1
lea eax, [esi + 0x42c8]
jmp 0x42f9c1
cmp dword [esi + 0x1c2c8], 2
jg 0x42f9bb
xor eax, eax
jmp 0x42f9c1
lea eax, [esi + 0x208]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea eax, [esp + 0x32e8]
push 0x46de2c
push eax
call ebx
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x42f9f8
cmp dword [esi + 0x1c2c8], 3
jg 0x42f9f0
xor eax, eax
jmp 0x42fa0b
lea eax, [esi + 0x4ac8]
jmp 0x42fa0b
cmp dword [esi + 0x1c2c8], 3
jg 0x42fa05
xor eax, eax
jmp 0x42fa0b
lea eax, [esi + 0x30c]
push eax
lea ecx, [esp + 0x34f0]
push 0x46de2c
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x32e4]
push edx
mov ecx, edi
call fcn.004190c0
lea eax, [esp + 0x34ec]
push eax
mov ecx, edi
call fcn.004190c0
lea ecx, [esp + 0x32e4]
push ecx
push str.______s__n
call fcn.004454c0
lea edx, [esp + 0x34f4]
push edx
push str.______s__n
call fcn.004454c0
mov ecx, dword [edi + 0xc]
add esp, 0x10
push 0
lea eax, [esp + 0x34f0]
push eax
call fcn.004496a0
test al, al
je 0x42fc60
push str..cab
lea ecx, [esp + 0x32e8]
push ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x20], 1
call fcn.004495e0
test eax, eax
je 0x42fc3c
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x3906]
push eax
mov word [esp + 0x3908], dx
call fcn.00453450
add esp, 0xc
lea ecx, [esp + 0x38fc]
push ecx
mov ecx, dword [edi + 0xc]
push 0
push 0x477bc0
call fcn.0044a1a0
test eax, eax
je 0x42fc3c
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x3d16]
push eax
mov word [esp + 0x3d18], dx
call fcn.00453450
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3b1a]
push edx
mov word [esp + 0x3b1c], cx
call fcn.00453450
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3716]
push ecx
mov word [esp + 0x3718], ax
call fcn.00453450
lea edx, [esp + 0x3308]
push 0x7c
push edx
call fcn.00453b87
add esp, 0x2c
test eax, eax
je 0x42fb93
xor ecx, ecx
mov word [eax], cx
jmp 0x42fb60
movzx edx, word [esp + ecx + 0x32e4]
mov word [esp + ecx + 0x3d0c], dx
add ecx, 2
test dx, dx
jne 0x42fb60
add eax, 2
lea edx, [esp + 0x3b04]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x42fb84
push 0xa48
call fcn.004534f0
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x4f20], 0x10
test eax, eax
je 0x42fbbe
mov ecx, eax
call fcn.00445080
mov esi, eax
jmp 0x42fbc0
xor esi, esi
lea edx, [esp + 0x36f4]
push edx
lea eax, [esp + 0x3b08]
push eax
lea ecx, [esp + 0x3d14]
push ecx
mov ecx, esi
mov dword [esp + 0x4f2c], 0xffffffff
call fcn.00445250
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x36f4]
mov word [esp + eax + 0x38fc], cx
add eax, 2
test cx, cx
jne 0x42fbf0
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [esp + eax + 0x36f4]
mov word [esp + eax + 0x32e4], cx
add eax, 2
test cx, cx
jne 0x42fc10
test esi, esi
je 0x42fc3c
mov ecx, esi
call fcn.004452e0
push esi
call fcn.004534ca
add esp, 4
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0x34ec]
push edx
lea eax, [esp + 0x32e8]
push eax
call fcn.0044ecd0
test eax, eax
jle 0x42fc60
mov dword [esp + 0x18], 2
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.0043df40
push esi
call fcn.004534ca
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xa0]
add esp, 4
push 0
lea ecx, [esp + 0x3f18]
push ecx
mov ecx, dword [edi + 4]
inc eax
push eax
push edx
mov dword [esp + 0x74], eax
call fcn.00409a10
test al, al
jne 0x42dc00
mov eax, dword [esp + 0x18]
jmp 0x42fca8
mov eax, ebx
mov ecx, dword [esp + 0x4f18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4f00]
xor ecx, esp
call fcn.00453432
add esp, 0x4f10
ret 4