Function at 0x4523c0
Capabilities:
Get common file path
Set current directory

Disassembly:
mov eax, dword [0x86e408]
sub esp, 0x238
push ebp
mov ebp, 1
push esi
cmp eax, ebp
push edi
jle 0x452a53
mov eax, dword [0x86e40c]
mov esi, str._nosound
mov edi, dword [eax + ebp*4]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x45240e
test cl, cl
je 0x45240a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x45240e
add eax, 2
add esi, 2
test cl, cl
jne 0x4523ea
xor eax, eax
jmp 0x452413
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452426
mov dword [0x82f750], 1
jmp 0x452a45
mov esi, str._carinfo
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452451
test cl, cl
je 0x45244d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452451
add eax, 2
add esi, 2
test cl, cl
jne 0x45242d
xor eax, eax
jmp 0x452456
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45246e
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
mov dword [str.CarInfo.txt], ecx
jmp 0x452a45
mov esi, str._window
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452499
test cl, cl
je 0x452495
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452499
add eax, 2
add esi, 2
test cl, cl
jne 0x452475
xor eax, eax
jmp 0x45249e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4524ac
mov byte [0x4ba864], al
jmp 0x452a45
mov esi, str._nogamma
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4524d7
test cl, cl
je 0x4524d3
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4524d7
add eax, 2
add esi, 2
test cl, cl
jne 0x4524b3
xor eax, eax
jmp 0x4524dc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4524ec
mov byte [0x785072], 1
jmp 0x452a45
mov esi, str._cubevisi
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452517
test cl, cl
je 0x452513
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452517
add eax, 2
add esi, 2
test cl, cl
jne 0x4524f3
xor eax, eax
jmp 0x45251c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45252a
mov dword [0x4c5044], eax
jmp 0x452a45
mov esi, str._editscale
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452555
test cl, cl
je 0x452551
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452555
add eax, 2
add esi, 2
test cl, cl
jne 0x452531
xor eax, eax
jmp 0x45255a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45257b
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.004a539a
fstp dword [0x4ba88c]
add esp, 4
jmp 0x452a45
mov esi, str._editoffset
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4525a6
test cl, cl
je 0x4525a2
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4525a6
add eax, 2
add esi, 2
test cl, cl
jne 0x452582
xor eax, eax
jmp 0x4525ab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4525f8
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.004a539a
mov edx, dword [0x86e40c]
inc ebp
fstp dword [0x7850a0]
mov eax, dword [edx + ebp*4]
push eax
call fcn.004a539a
mov ecx, dword [0x86e40c]
inc ebp
fstp dword [0x7850a4]
mov edx, dword [ecx + ebp*4]
push edx
call fcn.004a539a
fstp dword [0x7850a8]
add esp, 0xc
jmp 0x452a45
mov esi, str._rgb
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452623
test cl, cl
je 0x45261f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452623
add eax, 2
add esi, 2
test cl, cl
jne 0x4525ff
xor eax, eax
jmp 0x452628
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452638
mov byte [0x785070], 1
jmp 0x452a45
mov esi, str._mmx
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452663
test cl, cl
je 0x45265f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452663
add eax, 2
add esi, 2
test cl, cl
jne 0x45263f
xor eax, eax
jmp 0x452668
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452678
mov byte [0x785070], 2
jmp 0x452a45
mov esi, str._alpharef
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4526a3
test cl, cl
je 0x45269f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4526a3
add eax, 2
add esi, 2
test cl, cl
jne 0x45267f
xor eax, eax
jmp 0x4526a8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4526c8
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.004a59db
add esp, 4
mov dword [0x4ba868], eax
jmp 0x452a45
mov esi, str._nouser
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4526f3
test cl, cl
je 0x4526ef
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4526f3
add eax, 2
add esi, 2
test cl, cl
jne 0x4526cf
xor eax, eax
jmp 0x4526f8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45270b
mov dword [0x78507c], 1
jmp 0x452a45
mov esi, str._gazzasaicar
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452736
test cl, cl
je 0x452732
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452736
add eax, 2
add esi, 2
test cl, cl
jne 0x452712
xor eax, eax
jmp 0x45273b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452752
mov byte [0x785064], 1
mov byte [0x785065], 1
jmp 0x452a45
mov esi, str._gazzasaiinfo
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x45277d
test cl, cl
je 0x452779
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x45277d
add eax, 2
add esi, 2
test cl, cl
jne 0x452759
xor eax, eax
jmp 0x452782
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452792
mov byte [0x785065], 1
jmp 0x452a45
mov esi, str._gazzasroute
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4527bd
test cl, cl
je 0x4527b9
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4527bd
add eax, 2
add esi, 2
test cl, cl
jne 0x452799
xor eax, eax
jmp 0x4527c2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4527d2
mov byte [0x785066], 1
jmp 0x452a45
mov esi, str._gogodemo
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4527fd
test cl, cl
je 0x4527f9
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4527fd
add eax, 2
add esi, 2
test cl, cl
jne 0x4527d9
xor eax, eax
jmp 0x452802
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452815
mov dword [0x785060], 1
jmp 0x452a45
mov esi, str._setdir
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452840
test cl, cl
je 0x45283c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452840
add eax, 2
add esi, 2
test cl, cl
jne 0x45281c
xor eax, eax
jmp 0x452845
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4528a4
mov eax, dword [0x86e40c]
push 0x104
lea edx, [esp + 0x50]
mov ecx, dword [eax]
push ecx
push edx
call fcn.004a5090
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
je 0x452894
cmp byte [esp + ebp + 0x4c], 0x5c
je 0x45288f
dec ebp
jne 0x452875
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x452a45
mov byte [esp + ebp + 0x4c], 0
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x452a45
mov esi, str._device
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4528cf
test cl, cl
je 0x4528cb
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4528cf
add eax, 2
add esi, 2
test cl, cl
jne 0x4528ab
xor eax, eax
jmp 0x4528d4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4528f4
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.004a59db
add esp, 4
mov dword [0x4ba86c], eax
jmp 0x452a45
mov esi, str._res
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x45291f
test cl, cl
je 0x45291b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x45291f
add eax, 2
add esi, 2
test cl, cl
jne 0x4528fb
xor eax, eax
jmp 0x452924
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45296e
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.004a59db
mov edx, dword [0x86e40c]
inc ebp
mov dword [0x785084], eax
mov eax, dword [edx + ebp*4]
push eax
call fcn.004a59db
mov ecx, dword [0x86e40c]
inc ebp
mov dword [0x785088], eax
mov edx, dword [ecx + ebp*4]
push edx
call fcn.004a59db
add esp, 0xc
mov dword [0x78508c], eax
jmp 0x452a45
mov esi, str._doublebuffer
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452999
test cl, cl
je 0x452995
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452999
add eax, 2
add esi, 2
test cl, cl
jne 0x452975
xor eax, eax
jmp 0x45299e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4529b1
mov dword [0x785090], 1
jmp 0x452a45
mov esi, str._tex
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4529dc
test cl, cl
je 0x4529d8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4529dc
add eax, 2
add esi, 2
test cl, cl
jne 0x4529b8
xor eax, eax
jmp 0x4529e1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452a07
mov eax, dword [0x86e40c]
inc ebp
mov ecx, dword [eax + ebp*4]
push ecx
call fcn.004a59db
add esp, 4
xor edx, edx
cmp eax, 0x18
sete dl
mov dword [0x4ba870], edx
jmp 0x452a45
mov esi, str._gamegauge
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452a32
test cl, cl
je 0x452a2e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452a32
add eax, 2
add esi, 2
test cl, cl
jne 0x452a0e
xor eax, eax
jmp 0x452a37
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x452a45
mov dword [0x765e50], 1
mov eax, dword [0x86e408]
inc ebp
cmp ebp, eax
jl 0x4523db
push 0x4ba890
push 0x4ba890
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x452a8f
mov al, byte [0x4ba864]
test al, al
je 0x452a8f
push 0
push str.Revolt_is_already_running_
push 0
call fcn.00452f30
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10
lea eax, [esp + 0x150]
push eax
push 0xf4
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
test eax, eax
jne 0x452abe
lea ecx, [esp + 0x150]
push 0x4baa2c
push ecx
call esi
add esp, 8
lea edx, [esp + 0x150]
push edx
push str._srevolt.log
push 0x4d77f8
call esi
add esp, 0xc
mov dword [0x4d7904], 0x4d77f8
call fcn.00421100
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x452b0f
push 0
push str.Cant_initialize_COM_library_
push 0
call fcn.00452f30
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10
call fcn.0048ef70
call fcn.0047b770
call fcn.0041eef0
call fcn.0041f160
call fcn.00453ee0
call fcn.00485f60
mov eax, dword [0x86e40c]
push 1
push 0
mov ecx, dword [eax]
push ecx
call fcn.00453f40
mov dword [0x4ba874], eax
call fcn.00455580
call fcn.00455500
call fcn.00455540
mov edx, dword [esp + 0x260]
mov ebp, dword [esp + 0x254]
push edx
push ebp
call fcn.00452db0
add esp, 0x14
test eax, eax
jne 0x452b7a
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10
call fcn.0044bc70
push 0x100000
call fcn.00486f10
add esp, 4
call fcn.00485970
test eax, eax
jne 0x452ba1
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10
call fcn.00418750
call fcn.0041cfc0
call fcn.0047c1f0
mov eax, dword [0x7b1308]
test eax, eax
jne 0x452c24
mov ecx, 6
mov esi, str.re_voltpcgame_revolt.exe
lea edi, [esp + 0x30]
mov eax, dword [0x86e40c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [eax]
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, edx
sub esi, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
lea ecx, [esp + 0x30]
push esi
push ecx
call fcn.004af290
add esp, 8
test eax, eax
jne 0x452c24
push eax
push str.Run_Revolt_with_the_batch_file___
push str.Nope_
call fcn.00452f30
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10
push 0x27
call fcn.0048c900
add esp, 4
test eax, eax
jne 0x452c3e
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10
lea edx, [esp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, 6
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
call fcn.004a5b90
mov dword [0x847520], eax
call fcn.0048e0a0
push eax
call fcn.004a4d1f
call fcn.0042f460
push ebp
call fcn.00446820
add esp, 8
call fcn.0042ddc0
test eax, eax
jne 0x452c89
mov byte [0x785074], 1
mov eax, dword [0x82dcfc]
push eax
call fcn.004880f0
add esp, 4
call fcn.00420790
call fcn.00420dc0
call fcn.00446210
call fcn.004551f0
mov ecx, dword [0x785098]
mov esi, dword [0x4ba878]
imul ecx, dword [0x4ba874]
mov edx, dword [0x4ba87c]
sub ecx, esi
add ecx, 0x4530e0
lea eax, [ecx + edx - 0xe]
mov dword [0x784e30], eax
mov al, byte [0x785074]
test al, al
jne 0x452d45
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea ecx, [esp + 0x20]
push 0
push ecx
call esi
test eax, eax
je 0x452d21
cmp dword [esp + 0x18], 0x12
jne 0x452d13
mov byte [0x785074], 1
jmp 0x452d21
lea edx, [esp + 0x14]
push edx
call edi
lea eax, [esp + 0x14]
push eax
call ebp
mov al, byte [0x4ba897]
test al, al
je 0x452d37
mov eax, dword [0x784e30]
test eax, eax
je 0x452d3c
call eax
jmp 0x452d3c
call fcn.00455390
mov al, byte [0x785074]
test al, al
je 0x452cf0
call fcn.00455370
mov eax, dword [0x74c798]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
call fcn.0048de00
call fcn.00446f70
call fcn.0042efa0
call fcn.0042ef60
call fcn.0047c710
call fcn.00488200
call fcn.0048c930
call fcn.00414f80
call fcn.00486f30
call fcn.0044c1f0
call fcn.00486850
call fcn.0047c590
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
add esp, 0x238
ret 0x10