Function at 0x504b70
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x260
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
push eax
mov dword [ebp - 0x230], ecx
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], edi
call fcn.005052ce
mov ebx, eax
cmp ebx, edi
je 0x50524b
mov dword [ebp - 0x234], edi
cmp dword [ecx + 0x38], edi
je 0x50524b
mov eax, dword [ecx + 0x38]
mov ecx, dword [eax]
lea edx, [ebp - 0x234]
push edx
push 0x63ec60
push str.DownloadClient
push eax
call dword [ecx + 0xb4]
test eax, eax
js 0x50523b
mov esi, 0x638524
cmp dword [ebp - 0x224], edi
jl 0x504c2c
mov eax, dword [ebp - 0x234]
lea edx, [ebp - 0x228]
push edx
push esi
mov dword [ebp - 0x228], edi
mov ecx, dword [eax]
push eax
mov dword [ebp - 0x220], 1
call dword [ecx]
mov eax, dword [ebp - 0x228]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
mov byte [ebp - 0x229], 1
cmp dword [ebp - 0x224], eax
jl 0x504c33
mov byte [ebp - 0x229], 0
test byte [ebp - 0x220], 1
je 0x504c4c
mov eax, dword [ebp - 0x228]
cmp eax, edi
je 0x504c4c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp byte [ebp - 0x229], 0
je 0x50523b
mov eax, dword [ebp - 0x234]
lea edx, [ebp - 0x228]
push edx
push esi
mov dword [ebp - 0x220], edi
mov dword [ebp - 0x228], edi
mov ecx, dword [eax]
push eax
call dword [ecx]
mov eax, dword [ebp - 0x228]
mov ecx, dword [eax]
lea edx, [ebp - 0x220]
push edx
push 0x63ec60
push dword [ebp - 0x224]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x228]
cmp eax, edi
je 0x504ca6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x220]
push dword [0x6bf428]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
test eax, eax
je 0x50522b
mov eax, dword [ebx]
push 3
pop ecx
lea edx, [ebp - 0x24c]
push edx
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x220]
push 0x385
mov word [ebp - 0x24c], cx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x24c]
push eax
call esi
push 0x37
pop ecx
cmp dword [ebx + 0x149c], edi
je 0x504d07
push 0x4b
pop ecx
cmp dword [ebx + 0x2c], 3
jne 0x504d21
cmp dword [ebx + 0x14b8], edi
je 0x504d21
cmp dword [ebx + 0x1498], 0x64
jne 0x504d21
add ecx, 0x1e
mov eax, dword [ebp - 0x220]
mov edx, dword [eax]
push ecx
push 0x392
push eax
call dword [edx + 0x78]
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x238], eax
cmp eax, edi
je 0x504dfb
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x238]
mov ecx, dword [eax]
lea edx, [ebp - 0x24c]
push edx
push dword [0x6bf10c]
push eax
call dword [ecx + 0x28]
test eax, eax
js 0x504d83
mov ecx, dword [ebp - 0x244]
xor eax, eax
cmp ecx, dword [ebx + 0x2c]
setne al
cmp eax, edi
je 0x504df2
lea eax, [ebp - 0x224]
push eax
mov eax, dword [ebp - 0x230]
mov ecx, ebx
mov dword [ebp - 0x224], edi
call fcn.00504a4e
test eax, eax
js 0x504de2
push 0xd
pop eax
mov word [ebp - 0x25c], ax
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x254], eax
cmp eax, edi
je 0x504dc1
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov eax, dword [ebp - 0x238]
mov ecx, dword [eax]
lea edx, [ebp - 0x25c]
push edx
push 0x3e8
push eax
call dword [ecx + 0x2c]
lea eax, [ebp - 0x25c]
push eax
call esi
mov eax, dword [ebp - 0x224]
cmp eax, edi
je 0x504df2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x24c]
push eax
call esi
xor eax, eax
push 0x208
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push edi
push eax
xor esi, esi
call fcn.00402394
add esp, 0xc
cmp dword [ebx + 0x1490], edi
je 0x504e2a
push 0x65d940
jmp 0x504e3e
cmp dword [ebx + 0x2c], 3
jne 0x504e69
cmp dword [ebx + 0x1498], 0x64
jne 0x504e69
push 0x65d964
lea eax, [ebx + 0x34]
push eax
mov esi, 0xff4200
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push str._ls___ls_
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.004dd160
add esp, 0x14
jmp 0x504e8d
lea eax, [ebx + 0x34]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
push 0x65d970
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.004dd160
add esp, 0x10
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
lea edx, [ebp - 0x21c]
push edx
push dword [0x6bf0f0]
push eax
call dword [ecx + 0x94]
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push esi
push dword [0x6bf118]
push eax
call dword [ecx + 0x78]
push dword [ebx + 0x1c]
mov esi, dword [ebp - 0x220]
push dword [ebx + 0x18]
lea edi, [ebp - 0x238]
call fcn.00505be0
push dword [eax]
mov ecx, dword [esi]
push dword [0x6bf100]
push esi
call dword [ecx + 0x94]
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
call fcn.0040acc3
push dword [ebx + 0x2c]
mov eax, dword [ebp - 0x220]
push dword [0x6bf10c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x78]
mov edi, dword [ebp - 0x230]
cmp dword [edi + 0xa0], 0
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
setne dl
movzx edx, dl
push edx
push dword [0x6bf120]
push eax
call dword [ecx + 0x8c]
fild dword [ebx + 0x28]
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push ecx
push ecx
fstp qword [esp]
push dword [0x6bf114]
push eax
call dword [ecx + 0x88]
mov esi, dword [ebp - 0x220]
lea eax, [ebp - 0x230]
push eax
mov eax, ebx
call fcn.00505a9f
push dword [eax]
mov ecx, dword [esi]
push dword [0x6bf108]
push esi
call dword [ecx + 0x94]
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
call fcn.0040acc3
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
xor esi, esi
cmp dword [edi + 0xa4], esi
setne dl
movzx edx, dl
push edx
push dword [0x6bf12c]
push eax
call dword [ecx + 0x8c]
push ecx
lea ecx, [ebx + 0x34]
mov eax, esp
push ecx
call fcn.004250cb
call fcn.004f61ca
pop ecx
test eax, eax
je 0x504fc7
call fcn.004f62a5
test eax, eax
je 0x504fc7
mov cl, 1
jmp 0x504fc9
xor cl, cl
mov eax, dword [ebp - 0x220]
mov edx, dword [eax]
push ecx
push dword [0x6bf400]
push eax
call dword [edx + 0x8c]
cmp dword [ebx + 0x30], esi
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
setne dl
movzx edx, dl
push edx
push dword [0x6bf404]
push eax
call dword [ecx + 0x8c]
mov edi, dword [ebp - 0x220]
lea eax, [ebp - 0x230]
push eax
mov eax, ebx
call fcn.00506ee7
push dword [eax]
mov ecx, dword [edi]
push dword [0x6bf414]
push edi
call dword [ecx + 0x94]
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
call fcn.0040acc3
cmp dword [ebx + 0x14b8], esi
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
setne dl
movzx edx, dl
push edx
push dword [0x6bf420]
push eax
call dword [ecx + 0x8c]
cmp dword [ebx + 0x2c], 2
jne 0x505067
cmp dword [ebx + 0x18], esi
jne 0x505067
cmp dword [ebx + 0x1c], esi
jne 0x505067
mov cl, 1
jmp 0x505069
xor cl, cl
mov eax, dword [ebp - 0x220]
mov edx, dword [eax]
push ecx
push dword [0x6bf41c]
push eax
call dword [edx + 0x8c]
cmp dword [ebx + 0x2c], 1
jne 0x505093
cmp dword [ebx + 0x18], esi
jne 0x505093
cmp dword [ebx + 0x1c], esi
jne 0x505093
mov cl, 1
jmp 0x505095
xor cl, cl
mov eax, dword [ebp - 0x220]
mov edx, dword [eax]
push ecx
push dword [0x6bf418]
push eax
call dword [edx + 0x8c]
mov eax, dword [ebx + 0x2c]
cmp eax, 3
jne 0x5050e5
mov ecx, dword [ebx + 0x1498]
cmp ecx, eax
ja 0x5050d3
mov eax, dword [ebp - 0x220]
mov edx, dword [eax]
inc ecx
push ecx
push dword [0x6bf128]
push eax
call dword [edx + 0x78]
jmp 0x5050f8
cmp eax, 3
jne 0x5050e5
cmp dword [ebx + 0x1498], 0x64
jne 0x5050e5
push 5
jmp 0x5050e6
push esi
push dword [0x6bf128]
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x78]
mov eax, dword [ebx + 0x2c]
cmp eax, 5
jne 0x505104
push 2
jmp 0x505112
cmp eax, esi
je 0x505110
cmp eax, 4
je 0x505110
push esi
jmp 0x505112
push 1
push dword [0x6bf110]
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x78]
lea eax, [ebp - 0x228]
push eax
push 0x39
mov dword [ebp - 0x228], esi
call fcn.004df2cc
cmp dword [ebx + 4], esi
jne 0x5051d1
mov eax, dword [0x6bbe20]
mov ecx, 0x6bbe20
call dword [eax + 0xc]
cmp dword [ebx + 0x2c], 1
lea edi, [eax + 0x10]
mov dword [ebp - 0x224], edi
jne 0x50517d
lea edi, [ebx + 0x1284]
mov eax, edi
call fcn.0042513c
push eax
push edi
lea eax, [ebp - 0x224]
call fcn.0040aa23
mov edi, dword [ebp - 0x224]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push edi
call esi
test eax, eax
jne 0x5051a7
lea edi, [ebx + 0x34]
mov eax, edi
call fcn.0042513c
push eax
push edi
lea eax, [ebp - 0x224]
call fcn.0040aa23
mov edi, dword [ebp - 0x224]
push edi
call esi
test eax, eax
je 0x5051c7
test edi, edi
je 0x5051c7
mov esi, edi
call fcn.005054b9
test eax, eax
je 0x5051c7
push eax
call fcn.004cece6
pop ecx
mov dword [ebx + 4], eax
lea eax, [edi - 0x10]
call fcn.0040acc3
xor esi, esi
mov eax, dword [ebx + 4]
cmp eax, esi
je 0x505205
cmp dword [ebx + 0x2c], 5
je 0x505205
push eax
lea eax, [ebp - 0x228]
call fcn.004df648
push dword [ebp - 0x228]
mov eax, dword [ebp - 0x220]
push dword [0x6bf0e4]
mov ecx, dword [eax]
push eax
call dword [ecx + pe_nt_image_headers32]
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push 1
push dword [0x6bf410]
push eax
call dword [ecx + 0x78]
mov eax, dword [ebp - 0x228]
cmp eax, esi
je 0x505229
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor edi, edi
mov eax, dword [ebp - 0x220]
cmp eax, edi
je 0x50523b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x234]
cmp eax, edi
je 0x50524b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403fc1
leave
ret 4