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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x89c
mov eax, dword [0x101348c]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 7
pop ecx
lea esi, [ebp + 0x14]
lea edi, [ebp - 0x874]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x34]
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor esi, esi
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push esi
push dword [ebp + 0x30]
mov dword [ebp - 0x888], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x898], ecx
mov ecx, dword [ebp + 0x38]
push eax
mov dword [ebp - 0x880], ebx
mov dword [ebp - 0x890], eax
mov dword [ebp - 0x89c], ecx
mov dword [ebp - 0x87c], esi
call edi
push 2
push esi
push esi
push dword [ebp - 0x888]
call edi
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0x10013a4
push 0xffff
push ebx
call edi
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
push 0x200
lea eax, [ebp - 0x458]
push eax
push 0x2b
push esi
call ebx
lea eax, [ebp - 0x458]
push eax
push 0x3e8
push dword [ebp - 0x880]
call edi
push 0x200
lea eax, [ebp - 0x458]
push eax
push 0x2e
push esi
call ebx
mov ebx, dword [ebp - 0x880]
lea eax, [ebp - 0x458]
push eax
push 0x3e9
push ebx
call edi
mov edi, dword [sym.imp.USER32.dll_SetDlgItemInt]
push esi
push dword [ebp - 0x85c]
push 0x3ea
push ebx
call edi
push esi
push esi
push 0x3eb
push ebx
call edi
push esi
push esi
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
lea eax, [ebp - 0x878]
push eax
push 0x8000
push 0x1025a00
push dword [ebp - 0x890]
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor ebx, ebx
cmp dword [ebp - 0x878], esi
je 0x1006298
shr dword [ebp - 0x878], 1
mov eax, dword [ebp - 0x878]
dec eax
cmp eax, esi
mov word [0x1015a00], si
mov dword [ebp - 0x884], eax
jbe 0x1006264
movzx eax, word [ebx*2 + 0x1025a00]
lea ecx, [eax + ebx + 1]
lea edi, [ecx + ecx]
movzx edx, word [edi + 0x1025a00]
shl edx, 1
shr edx, 1
lea edx, [edx + eax + 2]
mov dword [ebp - 0x88c], edx
mov edx, dword [ebp - 0x878]
add edx, edx
cmp edx, 0x4000
jb 0x100608f
cmp ecx, dword [ebp - 0x884]
jae 0x100624c
mov ecx, dword [ebp - 0x88c]
add ecx, ebx
cmp ecx, dword [ebp - 0x884]
jae 0x100624c
lea ecx, [ebx*2 + 0x1025a02]
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0100b7db
movzx eax, word [ebx*2 + 0x1025a00]
mov word [ebp + eax*2 - 0x20], si
lea eax, [edi + 0x1025a02]
push eax
movzx eax, word [edi + 0x1025a00]
shl eax, 1
shr eax, 1
push eax
lea eax, [ebp - 0x858]
push eax
call fcn.0100b7db
mov di, word [edi + 0x1025a00]
movzx eax, di
shl eax, 1
shr eax, 1
cmp di, 1
mov word [ebp + eax*2 - 0x858], si
jne 0x10061a9
test byte [ebp - 0x864], 1
je 0x10061a9
lea eax, [ebp - 0x858]
push eax
call fcn.0100bd2b
cmp eax, esi
mov dword [ebp - 0x894], eax
jl 0x10061a9
cmp eax, 0x6f70
jae 0x10061a9
mov edi, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x898]
imul eax, edi
lea eax, [ecx + eax*2]
push eax
push edi
lea eax, [ebp - 0x3c]
push eax
call fcn.0100b7db
mov eax, dword [ebp - 0x894]
mov ecx, dword [ebp - 0x89c]
imul eax, edi
lea eax, [ecx + eax*2]
push eax
push edi
lea eax, [ebp - 0x58]
push eax
call fcn.0100b7db
lea eax, [edi + edi]
mov word [ebp + eax - 0x3c], si
mov word [ebp + eax - 0x58], si
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x10061a9
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x10061a9
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x458]
push 0x10013cc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
jmp 0x10061c9
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x458]
push 0x10013bc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x458]
push eax
push 0x1015a00
call dword [sym.imp.KERNEL32.dll_lstrcatW]
inc dword [ebp - 0x87c]
mov eax, dword [ebp - 0x87c]
push 0x64
xor edx, edx
pop ecx
div ecx
test edx, edx
je 0x1006200
mov eax, dword [ebp - 0x87c]
cmp eax, dword [ebp - 0x85c]
jne 0x100622f
push esi
push dword [ebp - 0x87c]
mov edi, 0x3eb
push edi
push dword [ebp - 0x880]
call dword [sym.imp.USER32.dll_SetDlgItemInt]
push edi
push dword [ebp - 0x880]
call dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push esi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
add ebx, dword [ebp - 0x88c]
mov eax, dword [ebp - 0x878]
dec eax
cmp ebx, eax
mov dword [ebp - 0x884], eax
jb 0x100603b
jmp 0x1006264
sub ebx, dword [ebp - 0x878]
push 1
push esi
shl ebx, 1
push ebx
push dword [ebp - 0x890]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
lea eax, [ebp - 0x894]
push eax
mov edi, 0x1015a00
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
push eax
push edi
push dword [ebp - 0x888]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x878], 0x4000
je 0x1005fed
mov ecx, dword [ebp - 4]
pop edi
xor eax, eax
pop esi
inc eax
pop ebx
call fcn.0100dd00
leave
ret 0x38