Function at 0x447630
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bab9b
mov eax, dword fs:[0]
push eax
mov eax, 0x146c
call fcn.00472cd0
mov eax, dword [0x4df16c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push dword [ebp + 0x10]
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x1468]
mov edi, dword [ebp + 0xc]
push esi
push eax
mov dword [ebp - 0x1478], 1
call fcn.00447380
push dword [ebp - 0x1468]
mov dword [ebp - 4], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4476a0
xor ebx, ebx
jmp 0x447f26
lea ecx, [ebp - 0x1461]
call fcn.00438060
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x4477a3
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x4476e9
call fcn.004439a0
jmp 0x4476ee
call fcn.0043b9b0
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x218]
lea ecx, [edi + 4]
lea esi, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447710
sub edx, esi
lea eax, [ebp - 0x218]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.00441c30
mov edx, eax
test edx, edx
jne 0x447741
xor ecx, ecx
jmp 0x447755
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x447746
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043a130
mov edx, eax
test edx, edx
jne 0x447780
xor ecx, ecx
push ecx
push edx
lea ecx, [edi + 8]
call fcn.0040d800
jmp 0x447e53
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x447785
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [edi + 8]
call fcn.0040d800
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.00445140
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447859
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x4477ec
call fcn.00444b20
jmp 0x4477f1
call fcn.004425d0
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x420]
lea ecx, [edi + 4]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447811
sub edx, esi
lea eax, [ebp - 0x420]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043a3d0
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.004426b0
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.0043bb70
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
jne 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.00444a40
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x44792c
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x4478bf
call fcn.00443ee0
jmp 0x4478c4
call fcn.0043a590
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x628]
lea ecx, [edi + 4]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4478e4
sub edx, esi
lea eax, [ebp - 0x628]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043a670
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043d5d0
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.00437ea0
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
jne 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.0043e890
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x4479ff
push 0x208
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447992
call fcn.0043fcb0
jmp 0x447997
call fcn.004447a0
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x830]
lea ecx, [edi + 4]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4479b7
sub edx, esi
lea eax, [ebp - 0x830]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.00440030
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043fbd0
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.00438760
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447ab8
push 0x208
lea eax, [ebp - 0xa38]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447a48
call fcn.00441990
jmp 0x447a4d
call fcn.00445300
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0xa38]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0xa38]
lea ecx, [edi + 4]
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447a70
sub edx, esi
lea eax, [ebp - 0xa38]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.004416f0
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043f230
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.004440a0
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447b6e
push 0x208
lea eax, [ebp - 0xc40]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447b01
call fcn.0043ae50
jmp 0x447b06
call fcn.00444ea0
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0xc40]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0xc40]
lea ecx, [edi + 4]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447b26
sub edx, esi
lea eax, [ebp - 0xc40]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043c430
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043d790
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.0043d4f0
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447c28
push 0x208
lea eax, [ebp - 0xe48]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447bb7
call fcn.00442790
jmp 0x447bbc
call fcn.00439090
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0xe48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0xe48]
lea ecx, [edi + 4]
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447be0
sub edx, esi
lea eax, [ebp - 0xe48]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043ad70
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043da30
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.004383e0
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447cde
push 0x208
lea eax, [ebp - 0x1050]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447c71
call fcn.004455a0
jmp 0x447c76
call fcn.00439330
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x1050]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x1050]
lea ecx, [edi + 4]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447c96
sub edx, esi
lea eax, [ebp - 0x1050]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043ba90
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.00437b20
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.0043d090
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447d98
push 0x208
lea eax, [ebp - 0x1258]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447d27
call fcn.00437dc0
jmp 0x447d2c
call fcn.0043cc30
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x1258]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x1258]
lea ecx, [edi + 4]
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447d50
sub edx, esi
lea eax, [ebp - 0x1258]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.00438df0
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043b1d0
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
lea ecx, [ebp - 0x1461]
call fcn.0043e510
push eax
push esi
call fcn.00412950
add esp, 8
test al, al
je 0x447e4b
push 0x208
lea eax, [ebp - 0x1460]
push 0
push eax
call fcn.00494db0
add esp, 0xc
call fcn.00447f80
lea ecx, [ebp - 0x1461]
test eax, eax
je 0x447de1
call fcn.00443fc0
jmp 0x447de6
call fcn.00439a30
push eax
push dword [ebp - 0x1468]
lea eax, [ebp - 0x1460]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x1460]
lea ecx, [edi + 4]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x447e06
sub edx, esi
lea eax, [ebp - 0x1460]
sar edx, 1
push edx
push eax
call fcn.0040d800
lea ecx, [ebp - 0x1461]
call fcn.0043aad0
push eax
mov ecx, edi
call fcn.00412900
lea ecx, [ebp - 0x1461]
call fcn.0043cd10
push eax
lea ecx, [edi + 8]
call fcn.00412900
jmp 0x447e53
xor eax, eax
mov dword [ebp - 0x1478], eax
mov dword [edi + 0xc], 0
cmp dword [0x4df0f8], 0
je 0x447f07
push str.ntdll.dll
mov dword [ebp - 0x1470], 0
xor ebx, ebx
mov dword [ebp - 0x1474], 0
mov dword [ebp - 0x146c], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x447efd
push str.RtlGetNtVersionNumbers
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x447ed1
lea ecx, [ebp - 0x146c]
push ecx
lea ecx, [ebp - 0x1474]
push ecx
lea ecx, [ebp - 0x1470]
push ecx
call eax
movzx eax, word [ebp - 0x146c]
mov ebx, 1
mov dword [ebp - 0x146c], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test ebx, ebx
je 0x447efd
cmp dword [ebp - 0x1470], 5
jne 0x447efd
mov eax, dword [0x508890]
mov ecx, 1
cmp dword [ebp - 0x1474], ecx
cmove eax, ecx
mov dword [0x508890], eax
mov dword [0x4df0f8], 0
cmp dword [0x508890], 0
je 0x447f20
call fcn.004483e0
test eax, eax
je 0x447f20
mov dword [edi + 0xc], 1
mov ebx, dword [ebp - 0x1478]
mov eax, dword [ebp - 0x1468]
or ecx, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x447f4b
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00472a8d
mov esp, ebp
pop ebp
ret 0xc