Function at 0x4227d0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f8bfd
mov eax, dword fs:[0]
push eax
sub esp, 0xa80
mov eax, dword [0x78ca90]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movzx eax, word [0x6ebf58]
test eax, eax
jne 0x422812
mov dword [ebp - 0x9dc], 0
jmp 0x42286c
mov dword [ebp - 0x95c], 0x6ebf58
mov ecx, dword [ebp - 0x95c]
add ecx, 2
mov dword [ebp - 0x9f8], ecx
mov edx, dword [ebp - 0x95c]
mov ax, word [edx]
mov word [ebp - 0x98a], ax
add dword [ebp - 0x95c], 2
cmp word [ebp - 0x98a], 0
jne 0x42282b
mov ecx, dword [ebp - 0x95c]
sub ecx, dword [ebp - 0x9f8]
sar ecx, 1
mov dword [ebp - 0xa4c], ecx
mov edx, dword [ebp - 0xa4c]
mov dword [ebp - 0x9dc], edx
mov eax, dword [ebp - 0x9dc]
push eax
push 0x6ebf58
mov ecx, dword [ebp + 0xc]
call fcn.00424f40
cmp dword [ebp + 8], 0
je 0x4228d5
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x958], ecx
mov edx, dword [ebp - 0x958]
add edx, 2
mov dword [ebp - 0x9f4], edx
mov eax, dword [ebp - 0x958]
mov cx, word [eax]
mov word [ebp - 0x992], cx
add dword [ebp - 0x958], 2
cmp word [ebp - 0x992], 0
jne 0x42289e
mov edx, dword [ebp - 0x958]
sub edx, dword [ebp - 0x9f4]
sar edx, 1
mov dword [ebp - 0xa00], edx
jne 0x42290b
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x14], 8
jb 0x4228f7
mov ecx, dword [ebp - 0xa80]
mov dword [ebp - 0x99c], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x99c], eax
jmp 0x422900
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x99c], ecx
mov eax, dword [ebp - 0x99c]
jmp 0x423498
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x834], 0
push 0
push 0
lea ecx, [ebp - 0x848]
call fcn.00424b60
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x42299b
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x14], 8
jb 0x422965
mov ecx, dword [ebp - 0xa7c]
mov dword [ebp - 0x9a4], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x9a4], eax
jmp 0x42296e
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x9a4], ecx
mov edx, dword [ebp - 0x9a4]
mov dword [ebp - 0xa08], edx
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x848]
call fcn.00424b60
mov eax, dword [ebp - 0xa08]
jmp 0x423498
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x860]
call fcn.00421950
mov byte [ebp - 4], 1
push 0x6ebf58
lea ecx, [ebp - 0x8a8]
call fcn.00421950
mov byte [ebp - 4], 2
movzx ecx, word [0x6ec07c]
test ecx, ecx
jne 0x4229d9
mov dword [ebp - 0x9d0], 0
jmp 0x422a33
mov dword [ebp - 0x964], 0x6ec07c
mov edx, dword [ebp - 0x964]
add edx, 2
mov dword [ebp - 0xa10], edx
mov eax, dword [ebp - 0x964]
mov cx, word [eax]
mov word [ebp - 0x996], cx
add dword [ebp - 0x964], 2
cmp word [ebp - 0x996], 0
jne 0x4229f2
mov edx, dword [ebp - 0x964]
sub edx, dword [ebp - 0xa10]
sar edx, 1
mov dword [ebp - 0xa18], edx
mov eax, dword [ebp - 0xa18]
mov dword [ebp - 0x9d0], eax
mov ecx, dword [ebp - 0x9d0]
push ecx
push 0xffffffffffffffff
push 0x6ec07c
lea ecx, [ebp - 0x860]
call fcn.00425cc0
mov dword [ebp - 0x940], eax
cmp dword [ebp - 0x940], 0xffffffff
je 0x422ae8
push 0xffffffffffffffff
mov edx, dword [ebp - 0x940]
push edx
lea eax, [ebp - 0x8f0]
push eax
lea ecx, [ebp - 0x860]
call fcn.00425e00
mov dword [ebp - 0xa20], eax
mov ecx, dword [ebp - 0xa20]
push ecx
lea ecx, [ebp - 0x8a8]
call fcn.00421a00
push 0
push 1
lea ecx, [ebp - 0x8f0]
call fcn.00424b60
mov edx, dword [ebp - 0x940]
push edx
push 0
lea eax, [ebp - 0x908]
push eax
lea ecx, [ebp - 0x860]
call fcn.00425e00
mov dword [ebp - 0xa28], eax
mov ecx, dword [ebp - 0xa28]
push ecx
lea ecx, [ebp - 0x860]
call fcn.00421a00
push 0
push 1
lea ecx, [ebp - 0x908]
call fcn.00424b60
jmp 0x422c09
movzx edx, word [0x6ec084]
test edx, edx
jne 0x422aff
mov dword [ebp - 0x9d8], 0
jmp 0x422b59
mov dword [ebp - 0x968], 0x6ec084
mov eax, dword [ebp - 0x968]
add eax, 2
mov dword [ebp - 0xa30], eax
mov ecx, dword [ebp - 0x968]
mov dx, word [ecx]
mov word [ebp - 0x994], dx
add dword [ebp - 0x968], 2
cmp word [ebp - 0x994], 0
jne 0x422b18
mov eax, dword [ebp - 0x968]
sub eax, dword [ebp - 0xa30]
sar eax, 1
mov dword [ebp - 0xa38], eax
mov ecx, dword [ebp - 0xa38]
mov dword [ebp - 0x9d8], ecx
mov edx, dword [ebp - 0x9d8]
push edx
push 0xffffffffffffffff
push 0x6ec084
lea ecx, [ebp - 0x860]
call fcn.00425cc0
mov dword [ebp - 0x940], eax
cmp dword [ebp - 0x940], 0xffffffff
je 0x422c09
push 0xffffffffffffffff
mov eax, dword [ebp - 0x940]
push eax
lea ecx, [ebp - 0x938]
push ecx
lea ecx, [ebp - 0x860]
call fcn.00425e00
mov dword [ebp - 0xa40], eax
mov edx, dword [ebp - 0xa40]
push edx
lea ecx, [ebp - 0x8a8]
call fcn.00421a00
push 0
push 1
lea ecx, [ebp - 0x938]
call fcn.00424b60
mov eax, dword [ebp - 0x940]
push eax
push 0
lea ecx, [ebp - 0x920]
push ecx
lea ecx, [ebp - 0x860]
call fcn.00425e00
mov dword [ebp - 0xa48], eax
mov edx, dword [ebp - 0xa48]
push edx
lea ecx, [ebp - 0x860]
call fcn.00421a00
push 0
push 1
lea ecx, [ebp - 0x920]
call fcn.00424b60
cmp dword [ebp - 0x84c], 8
jb 0x422c2c
mov eax, dword [ebp - 0xa84]
mov dword [ebp - 0x9ac], eax
mov ecx, dword [ebp - 0x860]
mov dword [ebp - 0x9ac], ecx
jmp 0x422c38
lea edx, [ebp - 0x860]
mov dword [ebp - 0x9ac], edx
mov eax, dword [ebp - 0x9ac]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov dword [ebp - 0x9b4], eax
mov ecx, dword [ebp - 0x9b4]
movzx edx, word [ecx]
test edx, edx
jne 0x422c64
mov dword [ebp - 0x9e0], 0
jmp 0x422cc0
mov eax, dword [ebp - 0x9b4]
mov dword [ebp - 0x950], eax
mov ecx, dword [ebp - 0x950]
add ecx, 2
mov dword [ebp - 0xa50], ecx
mov edx, dword [ebp - 0x950]
mov ax, word [edx]
mov word [ebp - 0x9b6], ax
add dword [ebp - 0x950], 2
cmp word [ebp - 0x9b6], 0
jne 0x422c7f
mov ecx, dword [ebp - 0x950]
sub ecx, dword [ebp - 0xa50]
sar ecx, 1
mov dword [ebp - 0xa58], ecx
mov edx, dword [ebp - 0xa58]
mov dword [ebp - 0x9e0], edx
mov eax, dword [ebp - 0x9e0]
push eax
mov ecx, dword [ebp - 0x9b4]
push ecx
lea ecx, [ebp - 0x848]
call fcn.00424f40
cmp dword [ebp - 0x834], 8
jb 0x422cfc
mov edx, dword [ebp - 0xa8c]
mov dword [ebp - 0x9bc], edx
mov eax, dword [ebp - 0x848]
mov dword [ebp - 0x9bc], eax
jmp 0x422d08
lea ecx, [ebp - 0x848]
mov dword [ebp - 0x9bc], ecx
mov edx, dword [ebp - 0x9bc]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
lea ecx, [ebp - 0x8d8]
call fcn.00421950
mov byte [ebp - 4], 3
cmp dword [ebp - 0x8c8], 0
jne 0x422d3a
mov dword [ebp - 0x9e8], 1
jmp 0x422d44
mov dword [ebp - 0x9e8], 0
movzx eax, byte [ebp - 0x9e8]
test eax, eax
je 0x422dd8
mov ecx, dword [ebp + 0x10]
movzx edx, word [ecx]
test edx, edx
jne 0x422d69
mov dword [ebp - 0x9f0], 0
jmp 0x422dc2
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x960], eax
mov ecx, dword [ebp - 0x960]
add ecx, 2
mov dword [ebp - 0x9fc], ecx
mov edx, dword [ebp - 0x960]
mov ax, word [edx]
mov word [ebp - 0x998], ax
add dword [ebp - 0x960], 2
cmp word [ebp - 0x998], 0
jne 0x422d81
mov ecx, dword [ebp - 0x960]
sub ecx, dword [ebp - 0x9fc]
sar ecx, 1
mov dword [ebp - 0xa24], ecx
mov edx, dword [ebp - 0xa24]
mov dword [ebp - 0x9f0], edx
mov eax, dword [ebp - 0x9f0]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x848]
call fcn.00424d10
mov edx, 2
imul eax, edx, 0
mov dword [ebp - 0x9ec], eax
cmp dword [ebp - 0x9ec], 0x208
jae 0x422df4
jmp 0x422df9
call fcn.005cf37a
xor ecx, ecx
mov edx, dword [ebp - 0x9ec]
mov word [ebp + edx - 0x628], cx
mov eax, 2
imul ecx, eax, 0
xor edx, edx
mov word [ebp + ecx - 0x420], dx
cmp dword [ebp - 0x84c], 8
jb 0x422e3e
mov eax, dword [ebp - 0xa78]
mov dword [ebp - 0x9c4], eax
mov ecx, dword [ebp - 0x860]
mov dword [ebp - 0x9c4], ecx
jmp 0x422e4a
lea edx, [ebp - 0x860]
mov dword [ebp - 0x9c4], edx
mov eax, dword [ebp - 0x9c4]
mov dword [ebp - 0x9b0], eax
lea ecx, [ebp - 0x628]
mov dword [ebp - 0x974], ecx
mov edx, dword [ebp - 0x974]
mov dword [ebp - 0xa68], edx
mov eax, dword [ebp - 0x9b0]
mov cx, word [eax]
mov word [ebp - 0x952], cx
mov edx, dword [ebp - 0x974]
mov ax, word [ebp - 0x952]
mov word [edx], ax
mov ecx, dword [ebp - 0x9b0]
add ecx, 2
mov dword [ebp - 0x9b0], ecx
mov edx, dword [ebp - 0x974]
add edx, 2
mov dword [ebp - 0x974], edx
cmp word [ebp - 0x952], 0
jne 0x422e6e
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [ebp - 0x628]
mov dword [ebp - 0x944], ecx
mov edx, dword [ebp - 0x944]
add edx, 2
mov dword [ebp - 0xa2c], edx
mov eax, dword [ebp - 0x944]
mov cx, word [eax]
mov word [ebp - 0x97a], cx
add dword [ebp - 0x944], 2
cmp word [ebp - 0x97a], 0
jne 0x422ede
mov edx, dword [ebp - 0x944]
sub edx, dword [ebp - 0xa2c]
sar edx, 1
mov dword [ebp - 0xa04], edx
je 0x422f83
lea eax, [ebp - 0x628]
mov dword [ebp - 0x978], eax
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x970], ecx
mov edx, dword [ebp - 0x970]
mov dword [ebp - 0xa88], edx
mov eax, dword [ebp - 0x978]
mov cx, word [eax]
mov word [ebp - 0x96a], cx
mov edx, dword [ebp - 0x970]
mov ax, word [ebp - 0x96a]
mov word [edx], ax
mov ecx, dword [ebp - 0x978]
add ecx, 2
mov dword [ebp - 0x978], ecx
mov edx, dword [ebp - 0x970]
add edx, 2
mov dword [ebp - 0x970], edx
cmp word [ebp - 0x96a], 0
jne 0x422f39
jmp 0x422fca
push 0x104
lea eax, [ebp - 0x830]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x830]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea edx, [ebp - 0x830]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x6ec088
lea eax, [ebp - 0x830]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov byte [ebp - 0x939], 0
mov edx, 2
imul eax, edx, 0
mov dword [ebp - 0x9d4], eax
cmp dword [ebp - 0x9d4], 0x208
jae 0x422fed
jmp 0x422ff2
call fcn.005cf37a
xor ecx, ecx
mov edx, dword [ebp - 0x9d4]
mov word [ebp + edx - 0x218], cx
mov dword [ebp - 0x868], 0
mov dword [ebp - 0x864], 0
push 0
push 0
lea ecx, [ebp - 0x878]
call fcn.00424b60
mov byte [ebp - 4], 4
call sym.LSAdmin.exe_wchar_t_const____cdecl_ESRILocale::GetUILangIDString_void_
push eax
lea ecx, [ebp - 0x890]
call fcn.00421950
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x880]
mov dword [ebp - 0xa44], eax
cmp dword [ebp - 0xa44], 0
je 0x4232af
lea ecx, [ebp - 0x890]
push ecx
lea ecx, [ebp - 0x878]
call fcn.00421ad0
call sym.LSAdmin.exe_wchar_t_const____cdecl_ESRILocale::GetUICountryIDString_void_
push eax
lea ecx, [ebp - 0x8c0]
call fcn.00421950
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x8b0]
mov dword [ebp - 0xa0c], edx
cmp dword [ebp - 0xa0c], 0
je 0x4231e1
movzx eax, word [0x6ebf90]
test eax, eax
jne 0x4230ae
mov dword [ebp - 0x9e4], 0
jmp 0x423108
mov dword [ebp - 0x948], 0x6ebf90
mov ecx, dword [ebp - 0x948]
add ecx, 2
mov dword [ebp - 0xa34], ecx
mov edx, dword [ebp - 0x948]
mov ax, word [edx]
mov word [ebp - 0x97c], ax
add dword [ebp - 0x948], 2
cmp word [ebp - 0x97c], 0
jne 0x4230c7
mov ecx, dword [ebp - 0x948]
sub ecx, dword [ebp - 0xa34]
sar ecx, 1
mov dword [ebp - 0xa14], ecx
mov edx, dword [ebp - 0xa14]
mov dword [ebp - 0x9e4], edx
mov eax, dword [ebp - 0x9e4]
push eax
push 0x6ebf90
lea ecx, [ebp - 0x878]
call fcn.00424d10
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x8c0]
push ecx
lea ecx, [ebp - 0x878]
call fcn.00424bf0
cmp dword [ebp - 0x864], 8
jb 0x423158
mov edx, dword [ebp - 0xa70]
mov dword [ebp - 0x980], edx
mov eax, dword [ebp - 0x878]
mov dword [ebp - 0x980], eax
jmp 0x423164
lea ecx, [ebp - 0x878]
mov dword [ebp - 0x980], ecx
mov edx, dword [ebp - 0x980]
push edx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
cmp dword [ebp - 0x834], 8
jb 0x4231a2
mov edx, dword [ebp - 0xa5c]
mov dword [ebp - 0x9a0], edx
mov eax, dword [ebp - 0x848]
mov dword [ebp - 0x9a0], eax
jmp 0x4231ae
lea ecx, [ebp - 0x848]
mov dword [ebp - 0x9a0], ecx
mov edx, dword [ebp - 0x9a0]
push edx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4231e1
mov byte [ebp - 0x939], 1
movzx eax, byte [ebp - 0x939]
test eax, eax
jne 0x42329c
cmp dword [ebp - 0x87c], 8
jb 0x423213
mov ecx, dword [ebp - 0xa60]
mov dword [ebp - 0x988], ecx
mov edx, dword [ebp - 0x890]
mov dword [ebp - 0x988], edx
jmp 0x42321f
lea eax, [ebp - 0x890]
mov dword [ebp - 0x988], eax
mov ecx, dword [ebp - 0x988]
push ecx
lea edx, [ebp - 0x420]
push edx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
cmp dword [ebp - 0x834], 8
jb 0x42325d
mov ecx, dword [ebp - 0xa64]
mov dword [ebp - 0x9c0], ecx
mov edx, dword [ebp - 0x848]
mov dword [ebp - 0x9c0], edx
jmp 0x423269
lea eax, [ebp - 0x848]
mov dword [ebp - 0x9c0], eax
mov ecx, dword [ebp - 0x9c0]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42329c
mov byte [ebp - 0x939], 1
mov byte [ebp - 4], 5
push 0
push 1
lea ecx, [ebp - 0x8c0]
call fcn.00424b60
movzx edx, byte [ebp - 0x939]
test edx, edx
jne 0x42334a
cmp dword [ebp - 0x834], 8
jb 0x4232e1
mov eax, dword [ebp - 0xa6c]
mov dword [ebp - 0x990], eax
mov ecx, dword [ebp - 0x848]
mov dword [ebp - 0x990], ecx
jmp 0x4232ed
lea edx, [ebp - 0x848]
mov dword [ebp - 0x990], edx
mov eax, dword [ebp - 0x990]
push eax
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42334a
mov ecx, 2
imul edx, ecx, 0
mov dword [ebp - 0x9c8], edx
cmp dword [ebp - 0x9c8], 0x208
jae 0x423335
jmp 0x42333a
call fcn.005cf37a
xor eax, eax
mov ecx, dword [ebp - 0x9c8]
mov word [ebp + ecx - 0x218], ax
movzx edx, word [ebp - 0x218]
test edx, edx
jne 0x423361
mov dword [ebp - 0x9cc], 0
jmp 0x4233bd
lea eax, [ebp - 0x218]
mov dword [ebp - 0x94c], eax
mov ecx, dword [ebp - 0x94c]
add ecx, 2
mov dword [ebp - 0xa54], ecx
mov edx, dword [ebp - 0x94c]
mov ax, word [edx]
mov word [ebp - 0x982], ax
add dword [ebp - 0x94c], 2
cmp word [ebp - 0x982], 0
jne 0x42337c
mov ecx, dword [ebp - 0x94c]
sub ecx, dword [ebp - 0xa54]
sar ecx, 1
mov dword [ebp - 0xa1c], ecx
mov edx, dword [ebp - 0xa1c]
mov dword [ebp - 0x9cc], edx
mov eax, dword [ebp - 0x9cc]
push eax
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00424f40
push 0xffffffffffffffff
push 0
lea edx, [ebp - 0x8a8]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.00424bf0
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x14], 8
jb 0x423408
mov ecx, dword [ebp - 0xa74]
mov dword [ebp - 0x9a8], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x9a8], eax
jmp 0x423411
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x9a8], ecx
mov edx, dword [ebp - 0x9a8]
mov dword [ebp - 0xa3c], edx
mov byte [ebp - 4], 4
push 0
push 1
lea ecx, [ebp - 0x890]
call fcn.00424b60
mov byte [ebp - 4], 3
push 0
push 1
lea ecx, [ebp - 0x878]
call fcn.00424b60
mov byte [ebp - 4], 2
push 0
push 1
lea ecx, [ebp - 0x8d8]
call fcn.00424b60
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0x8a8]
call fcn.00424b60
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x860]
call fcn.00424b60
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x848]
call fcn.00424b60
mov eax, dword [ebp - 0xa3c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005cfbcb
mov esp, ebp
pop ebp
ret