Function at 0x40e808
Capabilities:
Copy file
Delete file
Print debug messages

Disassembly:
push 0x54c
mov eax, 0x540b51
call fcn.004e6a52
mov ebx, ecx
mov dword [ebp - 0x2ec], ebx
push str.1222222222
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f0], eax
push 0x577420
lea ecx, [ebp - 0x138]
mov dword [ebp - 4], eax
call fcn.004024f3
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 1
push eax
push 0
lea ecx, [ebp - 0x2f8]
call fcn.00407516
lea ecx, [ebp - 0x138]
call fcn.0040258a
xor eax, eax
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x32c], eax
sub esp, 0x18
mov byte [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x2e4], esp
push 0x577424
call fcn.004024f3
sub esp, 0x18
mov byte [ebp - 4], 3
mov ecx, esp
lea esi, [ebp - 0x334]
xor eax, eax
add ebx, 0x3b4
mov dword [ebp - 0x2cc], ebx
push ebx
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
call fcn.00402603
xor dl, dl
mov byte [ebp - 4], 2
mov ecx, esi
call fcn.00403805
mov edi, dword [ebp - 0x330]
add esp, 0x30
mov esi, dword [ebp - 0x334]
push 0x18
pop ebx
jmp 0x40e96a
xor eax, eax
lea ecx, [ebp - 0x60]
push esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
call fcn.00402603
cmp dword [ebp - 0x4c], 8
lea eax, [ebp - 0x60]
cmovae eax, dword [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x4c]
cmp eax, 8
jb 0x40e968
mov ecx, dword [ebp - 0x60]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2d0], ecx
cmp eax, 0x1000
jb 0x40e95f
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.00401403
mov eax, dword [ebp - 0x2c4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d0]
push eax
push ecx
call fcn.004e6456
pop ecx
pop ecx
add esi, ebx
cmp esi, edi
jne 0x40e8f3
push 0x5740d8
lea ecx, [ebp - 0x90]
call fcn.004024f3
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0x2f4]
cmp edi, dword [ebp - 0x2f0]
je 0x40e9b2
xor eax, eax
mov ecx, edi
mov dword [edi], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
lea eax, [ebp - 0x90]
push eax
call fcn.0040266b
add edi, ebx
mov dword [ebp - 0x2f4], edi
jmp 0x40e9cb
lea eax, [ebp - 0x90]
push eax
push edi
lea ecx, [ebp - 0x2f8]
call fcn.00407516
mov edi, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 2
call fcn.0040258a
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x2fc], eax
cmp eax, edi
je 0x40f904
mov esi, dword [ebp - 0x2ec]
add esi, 0x430
mov dword [ebp - 0x2e4], esi
and dword [ebp - 0x60], 0
lea ecx, [ebp - 0x60]
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
push eax
call fcn.00402603
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.1
call ebx
xor eax, eax
mov dword [ebp - 0x64], 0xf
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x78], al
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
push esi
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
call fcn.00402603
lea ecx, [ebp - 0x78]
call fcn.00407028
xor eax, eax
add esp, 0x18
cmp dword [ebp - 0x68], eax
je 0x40f8ec
sub esp, 0x18
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x78]
push eax
call fcn.004055b2
push 0x2c
lea eax, [ebp - 0x320]
push eax
call fcn.00409ab1
mov byte [ebp - 4], 7
mov edx, dword [eax]
cmp dword [edx + 0x14], 0x10
jb 0x40ea93
mov edx, dword [edx]
lea ecx, [ebp - 0xd8]
call fcn.00406de6
lea ecx, [ebp - 0x320]
mov byte [ebp - 4], 9
call fcn.004072c3
push str.12
call ebx
lea eax, [ebp - 0xd8]
mov edx, str.http:__by.haory.cn_g1_589_ManifestAutoUpdate_
push eax
lea ecx, [ebp - 0x40]
call fcn.004134ed
pop ecx
mov esi, str..zip
mov byte [ebp - 4], 0xa
push esi
mov edx, eax
lea ecx, [ebp - 0xf0]
call fcn.0041353b
pop ecx
lea ecx, [ebp - 0x40]
call fcn.0040258a
xor eax, eax
mov dword [ebp - 0xf4], 7
mov dword [ebp - 0x108], eax
mov dword [ebp - 0xf8], eax
mov word [ebp - 0x108], ax
push str.123
mov byte [ebp - 4], 0xd
call ebx
lea eax, [ebp - 0x2d0]
push 2
push eax
call fcn.004be4e0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d0]
mov bl, al
push 0x30d40
mov eax, 0x7d0
push eax
mov edx, dword [ecx]
push eax
call dword [edx + 0x24]
test bl, bl
je 0x40f8c1
mov ebx, dword [ebp - 0x2cc]
lea eax, [ebp - 0xa8]
push str._ManifestAutoUpdate_
push ebx
push eax
call fcn.00406bc5
add esp, 0xc
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0xe
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00406c0f
add esp, 0xc
push esi
mov edx, eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xc0]
call fcn.0041353b
pop ecx
lea ecx, [ebp - 0x40]
call fcn.0040258a
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x12
call fcn.0040258a
cmp dword [ebp - 0xac], 8
lea esi, [ebp - 0xc0]
mov ecx, dword [ebp - 0x2d0]
lea edx, [ebp - 0xf0]
cmovae esi, dword [ebp - 0xc0]
cmp dword [ebp - 0xdc], 8
push esi
cmovae edx, dword [ebp - 0xf0]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
test al, al
je 0x40f237
xor eax, eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d8], eax
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
lea esi, [ebp - 0x2e0]
push ebx
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
call fcn.00402603
xor dl, dl
mov ecx, esi
call fcn.00403b54
mov ebx, dword [ebp - 0x2e0]
add esp, 0x18
mov eax, dword [ebp - 0x2dc]
cmp ebx, eax
je 0x40ed00
mov edi, eax
xor eax, eax
lea ecx, [ebp - 0x28]
push ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
call fcn.00402603
push 0x577424
mov byte [ebp - 4], 0x14
call fcn.004ff4a6
cmp dword [ebp - 0x14], 8
mov esi, dword [ebp - 0x28]
pop ecx
push eax
push 0x577424
push 0
push dword [ebp - 0x18]
lea ecx, [ebp - 0x28]
cmovae ecx, esi
push ecx
call fcn.00406097
add esp, 0x14
cmp eax, 0xffffffff
je 0x40ec9d
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00402603
call fcn.00403594
mov esi, dword [ebp - 0x28]
add esp, 0x18
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40eced
lea eax, [eax*2 + 2]
mov dword [ebp - 0x2c8], esi
mov dword [ebp - 0x2c4], eax
cmp eax, 0x1000
jb 0x40ece4
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2c8]
push eax
call fcn.00401403
mov eax, dword [ebp - 0x2c4]
mov esi, dword [ebp - 0x2c8]
pop ecx
pop ecx
push eax
push esi
call fcn.004e6456
pop ecx
pop ecx
push 0x18
pop eax
add ebx, eax
cmp ebx, edi
jne 0x40ec31
mov edi, dword [ebp - 0x2f4]
push str.1234
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x1b4]
call fcn.0040ca05
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x15
call fcn.004069ba
mov ecx, eax
xor eax, eax
cmp edx, eax
jg 0x40eeb8
jl 0x40ed3f
cmp ecx, 0x1f4
jae 0x40eeb8
lea ecx, [ebp - 0x1a0]
call fcn.0040258a
mov esi, dword [ebp - 0x2e0]
test esi, esi
je 0x40ede4
mov ebx, dword [ebp - 0x2dc]
cmp esi, ebx
je 0x40ed7e
push 0x18
pop edi
mov ecx, esi
call fcn.0040258a
add esi, edi
cmp esi, ebx
jne 0x40ed65
mov edi, dword [ebp - 0x2f4]
mov esi, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2d8]
mov ebx, 0x1000
sub eax, esi
mov dword [ebp - 0x2c4], esi
push 0x18
cdq
pop ecx
idiv ecx
imul eax, eax, 0x18
mov dword [ebp - 0x2c8], eax
cmp eax, ebx
jb 0x40edc5
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2c4]
push eax
call fcn.00401403
mov eax, dword [ebp - 0x2c8]
mov esi, dword [ebp - 0x2c4]
pop ecx
pop ecx
push eax
push esi
call fcn.004e6456
xor eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d8], eax
jmp 0x40ede9
mov ebx, 0x1000
lea ecx, [ebp - 0xc0]
call fcn.0040258a
lea ecx, [ebp - 0xf0]
call fcn.0040258a
lea ecx, [ebp - 0xd8]
call fcn.0040258a
mov eax, dword [ebp - 0x64]
cmp eax, 0x10
jb 0x40ee50
mov ecx, dword [ebp - 0x78]
inc eax
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], ecx
cmp eax, ebx
jb 0x40ee47
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2c4]
push eax
call fcn.00401403
mov eax, dword [ebp - 0x2c8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c4]
push eax
push ecx
call fcn.004e6456
pop ecx
pop ecx
and dword [ebp - 0x68], 0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], 0
cmp eax, 8
jb 0x40f277
mov ecx, dword [ebp - 0x60]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], ecx
cmp eax, ebx
jb 0x40eeaa
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2c4]
push eax
call fcn.00401403
mov eax, dword [ebp - 0x2c8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c4]
push eax
push ecx
call fcn.004e6456
pop ecx
pop ecx
jmp 0x40f277
mov ebx, dword [ebp - 0x2cc]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2c8], esp
push ebx
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
call fcn.00402603
sub esp, 0x18
mov byte [ebp - 4], 0x16
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00402603
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 4], 0x15
call fcn.0040cbc2
cmp al, 1
jne 0x40f221
lea ecx, [ebp - 0xc0]
call fcn.00406aaa
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
push str._ManifestAutoUpdate_
lea eax, [ebp - 0x40]
push ebx
push eax
call fcn.00406bc5
add esp, 0xc
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x17
push ecx
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00406c0f
add esp, 0xc
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x19
call fcn.0040258a
push str._depotcache
lea eax, [ebp - 0xa8]
push ebx
push eax
call fcn.00406bc5
add esp, 0xc
mov byte [ebp - 4], 0x1a
cmp dword [eax + 0x14], 8
jb 0x40ef7f
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x90]
call fcn.004024f3
lea ecx, [ebp - 0x90]
call fcn.00403db0
lea ecx, [ebp - 0x90]
call fcn.0040258a
lea ecx, [ebp - 0xa8]
call fcn.0040258a
xor eax, eax
mov dword [ebp - 0x314], eax
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x30c], eax
sub esp, 0x18
mov byte [ebp - 4], 0x1b
mov ecx, esp
mov dword [ebp - 0x2c8], esp
push 0x5740d8
call fcn.004024f3
sub esp, 0x18
mov byte [ebp - 4], 0x1c
mov ecx, esp
lea esi, [ebp - 0x314]
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00402603
xor dl, dl
mov byte [ebp - 4], 0x1b
mov ecx, esi
call fcn.00403805
mov esi, str._depotcache
lea eax, [ebp - 0x40]
push esi
push ebx
push eax
call fcn.00406bc5
add esp, 0x3c
mov ecx, eax
call fcn.00403d4d
lea ecx, [ebp - 0x40]
mov bl, al
call fcn.0040258a
test bl, bl
jne 0x40f055
push esi
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x40]
push eax
call fcn.00406bc5
add esp, 0xc
mov ecx, eax
call fcn.00403d81
lea ecx, [ebp - 0x40]
call fcn.0040258a
mov esi, dword [ebp - 0x314]
mov ebx, dword [ebp - 0x310]
cmp esi, ebx
je 0x40f19c
mov edi, dword [ebp - 0x2cc]
xor eax, eax
lea ecx, [ebp - 0x28]
push esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
call fcn.00402603
push 0x5740c4
mov byte [ebp - 4], 0x1d
call fcn.004ff4a6
cmp dword [ebp - 0x14], 8
pop ecx
push dword [ebp - 0x2e4]
lea ecx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
push eax
push 0x5740c4
push 0xffffffffffffffff
push dword [ebp - 0x18]
push ecx
call fcn.00405fd4
add esp, 0x18
lea ecx, [ebp - 0x28]
inc eax
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00404ae6
push str._depotcache_
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x1e
push edi
push eax
call fcn.00406bc5
add esp, 0xc
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x1f
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00406c0f
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x40f103
mov eax, dword [eax]
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
push 1
cmovae ecx, dword [ebp - 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x40]
call fcn.0040258a
lea ecx, [ebp - 0xa8]
call fcn.0040258a
lea ecx, [ebp - 0x90]
call fcn.0040258a
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40f189
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], ecx
cmp eax, 0x1000
jb 0x40f180
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2c4]
push eax
call fcn.00401403
mov eax, dword [ebp - 0x2c8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c4]
push eax
push ecx
call fcn.004e6456
pop ecx
pop ecx
push 0x18
pop eax
add esi, eax
cmp esi, ebx
jne 0x40f06f
mov edi, dword [ebp - 0x2f4]
mov ebx, dword [ebp - 0x2cc]
lea eax, [ebp - 0x120]
push str._depotcache_config.vdf
push ebx
push eax
call fcn.00406bc5
add esp, 0xc
cmp dword [ebp - 0x10c], 8
lea eax, [ebp - 0x120]
cmovae eax, dword [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x120]
call fcn.00406905
test al, al
jne 0x40f29b
xor eax, eax
push eax
push eax
mov eax, dword [ebp - 0x2ec]
push 0x57777c
push dword [eax + 0x248]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x120]
call fcn.0040258a
lea ecx, [ebp - 0x314]
call fcn.0040726f
lea ecx, [ebp - 0x138]
call fcn.0040258a
lea ecx, [ebp - 0x1a0]
call fcn.0040258a
lea ecx, [ebp - 0x2e0]
call fcn.0040726f
lea ecx, [ebp - 0xc0]
call fcn.0040258a
lea ecx, [ebp - 0x108]
call fcn.0040258a
lea ecx, [ebp - 0xf0]
call fcn.0040258a
lea ecx, [ebp - 0xd8]
call fcn.0040258a
lea ecx, [ebp - 0x78]
call fcn.0040545f
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call fcn.0040258a
mov eax, dword [ebp - 0x2fc]
push 0x18
pop ecx
add eax, ecx
mov dword [ebp - 0x2fc], eax
cmp eax, edi
je 0x40f904
mov esi, dword [ebp - 0x2e4]
jmp 0x40ea00
xor eax, eax
mov dword [ebp - 0x13c], 0xf
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x140], eax
mov byte [ebp - 0x150], al
sub esp, 0x18
mov byte [ebp - 4], 0x21
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x120]
push eax
call fcn.00402603
lea ecx, [ebp - 0x150]
call fcn.00407028
add esp, 0xc
lea eax, [ebp - 0x150]
lea ecx, [ebp - 0x558]
push eax
call fcn.004048fe
xor eax, eax
mov byte [ebp - 4], 0x22
mov byte [ebp - 0x2c1], al
lea edx, [ebp - 0x558]
lea eax, [ebp - 0x2c3]
mov word [ebp - 0x2c3], 1
push eax
lea ecx, [ebp - 0x268]
call fcn.004135e1
mov edi, dword [ebp - 0x2ec]
pop ecx
push eax
lea ecx, [edi + 0x448]
call fcn.0040f92e
lea ecx, [ebp - 0x268]
call fcn.0040d038
push str._config_config.vdf
lea eax, [ebp - 0x90]
push ebx
push eax
call fcn.00406bc5
xor eax, eax
mov dword [ebp - 0x154], 0xf
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x158], eax
mov byte [ebp - 0x168], al
sub esp, 0xc
mov byte [ebp - 4], 0x24
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x90]
push eax
call fcn.00402603
lea ecx, [ebp - 0x168]
call fcn.00407028
add esp, 0xc
lea eax, [ebp - 0x168]
lea ecx, [ebp - 0x3f0]
push eax
call fcn.004048fe
mov byte [ebp - 4], 0x25
cmp dword [ebp - 0x394], 0
je 0x40f846
xor eax, eax
mov word [ebp - 0x2c3], 1
mov byte [ebp - 0x2c1], al
lea edx, [ebp - 0x3f0]
lea eax, [ebp - 0x2c3]
push eax
lea ecx, [ebp - 0x210]
call fcn.004135e1
pop ecx
lea ecx, [ebp - 0x3f0]
mov byte [ebp - 4], 0x26
call fcn.00412b50
push str.Valve
lea ecx, [ebp - 0x180]
call fcn.00404cd2
push str.Software
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x27
call fcn.00404cd2
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x28
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x1d8]
call fcn.0041391c
push 0x20
pop ebx
mov eax, dword [eax]
mov ecx, dword [eax + ebx]
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x308]
add ecx, 0x38
push eax
call fcn.0041391c
lea ecx, [ebp - 0x328]
mov eax, dword [eax]
add eax, ebx
push eax
call fcn.00412b28
lea ecx, [ebp - 0x28]
call fcn.0040545f
lea ecx, [ebp - 0x180]
mov byte [ebp - 4], 0x2b
call fcn.0040545f
mov esi, dword [ebp - 0x328]
test esi, esi
jne 0x40f509
push str.valve
lea ecx, [ebp - 0x40]
call fcn.00404cd2
push str.Software
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x2c
call fcn.00404cd2
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x2d
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x1d8]
call fcn.0041391c
mov eax, dword [eax]
mov ecx, dword [eax + ebx]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x308]
add ecx, 0x38
push eax
call fcn.0041391c
lea ecx, [ebp - 0x328]
mov eax, dword [eax]
add eax, ebx
push eax
call fcn.00412abd
lea ecx, [ebp - 0xa8]
call fcn.0040545f
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x2b
call fcn.0040545f
mov esi, dword [ebp - 0x328]
push str.Steam
lea ecx, [ebp - 0x40]
call fcn.00404cd2
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x2e
push eax
lea eax, [ebp - 0x31c]
lea ecx, [esi + 0x38]
push eax
call fcn.0041391c
lea ecx, [ebp - 0x308]
mov eax, dword [eax]
add eax, ebx
push eax
call fcn.00412b28
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x30
call fcn.0040545f
mov ebx, dword [ebp - 0x308]
test ebx, ebx
je 0x40f81e
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.steam__null
call esi
push str.depots
lea ecx, [ebp - 0xa8]
call fcn.00404cd2
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x31
push eax
lea eax, [ebp - 0x2e8]
lea ecx, [ebx + 0x38]
push eax
call fcn.0041391c
lea ecx, [ebp - 0x31c]
mov eax, dword [eax]
add eax, 0x20
push eax
call fcn.00412b28
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x33
call fcn.0040545f
mov eax, dword [ebp - 0x31c]
test eax, eax
jne 0x40f759
push str.dddd__null
call esi
lea ecx, [ebp - 0x2e4]
call fcn.0041363a
mov edi, dword [eax]
and dword [eax], 0
mov dword [ebp - 0x2c8], edi
mov dword [ebp - 0x2c4], edi
lea ecx, [ebp - 0x2e4]
mov byte [ebp - 4], 0x34
call fcn.00412aa3
sub esp, 0x18
mov ecx, esp
push str.depots
call fcn.00404cd2
mov ecx, edi
call fcn.00412b80
mov eax, dword [ebp - 0x2ec]
mov ebx, dword [eax + 0x484]
mov esi, dword [ebx]
cmp esi, ebx
je 0x40f665
lea eax, [edi + 0x38]
mov dword [ebp - 0x2fc], eax
mov edi, eax
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.0040f974
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x35
push eax
lea eax, [ebp - 0x300]
mov ecx, edi
push eax
call fcn.004141df
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x34
call fcn.00412af9
lea ecx, [ebp - 0x48]
call fcn.0040545f
mov eax, dword [esi]
mov esi, eax
cmp eax, ebx
jne 0x40f621
mov edi, dword [ebp - 0x2c8]
and dword [ebp - 0x2c4], 0
push ecx
mov ecx, dword [ebp - 0x308]
mov eax, esp
mov dword [eax], edi
call fcn.00412baa
sub esp, 0xc
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0x2c0]
push eax
call fcn.00412a66
push 0
lea edx, [ebp - 0x210]
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x2c0]
call fcn.0041368e
pop ecx
lea ecx, [ebp - 0x2c0]
call fcn.00412a36
push str._noset.txt
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x40]
push eax
call fcn.00406bc5
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0x37
cmp dword [esi + 0x14], 8
jb 0x40f6d9
mov eax, dword [esi]
push 0x5c
push 0xffffffffffffffff
push dword [esi + 0x10]
push eax
call fcn.00406c38
add esp, 0x10
mov ecx, esi
push eax
push 0
lea eax, [ebp - 0x28]
push eax
call fcn.00404ae6
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
cmp dword [esi + 0x14], 8
jb 0x40f713
mov esi, dword [esi]
push 0x57505c
push esi
call fcn.0050130f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x40f73e
push esi
push 1
push 6
push str.ddddd
call fcn.00500661
push esi
call fcn.00500101
add esp, 0x14
lea ecx, [ebp - 0x28]
call fcn.0040258a
lea ecx, [ebp - 0x40]
call fcn.0040258a
lea ecx, [ebp - 0x2c0]
jmp 0x40f80e
mov edi, dword [edi + 0x484]
mov esi, dword [edi]
cmp esi, edi
je 0x40f79e
lea ebx, [eax + 0x38]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.0040f974
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x38
push eax
lea eax, [ebp - 0x2e8]
mov ecx, ebx
push eax
call fcn.004141df
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x33
call fcn.0040f9a6
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x40f768
sub esp, 0xc
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0x4a0]
push eax
call fcn.00412a66
push 0
lea edx, [ebp - 0x210]
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x4a0]
call fcn.0041368e
pop ecx
lea ecx, [ebp - 0x4a0]
call fcn.00412a36
push str._noset.txt
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x40]
push eax
call fcn.00406bc5
add esp, 0xc
push 6
mov edx, str.ddddd
mov byte [ebp - 4], 0x3a
mov ecx, eax
call fcn.00406a04
pop ecx
lea ecx, [ebp - 0x40]
call fcn.0040258a
lea ecx, [ebp - 0x4a0]
call fcn.00403b03
lea ecx, [ebp - 0x31c]
call fcn.00412af9
lea ecx, [ebp - 0x308]
call fcn.00412af9
lea ecx, [ebp - 0x328]
call fcn.00412af9
lea ecx, [ebp - 0x210]
call fcn.0040d038
mov byte [ebp - 0x2d4], 1
lea ecx, [ebp - 0x3f0]
call fcn.00403ab2
lea ecx, [ebp - 0x168]
call fcn.0040545f
lea ecx, [ebp - 0x90]
call fcn.0040258a
lea ecx, [ebp - 0x558]
call fcn.00403ab2
lea ecx, [ebp - 0x150]
call fcn.0040545f
lea ecx, [ebp - 0x120]
call fcn.0040258a
lea ecx, [ebp - 0x314]
call fcn.0040726f
lea ecx, [ebp - 0x138]
call fcn.0040258a
lea ecx, [ebp - 0x1a0]
call fcn.0040258a
lea ecx, [ebp - 0x2e0]
call fcn.0040726f
lea ecx, [ebp - 0xc0]
call fcn.0040258a
jmp 0x40f8c9
xor eax, eax
mov dword [ebp - 0x2d4], eax
lea ecx, [ebp - 0x108]
call fcn.0040258a
lea ecx, [ebp - 0xf0]
call fcn.0040258a
lea ecx, [ebp - 0xd8]
call fcn.0040258a
jmp 0x40f8f2
mov dword [ebp - 0x2d4], eax
lea ecx, [ebp - 0x78]
call fcn.0040545f
lea ecx, [ebp - 0x60]
call fcn.0040258a
jmp 0x40f90c
xor eax, eax
mov dword [ebp - 0x2d4], eax
lea ecx, [ebp - 0x334]
call fcn.0040726f
lea ecx, [ebp - 0x2f8]
call fcn.0040726f
mov al, byte [ebp - 0x2d4]
call fcn.004e6a01
ret