Function at 0x10014600
Capabilities:
Accept command line arguments
Get disk information
Read .ini file
Set environment variable
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10030e90
mov eax, dword fs:[0]
push eax
sub esp, 0x63c
mov eax, dword [0x10047410]
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
lea eax, [ebp - 0x638]
push 0x104
push eax
call fcn.10022340
add esp, 8
push 0x10058720
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ecx, dword [eax]
mov edx, dword [0x10058d04]
push 0x104
push ecx
push edx
mov dword [0x10058b6c], eax
call fcn.100225f0
mov esi, dword [0x10058d04]
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
jmp 0x10014680
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10014680
sub eax, edx
dec eax
test eax, eax
jle 0x100146a6
mov edi, edi
mov cl, byte [eax + esi]
cmp cl, 0x5c
je 0x100146a2
cmp cl, 0x2f
je 0x100146a2
dec eax
test eax, eax
jg 0x10014690
mov byte [eax + esi], 0
mov eax, esi
lea edx, [eax + 1]
jmp 0x100146b0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100146b0
sub eax, edx
cmp eax, 1
jb 0x100146c8
lea eax, [ebp - 0x638]
cmp esi, eax
je 0x100146dc
push 0x104
push esi
call fcn.10022340
mov esi, dword [0x10058d04]
add esp, 8
push esi
call fcn.1002105e
mov eax, dword [0x10058d04]
add esp, 4
call fcn.10017da0
call fcn.10014010
cmp al, 1
jne 0x10014746
xor esi, esi
cmp dword [0x10058720], esi
jle 0x1001474e
mov ecx, dword [0x10058b6c]
mov edx, dword [ecx + esi*4]
push str._appid
push edx
call fcn.10020407
add esp, 8
test eax, eax
jne 0x1001473b
mov eax, dword [0x10058b6c]
mov ecx, dword [eax + esi*4 + 4]
mov edx, dword [0x10058d00]
push 0xff
push ecx
push edx
call fcn.100225f0
add esp, 0xc
inc esi
cmp esi, dword [0x10058720]
jl 0x10014702
jmp 0x1001474e
mov eax, dword [0x10058d00]
mov byte [eax], 0
mov ecx, dword [0x10058850]
push 0x104
push 0x10058b70
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x10015959
push 0x10058b70
call fcn.1002105e
add esp, 4
call fcn.10013e90
mov esi, eax
test esi, esi
je 0x100147bd
mov edx, str.bin_steam.dll
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100147b0
test al, al
je 0x100147ac
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100147b0
add ecx, 2
add edx, 2
test al, al
jne 0x10014790
xor eax, eax
jmp 0x100147b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100147bd
mov byte [esi], al
jmp 0x100147d0
push 0x5c
push 0x10058b70
call fcn.10021d30
mov byte [eax + 1], 0
add esp, 8
xor eax, eax
mov cl, byte [eax + 0x10058b70]
mov byte [ebp + eax - 0x118], cl
inc eax
test cl, cl
jne 0x100147d2
xor eax, eax
jmp 0x100147f0
mov cl, byte [ebp + eax - 0x118]
mov byte [eax + 0x10058960], cl
inc eax
test cl, cl
jne 0x100147f0
lea eax, [ebp - 0x118]
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10014810
mov edx, dword [str.rev.ini]
mov ecx, dword [0x1004073c]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov eax, 0x10058960
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10014830
mov edx, dword [str.revApps.ini]
mov ecx, dword [0x10040744]
mov dword [eax], edx
mov edx, dword [0x10040748]
xor ebx, ebx
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov byte [ebp - 0x428], 0
cmp dword [0x10058720], ebx
jle 0x100148d1
mov eax, dword [0x10058b6c]
mov ecx, dword [eax + ebx*4]
push 0xff
push ecx
lea edx, [ebp - 0x530]
push edx
call fcn.100225f0
lea edi, [ebp - 0x530]
add esp, 0xc
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10014887
mov ax, word [0x1003e8cc]
mov word [edi], ax
lea eax, [ebp - 0x530]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100148a0
lea edi, [ebp - 0x428]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x100148b0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
inc ebx
rep movsb byte es:[edi], byte [esi]
cmp ebx, dword [0x10058720]
jl 0x10014863
push 0xff
call fcn.1001f870
add esp, 4
mov dword [ebp - 0x644], eax
xor esi, esi
mov dword [ebp - 4], esi
cmp eax, esi
je 0x1001490c
lea ecx, [ebp - 0x118]
mov edi, eax
mov edx, ecx
sub edi, edx
lea esp, [esp]
mov dl, byte [ecx]
mov byte [ecx + edi], dl
inc ecx
test dl, dl
jne 0x10014900
mov esi, eax
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
push 0x514
mov dword [0x1005882c], esi
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov edi, eax
push edi
push 0x1003e738
push str.ProcName
push str.Loader
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x10014977
test edi, edi
je 0x10014980
test byte [0x10058e58], 1
jne 0x10014977
mov eax, 1
or dword [0x10058e58], eax
mov dword [ebp - 4], eax
call fcn.10018410
push 0x10031820
call fcn.1002164d
add esp, 4
mov dword [ebp - 4], ebx
push edi
call fcn.1001f865
add esp, 4
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov ebx, eax
push ebx
push 0x1003e738
push str.Logging
push str.Emulator
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x10014b47
test ebx, ebx
je 0x10014b50
push str.True
push ebx
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x10014b47
push 0x104
push 0x10058a68
push eax
mov dword [0x10058ca0], 1
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push 0x10058a68
call fcn.10021d30
inc eax
mov edx, 0x10058a68
add esp, 8
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10014a10
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x10058b70]
mov byte [ebp + eax - 0x118], cl
inc eax
test cl, cl
jne 0x10014a20
mov eax, 0x10058a68
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10014a40
lea edi, [ebp - 0x118]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x10014a50
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x118]
rep movsb byte es:[edi], byte [esi]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10014a70
mov ecx, dword [str._REVOLUTiON.log]
mov edx, dword [0x10040780]
mov dword [eax], ecx
mov ecx, dword [0x10040784]
mov dword [eax + 4], edx
mov edx, dword [0x10040788]
mov dword [eax + 8], ecx
push 0x108
mov dword [eax + 0xc], edx
call fcn.1001f870
add esp, 4
mov dword [ebp - 0x644], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x10014ad4
lea ecx, [ebp - 0x118]
mov edi, eax
mov esi, ecx
sub edi, esi
mov dl, byte [ecx]
mov byte [edi + ecx + 4], dl
inc ecx
test dl, dl
jne 0x10014ac5
mov esi, eax
jmp 0x10014ad6
xor esi, esi
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 4]
push 0x1003e760
push eax
mov dword [0x1005895c], esi
call fcn.1001fdd8
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x10014b03
push eax
call fcn.1001fea3
add esp, 4
mov esi, dword [0x1005895c]
push str.Logging_initialized._n
call fcn.10006df0
mov ecx, dword [0x10058d04]
mov esi, dword [0x1005895c]
add esp, 4
push ecx
push str.Run_path_initialized_to__s_n
call fcn.10006df0
mov esi, dword [0x1005895c]
lea edx, [ebp - 0x428]
push edx
push str.Command_line:__s_n
call fcn.10006df0
add esp, 0x10
push ebx
call fcn.1001f865
add esp, 4
cmp dword [0x10058ca0], 0
je 0x10014d92
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 4
push esi
push 0x514
mov edi, eax
push edi
push 0x1003e738
push str.FileSystem
push 0x100407e0
call ebx
test eax, eax
je 0x10014bcf
test edi, edi
je 0x10014bd8
push str.True
push edi
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x10014bcf
mov dword [0x10058cac], 1
cmp dword [0x10058ca0], eax
je 0x10014bcf
mov esi, dword [0x1005895c]
push str.FileSystem_logging_initialized._n
call fcn.10006df0
add esp, 4
push edi
call fcn.1001f865
add esp, 4
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov edi, eax
push edi
push 0x1003e738
push str.Account
push 0x100407e0
call ebx
test eax, eax
je 0x10014c44
test edi, edi
je 0x10014c4d
push str.True
push edi
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x10014c44
mov dword [0x10058ca8], 1
cmp dword [0x10058ca0], eax
je 0x10014c44
mov esi, dword [0x1005895c]
push str.Account_logging_initialized._n
call fcn.10006df0
add esp, 4
push edi
call fcn.1001f865
add esp, 4
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov edi, eax
push edi
push 0x1003e738
push str.UserID
push 0x100407e0
call ebx
test eax, eax
je 0x10014cb9
test edi, edi
je 0x10014cc2
push str.True
push edi
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x10014cb9
mov dword [0x10058cb0], 1
cmp dword [0x10058ca0], eax
je 0x10014cb9
mov esi, dword [0x1005895c]
push str.UserID_logging_initialized._n
call fcn.10006df0
add esp, 4
push edi
call fcn.1001f865
add esp, 4
cmp byte [0x10058cc4], 0
je 0x10014d92
push 0x104
call fcn.10020ea1
mov ebx, eax
mov eax, 0x10058b70
mov edx, ebx
add esp, 4
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10014ce7
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10014cf4
mov ecx, 7
mov esi, str.REVOLUTiON_File_Failure.Log
rep movsd dword es:[edi], dword [esi]
push 0x108
movsb byte es:[edi], byte [esi]
call fcn.1001f870
add esp, 4
mov dword [ebp - 0x644], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x10014d3e
lea ecx, [eax + 4]
mov edi, ebx
sub edi, ecx
mov edi, edi
mov dl, byte [edi + ecx]
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x10014d30
mov esi, eax
jmp 0x10014d40
xor esi, esi
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 4]
push 0x1003e760
push eax
mov dword [0x10058724], esi
call fcn.1001fdd8
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x10014d6d
push eax
call fcn.1001fea3
add esp, 4
push ebx
call fcn.10021a18
add esp, 4
cmp dword [0x10058ca0], 0
je 0x10014d92
mov esi, dword [0x1005895c]
push str.Cache_File_Load_Failure_logging_initialized._n
call fcn.10006df0
add esp, 4
mov edi, dword [0x1005882c]
push 0x514
call fcn.1001f870
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 4
push edi
push 0x514
mov esi, eax
push esi
push 0x1003e738
push str.SteamUser
push str.Emulator
call ebx
test eax, eax
jne 0x10014e90
push esi
call fcn.1001f865
add esp, 4
mov ecx, dword [str.revCrew]
mov eax, dword [0x10058d20]
mov dword [eax], ecx
mov edx, dword [0x100408ac]
mov dword [eax + 4], edx
push eax
push str.SteamUser
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
cmp dword [0x10058ca0], 0
je 0x10014e1a
mov eax, dword [0x10058d20]
mov esi, dword [0x1005895c]
push eax
push str.Steam_User_set_to__s_n
call fcn.10006df0
add esp, 8
mov edi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push edi
push 0x514
mov esi, eax
push esi
push 0x1003e738
push str.Language
push str.Emulator
call ebx
test eax, eax
jne 0x10014efb
push esi
call fcn.1001f865
add esp, 4
mov esi, dword [0x10058d38]
mov edx, str.unset
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10014f63
test al, al
je 0x10014e89
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10014f63
add ecx, 2
add edx, 2
test al, al
jne 0x10014e65
xor eax, eax
jmp 0x10014f68
test esi, esi
je 0x10014dd6
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10014ea0
sub eax, edx
je 0x10014ed2
mov edx, dword [0x10058d20]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10014eb5
push esi
call fcn.1001f865
mov eax, dword [0x10058d20]
add esp, 4
jmp 0x10014dec
mov ecx, dword [str.revCrew]
mov eax, dword [0x10058d20]
mov dword [eax], ecx
mov edx, dword [0x100408ac]
push esi
mov dword [eax + 4], edx
call fcn.1001f865
mov eax, dword [0x10058d20]
add esp, 4
jmp 0x10014dec
test esi, esi
je 0x10014e58
mov edi, dword [0x10058d3c]
mov edx, edi
mov eax, esi
sub edx, esi
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10014f10
mov esi, dword [0x10058d38]
mov ecx, str.unset
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10014f47
test dl, dl
je 0x10014f43
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10014f47
add eax, 2
add ecx, 2
test dl, dl
jne 0x10014f27
xor eax, eax
jmp 0x10014f4c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10014fa0
mov ecx, dword [str.English]
mov dword [esi], ecx
mov edx, dword [0x100408cc]
mov dword [esi + 4], edx
jmp 0x10014fa0
sbb eax, eax
sbb eax, 0xffffffff
mov edi, dword [0x10058d3c]
mov edx, edi
sub edx, esi
test eax, eax
jne 0x10014f94
mov eax, dword [str.English]
mov dword [esi], eax
mov ecx, dword [0x100408cc]
mov dword [esi + 4], ecx
mov eax, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10014f88
jmp 0x10014fa0
mov eax, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10014f96
push edi
call fcn.1002105e
mov esi, dword [0x10058d3c]
add esp, 4
lea edx, [ebp - 0x63c]
push edx
push 0x20006
push 0
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10014ffc
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0x63c]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwareValveSteam
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov eax, esi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10015001
mov edx, dword [ebp - 0x63c]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
sub eax, ecx
inc eax
push eax
push esi
push 1
push 0
push str.Language
push edx
call edi
mov eax, dword [ebp - 0x63c]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call ebx
mov esi, dword [0x10058d3c]
lea ecx, [ebp - 0x640]
push ecx
push 0x20006
push 0
push str.SoftwareValveSource
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10015087
lea edx, [ebp - 0x648]
push edx
lea eax, [ebp - 0x640]
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwareValveSource
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10015090
mov ecx, dword [ebp - 0x640]
sub eax, edx
inc eax
push eax
push esi
push 1
push 0
push str.Language
push ecx
call edi
mov edx, dword [ebp - 0x640]
push edx
call ebx
cmp dword [0x10058ca0], 0
je 0x100150d9
mov eax, dword [0x10058d3c]
mov esi, dword [0x1005895c]
push eax
push str.Steam_language_initialized___s__n
call fcn.10006df0
add esp, 8
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov ebx, eax
push ebx
push 0x1003e738
push str.CacheEnabled
push str.Emulator
mov dword [ebp - 0x644], ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x1001511f
push ebx
call fcn.1001f865
jmp 0x1001549b
test ebx, ebx
je 0x1001549e
push str.True
push ebx
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x10015472
mov edi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push edi
push 0x514
mov esi, eax
push esi
push 0x1003e738
push str.CachePath
push str.Emulator
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x1001517d
push esi
call fcn.1001f865
add esp, 4
xor esi, esi
push esi
mov dword [0x10058d1c], esi
call fcn.1002105e
mov esi, dword [0x10058d24]
mov eax, 0x10058b70
mov edx, esi
add esp, 4
sub edx, eax
jmp 0x100151a0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x100151a0
lea eax, [esi - 1]
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100151b0
mov ecx, dword [str.ClientRegistry.Blob]
mov dword [eax], ecx
mov edx, dword [0x1004092c]
mov dword [eax + 4], edx
mov ecx, dword [0x10040930]
mov dword [eax + 8], ecx
mov edx, dword [0x10040934]
mov dword [eax + 0xc], edx
mov ecx, dword [0x10040938]
push 0x1003e770
push esi
mov dword [eax + 0x10], ecx
call fcn.1001fdd8
mov edi, eax
add esp, 8
test edi, edi
je 0x10015237
cmp dword [0x10058ca0], 0
je 0x1001521b
mov edx, dword [0x10058d24]
mov esi, dword [0x1005895c]
push edx
push str.Cache_support_initialized_via__s_n
call fcn.10006df0
add esp, 8
push edi
call fcn.1001fea3
add esp, 4
mov byte [0x10058c76], 1
mov byte [0x10058c77], 1
jmp 0x100152dc
push 0xff
mov byte [0x10058c77], 0
call fcn.1001f870
add esp, 4
mov dword [ebp - 0x648], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x10015271
mov ecx, 0x10058960
mov esi, eax
sub esi, ecx
mov dl, byte [ecx]
mov byte [ecx + esi], dl
inc ecx
test dl, dl
jne 0x10015265
jmp 0x10015273
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10058834], eax
test eax, eax
je 0x100152a8
cmp dword [0x10058ca0], 0
je 0x1001529f
mov esi, dword [0x1005895c]
push str.Cache_support_initialized_via_revApps.Ini_n
call fcn.10006df0
add esp, 4
mov byte [0x10058c76], 1
jmp 0x100152dc
cmp dword [0x10058ca0], 0
mov byte [0x10058c76], 0
je 0x10015495
mov esi, dword [0x1005895c]
push str.Cache_support_was_not_initialized._No_ClientRegistry.Blob_and_No_RevSteamApps.ini_were_found__n
call fcn.10006df0
add esp, 4
cmp byte [0x10058c76], 1
jne 0x10015495
mov eax, dword [0x10058d1c]
push 0x100409f0
push eax
call fcn.1002195b
mov edi, eax
add esp, 8
mov dword [ebp - 0x63c], edi
test edi, edi
je 0x1001542d
mov ebx, 5
jmp 0x10015310
mov edx, dword [0x10058cf4]
lea ecx, [ebp - 0x63c]
cmp ecx, edx
mov ecx, dword [0x10058cf0]
jae 0x1001539f
lea eax, [ebp - 0x63c]
cmp ecx, eax
ja 0x1001539f
mov esi, dword [0x10058cf8]
mov edi, eax
sub edi, ecx
sar edi, 2
cmp edx, esi
jne 0x1001538f
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10015450
sub esi, ecx
inc eax
sar esi, 2
cmp eax, esi
jbe 0x1001538f
mov ecx, esi
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x10015376
xor ecx, ecx
jmp 0x10015378
add ecx, edx
cmp ecx, eax
jae 0x1001537e
mov ecx, eax
call fcn.10016360
mov edx, dword [0x10058cf4]
mov ecx, dword [0x10058cf0]
lea eax, [ecx + edi*4]
mov dword [ebp - 4], ebx
test edx, edx
je 0x100153fa
mov ecx, dword [eax]
mov dword [edx], ecx
jmp 0x100153fa
mov esi, dword [0x10058cf8]
cmp edx, esi
jne 0x100153ed
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10015450
sub esi, ecx
mov ecx, esi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x100153ed
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x100153da
xor ecx, ecx
jmp 0x100153dc
add ecx, edx
cmp ecx, eax
jae 0x100153e2
mov ecx, eax
call fcn.10016360
mov edx, dword [0x10058cf4]
mov dword [ebp - 4], 6
test edx, edx
je 0x100153fa
mov dword [edx], edi
mov dword [ebp - 4], 0xffffffff
add dword [0x10058cf4], 4
push 0x100409f0
push 0
call fcn.1002195b
mov edi, eax
add esp, 8
mov dword [ebp - 0x63c], edi
test edi, edi
jne 0x10015310
mov ebx, dword [ebp - 0x644]
mov eax, dword [0x10058cf4]
sub eax, dword [0x10058cf0]
sar eax, 2
cmp eax, 1
jbe 0x1001545a
cmp dword [0x10058ca0], 0
je 0x10015495
push str.___Multiple_cache_locations_detected_n
jmp 0x10015487
push str.vector_T__too_long
call fcn.1002f02c
test eax, eax
jne 0x10015495
mov byte [0x10058c76], al
cmp dword [0x10058ca0], eax
je 0x10015495
push str.Cache_support_was_not_enabled_as_no_valid_GCF_path_was_specified__Using_extracted_content_only__n
jmp 0x10015487
cmp dword [0x10058ca0], 0
mov byte [0x10058c76], 0
je 0x10015495
push str.Cache_support_was_not_enabled._Using_extracted_content_only__n
mov esi, dword [0x1005895c]
call fcn.10006df0
add esp, 4
push ebx
call fcn.10021a18
add esp, 4
mov edi, dword [0x1005882c]
push 0x514
call fcn.1001f870
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 4
push edi
push 0x514
mov esi, eax
push esi
push 0x1003e738
push str.SteamDll
push str.Emulator
call ebx
test eax, eax
je 0x100154f6
test esi, esi
je 0x100154ff
mov edx, 0x10058858
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x100154e2
mov dword [0x10058c9c], 1
push esi
call fcn.1001f865
add esp, 4
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov edi, eax
push edi
push 0x1003e738
push str.ForceRevClient
push str.Emulator
call ebx
test eax, eax
je 0x10015566
test edi, edi
je 0x1001556f
push str.True
push edi
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x10015566
mov byte [0x1004817c], al
cmp dword [0x10058ca0], eax
je 0x10015566
mov esi, dword [0x1005895c]
push str.Non_REVOLUTiON_clients_will_not_be_allowed_to_join_the_server._n
call fcn.10006df0
add esp, 4
push edi
call fcn.1001f865
add esp, 4
cmp dword [0x10058c9c], 1
jne 0x10015691
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10058858
call edi
push eax
lea edx, [ebp - 0x118]
push 0x10040b20
push edx
call fcn.1001f8f0
lea eax, [ebp - 0x118]
add esp, 0xc
push eax
call fcn.1002134f
add esp, 4
test eax, eax
jne 0x10015662
mov edx, dword [0x10040b28]
mov ecx, dword [str.Unable_to_load]
mov eax, dword [0x10040b2c]
push 0xef
mov dword [ebp - 0x214], edx
mov dword [ebp - 0x218], ecx
mov ecx, dword [0x10040b30]
lea edx, [ebp - 0x208]
push 0
push edx
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], ecx
call fcn.10024a20
mov eax, 0x10058858
add esp, 0xc
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10015601
lea edi, [ebp - 0x218]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x10015613
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x218]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10015630
push 0
push str.Error
lea eax, [ebp - 0x218]
push eax
mov ecx, 0xe
mov esi, str..__nPlease_edit_or_comment_out_SteamDll_value_in_rev.ini
push 0
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [0x10058ca0], 0
je 0x1001568a
mov esi, dword [0x1005895c]
lea ecx, [ebp - 0x118]
push ecx
push 0x10058858
push str.___Original_Steam.dll_set:__s__0x_s__n
call fcn.10006df0
add esp, 0xc
push str.revLegitHelper.dll
call edi
mov esi, dword [0x1005882c]
push 0x514
call fcn.1001f870
add esp, 4
push esi
push 0x514
mov edi, eax
push edi
push 0x1003e738
push str.SteamClient
push str.Emulator
call ebx
test eax, eax
je 0x10015904
test edi, edi
je 0x1001590d
push str.True
push edi
call fcn.100202bd
add esp, 8
test eax, eax
jne 0x100158fa
push 0x104
push 0x10058a68
push eax
mov dword [0x10058cb4], 1
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor eax, eax
mov cl, byte [eax + 0x10058b70]
mov byte [ebp + eax - 0x320], cl
inc eax
test cl, cl
jne 0x10015701
push str.hlds.exe
mov eax, 0x10058a68
call fcn.10013f40
add esp, 4
test eax, eax
jne 0x10015806
push str.hl.exe
mov eax, 0x10058a68
call fcn.10013f40
add esp, 4
test eax, eax
jne 0x10015806
push str.srcds.exe
mov eax, 0x10058a68
call fcn.10013f40
add esp, 4
test eax, eax
jne 0x100157c4
push str.hl2.exe
mov eax, 0x10058a68
call fcn.10013f40
add esp, 4
test eax, eax
jne 0x100157c4
push str.sdklauncher.exe
mov eax, 0x10058a68
call fcn.10013f40
add esp, 4
test eax, eax
jne 0x100157c4
lea eax, [ebp - 0x320]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10015794
mov edx, dword [0x1003f70c]
mov ecx, dword [0x1003f710]
mov dword [eax], edx
mov edx, dword [0x1003f714]
mov dword [eax + 4], ecx
mov ecx, dword [0x1003f718]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
jmp 0x1001583b
lea eax, [ebp - 0x320]
dec eax
jmp 0x100157d0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x100157d0
mov edx, dword [str.bin_steamclient.dll]
mov ecx, dword [0x10040bc8]
mov dword [eax], edx
mov edx, dword [0x10040bcc]
mov dword [eax + 4], ecx
mov ecx, dword [0x10040bd0]
mov dword [eax + 8], edx
mov edx, dword [0x10040bd4]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
jmp 0x1001583b
lea eax, [ebp - 0x320]
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10015810
mov ecx, dword [0x1003f70c]
mov edx, dword [0x1003f710]
mov dword [eax], ecx
mov ecx, dword [0x1003f714]
mov dword [eax + 4], edx
mov edx, dword [0x1003f718]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
cmp dword [0x10058ca0], 0
je 0x1001585e
mov esi, dword [0x1005895c]
lea eax, [ebp - 0x320]
push eax
push str.___Using_Steam_Client:__s_n
call fcn.10006df0
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call fcn.100074c0
add esp, 4
lea ecx, [ebp - 0x640]
push ecx
push 0x20006
push 0
push str.SoftwareValveSteamActiveProcess
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x100158ba
lea edx, [ebp - 0x648]
push edx
lea eax, [ebp - 0x640]
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwareValveSteamActiveProcess
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea eax, [ebp - 0x320]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100158c3
sub eax, edx
mov edx, dword [ebp - 0x640]
inc eax
push eax
lea ecx, [ebp - 0x320]
push ecx
push 1
push 0
push str.SteamClientDll
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x640]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10015904
mov dword [0x10058cb4], 0
push edi
call fcn.1001f865
add esp, 4
push 0
push 0
push 0
push 0
push 0x10058cb8
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
push 0x10058d98
mov ebx, 0x10058d78
mov edi, 0x10058d58
call fcn.10014490
add esp, 4
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.1001f521
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]