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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b0c9
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x45106c]
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 - 0x70]
push eax
call fcn.004046d0
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x90]
call fcn.00405510
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 0x404c63
test al, 0x10
je 0x404c63
mov bl, 1
jmp 0x404c65
xor bl, bl
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x404c9c
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404c92
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051b3
push edx
push ecx
call fcn.0040aee0
add esp, 8
test bl, bl
jne 0x404dd7
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
push 0
cmovae eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x404dd7
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x58]
call fcn.00406d40
add esp, 4
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x90]
call fcn.00402cb0
push eax
mov edx, str._error_code:
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.00406e70
add esp, 4
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x404d36
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404d2c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051b8
push edx
push ecx
call fcn.0040aee0
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 - 0x58]
push eax
call fcn.00406900
add esp, 4
mov ecx, esi
push 3
call fcn.00404530
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x404d9c
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404d92
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051bd
push edx
push ecx
call fcn.0040aee0
add esp, 8
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x404dd0
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404dc6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051c2
push edx
push ecx
call fcn.0040aee0
add esp, 8
xor bl, bl
jmp 0x405166
push 0x44ab38
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x90]
call fcn.004067b0
add esp, 4
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 5
push ecx
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.00406a40
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x404e3d
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404e33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051c7
push edx
push ecx
call fcn.0040aee0
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.00405510
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 0x404e7d
test al, 0x10
jne 0x404e7d
mov bl, 1
jmp 0x404e7f
xor bl, bl
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x404eb3
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404ea9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051cc
push edx
push ecx
call fcn.0040aee0
add esp, 8
test bl, bl
je 0x404ecb
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.0042615a
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.00406440
push 2
mov ecx, esi
call fcn.00404530
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x58]
call fcn.00405510
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xa8]
call fcn.004081d0
lea edx, [esi + 0x78]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x28]
call fcn.004081d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x404f61
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f57
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051d1
push edx
push ecx
call fcn.0040aee0
add esp, 8
mov edx, dword [ebp - 0x94]
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
cmp edx, 8
jb 0x404fb5
mov ecx, dword [ebp - 0xa8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404fab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051d6
push edx
push ecx
call fcn.0040aee0
add esp, 8
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x404fed
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404fe3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051db
push edx
push ecx
call fcn.0040aee0
add esp, 8
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.00406440
push 2
mov ecx, esi
call fcn.00404530
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.00405510
mov ecx, esi
call fcn.004048a0
test al, al
jne 0x4050f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x28]
call fcn.00402cb0
push eax
mov edx, str.start_progress_failed_error_code:
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x58]
call fcn.00406e70
add esp, 4
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x405092
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405088
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051e0
push edx
push ecx
call fcn.0040aee0
add esp, 8
sub esp, 0x18
mov dword [ebp - 0x18], 0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x14], 0xf
mov ecx, esp
mov byte [ebp - 0x28], 0
push eax
call fcn.00405510
push 3
mov ecx, esi
call fcn.00404530
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x4050ef
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4050e5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051e5
push edx
push ecx
call fcn.0040aee0
add esp, 8
xor bl, bl
jmp 0x405120
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.00406440
push 2
mov ecx, esi
call fcn.00404530
mov bl, 1
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x405154
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40514a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051ea
push edx
push ecx
call fcn.0040aee0
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x405196
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40518c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4051ef
push edx
push ecx
call fcn.0040aee0
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.0040aeca
mov esp, ebp
pop ebp
ret
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
call fcn.00425ef0
int3