Function at 0x405d0d
Capabilities:
Check if file exists
Create thread
Get file attributes
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x318
push ebx
push esi
push edi
xor ebx, ebx
push 0x104
push 0
lea eax, [ebp - 0x104]
push eax
call sub.CRTDLL.DLL_memset
push 0x104
push 0
lea eax, [ebp - 0x208]
push eax
call sub.CRTDLL.DLL_memset
add esp, 0x18
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0x2f
je 0x405d63
push eax
push 0x412f61
lea eax, [ebp - 0x104]
push eax
call sub.CRTDLL.DLL_sprintf
add esp, 0xc
jmp 0x405d7e
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x5c
push eax
push 0x412f5e
lea eax, [ebp - 0x104]
push eax
call sub.CRTDLL.DLL_sprintf
add esp, 0xc
xor edi, edi
mov esi, edi
jmp 0x405df6
lea ecx, [ebp - 0x104]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x405d8d
mov ecx, edi
add ecx, 2
cmp ecx, eax
jae 0x405dd2
cmp byte [ebp + edi - 0x104], 0x25
jne 0x405dd2
mov edx, edi
add edx, 1
cmp byte [ebp + edx - 0x104], 0x32
jne 0x405dd2
mov edx, edi
add edx, 2
cmp byte [ebp + edx - 0x104], 0x30
jne 0x405dd2
mov byte [ebp + esi - 0x208], 0x20
add edi, 2
jmp 0x405df4
cmp byte [ebp + edi - 0x104], 0x2f
jne 0x405de6
mov byte [ebp + esi - 0x208], 0x5c
jmp 0x405df4
mov al, byte [ebp + edi - 0x104]
mov byte [ebp + esi - 0x208], al
inc edi
inc esi
lea ecx, [ebp - 0x104]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x405dff
cmp edi, eax
jb 0x405d84
lea eax, [ebp - 0x208]
push eax
push dword [ebp + 0xc]
push 0x412f59
lea eax, [ebp - 0x30c]
push eax
call sub.CRTDLL.DLL_sprintf
add esp, 0x10
push 0x4137b2
lea eax, [ebp - 0x30c]
push eax
call sub.CRTDLL.DLL_strtok
add esp, 8
lea eax, [ebp - 0x30c]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0x10
jne 0x405e58
mov ebx, 1
jmp 0x405e78
lea eax, [ebp - 0x30c]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x405e78
push dword [ebp + 8]
call sub.wsock32.dll_closesocket
xor eax, eax
jmp 0x405fcb
mov eax, esi
dec eax
cmp byte [ebp + eax - 0x208], 0x5c
jne 0x405e88
xor ebx, ebx
inc ebx
or ebx, ebx
je 0x405f2f
push 0x413a70
lea eax, [ebp - 0x30c]
push eax
call sub.CRTDLL.DLL_strcat
lea eax, [ebp - 0x208]
push eax
call fcn.00406077
lea eax, [ebp - 0x30c]
push eax
push 0x4112c0
call sub.CRTDLL.DLL_sprintf
lea eax, [ebp - 0x208]
push eax
push 0x40bcb0
call sub.CRTDLL.DLL_sprintf
add esp, 0x1c
and dword [0x412d8c], 0
mov dword [0x4112b4], 1
mov dword [0x40bf30], 0x2710
lea eax, [ebp - 0x310]
push eax
push 0
push dword [ebp + 8]
push 0x405bb8
push 0
push 0
call sub.KERNEL32.DLL_CreateThread
or eax, eax
je 0x405f22
jmp 0x405f14
push 5
call sub.KERNEL32.DLL_Sleep
cmp dword [0x412d8c], 0
je 0x405f0d
jmp 0x405fc9
push dword [ebp + 8]
call sub.wsock32.dll_closesocket
jmp 0x405fc9
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x30c]
push eax
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0x318], eax
cmp eax, 0xffffffff
je 0x405fc9
push 0
push eax
call sub.KERNEL32.DLL_GetFileSize
mov dword [0x40bf30], eax
push dword [ebp - 0x318]
call sub.KERNEL32.DLL_CloseHandle
and dword [0x4112b4], 0
lea eax, [ebp - 0x30c]
push eax
push 0x4112c0
call sub.CRTDLL.DLL_sprintf
add esp, 8
and dword [0x412d8c], 0
lea eax, [ebp - 0x310]
push eax
push 0
push dword [ebp + 8]
push 0x405bb8
push 0
push 0
call sub.KERNEL32.DLL_CreateThread
or eax, eax
je 0x405fc1
jmp 0x405fb6
push 5
call sub.KERNEL32.DLL_Sleep
cmp dword [0x412d8c], 0
je 0x405faf
jmp 0x405fc9
push dword [ebp + 8]
call sub.wsock32.dll_closesocket
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret