Function at 0x406440
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x43ed6b
mov eax, dword fs:[0]
push eax
sub esp, 0x210
mov eax, dword [0x451c14]
xor eax, esp
mov dword [esp + 0x20c], eax
push ebp
push edi
mov eax, dword [0x451c14]
xor eax, esp
push eax
lea eax, [esp + 0x21c]
mov dword fs:[0], eax
test ebx, ebx
mov edi, ecx
mov dword [esp + 0x14], edi
je 0x406706
test edi, edi
je 0x406706
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x406494
sub eax, edx
sar eax, 1
je 0x406706
mov eax, edi
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4064b0
sub eax, edx
sar eax, 1
je 0x406706
push 0xff
push edi
lea eax, [esp + 0x20]
push pe_nt_image_headers32
push eax
call fcn.00426b21
add esp, 0x10
cmp byte [esp + 0x22c], 0
je 0x4064ff
lea ecx, [esp + 0x18]
push 0x2e
push ecx
call fcn.00426fc3
add esp, 8
test eax, eax
je 0x4064ff
mov word [eax], 0
xor ebp, ebp
mov edi, 0x453268
lea edx, [esp + 0x18]
push edx
push edi
call fcn.004273ec
add esp, 8
test eax, eax
je 0x40652b
add edi, 0x208
add ebp, 1
cmp edi, 0x4581a0
jl 0x406506
jmp 0x40654b
mov eax, ebp
imul eax, eax, 0x208
mov ecx, dword [eax + 0x453260]
mov dword [esi + 0x2004], ecx
mov edx, dword [eax + 0x453264]
mov dword [esi + 0x2008], edx
push 0x3ff
lea ecx, [esp + 0x1c]
push ecx
lea eax, [esi + 0x800]
push 0x400
push eax
mov dword [esp + 0x20], eax
call fcn.00426b21
mov al, byte [esp + 0x23c]
add esp, 0x10
test al, al
mov byte [esi + 0x2000], al
je 0x40659c
mov edx, dword [esp + 0x14]
push edx
push ebx
push 0x445094
push 0x400
push esi
call fcn.004276e2
add esp, 0x14
jmp 0x40675b
push 0x4445a4
lea ecx, [esp + 0x10]
call fcn.004025b0
push 0x15
push str.Guide__LANG_ABBR_.pdf
lea ecx, [esp + 0x14]
mov dword [esp + 0x22c], 0
call fcn.004020d0
mov edi, 0x4581a0
lea ebx, [ebx]
mov eax, dword [edi - 8]
cmp eax, dword [esi + 0x2004]
jne 0x406612
mov eax, dword [esp + 0xc]
cmp dword [eax - 0xc], 0
jl 0x406612
push str._LANG_ABBR_
push eax
call fcn.00427573
add esp, 8
test eax, eax
je 0x406612
sub eax, dword [esp + 0xc]
sar eax, 1
cmp eax, 0xffffffff
jle 0x406612
push edi
push str._LANG_ABBR_
lea ecx, [esp + 0x14]
push ecx
call fcn.00405290
add edi, 0x208
cmp edi, 0x45d0d8
jl 0x4065d0
push 0x800
push 0
push esi
call fcn.00428ee0
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
push edx
push ebp
push ebx
push str._s_s_s
push 0x400
push esi
call fcn.004276e2
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x24
push esi
call edi
test eax, eax
jne 0x406730
push 0x800
push eax
push esi
call fcn.00428ee0
push str.start_here.htm
push ebp
push ebx
push str._s_s_s
push 0x400
push esi
call fcn.004276e2
add esp, 0x24
push esi
call edi
test eax, eax
jne 0x406730
push 0x800
push eax
push esi
call fcn.00428ee0
push str.troubleshooting.htm
push ebp
push ebx
push str._s_s_s
push 0x400
push esi
call fcn.004276e2
add esp, 0x24
push esi
call edi
test eax, eax
jne 0x406730
push ebp
push ebx
push str.Target_manual_file_was_not_found_under___s_s_
mov ecx, 0x463520
call fcn.0040bf70
push 0x800
push 0
push esi
call fcn.00428ee0
mov dword [esp + 0x23c], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406706
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0x21c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.0042683e
add esp, 0x21c
ret 4
mov dword [esp + 0x224], 0xffffffff
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40675b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x2008]
mov edx, dword [esi + 0x2004]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
push str.Add___s____0x_04x_____d_
mov ecx, 0x463520
call fcn.0040bf70
add esp, 0x10
mov al, 1
jmp 0x406708