Function at 0x43b134
Capabilities:
Check if file exists
Get common file path
Get file attributes
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x668
mov eax, dword [0x4434f4]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
mov dword [ebp - 0x640], ecx
mov dword [ebp - 0x63c], eax
mov dword [ebp - 0x630], ebx
mov dword [ebp - 0x634], ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ebx
mov dword [ebp - 0x628], edi
test eax, eax
je 0x43b18a
push 0x40aad0
push eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x43b19d
call fcn.0041fa39
test eax, eax
jne 0x43b19d
mov dword [ebp - 0x634], 1
mov dword [ebp - 0x638], ebx
mov dword [ebp - 0x62c], ebx
test esi, esi
jne 0x43b1b7
mov eax, 0x80004003
jmp 0x43bdca
push 0x208
call fcn.0044183a
mov dword [ebp - 0x644], eax
pop ecx
test eax, eax
jne 0x43b1d6
mov eax, 0x8007000e
jmp 0x43bdca
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ebx, eax
test ebx, ebx
jne 0x43b216
push dword [ebp - 0x644]
call fcn.0041fb3c
pop ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x43b203
push 0x57
pop eax
test eax, eax
jle 0x43bdca
movzx eax, ax
or eax, 0x80070000
jmp 0x43bdca
cmp ebx, 0x104
jbe 0x43b254
push dword [ebp - 0x644]
call fcn.00441807
pop ecx
xor ecx, ecx
lea eax, [ebx + 1]
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044183a
mov dword [ebp - 0x644], eax
pop ecx
test eax, eax
je 0x43b1cc
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, esi
call fcn.0041f47f
push 0x5c
pop ecx
test eax, eax
je 0x43b2ad
push ecx
push esi
call dword [sym.imp.msvcrt.dll_wcsrchr]
mov ebx, 0x103
mov edx, ebx
pop ecx
pop ecx
lea ecx, [ebp - 0x214]
test eax, eax
je 0x43b285
push esi
call fcn.0040c010
jmp 0x43b301
push dword [ebp - 0x644]
call fcn.0040c010
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push esi
mov edx, ebx
lea ecx, [ebp - 0x214]
call fcn.0040c045
jmp 0x43b301
push dword [ebp - 0x644]
mov edx, 0x102
lea ecx, [ebp - 0x214]
call fcn.0040c010
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov ebx, 0x103
lea ecx, [ebp - 0x214]
push esi
mov edx, ebx
call fcn.0041fb3c
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43bdc5
test al, 0x10
jne 0x43bdc5
mov eax, dword [ebp - 0x63c]
test eax, eax
je 0x43b357
push 0x40a788
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b357
push 0x202
call fcn.0044183a
mov esi, eax
mov dword [ebp - 0x638], esi
pop ecx
test esi, esi
je 0x43b1cc
push 0x40aa90
push 0x40aa54
push 0x40a79c
push 0x100
push esi
call fcn.0040c0b5
add esp, 0x14
jmp 0x43b359
mov esi, edi
cmp dword [ebp + 0x10], edi
je 0x43b36b
push ecx
push 0x40a7a8
push 8
call fcn.0041fbd1
mov eax, dword [ebp - 0x640]
cmp dword [eax + 0x10], edi
jne 0x43b439
lea eax, [ebp - 0x214]
push 0x3a
push eax
call dword [sym.imp.msvcrt.dll_wcschr]
pop ecx
pop ecx
test eax, eax
jne 0x43b430
lea eax, [ebp - 0x214]
push 0x40a7f4
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
jne 0x43b430
push dword [ebp - 0x644]
mov edx, 0x102
lea ecx, [ebp - 0x41c]
call fcn.0040c010
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push ecx
lea eax, [ebp - 0x648]
mov edx, ebx
push eax
lea ecx, [ebp - 0x41c]
call fcn.0040c131
test eax, eax
js 0x43b40c
push ecx
lea eax, [ebp - 0x214]
mov edx, ebx
push eax
mov eax, dword [ebp - 0x648]
sub edx, eax
push ecx
lea ecx, [ebp - 0x41c]
lea ecx, [ecx + eax*2]
call fcn.0040c197
lea eax, [ebp - 0x214]
push 0x5c
push eax
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x43b449
lea eax, [ebp - 0x41c]
push eax
lea ecx, [ebp - 0x214]
jmp 0x43b442
lea eax, [ebp - 0x214]
push eax
jmp 0x43b43c
push dword [eax + 0x10]
lea ecx, [ebp - 0x41c]
mov edx, ebx
call fcn.0040c010
lea eax, [ebp - 0x41c]
push 0x5c
push eax
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x43b463
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x41c]
mov edx, 0x104
push eax
lea ecx, [ebp - 0x624]
call fcn.0040c010
test eax, eax
js 0x43b4d5
push 0x5c
pop esi
lea ecx, [ebp - 0x624]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x630]
jne 0x43b48a
sub ecx, edx
sar ecx, 1
je 0x43b4b9
cmp word [ebp + ecx*2 - 0x626], si
jne 0x43b4b9
test ecx, ecx
je 0x43b4b9
xor eax, eax
mov word [ebp + ecx*2 - 0x626], ax
jmp 0x43b481
lea eax, [ebp - 0x624]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, dword [ebp - 0x638]
cmp eax, 0xffffffff
je 0x43b4d5
test al, 0x10
jne 0x43b4e8
push dword [ebp - 0x644]
mov edx, ebx
lea ecx, [ebp - 0x41c]
call fcn.0040c010
mov ecx, dword [ebp - 0x640]
lea eax, [ebp - 0x41c]
push eax
call fcn.0043691e
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor eax, eax
push ecx
mov ebx, eax
mov dword [ebp - 0x64c], eax
push ecx
lea ecx, [ebp - 0x214]
mov dword [ebp - 0x650], ebx
call fcn.00422f85
mov dword [ebp - 0x630], eax
cmp eax, 0xffffffff
je 0x43bc96
cmp dword [ebp - 0x634], ebx
mov ebx, eax
je 0x43b56e
xor eax, eax
mov ecx, ebx
mov dword [ebp - 0x654], eax
lea eax, [ebp - 0x654]
push eax
call fcn.00438468
test eax, eax
jne 0x43b56e
test esi, esi
je 0x43b562
push esi
call fcn.00441807
pop ecx
mov esi, dword [ebp - 0x654]
mov dword [ebp - 0x638], esi
xor eax, eax
push eax
push eax
push dword [ebp - 0x63c]
push ebx
call fcn.0041fb3c
mov dword [ebp - 0x630], eax
test eax, eax
jns 0x43b5c8
test esi, esi
je 0x43b5c0
push 0x40aa68
push esi
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b5ba
push 0x40aa68
push dword [ebp - 0x630]
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43b5c8
mov eax, dword [ebp - 0x630]
mov edi, eax
mov dword [ebp - 0x628], eax
cmp dword [ebp - 0x634], 0
je 0x43b62a
xor eax, eax
push eax
push eax
push 0x40a9a0
push ebx
call fcn.0043921b
mov dword [ebp - 0x630], eax
test eax, eax
jns 0x43b62a
test esi, esi
je 0x43b622
push 0x40aa68
push esi
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b61c
push 0x40aa68
push dword [ebp - 0x630]
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43b62a
mov eax, dword [ebp - 0x630]
mov edi, eax
mov dword [ebp - 0x628], edi
lea eax, [ebp - 0x650]
push eax
push dword [ebp - 0x63c]
lea ecx, [ebp - 0x214]
push ebx
call fcn.00438826
mov esi, eax
test esi, esi
js 0x43bc7f
cmp dword [ebp - 0x634], 0
je 0x43b67a
lea eax, [ebp - 0x650]
push eax
push 0x40a9a0
push ebx
lea ecx, [ebp - 0x214]
call fcn.00438826
test eax, eax
jns 0x43b67a
mov edi, eax
mov dword [ebp - 0x628], edi
lea eax, [ebp - 0x62c]
mov ecx, ebx
push eax
push dword [ebp - 0x63c]
call fcn.00438362
mov esi, eax
mov dword [ebp - 0x630], esi
cmp esi, 0xd2af9
je 0x43b6dd
cmp dword [ebp - 0x634], 0
je 0x43b6dd
cmp dword [ebp - 0x62c], 0
je 0x43b6c4
push dword [ebp - 0x62c]
call fcn.00441807
xor eax, eax
pop ecx
mov dword [ebp - 0x62c], eax
lea eax, [ebp - 0x62c]
mov ecx, ebx
push eax
push 0x40a9a0
call fcn.00438362
mov dword [ebp - 0x630], eax
mov esi, dword [ebp - 0x63c]
mov ecx, ebx
push esi
call fcn.00438717
mov dword [ebp - 0x648], ebx
mov eax, esi
test esi, esi
jne 0x43b6fc
mov eax, 0x40aad0
push 1
push 0x40ab30
push eax
lea eax, [ebp - 0x664]
xor ecx, ecx
push eax
lea edx, [ebp - 0x648]
call fcn.00436af8
test eax, eax
je 0x43b72d
mov ecx, dword [ebp - 0x648]
lea edx, [ebp - 0x664]
call fcn.00433b34
mov ecx, dword [ebp - 0x640]
push esi
push ebx
call fcn.004384cb
mov ecx, dword [ebp - 0x640]
xor eax, eax
push eax
push eax
push esi
push ebx
call fcn.004396d9
mov esi, eax
test esi, esi
jns 0x43b78c
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43b784
push 0x40aa90
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b784
push 0x40aa90
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43b78c
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43b7eb
mov ecx, dword [ebp - 0x640]
xor eax, eax
push eax
push eax
push 0x40a9a0
push ebx
call fcn.004396d9
mov esi, eax
test esi, esi
jns 0x43b7eb
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43b7e3
push 0x40aa90
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b7e3
push 0x40aa90
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43b7eb
mov edi, esi
mov dword [ebp - 0x628], edi
xor eax, eax
push eax
push dword [ebp - 0x63c]
push ebx
call fcn.004374d7
mov esi, eax
test esi, esi
jns 0x43b83b
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43b833
push 0x40a95c
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b833
push 0x40a95c
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43b83b
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43b893
xor eax, eax
push eax
push 0x40a9a0
push ebx
call fcn.004374d7
mov esi, eax
test esi, esi
jns 0x43b893
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43b88b
push 0x40a95c
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b88b
push 0x40a95c
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43b893
mov edi, esi
mov dword [ebp - 0x628], edi
mov ecx, dword [ebp - 0x640]
lea eax, [ebp - 0x650]
push eax
xor eax, eax
push eax
push dword [ebp - 0x63c]
push ebx
call fcn.004398a3
mov esi, eax
test esi, esi
jns 0x43b928
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43b91e
push 0x40aa54
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b91e
push 0x40aa54
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
mov esi, dword [ebp - 0x62c]
cmp dword [ebp - 0x634], 0
je 0x43b964
mov ecx, dword [ebp - 0x640]
lea eax, [ebp - 0x650]
push eax
xor eax, eax
push eax
push 0x40a9a0
push ebx
call fcn.004398a3
test eax, eax
jns 0x43b94a
mov edi, eax
mov dword [ebp - 0x628], edi
jmp 0x43b964
mov edi, esi
mov dword [ebp - 0x628], edi
jmp 0x43b8e6
cmp dword [ebp - 0x630], 0xd2af8
jne 0x43b8e6
cmp esi, 1
je 0x43b8e6
mov esi, dword [ebp - 0x62c]
push ecx
push esi
push 4
call fcn.0041fbd1
jmp 0x43b8ec
cmp dword [ebp - 0x630], 0xd2af8
jne 0x43b964
cmp eax, 1
je 0x43b964
push ecx
push esi
push 4
call fcn.0041fbd1
mov ecx, dword [ebp - 0x640]
lea eax, [ebp - 0x650]
push eax
push 1
push dword [ebp - 0x63c]
push ebx
call fcn.004398a3
mov esi, eax
test esi, esi
jns 0x43b9f7
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43b9ed
push 0x40aa28
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43b9ed
push 0x40aa28
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
mov esi, dword [ebp - 0x62c]
cmp dword [ebp - 0x634], 0
je 0x43ba33
mov ecx, dword [ebp - 0x640]
lea eax, [ebp - 0x650]
push eax
push 1
push 0x40a9a0
push ebx
call fcn.004398a3
test eax, eax
jns 0x43ba19
mov edi, eax
mov dword [ebp - 0x628], edi
jmp 0x43ba33
mov edi, esi
mov dword [ebp - 0x628], edi
jmp 0x43b9b6
cmp dword [ebp - 0x630], 0xd2af8
jne 0x43b9b6
cmp esi, 1
je 0x43b9b6
mov esi, dword [ebp - 0x62c]
push ecx
push esi
push 4
call fcn.0041fbd1
jmp 0x43b9bc
cmp dword [ebp - 0x630], 0xd2af8
jne 0x43ba33
cmp eax, 1
je 0x43ba33
push ecx
push esi
push 4
call fcn.0041fbd1
push dword [ebp - 0x63c]
push ebx
call fcn.004376e1
mov esi, eax
test esi, esi
jns 0x43ba80
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43ba78
push 0x40a9c0
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43ba78
push 0x40a9c0
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43ba80
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43baa0
push 0x40a9a0
push ebx
call fcn.004376e1
test eax, eax
jns 0x43baa0
mov edi, eax
mov dword [ebp - 0x628], edi
push 1
push dword [ebp - 0x63c]
push ebx
call fcn.004374d7
mov esi, eax
test esi, esi
jns 0x43baef
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43bae7
push 0x40a9f8
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43bae7
push 0x40a9f8
push esi
push 0x40a800
push 3
call fcn.0041fb3c
add esp, 0x10
jmp 0x43baef
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43bb11
push 1
push 0x40a9a0
push ebx
call fcn.004374d7
test eax, eax
jns 0x43bb11
mov edi, eax
mov dword [ebp - 0x628], edi
mov eax, dword [0x443678]
mov ecx, dword [ebp - 0x640]
and eax, 8
push eax
push 1
push dword [ebp - 0x63c]
push ebx
call fcn.004396d9
mov esi, eax
test esi, esi
jns 0x43bb6f
mov eax, dword [ebp - 0x638]
test eax, eax
je 0x43bb67
push 0x40a984
push eax
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
je 0x43bb67
push 0x40a984
push esi
push 0x40a800
push 3
call fcn.0041ea5f
add esp, 0x10
jmp 0x43bb6f
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43bba0
mov eax, dword [0x443678]
mov ecx, dword [ebp - 0x640]
and eax, 8
push eax
push 1
push 0x40a9a0
push ebx
call fcn.004396d9
test eax, eax
jns 0x43bba0
mov edi, eax
mov dword [ebp - 0x628], edi
mov esi, dword [ebp - 0x63c]
mov ecx, ebx
push esi
call fcn.0043905f
test eax, eax
jns 0x43bbba
mov edi, eax
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43bbdb
push 0x40a9a0
mov ecx, ebx
call fcn.0043905f
test eax, eax
jns 0x43bbdb
mov edi, eax
mov dword [ebp - 0x628], edi
mov eax, dword [0x443678]
and eax, 8
push eax
push 1
push esi
push ebx
call fcn.0043921b
mov esi, eax
test esi, esi
jns 0x43bbfb
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43bc28
mov eax, dword [0x443678]
and eax, 8
push eax
push 1
push 0x40a9a0
push ebx
call fcn.0043921b
mov esi, eax
test esi, esi
jns 0x43bc28
mov edi, esi
mov dword [ebp - 0x628], edi
test byte [0x443678], 8
jne 0x43bc87
mov esi, dword [ebp - 0x63c]
mov ecx, dword [ebp - 0x640]
push esi
push ebx
call fcn.0043866e
test eax, eax
jns 0x43bc50
mov edi, eax
mov dword [ebp - 0x628], edi
push esi
push ebx
call fcn.00438532
mov esi, eax
test esi, esi
jns 0x43bc65
mov edi, esi
mov dword [ebp - 0x628], edi
cmp dword [ebp - 0x634], 0
je 0x43bc87
push 0x40a9a0
push ebx
call fcn.00438532
mov esi, eax
test esi, esi
jns 0x43bc87
mov edi, esi
mov dword [ebp - 0x628], edi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov ebx, dword [ebp - 0x650]
jmp 0x43bccb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x43bca7
push 0x57
pop esi
test esi, esi
jle 0x43bcb2
movzx esi, si
or esi, 0x80070000
push esi
lea eax, [ebp - 0x214]
push eax
push 0x40a854
push 2
pop eax
push eax
call fcn.0041ea5f
add esp, 0x10
push dword [ebp - 0x644]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test esi, esi
js 0x43bd07
test edi, edi
js 0x43bd07
call fcn.0041fb8b
cmp dword [0x443678], 0
je 0x43bd53
call fcn.0041fb8b
movzx edi, byte [0x443678]
shr edi, 3
and edi, 1
or edi, 0xd2af8
jmp 0x43bd4d
push edi
lea eax, [ebp - 0x214]
push eax
push 0x40a888
push 2
pop eax
push eax
call fcn.0041fb3c
add esp, 0x10
call fcn.0041fb8b
cmp dword [0x443678], 0
je 0x43bd47
call fcn.0041fb8b
mov edi, dword [0x443678]
shr edi, 3
and edi, 1
or edi, 0xc00d2afa
jmp 0x43bd4d
test esi, esi
jns 0x43bd53
mov edi, esi
mov dword [ebp - 0x628], edi
push dword [ebp - 0x644]
call fcn.00441807
mov eax, dword [ebp - 0x638]
pop ecx
test eax, eax
je 0x43bd70
push eax
call fcn.00441807
pop ecx
mov eax, dword [ebp - 0x62c]
test eax, eax
je 0x43bd81
push eax
call fcn.00441807
pop ecx
call fcn.0041fb3a
mov dword [0x443674], eax
mov dword [0x44367c], 1
test ebx, ebx
je 0x43bdc1
xor edi, edi
mov esi, dword [ebx]
cmp dword [ebx + 4], edi
je 0x43bdae
push dword [ebx + 4]
call fcn.00441807
pop ecx
mov dword [ebx + 4], edi
push ebx
call fcn.00441835
mov ebx, esi
pop ecx
test esi, esi
jne 0x43bd9b
mov edi, dword [ebp - 0x628]
mov eax, edi
jmp 0x43bdca
mov eax, 0x80070002
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041fb3c
mov esp, ebp
pop ebp
ret 0xc