Function at 0x401769
Capabilities:
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x634
push ebx
push esi
push edi
mov dword [ebp - 0x4e8], 0
mov dword [ebp - 8], 0
mov edi, dword [ebp + 0x10]
push edi
push 0
push 0x402102
push edi
call fcn.00401c70
add esp, 0x10
lea edi, [ebp - 0x349]
push edi
lea edi, [ebp - 0x2e5]
push edi
lea edi, [ebp - 0x21d]
push edi
lea edi, [ebp - 0x155]
push edi
push dword [ebp + 0x10]
call sub.CRTDLL.DLL__splitpath
add esp, 0x14
lea edi, [ebp - 0x349]
push edi
push str..exp_hided
call sub.CRTDLL.DLL_strcat
add esp, 8
push eax
lea edi, [ebp - 0x2e5]
push edi
lea edi, [ebp - 0x21d]
push edi
lea edi, [ebp - 0x155]
push edi
lea edi, [ebp - 0x4d9]
push edi
call sub.CRTDLL.DLL__makepath
add esp, 0x14
lea edi, [ebp - 0x14a]
push edi
push dword [ebp + 0x10]
call sub.KERNEL32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x401ada
push dword [ebp - 0x12a]
call sub.CRTDLL.DLL_malloc
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp - 0x12a]
push dword [ebp - 4]
call sub.KERNEL32.dll_RtlZeroMemory
push 0
push 0
push 3
push 0
push 1
push 0x80000000
push dword [ebp + 0x10]
call sub.KERNEL32.dll_CreateFileA
mov dword [ebp - 0x150], eax
push 0
lea edi, [ebp - 0x4ec]
push edi
push dword [ebp - 0x12a]
push dword [ebp - 4]
push dword [ebp - 0x150]
call sub.KERNEL32.dll_ReadFile
push dword [ebp - 0x150]
call sub.KERNEL32.dll_CloseHandle
push 4
mov edi, dword [ebp - 4]
add edi, 0x3c
push edi
lea edi, [ebp - 0x4e4]
push edi
call sub.CRTDLL.DLL_memcpy
add esp, 0xc
mov edi, dword [ebp - 0x4e4]
add edi, dword [ebp - 4]
mov dword [ebp - 0x4e0], edi
mov edi, dword [ebp - 0x4e0]
push dword [edi + 0x78]
push dword [ebp - 4]
call fcn.00401464
add esp, 8
mov edi, eax
add edi, dword [ebp - 4]
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0xc]
mov edi, dword [edi + 0x18]
mov dword [ebp - 0x558], edi
push 0xc8
lea edi, [ebp - 0x628]
push edi
call sub.KERNEL32.dll_RtlZeroMemory
mov edi, dword [ebp - 0xc]
push dword [edi + 0x20]
push dword [ebp - 4]
call fcn.00401464
add esp, 8
mov dword [ebp - 0x55c], eax
mov edi, dword [ebp - 0xc]
push dword [edi + 0x24]
push dword [ebp - 4]
call fcn.00401464
add esp, 8
mov dword [ebp - 0x560], eax
mov dword [ebp - 0x550], 0
jmp 0x40198e
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x55c]
mov ebx, dword [ebp - 0x550]
shl ebx, 2
add esi, ebx
push dword [edi + esi]
push edi
call fcn.00401464
add esp, 8
mov edi, eax
add edi, dword [ebp - 4]
mov dword [ebp - 0x62c], edi
mov edi, dword [ebp - 0x560]
mov esi, dword [ebp - 0x550]
shl esi, 1
add edi, esi
mov esi, dword [ebp - 4]
movzx edi, word [esi + edi]
mov esi, dword [ebp - 0xc]
add edi, dword [esi + 0x10]
mov word [ebp - 0x62e], di
cmp word [ebp - 0x62e], 1
jne 0x401988
push str.CTFStart
push dword [ebp - 0x62c]
call sub.CRTDLL.DLL_strcmp
add esp, 8
cmp eax, 0
jne 0x401988
mov dword [ebp - 8], 1
inc dword [ebp - 0x550]
mov edi, dword [ebp - 0x558]
cmp dword [ebp - 0x550], edi
jb 0x401910
mov dword [ebp - 0x554], 0
jmp 0x401a7d
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x55c]
mov ebx, dword [ebp - 0x554]
shl ebx, 2
add esi, ebx
push dword [edi + esi]
push edi
call fcn.00401464
add esp, 8
mov edi, eax
add edi, dword [ebp - 4]
mov dword [ebp - 0x62c], edi
mov edi, dword [ebp - 0x560]
mov esi, dword [ebp - 0x554]
shl esi, 1
add edi, esi
mov esi, dword [ebp - 4]
movzx edi, word [esi + edi]
mov esi, dword [ebp - 0xc]
add edi, dword [esi + 0x10]
mov word [ebp - 0x62e], di
cmp dword [ebp - 8], 0
je 0x401a0e
cmp word [ebp - 0x62e], 1
je 0x401a14
cmp dword [ebp - 8], 0
jne 0x401a77
mov edi, dword [ebp - 0x62c]
add edi, 1
push edi
call fcn.00401bf4
add esp, 4
mov edi, eax
push 1
push edi
call fcn.00401b04
add esp, 8
mov dword [ebp - 0x634], eax
push dword [ebp - 0x62c]
call fcn.00401bf4
add esp, 4
mov edi, eax
push edi
push dword [ebp - 0x634]
call fcn.0040129c
add esp, 8
mov edi, eax
push edi
push dword [ebp - 0x62c]
call fcn.00401bcd
add esp, 8
push dword [ebp - 0x634]
call sub.CRTDLL.DLL_free
add esp, 4
inc dword [ebp - 0x554]
mov edi, dword [ebp - 0x558]
cmp dword [ebp - 0x554], edi
jb 0x4019af
push 0
push 0
push 2
push 0
push 0
push 0x40000000
lea edi, [ebp - 0x4d9]
push edi
call sub.KERNEL32.dll_CreateFileA
mov dword [ebp - 0x150], eax
push 0
lea edi, [ebp - 0x4f0]
push edi
push dword [ebp - 0x12a]
push dword [ebp - 4]
push dword [ebp - 0x150]
call sub.KERNEL32.dll_WriteFile
push dword [ebp - 0x150]
call sub.KERNEL32.dll_CloseHandle
jmp 0x401aea
push 0
push 0
push str.File_not_found_:_
push 0
call sub.USER32.DLL_MessageBoxA
push dword [ebp - 4]
call sub.CRTDLL.DLL_free
add esp, 4
mov eax, 0
pop edi
pop esi
pop ebx
leave
ret 0x10