Function at 0x405000
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43dbd6
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x45506c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [ebp - 0x58]
push eax
call fcn.004049a0
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x90]
call fcn.00405970
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
cmovae eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x405073
test al, 0x10
je 0x405073
mov bl, 1
jmp 0x405075
xor bl, bl
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x4050ac
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4050a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405508
push edx
push ecx
call fcn.0040d92d
add esp, 8
test bl, bl
jne 0x4051e7
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push 0
cmovae eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4051e7
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x70]
call fcn.00407240
add esp, 4
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x90]
call fcn.00402e20
push eax
mov edx, str._error_code:
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.00407370
add esp, 4
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x405146
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40513c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40550d
push edx
push ecx
call fcn.0040d92d
add esp, 8
sub esp, 0x18
mov dword [ebp - 0x80], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x7c], 0xf
mov ecx, esp
mov byte [ebp - 0x90], 0
lea edx, [ebp - 0x70]
push eax
call fcn.00406e00
add esp, 4
mov ecx, esi
push 3
call fcn.00404880
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4051ac
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4051a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405512
push edx
push ecx
call fcn.0040d92d
add esp, 8
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x4051e0
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4051d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405517
push edx
push ecx
call fcn.0040d92d
add esp, 8
xor bl, bl
jmp 0x4054bb
push 0x44dbc8
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x90]
call fcn.00406cb0
add esp, 4
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 5
push ecx
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.00406f40
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x40524d
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405243
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40551c
push edx
push ecx
call fcn.0040d92d
add esp, 8
lea eax, [ebp - 0x40]
mov dword [ebp - 0x80], 0
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
call fcn.00405970
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40528d
test al, 0x10
jne 0x40528d
mov bl, 1
jmp 0x40528f
xor bl, bl
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4052c3
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4052b9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405521
push edx
push ecx
call fcn.0040d92d
add esp, 8
test bl, bl
je 0x4052db
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.00428b8a
add esp, 4
sub esp, 0x18
mov ecx, esp
push 0xe
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.start_download
mov byte [ecx], 0
call fcn.004068a0
push 2
mov ecx, esi
call fcn.00404880
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.00405970
mov ecx, esi
call fcn.00404b70
test al, al
jne 0x405342
mov eax, dword [0x4585a4]
push 0
push 0x401
push 0x401
mov eax, dword [eax]
push dword [eax + 0x10]
call dword [sym.imp.USER32.dll_SendMessageW]
xor bl, bl
jmp 0x405475
sub esp, 0x18
mov ecx, esp
push 0x12
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.download_successed
mov byte [ecx], 0
call fcn.004068a0
push 2
mov ecx, esi
call fcn.00404880
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.00405970
mov ecx, esi
call fcn.00404cb0
test al, al
jne 0x405448
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.00402e20
push eax
mov edx, str.start_progress_failed_error_code:
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x70]
call fcn.00407370
add esp, 4
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4053e7
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4053dd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405526
push edx
push ecx
call fcn.0040d92d
add esp, 8
sub esp, 0x18
mov dword [ebp - 0x18], 0
lea eax, [ebp - 0x70]
mov dword [ebp - 0x14], 0xf
mov ecx, esp
mov byte [ebp - 0x28], 0
push eax
call fcn.00405970
push 3
mov ecx, esi
call fcn.00404880
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x405444
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40543a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40552b
push edx
push ecx
call fcn.0040d92d
add esp, 8
xor bl, bl
jmp 0x405475
sub esp, 0x18
mov ecx, esp
push 0x11
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.lanched_successed
mov byte [ecx], 0
call fcn.004068a0
push 2
mov ecx, esi
call fcn.00404880
mov bl, 1
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x4054a9
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40549f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405530
push edx
push ecx
call fcn.0040d92d
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x4054eb
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4054e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405535
push edx
push ecx
call fcn.0040d92d
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040d917
mov esp, ebp
pop ebp
ret
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
call fcn.00428920
int3