Function at 0x404e39
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
xor ebx, ebx
push ebx
push 0x8000080
push 2
push ebx
push ebx
push 0x40000000
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0xc], eax
jne 0x404e83
call fcn.0041d387
push 0x10
push 0x43cc94
push 0x43cc70
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x40523c
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
push ebx
lea ecx, [ebp - 0x10]
push ecx
push 0x19
push str.R_Script_DSF_ver.1.00__r_n
push eax
call esi
mov eax, dword [0x44eee0]
xor edi, edi
cmp byte [eax], bl
mov dword [ebp - 0x18], eax
je 0x404ed0
cmp byte [eax + edi], 0x5c
jne 0x404eca
lea ecx, [edi - 1]
push ecx
push eax
call fcn.00424e83
pop ecx
test eax, eax
mov eax, dword [0x44eee0]
pop ecx
jne 0x404eca
lea ecx, [eax + edi + 1]
mov dword [ebp - 0x18], ecx
inc edi
cmp byte [eax + edi], bl
jne 0x404ea8
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call esi
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
push dword [ebp - 0x18]
push dword [ebp - 0xc]
call esi
cmp dword [0x44eef0], ebx
je 0x40522e
cmp dword [0x44eeec], ebx
mov dword [ebp - 0x24], ebx
jbe 0x40522e
xor edi, edi
mov eax, dword [0x44eef0]
add eax, edi
mov ecx, dword [eax + 4]
cmp ecx, 4
jb 0x405219
cmp ecx, 7
jbe 0x404f4e
cmp ecx, 0xb
je 0x404f4e
cmp ecx, 0xe
jbe 0x405219
cmp ecx, 0x10
jbe 0x404f4e
cmp ecx, 0x13
jne 0x405219
push dword [eax + 0x24]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call esi
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
mov eax, dword [0x44eef0]
push dword [edi + eax + 0x24]
push dword [ebp - 0xc]
call esi
mov eax, dword [0x44eef0]
mov eax, dword [edi + eax + 4]
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call esi
mov eax, dword [0x44eef0]
push dword [edi + eax]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
mov ecx, dword [0x44eef0]
test eax, eax
setne al
cmp byte [edi + ecx + 0x4d], bl
push ebx
sete cl
dec cl
and ecx, 2
or al, cl
mov byte [ebp - 1], al
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0xc]
call esi
mov eax, dword [ebp - 8]
cmp eax, 0xb
ja 0x4051a3
je 0x405193
cmp eax, 4
je 0x405120
jbe 0x405219
cmp eax, 6
jbe 0x405144
cmp eax, 7
jne 0x405219
mov eax, dword [0x44eef0]
mov eax, dword [edi + eax + 0x1c]
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0xc]
call esi
mov eax, dword [0x44eef0]
push ebx
push ebx
push 0x1004
push dword [edi + eax]
call dword [sym.imp.USER32.dll_SendMessageA]
push ebx
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0xc]
call esi
cmp dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
jbe 0x405219
cmp dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
jbe 0x40510c
push dword [ebp - 0x14]
mov eax, dword [0x44eef0]
push dword [ebp - 0x18]
push dword [edi + eax + 0x24]
call fcn.004062b5
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x4050ba
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call esi
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
push dword [ebp - 0x28]
push dword [ebp - 0xc]
call esi
push dword [ebp - 0x28]
call fcn.004262e0
pop ecx
jmp 0x4050fd
push ebx
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 8], 0x13
call esi
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
push 0x43cc40
push dword [ebp - 0xc]
call esi
call fcn.0041d387
push 0x30
push 0x43cc28
push 0x43cbb8
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MessageBoxA]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jb 0x405066
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jb 0x40505a
jmp 0x405219
mov eax, dword [0x44eef0]
push dword [edi + eax + 0x24]
call fcn.00405bc6
pop ecx
add al, 3
push ebx
mov byte [ebp - 1], al
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0xc]
call esi
mov eax, dword [0x44eef0]
push dword [edi + eax + 0x24]
call fcn.00405c0e
cmp eax, ebx
pop ecx
mov dword [ebp - 0x28], eax
je 0x4051d6
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call esi
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
push dword [ebp - 0x28]
push dword [ebp - 0xc]
call esi
push dword [ebp - 0x28]
call fcn.004262e0
pop ecx
jmp 0x405219
mov eax, dword [0x44eef0]
push dword [edi + eax + 0x24]
call fcn.004063cc
jmp 0x4051c0
cmp eax, 0xf
jb 0x405219
cmp eax, 0x10
jbe 0x405144
cmp eax, 0x13
jne 0x405219
mov eax, dword [0x44eef0]
push dword [edi + eax + 0x24]
call fcn.00406613
pop ecx
push ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call esi
jmp 0x405219
push ebx
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 8], 0x13
call esi
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
push 0x43cc40
push dword [ebp - 0xc]
call esi
call fcn.0041d387
push 0x30
push 0x43cc28
push 0x43cbb8
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MessageBoxA]
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
add edi, 0x54
cmp eax, dword [0x44eeec]
jb 0x404f1a
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
inc eax
pop esi
pop ebx
leave
ret