Function at 0x55a7c0
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5635c8
mov eax, dword fs:[0]
push eax
sub esp, 0x7b8
mov eax, dword [0x5c8810]
xor eax, ebp
mov dword [ebp - 0x28], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x7b0], ecx
push 0xd60
call fcn.005120bc
add esp, 4
mov dword [ebp - 0x794], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x794], 0
je 0x55a827
mov ecx, dword [ebp - 0x794]
call fcn.00411479
mov dword [ebp - 0x7b4], eax
jmp 0x55a831
mov dword [ebp - 0x7b4], 0
mov eax, dword [ebp - 0x7b4]
mov dword [ebp - 0x790], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ebp - 0x790]
mov dword [ecx + 0x10c], edx
push 0x11c
push 0
lea eax, [ebp - 0x754]
push eax
call fcn.00530830
add esp, 0xc
mov dword [ebp - 0x754], 0x11c
lea ecx, [ebp - 0x754]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x55a8bc
push 0x114
push 0
lea edx, [ebp - 0x754]
push edx
call fcn.00530830
add esp, 0xc
mov dword [ebp - 0x754], 0x114
lea eax, [ebp - 0x754]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 0x14], eax
push 0x200
lea ecx, [ebp - 0x42c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jbe 0x55a92e
push 0x590be4
push 0x200
lea edx, [ebp - 0x42c]
push edx
call fcn.005308fb
add esp, 0xc
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x758], eax
cmp dword [ebp - 0x758], 0xffffffff
je 0x55a917
mov ecx, dword [ebp - 0x758]
and ecx, 0x10
jne 0x55a92c
lea edx, [ebp - 0x42c]
push edx
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x24], eax
jmp 0x55a943
lea eax, [ebp - 0x42c]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jbe 0x55a971
push 0
push 0
push 0x200
lea ecx, [ebp - 0x62c]
push ecx
push 0xffffffffffffffff
lea edx, [ebp - 0x42c]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x20], eax
jmp 0x55a97a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
mov dword [ecx + 0xd48], 0x6a
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + 0x10c]
mov dword [eax + 0xd4c], 0x6b
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx + 0x10c]
mov dword [edx + 0xd50], 0x6c
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
mov dword [ecx + 0xd54], 0x6d
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + 0x10c]
mov dword [eax + 0xd58], 0x6e
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx + 0x10c]
mov dword [edx + 0xd5c], 0x6f
push 1
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x62c]
push ecx
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x10c]
call fcn.004118ce
mov dword [ebp - 0x630], eax
push 0x7d0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x10c]
call fcn.00411646
test eax, eax
je 0x55aafe
lea edx, [ebp - 0x75c]
push edx
lea eax, [ebp - 0x768]
push eax
lea ecx, [ebp - 0x764]
push ecx
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x10c]
call fcn.00411af9
mov dword [ebp - 0x630], eax
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
add ecx, 0xd40
push ecx
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x10c]
call fcn.00411aa0
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
call fcn.004115a4
mov dword [ebp - 0x760], eax
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx + 0x10c]
mov eax, dword [edx + 0xd40]
cmp eax, dword [ebp - 0x760]
je 0x55aaed
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x10c]
call fcn.004116eb
push 1
push 1
push 1
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x10c]
call fcn.004115ae
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
call fcn.004116eb
call fcn.00416b80
mov ecx, dword [ebp - 0x7b0]
mov dword [ecx + 0x108], eax
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + 0x10c]
push eax
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.004010d0
push SysReAllocString
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x108]
call fcn.004010b0
mov dword [ebp - 0x18], 0
push 0xfa0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.00413580
test eax, eax
je 0x55afcd
push 0x7d0
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
call fcn.00411646
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.00416220
mov dword [ebp - 0x630], eax
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.004135e0
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x55ac34
push 0x11c
call fcn.005120bc
add esp, 4
mov dword [ebp - 0x79c], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x79c], 0
je 0x55ac0e
push str.Mainboard
mov ecx, dword [ebp - 0x79c]
call fcn.004202e0
mov dword [ebp - 0x7b8], eax
jmp 0x55ac18
mov dword [ebp - 0x7b8], 0
mov edx, dword [ebp - 0x7b8]
mov dword [ebp - 0x798], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x798]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov dword [ecx + 0x110], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x114], ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x108]
call fcn.004010f0
cmp dword [0x5cd008], 0
je 0x55ad27
push 0x500
call fcn.005120bc
add esp, 4
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 4], 2
cmp dword [ebp - 0x7a4], 0
je 0x55aca4
mov ecx, dword [ebp - 0x7a4]
call fcn.00420440
mov dword [ebp - 0x7bc], eax
jmp 0x55acae
mov dword [ebp - 0x7bc], 0
mov ecx, dword [ebp - 0x7bc]
mov dword [ebp - 0x7a0], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x7a0]
mov dword [ebp - 0x774], edx
mov eax, dword [ebp - 0x774]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x774]
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [ebp - 0x774]
mov dword [ebp - 0x7ac], ecx
mov edx, dword [ebp - 0x7ac]
mov dword [ebp - 0x7a8], edx
cmp dword [ebp - 0x7a8], 0
je 0x55ad1d
push 1
mov eax, dword [ebp - 0x7a8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x7a8]
mov eax, dword [edx]
call eax
mov dword [ebp - 0x7c0], eax
jmp 0x55ad27
mov dword [ebp - 0x7c0], 0
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.004160c0
test eax, eax
je 0x55ad6e
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x108]
call fcn.00401140
mov dword [ebp - 0x778], eax
push 0x100
mov ecx, dword [ebp - 0x778]
call fcn.00401080
mov ecx, dword [ebp - 0x778]
call fcn.00424470
cmp dword [0x5ccffc], 0
je 0x55ad9b
push SysReAllocString
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x108]
call fcn.00416170
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x770], 0x18400
mov eax, dword [ebp - 0x770]
push eax
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.004162d0
mov dword [ebp - 0x630], eax
cmp dword [0x5ccff8], 0
je 0x55aedc
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.00416370
test eax, eax
je 0x55aedc
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x108]
call fcn.00403610
mov dword [ebp - 0x77c], eax
mov ecx, dword [ebp - 0x7b0]
call fcn.00401280
mov dword [ebp - 0x780], eax
cmp dword [ebp - 0x780], 0
je 0x55ae7c
push 0
mov ecx, dword [ebp - 0x780]
call fcn.00417e40
mov dword [ebp - 0x784], eax
cmp dword [ebp - 0x784], 0
je 0x55ae7c
mov ecx, dword [ebp - 0x784]
call fcn.0041b4c0
mov dword [ebp - 0x7c4], eax
cmp dword [ebp - 0x7c4], 0x1000805
je 0x55ae69
cmp dword [ebp - 0x7c4], 0x100080a
je 0x55ae69
jmp 0x55ae7c
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x114]
mov dword [ecx + 0x14], 4
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + 0x114]
mov ecx, dword [eax + 4]
or ecx, 0x100000
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + 0x114]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx + 0x114]
mov eax, dword [ebp - 0x1c]
mov dword [edx + 0x10], eax
push 0
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x114]
call fcn.00406a50
test eax, eax
je 0x55aedc
push 0
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x114]
call fcn.00406a55
cmp dword [0x5cd000], 0
je 0x55af15
mov dword [ebp - 0x788], 0x4040000
mov eax, dword [ebp - 0x788]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x108]
call fcn.00416480
mov dword [ebp - 0x630], eax
cmp dword [0x5cd008], 0
je 0x55af46
mov dword [ebp - 0x78c], 0x2ffff
mov ecx, dword [ebp - 0x78c]
push ecx
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x108]
call fcn.00416530
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x76c], 0
cmp dword [0x5cd00c], 0
je 0x55af6a
mov eax, dword [ebp - 0x76c]
or eax, 0x8000000
mov dword [ebp - 0x76c], eax
cmp dword [0x5cd004], 0
je 0x55af85
mov ecx, dword [ebp - 0x76c]
or ecx, 0x10080000
mov dword [ebp - 0x76c], ecx
mov edx, dword [ebp - 0x76c]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x7b0]
mov ecx, dword [edx + 0x108]
call fcn.004165d0
mov dword [ebp - 0x630], eax
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [eax + 0x10c]
call fcn.004116eb
mov ecx, dword [ebp - 0x7b0]
mov ecx, dword [ecx + 0x108]
call fcn.00413090
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.0053081c
mov esp, ebp
pop ebp
ret