Function at 0x41d895
Capabilities:
Check if file exists

Disassembly:
push 0x190
mov eax, 0x54c9a6
call fcn.0051d3dc
mov edi, dword [ebp + 8]
test edi, edi
je 0x41dccc
push 0xc8
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x41dccc
mov esi, 0x55eaf4
xor ebx, ebx
cmp eax, 0x102
jne 0x41dcb6
mov ecx, edi
call fcn.0041d6c1
test al, al
je 0x41dcb6
push 0x81
push esi
push str.__s__d___lpdownload_begin
call fcn.00402cc1
add esp, 0xc
lea ecx, [ebp - 0x120]
call fcn.0041d314
push 0x556c1c
lea ecx, [ebp - 0xd0]
mov dword [ebp - 4], ebx
call fcn.00401b4a
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 1
push eax
mov ecx, edi
call fcn.0041d66f
test al, al
je 0x41dc89
push ebx
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00438237
add esp, 0xc
lea ecx, [ebp - 0xd0]
push eax
call fcn.00401e27
lea ecx, [ebp - 0x88]
call fcn.004036e0
lea eax, [ebp - 0xd0]
mov dword [ebp - 0x18], ebx
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], ebx
call fcn.0040342e
push ebx
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00438237
cmp dword [ebp - 0xa4], 8
lea ecx, [ebp - 0xb8]
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
cmovae ecx, dword [ebp - 0xb8]
cmp dword [ebp - 0x14], 8
push ecx
cmovae eax, dword [ebp - 0x28]
push eax
push 0x89
push esi
push str.__s__d___download_file___s__md5___s
call fcn.00402cc1
add esp, 0x20
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41daea
push 0x556c1e
lea ecx, [ebp - 0x88]
call fcn.00401b1b
movzx eax, byte [edi + 0x2c]
push eax
push 0x8f
push esi
push str.__s__d___download_file_file_encrypt___d
mov byte [ebp - 4], 4
call fcn.00402cc1
add esp, 0x10
lea eax, [ebp - 0x28]
cmp byte [edi + 0x2c], 0
je 0x41da6e
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00437925
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 5
push eax
push eax
push str.0aa4efce
call fcn.00429f87
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.004338ec
add esp, 0x20
lea ecx, [ebp - 0x88]
push eax
call fcn.00401dd5
lea ecx, [ebp - 0xa0]
call fcn.004036ba
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
jmp 0x41da97
cmp dword [ebp - 0x14], 8
cmovae eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.004355a8
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x88]
call fcn.00401dd5
lea ecx, [ebp - 0xa0]
call fcn.004036ba
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x88]
call fcn.004034c6
test al, al
je 0x41dac4
push 0x9e
push esi
push str.__s__d___download_file_md5_same
call fcn.00402cc1
jmp 0x41dad6
push 0xa2
push esi
push str.__s__d___download_file_md5_different
call fcn.00402cc1
mov bl, 1
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x88]
call fcn.004036ba
jmp 0x41daff
push 0xa8
push esi
push str.__s__d___download_file_not_exist
call fcn.00402cc1
add esp, 0xc
mov bl, 1
test bl, bl
je 0x41dc64
push 0xad
push esi
push str.__s__d___bNeedDown_begin
call fcn.00402cc1
add esp, 0xc
lea ecx, [ebp - 0x19c]
xor bl, bl
call fcn.0043233a
push 0
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00438237
add esp, 0xc
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 7
jb 0x41db4f
mov eax, dword [eax]
lea ecx, [ebp - 0x28]
push ecx
push 0x41d6e1
push eax
lea ecx, [ebp - 0x19c]
call fcn.004330f2
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 6
mov esi, eax
call fcn.004036e0
test esi, esi
je 0x41dba3
lea ecx, [ebp - 0x19c]
call fcn.004331d5
test eax, eax
je 0x41dba3
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ebx, [eax - 1]
neg ebx
sbb bl, bl
inc bl
mov esi, 0x55eaf4
test bl, bl
je 0x41dc4a
push 0xb8
push esi
push str.__s__d___download_ok
call fcn.00402cc1
and dword [ebp - 0x60], 0
lea eax, [ebp - 0x28]
and dword [ebp - 0x5c], 0
lea ecx, [ebp - 0x70]
add esp, 0xc
push eax
call fcn.0040342e
cmp byte [edi + 0x2c], 0
mov byte [ebp - 4], 8
je 0x41dc30
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00437925
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 9
push eax
push eax
push str.0aa4efce
call fcn.0042a039
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
push ecx
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.004168f4
add esp, 0x20
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x58]
call fcn.004036ba
mov ecx, dword [edi + 0x30]
test ecx, ecx
je 0x41dc42
mov eax, dword [ecx]
lea edx, [ebp - 0x120]
push edx
call dword [eax]
lea ecx, [ebp - 0x70]
call fcn.004036e0
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 3
call fcn.00432445
lea eax, [ebp - 0x120]
mov ecx, edi
push eax
call fcn.0041d53d
lea ecx, [ebp - 0xb8]
call fcn.004036e0
lea ecx, [ebp - 0x28]
call fcn.004036e0
xor ebx, ebx
jmp 0x41dc9c
push 0xca
push esi
push str.__s__d___has_no_download_item
call fcn.00402cc1
add esp, 0xc
lea ecx, [ebp - 0xd0]
call fcn.004036e0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x120]
call fcn.0041d3ff
push 0xc8
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x41d8cc
xor eax, eax
call fcn.0051d386
ret