Function at 0x41af5e
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x497c5b
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x4ba110]
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
push str.SystemRoot
mov dword [ebp - 0x88], ecx
call fcn.00478de7
xor esi, esi
add esp, 4
xor ecx, ecx
mov word [ebp - 0x48], cx
mov ecx, eax
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x38], esi
lea edi, [ecx + 2]
jmp 0x41ac40
mov dx, word [ecx]
add ecx, 2
cmp dx, si
jne 0x41ac40
sub ecx, edi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.0040b930
push 0xa
push str.System32_
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], esi
call fcn.0040b810
push 0x24
mov dword [ebp - 0x74], esi
call fcn.004740ea
mov edi, eax
add esp, 4
cmp edi, esi
je 0x41b181
mov dword [edi], edi
mov dword [ebp - 0x78], edi
mov dword [edi + 4], edi
push 8
mov ebx, 1
mov byte [ebp - 4], bl
xor edx, edx
push str.d3d8.dll
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x2c], dx
call fcn.0040b930
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 2
mov ecx, dword [edi + 4]
push eax
push ecx
push edi
lea ecx, [ebp - 0x78]
call fcn.004166e0
mov dword [edi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x74], ebx
jb 0x41ace6
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00473515
add esp, 4
push 8
xor eax, eax
push str.d3d9.dll
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x2c], ax
call fcn.0040b930
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 3
mov edx, dword [edi + 4]
push edx
push edi
lea ecx, [ebp - 0x78]
call fcn.004166e0
mov dword [edi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x74], 2
jb 0x41ad3e
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00473515
add esp, 4
xor ecx, ecx
push 0xc
mov word [ebp - 0x2c], cx
push str.msvcp100.dll
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], esi
call fcn.0040b930
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 4
mov eax, dword [edi + 4]
push edx
push eax
push edi
lea ecx, [ebp - 0x78]
call fcn.004166e0
mov dword [edi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x74], 3
jb 0x41ad96
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00473515
add esp, 4
push 0xc
xor edx, edx
push str.msvcr100.dll
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x2c], dx
call fcn.0040b930
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 5
mov ecx, dword [edi + 4]
push eax
push ecx
push edi
lea ecx, [ebp - 0x78]
call fcn.004166e0
mov dword [edi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x74], 4
jb 0x41adee
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00473515
add esp, 4
mov esi, dword [edi]
mov dword [ebp - 0x7c], esi
cmp esi, edi
jne 0x41ae43
lea ecx, [ebp - 0x78]
call fcn.00416680
mov edx, dword [ebp - 0x78]
push edx
call fcn.00473515
add esp, 4
cmp dword [ebp - 0x34], 8
jb 0x41ae1d
mov eax, dword [ebp - 0x48]
push eax
call fcn.00473515
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.0047421a
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x7c]
lea eax, [ebp - 0x48]
add esi, 8
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov ebx, esi
mov dword [ebp - 0x68], esi
call fcn.0040cc50
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x41ae63
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
setne bl
cmp dword [ebp - 0x18], 8
jb 0x41ae82
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00473515
add esp, 4
test bl, bl
je 0x41b0fe
lea eax, [ebp - 0x64]
push str.http:__files.playfree.org_dlls_
push eax
mov ebx, esi
call fcn.0040cd60
add esp, 8
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 8
jb 0x41aeab
mov esi, dword [eax]
jmp 0x41aead
mov esi, eax
mov ecx, dword [0x4bb674]
mov dword [ebp - 0x6c], ecx
test esi, esi
je case.0x41af33.0
mov edx, esi
shr edx, 0x10
test edx, edx
jne 0x41aef4
movzx eax, si
push eax
lea ecx, [ebp - 0x6c]
call fcn.00401720
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x68]
push eax
call fcn.0040cc50
add esp, 8
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
jb 0x41af3a
mov esi, dword [eax]
jmp 0x41af3c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je case.0x41af33.0
push ebx
lea ecx, [ebp - 0x6c]
call fcn.00401970
test eax, eax
je case.0x41af33.0
lea eax, [ebx + ebx]
push eax
add eax, 2
push esi
push eax
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00473c51
add esp, 0x10
cmp eax, 0x50
ja case.0x41b15c.1
movzx ecx, byte [eax + 0x41b1c4]
jmp dword [ecx*4 + 0x41b1b4]
mov esi, eax
mov ecx, dword [0x4bb674]
mov dword [ebp - 0x68], ecx
test esi, esi
je case.0x41afd7.0
mov edx, esi
shr edx, 0x10
test edx, edx
jne 0x41af98
movzx eax, si
push eax
lea ecx, [ebp - 0x68]
call fcn.00401720
mov byte [ebp - 4], 9
mov edx, dword [0x4bb674]
push ecx
mov ebx, 0x4a67bc
shr ebx, 0x10
mov esi, esp
mov dword [ebp - 0x8c], esp
mov dword [esi], edx
mov dword [ebp - 0x80], ebx
test bx, bx
jne 0x41afde
mov eax, 0x4a67bc
movzx eax, ax
push eax
mov ecx, esi
call fcn.00401720
jmp 0x41b02d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je case.0x41afd7.0
push ebx
lea ecx, [ebp - 0x68]
call fcn.00401970
test eax, eax
je case.0x41afd7.0
lea eax, [ebx + ebx]
push eax
add eax, 2
push esi
push eax
mov eax, dword [ebp - 0x68]
push eax
call fcn.00473c51
add esp, 0x10
cmp eax, 0x50
ja case.0x41b15c.1
movzx ecx, byte [eax + 0x41b228]
jmp dword [ecx*4 + 0x41b218]
push 0x4a67bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je case.0x41b023.78
push ebx
mov ecx, esi
call fcn.00401970
test eax, eax
je case.0x41b023.78
mov esi, dword [esi]
lea eax, [ebx + ebx]
push eax
push 0x4a67bc
add eax, 2
push eax
push esi
call fcn.00473c51
add esp, 0x10
cmp eax, 0x50
ja case.0x41b15c.1
movzx ecx, byte [eax + 0x41b28c]
jmp dword [ecx*4 + 0x41b27c]
mov ebx, dword [ebp - 0x80]
push ecx
mov byte [ebp - 4], 0xa
mov edx, dword [0x4bb674]
mov esi, esp
mov dword [ebp - 0x80], esp
mov dword [esi], edx
test bx, bx
jne 0x41b113
mov eax, 0x4a67bc
movzx eax, ax
push eax
mov ecx, esi
call fcn.00401720
mov ecx, dword [ebp - 0x88]
lea edx, [ebp - 0x6c]
push edx
lea eax, [ebp - 0x68]
add ecx, 0x40
push eax
push ecx
xor cl, cl
mov byte [ebp - 4], 9
call fcn.00417a20
mov eax, dword [ebp - 0x68]
lea edx, [eax - 0xc]
cmp edx, dword [0x4bb670]
je 0x41b09a
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41b09a
push esi
call fcn.00473f58
add esp, 4
mov ebx, 8
cmp dword [ebp - 0x18], ebx
jb 0x41b0b0
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00473515
add esp, 4
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
lea edx, [eax - 0xc]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], cx
cmp edx, dword [0x4bb670]
je 0x41b0e9
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41b0e9
push esi
call fcn.00473f58
add esp, 4
mov byte [ebp - 4], 1
cmp dword [ebp - 0x50], ebx
jb 0x41b0fe
mov eax, dword [ebp - 0x64]
push eax
call fcn.00473515
add esp, 4
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ecx]
mov dword [ebp - 0x7c], eax
cmp eax, edi
jne 0x41ae40
jmp 0x41adf7
push 0x4a67bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je case.0x41b15c.78
push ebx
mov ecx, esi
call fcn.00401970
test eax, eax
je case.0x41b15c.78
mov esi, dword [esi]
lea eax, [ebx + ebx]
push eax
push 0x4a67bc
add eax, 2
push eax
push esi
call fcn.00473c51
add esp, 0x10
cmp eax, 0x50
ja case.0x41b15c.1
movzx ecx, byte [eax + 0x41b2f0]
jmp dword [ecx*4 + 0x41b2e0]
push 0x8007000e
call fcn.00401000
push 0x80070057
call fcn.00401000
push 0x80004005
call fcn.00401000
lea ecx, [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x84], esi
call fcn.00473ffc
push 0x4b1784
lea edx, [ebp - 0x98]
push edx
mov dword [ebp - 0x98], vtable.std::bad_alloc.0
call fcn.0047416a
iretd