Function at 0x4b0810
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5236dc
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x568c
call fcn.004fe1a0
mov eax, dword [0x5a4aa8]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x4e48], ebx
mov edi, edx
mov dword [ebp - 0x4e4c], 0xd
mov byte [ebp - 0x4e3d], 0
xor eax, eax
mov dword [ebp - 0x4e50], eax
mov dword [ebp - 4], eax
cmp edi, eax
je 0x4b0fa9
cmp dword [edi + 0x6c20], eax
je 0x4b0fa9
lea esi, [edi + 0x400]
mov eax, esi
lea edx, [eax + 2]
jmp 0x4b0890
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b0890
sub eax, edx
sar eax, 1
jne 0x4b08be
push edi
push str.__s__Search_component_fail__Component_Directory_was_empty____
mov ecx, 0x649e50
call fcn.004918f0
add esp, 8
mov eax, 0xd
jmp 0x4b0f8b
push 0x800
push 0
lea eax, [ebp - 0xa1c]
push eax
call fcn.004fd670
add esp, 0xc
push 0
push 0x400
lea ecx, [ebp - 0xa1c]
push ecx
push esi
mov ecx, dword [ebx + 0xfd64]
call fcn.00480760
test eax, eax
je 0x4b090c
push 0x3ff
push esi
push 0x400
lea edx, [ebp - 0xa1c]
push edx
call fcn.004fa71b
add esp, 0x10
lea eax, [ebp - 0xa1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4b0941
lea ecx, [ebp - 0xa1c]
push ecx
push edi
push str.__s__Search_component_fail__Component_Directory_Not_found____s__
mov ecx, 0x649e50
call fcn.004918f0
add esp, 0xc
mov eax, 0xd
jmp 0x4b0f8b
cmp byte [ebp + 8], 0
jne 0x4b0d80
lea esi, [ebp - 0x4e7c]
call fcn.004b8ad0
mov byte [ebp - 4], 1
lea esi, [ebp - 0x2c2c]
call fcn.004aeda0
lea eax, [edi + 0x200]
push 0xff
push eax
push pe_nt_image_headers32
lea edx, [ebp - 0x222c]
push edx
call fcn.004fa71b
push 0xff
lea eax, [ebx + 0x10174]
push eax
push pe_nt_image_headers32
lea ecx, [ebp - 0x1e2c]
push ecx
call fcn.004fa71b
push 0xff
add ebx, 0x10374
push ebx
push pe_nt_image_headers32
lea edx, [ebp - 0x1c2c]
push edx
call fcn.004fa71b
add esp, 0x30
cmp dword [edi + 0x6c24], 0
je 0x4b09f9
mov eax, dword [edi + 0x6c24]
mov ecx, dword [eax + 0x3200]
mov dword [ebp - 0xa28], ecx
add eax, 0x200
push 0xff
push eax
push pe_nt_image_headers32
lea edx, [ebp - 0x242c]
push edx
call fcn.004fa71b
add esp, 0x10
lea esi, [ebp - 0x5698]
call fcn.0049d8e0
mov byte [ebp - 4], 2
mov bl, byte [eax + 0x18]
mov byte [ebp - 4], 1
mov ecx, esi
call fcn.0049d9f0
xor eax, eax
test bl, bl
setne al
add eax, 1
mov dword [ebp - 0xa20], eax
mov eax, dword [ebp - 0x4e48]
mov ecx, dword [eax + 0xfd70]
push ecx
mov edx, dword [eax]
push edx
lea eax, [ebp - 0xa1c]
push eax
lea ecx, [ebp - 0x4e7c]
push ecx
xor ecx, ecx
lea edx, [ebp - 0x2c2c]
call fcn.004b8c20
mov bl, al
mov byte [ebp - 0x4e3d], bl
mov ecx, 0x649e50
test bl, bl
je 0x4b0d2d
lea edx, [ebp - 0x2c2c]
push edx
push str.target_was_found_____s_
call fcn.004918f0
add esp, 8
lea eax, [ebp - 0x222c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b0a83
sub eax, edx
sar eax, 1
je 0x4b0ab4
push 0xff
lea eax, [ebp - 0x222c]
push eax
push pe_nt_image_headers32
lea eax, [edi + 0x200]
push eax
call fcn.004fa71b
add esp, 0x10
cmp dword [edi + 0x6c24], 0
je 0x4b0ce4
push str.Printer
lea esi, [edi + 0x200]
push esi
call fcn.004f9f1e
add esp, 8
test eax, eax
je 0x4b0b01
push str.Image
push esi
call fcn.004f9f1e
add esp, 8
test eax, eax
je 0x4b0b01
push str.NonDevice
push esi
call fcn.004f9f1e
add esp, 8
test eax, eax
jne 0x4b0ce4
mov eax, dword [edi + 0x6c20]
push 0x3ff
lea ecx, [ebp - 0x2c2c]
push ecx
push 0x400
push eax
call fcn.004fa71b
mov eax, dword [edi + 0x6c24]
add eax, 0x600
push 0x3ff
lea edx, [ebp - 0x2c2c]
push edx
push 0x400
push eax
call fcn.004fa71b
mov eax, dword [edi + 0x6c24]
add eax, 0x200
push 0xff
lea ecx, [ebp - 0x242c]
push ecx
push pe_nt_image_headers32
push eax
call fcn.004fa71b
mov edx, dword [edi + 0x6c24]
mov eax, dword [ebp - 0xa28]
mov dword [edx + 0x3200], eax
mov eax, dword [edi + 0x6c24]
add eax, 0x1e00
push 0xff
lea ecx, [ebp - 0x202c]
push ecx
push pe_nt_image_headers32
push eax
call fcn.004fa71b
add esp, 0x40
push str.Printer
push esi
call fcn.004f9f1e
add esp, 8
test eax, eax
jne 0x4b0d3a
mov eax, dword [edi + 0x6c24]
lea edx, [eax + 2]
jmp 0x4b0bc0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b0bc0
sub eax, edx
sar eax, 1
jne 0x4b0bf1
mov eax, dword [edi + 0x6c24]
lea ecx, [eax + 0x200]
push 0xff
push ecx
push pe_nt_image_headers32
push eax
call fcn.004fa71b
add esp, 0x10
mov eax, dword [edi + 0x6c24]
add eax, 0x400
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b0c00
sub eax, edx
sar eax, 1
jne 0x4b0c31
mov eax, dword [edi + 0x6c24]
lea ecx, [eax + 0x400]
push 0xff
push eax
push pe_nt_image_headers32
push ecx
call fcn.004fa71b
add esp, 0x10
mov edx, dword [edi + 0x6c24]
mov al, byte [ebp - 0xa24]
mov byte [edx + 0x3206], al
mov eax, dword [ebp - 0xa20]
mov dword [ebp - 0x4e50], eax
cmp eax, 3
jne 0x4b0c9b
mov eax, dword [edi + 0x6c24]
add eax, 0xe00
push 0x3ff
lea ecx, [ebp - 0x2c2c]
push ecx
push 0x400
push eax
call fcn.004fa71b
mov eax, dword [edi + 0x6c24]
add eax, 0x1600
push 0x3ff
lea edx, [ebp - 0x2c2c]
push edx
push 0x400
push eax
call fcn.004fa71b
add esp, 0x20
mov eax, dword [edi + 0x6c24]
add eax, 0x2200
push 0x3ff
lea ecx, [ebp - 0x1a2c]
push ecx
push 0x400
push eax
call fcn.004fa71b
mov eax, dword [edi + 0x6c24]
add eax, 0x2a00
push 0x3ff
lea edx, [ebp - 0x122c]
push edx
push 0x400
push eax
call fcn.004fa71b
add esp, 0x20
jmp 0x4b0d3a
mov eax, dword [edi + 0x6c20]
add eax, 0x800
push 0x3ff
lea ecx, [ebp - 0x2c2c]
push ecx
push 0x400
push eax
call fcn.004fa71b
mov eax, dword [edi + 0x6c20]
add eax, 0x1800
push 0x3ff
lea edx, [ebp - 0x2c2c]
push edx
push 0x400
push eax
call fcn.004fa71b
add esp, 0x20
jmp 0x4b0d3a
push str.target_was_not_found__
call fcn.004918f0
add esp, 4
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4e7c]
call fcn.004b8b10
test bl, bl
je 0x4b0f7e
push str.Printer
lea eax, [edi + 0x200]
push eax
call fcn.004f9f1e
add esp, 8
test eax, eax
jne 0x4b0f6b
cmp dword [ebp - 0x4e50], 3
je 0x4b0f65
mov ebx, dword [ebp - 0x4e48]
lea esi, [ebp - 0x4e7c]
call fcn.004b8ad0
mov byte [ebp - 4], 3
lea esi, [ebp - 0x4e3c]
call fcn.004aeda0
push 0x200
push 0
lea eax, [ebp - 0x21c]
push eax
call fcn.004fd670
add esp, 0xc
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, ebx
call fcn.004b4a20
push 0xff
lea edx, [edi + 0x200]
push edx
push pe_nt_image_headers32
lea eax, [ebp - 0x443c]
push eax
call fcn.004fa71b
push 0xff
lea ecx, [ebx + 0x10174]
push ecx
push pe_nt_image_headers32
lea edx, [ebp - 0x403c]
push edx
call fcn.004fa71b
push 0xff
add ebx, 0x10374
push ebx
push pe_nt_image_headers32
lea eax, [ebp - 0x3e3c]
push eax
call fcn.004fa71b
add esp, 0x30
cmp dword [edi + 0x6c24], 0
je 0x4b0e52
mov eax, dword [edi + 0x6c24]
mov ecx, dword [eax + 0x3200]
mov dword [ebp - 0x2c38], ecx
add eax, 0x200
push 0xff
push eax
push pe_nt_image_headers32
lea edx, [ebp - 0x463c]
push edx
call fcn.004fa71b
add esp, 0x10
lea esi, [ebp - 0x5698]
call fcn.0049d8e0
mov byte [ebp - 4], 4
mov bl, byte [eax + 0x18]
mov byte [ebp - 4], 3
mov ecx, esi
call fcn.0049d9f0
neg bl
sbb ebx, ebx
add ebx, 2
mov dword [ebp - 0x2c30], ebx
mov eax, dword [ebp - 0x4e48]
mov ecx, dword [eax + 0xfd70]
push ecx
mov edx, dword [eax]
push edx
lea eax, [ebp - 0xa1c]
push eax
lea ecx, [ebp - 0x4e7c]
push ecx
lea ecx, [ebp - 0x21c]
lea edx, [ebp - 0x4e3c]
call fcn.004b8c20
test al, al
je 0x4b0f56
mov eax, dword [ebp - 0x2c30]
sub eax, 1
je 0x4b0f30
sub eax, 1
je 0x4b0f16
sub eax, 1
jne 0x4b0f56
mov eax, dword [edi + 0x6c24]
add eax, 0xe00
push 0x3ff
lea edx, [ebp - 0x4e3c]
push edx
push 0x400
push eax
call fcn.004fa71b
mov edi, dword [edi + 0x6c24]
add edi, 0x1600
push 0x3ff
lea eax, [ebp - 0x4e3c]
push eax
push 0x400
push edi
call fcn.004fa71b
add esp, 0x20
jmp 0x4b0f56
mov edi, dword [edi + 0x6c24]
add edi, 0x1600
push 0x3ff
lea ecx, [ebp - 0x4e3c]
push ecx
jmp 0x4b0f48
mov edi, dword [edi + 0x6c24]
add edi, 0xe00
push 0x3ff
lea edx, [ebp - 0x4e3c]
push edx
push 0x400
push edi
call fcn.004fa71b
add esp, 0x10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4e7c]
call fcn.004b8b10
mov bl, byte [ebp - 0x4e3d]
test bl, bl
jne 0x4b0f74
cmp byte [ebp + 8], bl
je 0x4b0f7e
mov dword [ebp - 0x4e4c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4e4c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.004fa103
mov esp, ebp
pop ebp
ret 4
mov eax, 0x57
jmp 0x4b0f8b