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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x200
xor ecx, ecx
jmp 0x402d30
movzx eax, word [ecx + 0x4af540]
mov word [ecx + 0x4b40e8], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x402d30
mov ecx, 0x4b40e8
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402d50
sub ecx, edx
sar ecx, 1
xor eax, eax
mov word [ecx*2 + 0x4b40d2], ax
mov ecx, 0x4b40e8
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x402d71
mov eax, dword [str.Downloads_]
mov dword [ecx], eax
mov eax, dword [0x46193c]
mov dword [ecx + 4], eax
mov eax, dword [0x461940]
mov dword [ecx + 8], eax
mov eax, dword [0x461944]
mov dword [ecx + 0xc], eax
mov eax, dword [0x461948]
mov dword [ecx + 0x10], eax
mov ax, word [0x46194c]
push 0
push 0x4b40e8
mov word [ecx + 0x14], ax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp dword [0x4a5174], 0
jne 0x402e06
mov eax, dword [0x4b40e0]
mov ecx, dword [0x4a51c4]
inc eax
cmp dword [0x4a51d8], 8
mov dword [0x4b40e0], eax
jae 0x402de3
mov ecx, 0x4a51c4
push ecx
push eax
push 0x4b40e8
push str._sTrack_02d_s
push 0x4b3ed8
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
mov eax, 0x4b3ed8
mov esp, ebp
pop ebp
ret
xor ecx, ecx
jmp 0x402e10
movzx eax, word [ecx + 0x4b40e8]
mov word [ebp + ecx - 0x200], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x402e10
cmp dword [0x4a51bc], 0
push esi
push edi
jbe 0x402e80
cmp dword [0x4a51c0], 8
mov edx, dword [0x4a51ac]
jae 0x402e46
mov edx, 0x4a51ac
mov esi, edx
jmp 0x402e50
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x402e50
lea edi, [ebp - 0x200]
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x402e66
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x4a51a4], 0
push ebx
mov ebx, dword [0x461970]
jbe 0x402f00
lea ecx, [ebp - 0x200]
add ecx, 0xfffffffe
lea esp, [esp]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x402ea0
cmp dword [0x4a51a8], 8
mov eax, dword [0x46196c]
mov edx, dword [0x4a5194]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
jae 0x402eca
mov edx, 0x4a5194
mov esi, edx
lea esp, [esp]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x402ed0
lea edi, [ebp - 0x200]
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x402ee6
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [0x4a518c], 0
jbe 0x402f70
lea ecx, [ebp - 0x200]
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x402f12
cmp dword [0x4a5190], 8
mov eax, dword [0x46196c]
mov edx, dword [0x4a517c]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
jae 0x402f3c
mov edx, 0x4a517c
mov esi, edx
mov edi, edi
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x402f40
lea edi, [ebp - 0x200]
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x402f56
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
lea eax, [ebp - 0x200]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x200]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
pop ebx
cmp eax, 0xffffffff
je 0x402fb5
test al, 0x10
je 0x402fb5
lea edi, [ebp - 0x200]
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x402fa0
mov eax, dword [0x461974]
mov dword [edi], eax
jmp 0x402fd7
xor ecx, ecx
jmp 0x402fc0
movzx eax, word [ecx + 0x4b40e8]
mov word [ebp + ecx - 0x200], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x402fc0
xor ecx, ecx
lea esp, [esp]
movzx eax, word [ebp + ecx - 0x200]
mov word [ecx + 0x4b3ed8], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x402fe0
xor ecx, ecx
lea esp, [esp]
movzx eax, word [ebp + ecx - 0x200]
mov word [ecx + 0x4b0cb8], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x403000
mov eax, dword [0x4b0eb8]
test eax, eax
jle 0x403063
push eax
push 0x461978
push 0x4b40d8
call dword [sym.imp.USER32.dll_wsprintfW]
mov edx, 0x4b40d8
add esp, 0xc
mov esi, edx
jmp 0x403040
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x403040
mov edi, 0x4b3ed8
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x403055
jmp 0x4030b1
push 0x4b3ed8
call fcn.00406060
inc eax
push eax
push 0x461978
push 0x4b40d8
call dword [sym.imp.USER32.dll_wsprintfW]
mov edx, 0x4b40d8
add esp, 0x10
mov esi, edx
lea esp, [esp]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x403090
mov edi, 0x4b3ed8
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4030a5
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [0x4a5164]
and ecx, 3
cmp dword [0x4a5178], 8
rep movsb byte es:[edi], byte [esi]
jae 0x4030d3
mov edx, 0x4a5164
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4030d5
mov edi, 0x4b3ed8
sub edx, esi
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4030f0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [0x4a51c4]
and ecx, 3
cmp dword [0x4a51d8], 8
rep movsb byte es:[edi], byte [esi]
jae 0x40311e
mov edx, 0x4a51c4
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x403120
mov edi, 0x4b3ed8
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x403135
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov eax, 0x4b3ed8
mov esp, ebp
pop ebp
ret