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

Disassembly:
push ebp
mov eax, 0x2009c
mov ebp, esp
push edi
push esi
push ebx
call fcn.00436c30
sub esp, eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20054], 0x4474b0
mov dword [ebp - 0x2004c], eax
lea eax, [ebp - 0x2006c]
mov dword [ebp - 0x20044], esp
mov dword [ebp - 0x20050], 0x447f5e
mov dword [ebp - 0x20048], 0x4257c5
mov dword [esp], eax
call fcn.00437520
lea eax, [ebp - 0x10018]
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [ebp - 0x20068], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20028]
mov dword [ebp - 0x20030], eax
sub esp, 0xc
lea eax, [ebp - 0x10018]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, eax
mov edx, eax
mov dword [ebp - 0x20070], eax
sar edx, 1
mov dword [ebp - 0x20018], edx
cmp edx, 7
ja 0x425747
mov eax, dword [ebp - 0x20030]
cmp edx, 1
jne 0x4255f6
movzx ecx, word [ebp - 0x10018]
mov word [eax], cx
mov esi, dword [ebp - 0x20070]
mov dword [ebp - 0x2002c], edx
xor edx, edx
mov word [eax + esi], dx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 7
mov dword [esp + 4], 0x80000000
mov dword [ebp - 0x20068], 1
mov dword [ebp - 0x20070], eax
call eax
sub esp, 0x1c
mov dword [ebp - 0x2007c], eax
cmp eax, 0xffffffff
je 0x4256b8
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40000000
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [ebp - 0x20070]
call eax
sub esp, 0x1c
mov dword [ebp - 0x20084], eax
cmp eax, 0xffffffff
je 0x4257ae
mov dword [ebp - 0x20038], 0
lea eax, [ebp - 0x10018]
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x20018]
mov dword [ebp - 0x20034], 0
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov byte [ebp - 0x20070], 0
mov dword [ebp - 0x20080], 0
nop
lea esi, [esi]
lea eax, [ebp - 0x20038]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10018]
mov dword [esp + 8], 0x10000
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2007c]
mov dword [esp], eax
mov dword [ebp - 0x20068], 1
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esp, 0x14
test eax, eax
je 0x4256f4
mov eax, dword [ebp - 0x20038]
mov edi, eax
test eax, eax
je 0x4256fb
jle 0x425440
cmp byte [ebp - 0x20070], 0
je 0x425603
xor eax, eax
lea edx, [edi - 1]
lea ebx, [ebp - 0x10018]
sub edx, eax
lea esi, [ebx + eax]
cmp edx, 5
seta cl
cmp edi, eax
setg dl
test cl, dl
je 0x425690
test esi, 3
jne 0x425690
mov ecx, edi
mov edx, 1
sub edi, eax
mov dword [ebp - 0x20078], eax
cmp ecx, eax
mov dword [ebp - 0x20070], ecx
cmovg edx, edi
xor ebx, ebx
mov edi, edx
mov dword [ebp - 0x20074], edx
xor edx, edx
and edi, 0xfffffffc
mov eax, dword [esi + edx]
add ebx, 4
mov ecx, ebx
mov dword [ebp + edx - 0x20018], eax
add edx, 4
cmp edx, edi
jne 0x4254ff
mov esi, dword [ebp - 0x20074]
mov eax, dword [ebp - 0x20078]
mov ebx, dword [ebp - 0x20070]
mov dword [ebp - 0x20070], ecx
mov edx, esi
and edx, 0xfffffffc
add eax, edx
cmp esi, edx
je 0x42558e
movzx ecx, byte [ebp + eax - 0x10018]
lea esi, [edx + 1]
mov dword [ebp - 0x20070], esi
mov byte [ebp + edx - 0x20018], cl
lea ecx, [eax + 1]
cmp ebx, ecx
jle 0x42558e
movzx ecx, byte [ebp + eax - 0x10017]
lea esi, [edx + 2]
add eax, 2
mov dword [ebp - 0x20070], esi
mov byte [ebp + edx - 0x20017], cl
cmp ebx, eax
jle 0x42558e
movzx eax, byte [ebp + eax - 0x10018]
mov byte [ebp + edx - 0x20016], al
lea eax, [edx + 3]
mov dword [ebp - 0x20070], eax
lea eax, [ebp - 0x20034]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x20070]
mov dword [esp + 8], eax
lea eax, [ebp - 0x20018]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20084]
mov dword [esp], eax
mov dword [ebp - 0x20068], 1
call dword [sym.imp.KERNEL32.dll_WriteFile]
sub esp, 0x14
test eax, eax
je 0x4256f4
mov eax, dword [ebp - 0x20070]
cmp dword [ebp - 0x20034], eax
jne 0x4256f4
mov byte [ebp - 0x20070], 1
jmp 0x425440
test edx, edx
je 0x425317
jmp 0x425778
mov ecx, dword [ebp - 0x20080]
xor edx, edx
mov esi, eax
movzx ebx, byte [ebp + edx - 0x10018]
lea eax, [edx + 1]
test ecx, ecx
je 0x42573e
cmp byte [ecx + str.__STARTZIPINSTALLER__], bl
je 0x425653
cmp esi, eax
jle 0x425644
mov ebx, esi
movzx edx, byte [ebp + eax - 0x10018]
mov esi, ebx
add eax, 1
cmp dl, 0x21
je 0x425670
cmp ebx, eax
jg 0x42562e
mov dword [ebp - 0x20080], 0
jmp 0x425440
add ecx, 1
cmp ecx, 0x15
jne 0x425675
mov edi, esi
mov dword [ebp - 0x20080], ecx
cmp esi, eax
jg 0x4254a9
jmp 0x4255ea
mov ecx, 1
mov edx, eax
cmp esi, edx
jg 0x42560d
mov dword [ebp - 0x20080], ecx
jmp 0x425440
xor edx, edx
mov ebx, edi
movzx ecx, byte [ebp + eax - 0x10018]
add eax, 1
mov byte [ebp + edx - 0x20018], cl
add edx, 1
cmp ebx, eax
jg 0x425694
mov dword [ebp - 0x20070], edx
jmp 0x42558e
mov byte [ebp - 0x20070], 0
mov eax, dword [ebp - 0x20030]
lea esi, [ebp - 0x20028]
cmp eax, esi
je 0x4256d7
mov dword [esp], eax
call fcn.00446bb0
lea eax, [ebp - 0x2006c]
mov dword [esp], eax
call fcn.004375b0
movzx eax, byte [ebp - 0x20070]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [ebp - 0x20070], 0
mov eax, dword [ebp - 0x20084]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x20068], 1
mov dword [ebp - 0x20074], eax
call eax
sub esp, 4
mov eax, dword [ebp - 0x2007c]
mov dword [esp], eax
mov eax, dword [ebp - 0x20074]
mov dword [ebp - 0x20068], 1
call eax
sub esp, 4
jmp 0x4256bf
mov eax, edx
mov ebx, esi
jmp 0x42562e
lea eax, [ebp - 0x20018]
mov dword [esp + 4], 0
lea ecx, [ebp - 0x20030]
mov dword [esp], eax
call fcn.00444d00
mov edx, dword [ebp - 0x20018]
mov dword [ebp - 0x20030], eax
sub esp, 8
mov dword [ebp - 0x20028], edx
mov esi, dword [ebp - 0x20070]
lea ebx, [ebp - 0x10018]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x20018]
mov eax, dword [ebp - 0x20030]
lea esi, [edx + edx]
mov dword [ebp - 0x20070], esi
jmp 0x425317
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x20070], 0
mov dword [ebp - 0x20074], eax
jmp 0x42571e