Function at 0x421f60
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4cfed2
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x51c080]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x10]
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x1c], ebx
je 0x422115
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x421fa2
sub eax, edx
sar eax, 1
je 0x422115
mov eax, edi
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], ebx
mov word [esp + 0x28], bx
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x421fd0
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x2c]
call fcn.004102a0
mov dword [esp + 0x68], ebx
mov eax, esi
push eax
mov ecx, 0x527b20
mov dword [esp + 0x20], 1
call fcn.0040abb0
add eax, 0xda18
lea edx, [eax + 2]
jmp 0x422010
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x422010
sub eax, edx
sar eax, 1
je 0x422060
mov edx, edi
lea eax, [esp + 0x40]
call fcn.00411be0
mov dword [esp + 0x68], 1
lea ecx, [esp + 0x40]
push ecx
mov ecx, 0x527b20
mov dword [esp + 0x20], 3
call fcn.0040abb0
add eax, 0xda18
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov byte [esp + 0x17], 1
jne 0x422064
mov byte [esp + 0x17], bl
mov dword [esp + 0x68], ebx
test byte [esp + 0x1c], 2
je 0x422099
and dword [esp + 0x1c], 0xfffffffd
cmp dword [esp + 0x58], 8
jb 0x422088
mov edx, dword [esp + 0x44]
push edx
call fcn.004993dd
add esp, 4
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
mov dword [esp + 0x68], 0xffffffff
test byte [esp + 0x1c], 1
je 0x4220d2
and dword [esp + 0x1c], 0xfffffffe
cmp dword [esp + 0x3c], 8
jb 0x4220c1
mov eax, dword [esp + 0x28]
push eax
call fcn.004993dd
add esp, 4
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], ebx
mov word [esp + 0x28], bx
cmp byte [esp + 0x17], bl
je 0x422115
push str.There_is_already_CF_sml_file_in_driver_folder._So_hide_Driver_Config_option
mov ecx, 0x527b30
call fcn.00449000
mov esi, dword [ebp + 8]
add esp, 4
push ebx
push 0x41c
mov ecx, esi
call fcn.004a07fc
mov ecx, eax
call fcn.004a093f
push ebx
push 0x41f
mov ecx, esi
call fcn.004a07fc
mov ecx, eax
call fcn.004a093f
mov ecx, dword [ebp + 8]
push ebx
push ecx
lea edi, [esp + 0x20]
mov esi, 0x4e34d8
mov dword [esp + 0x20], ebx
call fcn.004632f0
test al, al
jne 0x42213f
mov ecx, dword [ebp + 8]
push 1
push ecx
call fcn.004632f0
test al, al
je 0x422156
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [esp + 0x18], ebx
setne dl
mov dword [eax + 0x14e0], edx
jmp 0x4222a8
push str.FALSE
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x40], esp
push 0xe
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
push 0x4e34d8
mov word [esi + 4], bx
call fcn.004102a0
mov dword [esp + 0x88], 2
or edi, 0xffffffff
push 0x52c1fc
mov dword [esp + 0x8c], edi
lea esi, [esp + 0x64]
call fcn.00411540
mov dword [esp + 0x6c], 3
cmp dword [eax + 0x18], 8
jb 0x4221b4
mov eax, dword [eax + 4]
jmp 0x4221b7
add eax, 4
push eax
call fcn.004a9af1
add esp, 8
test eax, eax
sete byte [esp + 0x17]
mov dword [esp + 0x68], edi
cmp dword [esp + 0x58], 8
jb 0x4221df
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004993dd
add esp, 4
cmp byte [esp + 0x17], bl
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
je 0x422216
push str.set_Search_printer_is_false__
mov ecx, 0x527b30
call fcn.00449000
mov edx, dword [ebp + 8]
add esp, 4
mov dword [edx + 0x14e0], ebx
jmp 0x4222a8
sub esp, 0x1c
mov edx, 0x4e34d8
mov eax, esp
mov dword [esp + 0x3c], esp
call fcn.00411be0
mov dword [esp + 0x84], 4
push 0x52c1fc
mov dword [esp + 0x88], edi
lea esi, [esp + 0x60]
call fcn.00411540
mov dword [esp + 0x68], 5
cmp dword [eax + 0x18], 8
jb 0x42225c
mov eax, dword [eax + 4]
jmp 0x42225f
add eax, 4
push eax
push str.set_Search_printer_is_true_____s_
mov ecx, 0x527b30
call fcn.00449000
add esp, 8
mov dword [esp + 0x68], edi
cmp dword [esp + 0x58], 8
jb 0x42228a
mov eax, dword [esp + 0x44]
push eax
call fcn.004993dd
add esp, 4
mov ecx, dword [ebp + 8]
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
mov dword [ecx + 0x14e0], 1
mov edx, dword [ebp + 8]
push ebx
push edx
lea edi, [esp + 0x20]
mov esi, str.set_default
mov dword [esp + 0x20], ebx
call fcn.004632f0
test al, al
jne 0x4222d2
mov edx, dword [ebp + 8]
push 1
push edx
call fcn.004632f0
test al, al
je 0x4222e9
mov ecx, dword [ebp + 8]
xor eax, eax
cmp dword [esp + 0x18], ebx
setne al
mov dword [ecx + 0x14e4], eax
jmp 0x422442
push str.FALSE
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x40], esp
push 0xb
mov edi, 7
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], ebx
push str.set_default
mov word [esi + 4], bx
call fcn.004102a0
mov dword [esp + 0x88], 6
push 0x52c1fc
mov dword [esp + 0x8c], 0xffffffff
lea esi, [esp + 0x64]
call fcn.00411540
mov dword [esp + 0x6c], edi
mov edi, 8
cmp dword [eax + 0x18], edi
jb 0x422349
mov eax, dword [eax + 4]
jmp 0x42234c
add eax, 4
push eax
call fcn.004a9af1
add esp, 8
test eax, eax
sete byte [esp + 0x17]
mov dword [esp + 0x68], 0xffffffff
cmp dword [esp + 0x58], edi
jb 0x422377
mov edx, dword [esp + 0x44]
push edx
call fcn.004993dd
add esp, 4
cmp byte [esp + 0x17], bl
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
je 0x4223ae
push str.set_default_printer_is_false__
mov ecx, 0x527b30
call fcn.00449000
mov eax, dword [ebp + 8]
add esp, 4
mov dword [eax + 0x14e4], ebx
jmp 0x422442
sub esp, 0x1c
mov edx, str.set_default
mov eax, esp
mov dword [esp + 0x3c], esp
call fcn.00411be0
mov dword [esp + 0x84], edi
push 0x52c1fc
mov dword [esp + 0x88], 0xffffffff
lea esi, [esp + 0x60]
call fcn.00411540
mov dword [esp + 0x68], 9
cmp dword [eax + 0x18], edi
jb 0x4223f3
mov eax, dword [eax + 4]
jmp 0x4223f6
add eax, 4
push eax
push str.set_default_printer_is_true_____s_
mov ecx, 0x527b30
call fcn.00449000
add esp, 8
mov dword [esp + 0x68], 0xffffffff
cmp dword [esp + 0x58], edi
jb 0x422424
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004993dd
add esp, 4
mov edx, dword [ebp + 8]
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
mov dword [edx + 0x14e4], 1
mov eax, dword [ebp + 8]
push ebx
push eax
lea edi, [esp + 0x20]
mov esi, str.set_drv_config
mov dword [esp + 0x20], ebx
call fcn.004632f0
test al, al
je 0x422479
cmp dword [esp + 0x18], ebx
je 0x4224ef
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14e8], 1
jmp 0x4225f1
mov eax, dword [ebp + 8]
push 1
push eax
lea edi, [esp + 0x20]
mov esi, str.set_drv_config
call fcn.004632f0
test al, al
jne 0x42245d
push str.TRUE
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x40], esp
push 0xe
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
push str.set_drv_config
mov word [esi + 4], bx
call fcn.004102a0
mov dword [esp + 0x88], 0xa
or edi, 0xffffffff
push 0x52c1fc
mov dword [esp + 0x8c], edi
lea esi, [esp + 0x64]
call fcn.00411540
mov dword [esp + 0x6c], 0xb
cmp dword [eax + 0x18], 8
jb 0x4224fd
mov eax, dword [eax + 4]
jmp 0x422500
mov edx, dword [ebp + 8]
mov dword [edx + 0x14e8], ebx
jmp 0x4225f1
add eax, 4
push eax
call fcn.004a9af1
add esp, 8
test eax, eax
sete byte [esp + 0x17]
mov dword [esp + 0x68], edi
cmp dword [esp + 0x58], 8
jb 0x422528
mov eax, dword [esp + 0x44]
push eax
call fcn.004993dd
add esp, 4
cmp byte [esp + 0x17], bl
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
je 0x422563
push str.set_Driver_Config_is_ture__
mov ecx, 0x527b30
call fcn.00449000
mov ecx, dword [ebp + 8]
add esp, 4
mov dword [ecx + 0x14e8], 1
jmp 0x4225f1
sub esp, 0x1c
mov edx, str.set_drv_config
mov eax, esp
mov dword [esp + 0x3c], esp
call fcn.00411be0
mov dword [esp + 0x84], 0xc
push 0x52c1fc
mov dword [esp + 0x88], edi
lea esi, [esp + 0x60]
call fcn.00411540
mov dword [esp + 0x68], 0xd
cmp dword [eax + 0x18], 8
jb 0x4225a9
mov eax, dword [eax + 4]
jmp 0x4225ac
add eax, 4
push eax
push str.set_Driver_Config_is_false_____s_
mov ecx, 0x527b30
call fcn.00449000
add esp, 8
mov dword [esp + 0x68], edi
cmp dword [esp + 0x58], 8
jb 0x4225d7
mov edx, dword [esp + 0x44]
push edx
call fcn.004993dd
add esp, 4
mov eax, dword [ebp + 8]
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
mov dword [eax + 0x14e8], ebx
mov ecx, dword [ebp + 8]
push ebx
push ecx
lea edi, [esp + 0x20]
mov esi, str.selector_shortcut
mov dword [esp + 0x20], ebx
call fcn.004632f0
test al, al
je 0x422623
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [esp + 0x18], ebx
setne dl
mov dword [eax + 0x14e8], edx
jmp 0x4227a4
mov ecx, dword [ebp + 8]
push 1
push ecx
lea edi, [esp + 0x20]
mov esi, str.selector_shortcut
call fcn.004632f0
test al, al
je 0x422652
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [esp + 0x18], ebx
setne dl
mov dword [eax + 0x14ec], edx
jmp 0x4227a4
push str.FALSE
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x40], esp
push 0x11
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
push str.selector_shortcut
mov word [esi + 4], bx
call fcn.004102a0
mov dword [esp + 0x88], 0xe
or edi, 0xffffffff
push 0x52c1fc
mov dword [esp + 0x8c], edi
lea esi, [esp + 0x64]
call fcn.00411540
mov dword [esp + 0x6c], 0xf
cmp dword [eax + 0x18], 8
jb 0x4226b0
mov eax, dword [eax + 4]
jmp 0x4226b3
add eax, 4
push eax
call fcn.004a9af1
add esp, 8
test eax, eax
sete byte [esp + 0x17]
mov dword [esp + 0x68], edi
cmp dword [esp + 0x58], 8
jb 0x4226db
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004993dd
add esp, 4
cmp byte [esp + 0x17], bl
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
je 0x422712
push str.set_Create_Shotcut_is_false__
mov ecx, 0x527b30
call fcn.00449000
mov edx, dword [ebp + 8]
add esp, 4
mov dword [edx + 0x14ec], ebx
jmp 0x4227a4
sub esp, 0x1c
mov edx, str.selector_shortcut
mov eax, esp
mov dword [esp + 0x3c], esp
call fcn.00411be0
mov dword [esp + 0x84], 0x10
push 0x52c1fc
mov dword [esp + 0x88], edi
lea esi, [esp + 0x60]
call fcn.00411540
mov dword [esp + 0x68], 0x11
cmp dword [eax + 0x18], 8
jb 0x422758
mov eax, dword [eax + 4]
jmp 0x42275b
add eax, 4
push eax
push str.set_Create_Shotcut_is_true_____s_
mov ecx, 0x527b30
call fcn.00449000
add esp, 8
mov dword [esp + 0x68], edi
cmp dword [esp + 0x58], 8
jb 0x422786
mov eax, dword [esp + 0x44]
push eax
call fcn.004993dd
add esp, 4
mov ecx, dword [ebp + 8]
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
mov dword [ecx + 0x14ec], 1
mov ecx, dword [ebp + 8]
push ebx
call fcn.0049d4d9
xor eax, eax
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc