Function at 0x408af1
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Get file attributes

Disassembly:
mov eax, 0x41e702
call fcn.0040c864
sub esp, 0x574
mov eax, dword [0x42005c]
push ebx
push esi
push edi
push 0x420b20
push 0x421450
mov ebx, ecx
push 0x420b10
lea ecx, [ebp - 0x560]
mov dword [ebp - 0x10], eax
call fcn.00407fd4
xor edi, edi
lea ecx, [ebp - 0x560]
mov dword [ebp - 4], edi
call fcn.004052d1
test eax, eax
jne 0x408b53
push 0x3e9
push 0x2c6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
xor esi, esi
jmp 0x408fcf
lea esi, [ebx + 8]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push esi
push edi
push 0x401c4c
push esi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
call fcn.00403f61
push edi
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x408b9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x3ea
push 0x2c7
jmp 0x408b46
xor eax, eax
inc eax
push eax
push esi
lea ecx, [ebp - 0x560]
mov dword [ebx + 0x210], eax
call fcn.00406737
lea ecx, [ebp - 0x560]
call fcn.00403f30
lea edi, [ebp - 0x114]
sub edi, esi
mov eax, esi
mov dword [ebp - 0x568], edi
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x408bcc
lea eax, [ebp - 0x114]
push eax
call fcn.00403f61
lea edi, [ebp - 0x114]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x408be9
mov esi, 0x4022bc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0
lea eax, [ebp - 0x114]
mov esi, 0x420b10
push eax
mov ecx, esi
call fcn.00414759
test eax, eax
jne 0x408c1d
push 0x3eb
jmp 0x408b41
push dword [0x403358]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
mov edi, eax
cmp byte [edi], 0
jne 0x408c41
push 0x443
jmp 0x408b41
lea ecx, [ebp - 0x580]
call fcn.004153f7
push edi
lea ecx, [ebp - 0x580]
mov byte [ebp - 4], 1
call fcn.004155d5
lea eax, [ebp - 0x580]
push eax
call fcn.00414dd1
push dword [0x40335c]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
cmp byte [eax], 0
je 0x408cbd
and dword [ebp - 0x570], 0
push 0x10
lea ecx, [ebp - 0x570]
push ecx
push eax
call fcn.0040c252
add esp, 0xc
push eax
call fcn.00414db9
push dword [0x403338]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
mov dword [ebx + 0x1264], eax
cmp byte [eax], 0
jne 0x408cc7
push 0x443
jmp 0x408fb3
push dword [0x403378]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
mov dword [ebx + 0x1268], eax
cmp byte [eax], 0
jne 0x408cef
push 0x444
jmp 0x408fb3
push dword [0x403314]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
mov dword [ebp - 0x56c], eax
cmp byte [eax], 0
jne 0x408d1f
push eax
call fcn.0040c06d
mov dword [esp], 0x441
jmp 0x408fb3
push 0
push 2
lea edi, [ebx + 0x1258]
push edi
lea eax, [ebp - 0x56c]
push eax
call fcn.004148bf
push 0x401c44
push dword [edi]
call fcn.0040bf8a
test eax, eax
pop ecx
pop ecx
jne 0x408d54
mov dword [ebx + 0x1260], reloc.WS2_32.dll_bind
jmp 0x408d74
push 0x401c3c
push dword [edi]
call fcn.0040bf8a
test eax, eax
pop ecx
pop ecx
jne 0x408fae
mov dword [ebx + 0x1260], reloc.WS2_32.dll_accept
push dword [0x40336c]
mov ecx, esi
push dword [0x4032fc]
mov byte [ebp - 0x561], 0
call fcn.0041433f
mov edi, eax
test edi, edi
je 0x408daa
movsx eax, byte [edi]
push eax
call fcn.0040d11b
cmp eax, 0x59
pop ecx
jne 0x408daa
mov byte [ebp - 0x561], 1
push edi
call fcn.0040c06d
cmp byte [ebp - 0x561], 0
pop ecx
jne 0x408e13
push dword [ebx + 0x1268]
push 1
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebx + 0x137c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x408e13
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
test eax, eax
je 0x408e04
add ebx, 0x1374
cmp dword [ebx], 0
jne 0x408fbe
mov dword [ebx], 0x445
jmp 0x408fbe
push 0x445
push 0x2be
jmp 0x408fb8
lea eax, [ebx + 0x34c]
cmp byte [eax], 0
je 0x408e32
lea edx, [ebp - 0x114]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x408e26
jmp 0x408e6f
lea eax, [ebx + 8]
mov cl, byte [eax]
mov edx, dword [ebp - 0x568]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x408e35
lea eax, [ebp - 0x114]
push eax
call fcn.00403f61
lea edi, [ebp - 0x114]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x408e58
mov esi, 0x4023c0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x420b10
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x408e89
xor esi, esi
inc esi
jmp 0x408fc0
push 8
push 0
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
mov dword [0x420b00], eax
jne 0x408eb2
push 0x443
push 0x2c7
jmp 0x408fb8
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4023b4
push eax
call edi
test eax, eax
je 0x408efe
push ebx
call eax
test eax, eax
mov dword [0x420b08], eax
je 0x408efe
lea ecx, [ebx + 0x450]
cmp byte [ecx], 0
je 0x408ee7
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx]
mov eax, dword [0x420b08]
test eax, eax
je 0x408efe
lea ecx, [ebx + 0x554]
cmp byte [ecx], 0
je 0x408efe
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 4]
push 0x4023a0
push dword [0x420b00]
call edi
test eax, eax
je 0x408f3a
mov eax, dword [eax]
push 0x402390
push dword [0x420b00]
mov dword [0x420af0], eax
call edi
push 0x40237c
push dword [0x420b00]
mov dword [0x420af8], eax
call edi
mov dword [0x420af4], eax
push dword [0x403368]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
mov edi, eax
test edi, edi
je 0x408f69
movsx eax, byte [edi]
push eax
call fcn.0040d11b
cmp eax, 0x59
pop ecx
jne 0x408f69
or dword [ebx + 0x244], 1
push edi
call fcn.0040c06d
pop ecx
push dword [0x403370]
mov ecx, esi
push dword [0x4032fc]
call fcn.0041433f
mov esi, eax
test esi, esi
je 0x408fa2
movsx eax, byte [esi]
push eax
call fcn.0040d11b
cmp eax, 0x59
pop ecx
jne 0x408fa2
mov dword [ebx + 0x21c], 1
push esi
call fcn.0040c06d
pop ecx
jmp 0x408e81
push 0x442
push 0x2c6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
xor esi, esi
lea ecx, [ebp - 0x580]
mov byte [ebp - 4], 0
call fcn.004152d6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x560]
call fcn.00403f5c
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.0040bf1b
leave
ret