Function at 0x406b00
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1fc
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
push 0xa0
mov dword [ebp - 0x1d0], eax
mov ebx, edx
lea eax, [ebp - 0x128]
mov dword [ebp - 0x1cc], ebx
push 0
push eax
mov dword [ebp - 0x1e8], ecx
call sub.MSVCR120.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1c8]
push 0xa0
push 0
push eax
call sub.MSVCR120.dll_memset
mov ecx, dword [ebx]
xorps xmm0, xmm0
mov eax, ecx
movq qword [ebp - 0x64], xmm0
and eax, 8
movq qword [ebp - 0x3c], xmm0
shl eax, 0x19
add esp, 0xc
or eax, 2
mov dword [ebp - 0x1e4], eax
movdqu xmmword [ebp - 0x14], xmm0
movdqu xmmword [ebp - 0x24], xmm0
movdqu xmmword [ebp - 0x84], xmm0
movdqu xmmword [ebp - 0x74], xmm0
movdqu xmmword [ebp - 0x5c], xmm0
movdqu xmmword [ebp - 0x4c], xmm0
test ecx, ecx
jns 0x406ba9
or eax, 0x1000000
mov dword [ebp - 0x1e4], eax
mov edi, 0x10
movdqu xmmword [ebp - 0x34], xmm0
movdqu xmmword [ebp - 0x1fc], xmm0
test cl, 0x21
je 0x406bc5
mov edi, 0x20
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cdq
add esi, eax
push edx
adc ecx, edx
add esi, 0xffffffff
push eax
adc ecx, 0xffffffff
push ecx
push esi
call fcn.0040b560
imul eax, edi
mov esi, 0x100
xor ebx, ebx
push eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1e0], eax
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp - 0x1d4], eax
push dword [ebp - 0x1dc]
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp - 0x1ec], eax
cmp dword [ebp - 0x1dc], ebx
jle 0x406c8a
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x1d8], eax
push 0
push ebx
push esi
push dword [ebp - 0x1d0]
call dword [sym.imp.MSVCR120.dll__fseeki64]
push dword [ebp - 0x1d0]
push 1
push edi
push dword [ebp - 0x1d8]
call dword [sym.imp.MSVCR120.dll_fread]
mov eax, dword [ebp - 0x1cc]
add esp, 0x20
mov ecx, dword [ebp - 0x1e0]
add dword [ebp - 0x1d8], edi
sub ecx, edi
mov dword [ebp - 0x1e0], ecx
test byte [eax], 0x20
je 0x406c7f
mov eax, dword [eax + 4]
add eax, edi
jmp 0x406c81
mov eax, edi
cdq
add esi, eax
adc ebx, edx
test ecx, ecx
jg 0x406c31
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x1e4]
mov edx, 1
push eax
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x1dc]
xor eax, eax
cmp dword [esi + 4], 4
push dword [ebp - 0x1ec]
sete al
push dword [ebp - 0x1d4]
push eax
call fcn.00404760
mov ebx, dword [ebp - 0x1d0]
push 0
push 0
push 0x90
push ebx
call dword [sym.imp.MSVCR120.dll__fseeki64]
push ebx
push 1
lea eax, [ebp - 0x24]
push 0x10
push eax
call dword [sym.imp.MSVCR120.dll_fwrite]
add esp, 0x40
push 0
push 0
push 0
push ebx
call dword [sym.imp.MSVCR120.dll__fseeki64]
push ebx
push 1
lea eax, [ebp - 0x128]
push 0xa0
push eax
call dword [sym.imp.MSVCR120.dll_fread]
mov ecx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x1e8]
lea eax, [ebp - 0x1fc]
mov edx, 1
push eax
lea eax, [ebp - 0x34]
push eax
push 0xa0
lea eax, [ebp - 0x1c8]
push eax
lea eax, [ebp - 0x128]
push eax
xor eax, eax
cmp dword [esi + 4], 4
sete al
push eax
call fcn.00404760
mov esi, dword [sym.imp.MSVCR120.dll__fseeki64]
add esp, 0x40
push 0
push 0
push 0xa0
push ebx
call esi
push ebx
push 1
lea eax, [ebp - 0x14]
push 0x10
push eax
call dword [sym.imp.MSVCR120.dll_fwrite]
push 0
push 0
push 0xb0
push ebx
call esi
push 0x28
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 0x34
mov dword [ebp - 0x1cc], eax
push 0
call dword [sym.imp.MSVCR120.dll__time64]
add esp, 4
push eax
call dword [sym.imp.MSVCR120.dll_srand]
mov edi, dword [sym.imp.MSVCR120.dll_rand]
add esp, 4
mov ebx, dword [ebp - 0x1cc]
xor esi, esi
mov edi, edi
call edi
mov byte [esi + ebx], al
inc esi
cmp esi, 0x28
jl 0x406dc0
push 0x28
lea eax, [ebp - 0x84]
push ebx
push eax
call sub.MSVCR120.dll_memcpy
add esp, 0xc
push ebx
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov ebx, dword [ebp - 0x1d0]
lea eax, [ebp - 0x84]
add esp, 4
push ebx
push 1
push 0x28
push eax
call dword [sym.imp.MSVCR120.dll_fwrite]
push 0
push 0
push 0xd8
push ebx
call dword [sym.imp.MSVCR120.dll__fseeki64]
push 0x28
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 0x24
mov dword [ebp - 0x1cc], eax
push 0
call dword [sym.imp.MSVCR120.dll__time64]
add esp, 4
push eax
call dword [sym.imp.MSVCR120.dll_srand]
mov ebx, dword [ebp - 0x1cc]
add esp, 4
xor esi, esi
lea ecx, [ecx]
call edi
mov byte [esi + ebx], al
inc esi
cmp esi, 0x28
jl 0x406e40
push 0x28
lea eax, [ebp - 0x5c]
push ebx
push eax
call sub.MSVCR120.dll_memcpy
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 0xc
push ebx
call esi
mov ebx, dword [ebp - 0x1d0]
lea eax, [ebp - 0x5c]
add esp, 4
push ebx
push 1
push 0x28
push eax
call dword [sym.imp.MSVCR120.dll_fwrite]
push dword [ebp - 0x1d4]
call esi
add esp, 0x14
push dword [ebp - 0x1ec]
call esi
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.0040abe5
mov esp, ebp
pop ebp
ret