Function at 0x14020e8
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x518
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x18], esi
mov ecx, dword [esi + 0x110]
mov eax, dword [ecx]
call dword [eax + 0x32c]
mov eax, dword [esi + 0x444]
lea ebx, [esi + 0x438]
dec eax
js 0x140212e
mov edx, eax
lea ebp, [eax + 1]
shl edx, 7
mov edi, dword [ebx]
mov ecx, 0x20
add edi, edx
mov eax, 0xdddddddd
sub edx, 0x80
dec ebp
rep stosd dword es:[edi], eax
jne 0x1402115
xor ebp, ebp
mov dword [ebx + 0xc], ebp
mov dword [esi + 0x434], ebp
mov ecx, dword [0x145a8d8]
push ebp
push str._steam
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x140233e
push 0x18
call fcn.01415d70
add esp, 4
cmp eax, ebp
je 0x1402174
push str.hlds_steamgames
mov ecx, eax
call fcn.01414920
mov edi, eax
mov dword [esp + 0x24], edi
jmp 0x140217a
mov dword [esp + 0x24], ebp
mov edi, ebp
mov eax, dword [edi]
push ebp
push str.hlds_steamgames.vdf
mov dword [esp + 0x18], eax
call fcn.01406380
push eax
mov eax, dword [esp + 0x1c]
mov ecx, edi
call dword [eax + 8]
test al, al
je 0x1402337
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
mov ebp, eax
test ebp, ebp
je 0x1402337
mov edx, dword [ebp]
push 0xffffffffffffffff
push str.appID
mov ecx, ebp
call dword [edx + 0x28]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], 0
call fcn.01406350
mov edx, dword [eax]
lea ecx, [esp + 0x10]
push ecx
push str.HKEY_CURRENT_USERSoftwareValveSteamOffline
mov ecx, eax
call dword [edx + 0x3c]
mov edi, dword [esp + 0x10]
mov edx, dword [esi + 0x110]
mov eax, dword [ebp]
cmp edi, 1
mov edi, dword [edx]
push ebp
mov ecx, ebp
sete byte [esp + 0x1b]
call dword [eax]
mov ecx, dword [esi + 0x110]
push eax
call dword [edi + 0x310]
mov edx, dword [ebp]
mov ecx, ebp
mov dword [esp + 0x10], eax
call dword [edx]
lea edi, [esp + 0x68]
mov cl, byte [eax]
inc eax
mov byte [edi], cl
inc edi
test cl, cl
jne 0x1402217
mov eax, dword [ebp]
push 0x1460ee0
push str.gamedir
mov ecx, ebp
call dword [eax + 0x30]
lea edx, [esp + 0x28]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x1402237
mov edi, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
lea esi, [edi + 1]
cmp esi, eax
jle 0x140225b
mov ecx, edi
sub ecx, eax
inc ecx
push ecx
mov ecx, ebx
call fcn.01402cb0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
inc eax
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
sub eax, edi
dec eax
test eax, eax
jle 0x1402288
mov edx, edi
shl edx, 7
shl eax, 7
shl esi, 7
add edx, ecx
push eax
add esi, ecx
push edx
push esi
call fcn.01431b60
add esp, 0xc
mov eax, dword [ebx]
shl edi, 7
add edi, eax
je 0x140229c
mov ecx, 0x20
lea esi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp]
push 0
push str.default
mov ecx, ebp
call dword [eax + 0x28]
test eax, eax
je 0x14022dd
mov edx, dword [ebp]
push 0
push str.cacheID
mov ecx, ebp
call dword [edx + 0x28]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push edx
mov ecx, dword [esi + 0x110]
mov dword [esi + 0x434], eax
mov eax, dword [ecx]
call dword [eax + 0x33c]
jmp 0x14022e1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp edi, 0xffffffff
je 0x140231d
mov al, byte [esp + 0x17]
test al, al
je 0x140231d
call fcn.01406380
mov edx, dword [eax]
push edi
mov ecx, eax
call dword [edx + 0xc8]
test al, al
jne 0x140231d
mov esi, dword [esi + 0x110]
mov ecx, dword [esp + 0x10]
push 0
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x324]
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x24]
mov esi, dword [esp + 0x18]
mov ebp, eax
test ebp, ebp
jne 0x14021ae
mov edi, dword [esp + 0x24]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x60]
mov dword [esp + 0x1c], 0
call fcn.01406380
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
push 0
push ecx
push 0x145a4ec
mov ecx, eax
call dword [edx + 0x6c]
mov edi, eax
test edi, edi
je 0x14025a6
cmp byte [edi], 0x2e
je 0x140258b
call fcn.01406380
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x74]
test al, al
je 0x140258b
push edi
push str._sliblist.gam
lea edx, [esp + 0x130]
push 0x3ff
push edx
call fcn.0142f940
add esp, 0x10
call fcn.01406380
mov edx, dword [eax]
lea ecx, [esp + 0x128]
push ecx
mov ecx, eax
call dword [edx + 0x20]
test al, al
je 0x140258b
lea edx, [esp + 0xa8]
push 0x80
push edx
lea eax, [esp + 0x130]
push str.type
push eax
mov ecx, esi
call fcn.014025d0
test al, al
je 0x1402403
lea ecx, [esp + 0xa8]
push str.singleplayer_only
push ecx
call fcn.01434a20
add esp, 8
test eax, eax
je 0x140258b
mov edx, edi
mov eax, edi
neg edx
lea ebp, [esp + edx + 0x68]
mov cl, byte [eax]
mov byte [eax + ebp], cl
inc eax
test cl, cl
jne 0x140240d
mov eax, edi
lea edx, [esp + edx + 0x28]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x140241d
lea edx, [esp + 0x68]
push 0x40
push edx
lea eax, [esp + 0x130]
push str.game
push eax
mov ecx, esi
call fcn.014025d0
mov eax, dword [ebx + 0xc]
xor edi, edi
test eax, eax
jle 0x140247c
xor ebp, ebp
mov eax, dword [ebx]
lea ecx, [esp + 0x28]
add eax, ebp
push eax
push ecx
call fcn.01434a20
add esp, 8
test eax, eax
je 0x1402473
mov eax, dword [ebx + 0xc]
inc edi
add ebp, 0x80
cmp edi, eax
jl 0x140244d
jmp 0x140247c
cmp edi, 0xffffffff
jne 0x140258b
push 0x18
call fcn.01415d70
add esp, 4
test eax, eax
je 0x14024a2
lea edx, [esp + 0x28]
lea ecx, [esp + 0x68]
push edx
push str.gamedir
push ecx
mov ecx, eax
call fcn.01414940
jmp 0x14024a4
xor eax, eax
mov ecx, dword [esi + 0x110]
push eax
lea eax, [esp + 0x6c]
mov edx, dword [ecx]
push eax
call dword [edx + 0x310]
mov edi, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x20], eax
lea eax, [edi + 1]
cmp eax, ecx
mov ebp, eax
jle 0x140251d
mov edx, dword [ebx + 8]
mov eax, edi
sub eax, ecx
inc eax
test edx, edx
jge 0x14024dd
test eax, eax
jg 0x140251d
jmp 0x14024e1
test eax, eax
jg 0x14024f2
mov eax, edx
test eax, eax
jne 0x14024f2
test ecx, ecx
mov eax, ecx
jne 0x14024f2
mov eax, 1
add ecx, eax
mov eax, dword [ebx]
test eax, eax
mov dword [ebx + 4], ecx
je 0x140250c
shl ecx, 7
push ecx
push eax
call fcn.01430140
add esp, 8
jmp 0x140251b
mov edx, dword [ebx + 4]
shl edx, 7
push edx
call fcn.0142fca0
add esp, 4
mov dword [ebx], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
inc eax
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
sub eax, edi
dec eax
test eax, eax
jle 0x140254a
shl eax, 7
push eax
mov eax, edi
shl eax, 7
shl ebp, 7
add eax, ecx
add ebp, ecx
push eax
push ebp
call fcn.01431b60
add esp, 0xc
mov eax, dword [ebx]
shl edi, 7
add edi, eax
je 0x1402562
mov ecx, 0x20
lea esi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push str.valve
push ecx
call fcn.01434a20
add esp, 8
test eax, eax
jne 0x140258b
mov ecx, dword [esi + 0x110]
mov eax, dword [esp + 0x20]
push eax
mov edx, dword [ecx]
call dword [edx + 0x33c]
call fcn.01406380
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x70]
mov edi, eax
test edi, edi
jne 0x1402368
call fcn.01406380
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x78]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x518
ret