Function at 0x407550
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x11c4
call fcn.0041fc10
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea edi, [0x486554]
lea ebx, [0x421328]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 0xe
mov eax, dword [0x42131c]
mov dword [ebp - 0x82c], eax
mov eax, dword [0x421320]
mov dword [ebp - 0x828], eax
mov ax, word [0x421324]
mov word [ebp - 0x824], ax
mov ax, word [0x421326]
mov word [ebp - 0x82e], ax
mov dword [esp], edi
mov dword [esp + 4], ebx
call sub.cvirte.dll_fopen
mov ecx, 0xa
lea edx, [ebp - 0x82c]
lea esi, [ebp - 0x820]
mov dword [ebp - 0x95c], eax
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], 0xa
mov dword [ebp - 0x1168], ecx
call sub.cvirte.dll_memcpy
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x944], ecx
mov ecx, dword [ebp - 0x944]
mov edx, dword [ebp - 0x944]
shr edx, 2
shl edx, 2
sub ecx, edx
cmp ecx, 0
mov dword [ebp - 0x116c], eax
jbe 0x407642
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x944]
add eax, 2
mov dword [ebp - 0x944], eax
lea eax, [ebp - 0x820]
mov ecx, dword [ebp - 0x944]
shr ecx, 8
mov dl, cl
mov byte [ebp - 0x81c], dl
mov ecx, dword [ebp - 0x944]
mov dl, cl
mov byte [ebp - 0x81b], dl
add eax, 0xa
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call sub.cvirte.dll_memcpy
mov ecx, 0xffffffff
lea esi, [ebp - 0x820]
mov edi, dword [ebp - 0x944]
sub edi, 4
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], 0xffffffff
mov dword [ebp - 0x1170], eax
mov dword [ebp - 0x1174], ecx
call fcn.00407c80
lea ecx, [ebp - 0x1164]
mov dword [ebp - 0x964], eax
mov eax, dword [ebp - 0x964]
shr eax, 0x18
mov dl, al
mov eax, dword [ebp - 0x944]
sub eax, 4
mov byte [ebp + eax - 0x820], dl
mov eax, dword [ebp - 0x964]
shr eax, 0x10
mov dl, al
mov eax, dword [ebp - 0x944]
sub eax, 3
mov byte [ebp + eax - 0x820], dl
mov eax, dword [ebp - 0x964]
shr eax, 8
mov dl, al
mov eax, dword [ebp - 0x944]
sub eax, 2
mov byte [ebp + eax - 0x820], dl
mov eax, dword [ebp - 0x964]
mov dl, al
mov eax, dword [ebp - 0x944]
sub eax, 1
mov byte [ebp + eax - 0x820], dl
mov eax, dword [ebp - 0x944]
mov dl, al
movzx eax, dl
sub eax, 1
mov dl, al
mov byte [ebp - 0x822], dl
mov eax, dword [ebp - 0x944]
sub eax, 1
mov dl, al
movzx eax, dl
sar eax, 8
mov dl, al
mov byte [ebp - 0x821], dl
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 8], 0x800
mov dword [eax + 4], 0
call sub.cvirte.dll_memset
mov byte [ebp - 0x1164], 0x10
mov byte [ebp - 0x1163], 0
mov byte [ebp - 0x1162], 0xc0
mov byte [ebp - 0x1161], 0
mov dl, byte [ebp - 0x821]
mov byte [ebp - 0x1160], dl
mov dl, byte [ebp - 0x822]
mov byte [ebp - 0x115f], dl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 1]
cmp eax, 1
jne 0x4077d0
mov byte [ebp - 0x1164], 0
mov byte [ebp - 0x1163], 0xa
lea eax, [ebp - 0x820]
lea ecx, [ebp - 0x1164]
add ecx, 6
mov edx, dword [ebp - 0x944]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sub.cvirte.dll_memcpy
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x1178], eax
je 0x40785a
cmp dword [0x4244bc], 0
je 0x40785a
mov eax, dword [0x424480]
mov ecx, esp
mov dword [ecx], eax
call sub.cvirte.dll_FlushOutQ
sub esp, 4
lea ecx, [ebp - 0x1164]
mov edx, dword [0x424480]
mov esi, dword [ebp - 0x944]
add esi, 6
mov edi, esp
mov dword [edi + 8], esi
mov dword [edi + 4], ecx
mov dword [edi], edx
mov dword [ebp - 0x117c], eax
call sub.cvirte.dll_ComWrt
sub esp, 0xc
mov dword [ebp - 0x1180], eax
cmp dword [ebp - 0x1c], 0
je 0x40793c
lea eax, [ebp - 0x932]
mov ecx, esp
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], 1
mov dword [ecx + 0x1c], 1
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 1
mov dword [ecx + 0xc], str.Select_name_and_location_of_binary_command_file
mov dword [ecx + 8], str..bin_.cmd
mov dword [ecx + 4], str..cmd
mov dword [ecx], 0x42132a
call sub.cvirte.dll_FileSelectPopup
sub esp, 0x28
mov dword [ebp - 0x940], eax
cmp dword [ebp - 0x940], 0
jle 0x40793c
lea eax, [0x42136d]
lea ecx, [ebp - 0x932]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.cvirte.dll_fopen
mov ecx, 1
lea edx, [ebp - 0x1164]
mov dword [ebp - 0x960], eax
mov eax, dword [ebp - 0x944]
add eax, 6
mov esi, dword [ebp - 0x960]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], esi
mov dword [ebp - 0x1184], ecx
call sub.cvirte.dll_fwrite
mov ecx, dword [ebp - 0x960]
mov dword [esp], ecx
mov dword [ebp - 0x1188], eax
call sub.cvirte.dll_fclose
mov dword [ebp - 0x118c], eax
lea eax, str._lf
lea ecx, [ebp - 0x950]
mov edx, esp
mov dword [edx], ecx
mov dword [ebp - 0x1190], eax
call sub.cvirte.dll_GetCurrentDateTime
sub esp, 4
mov ecx, dword [ebp - 0x95c]
fld qword [ebp - 0x950]
mov edx, esp
fstp qword [edx + 8]
mov dword [edx], ecx
mov dword [edx + 4], str._lf
mov dword [ebp - 0x1194], eax
call sub.cvirte.dll_fprintf
mov dword [ebp - 0x940], 0
mov dword [ebp - 0x1198], eax
mov eax, dword [ebp - 0x940]
mov ecx, dword [ebp - 0x944]
sub ecx, 1
cmp eax, ecx
jae 0x4079e8
lea eax, str._2.2x
mov ecx, dword [ebp - 0x95c]
mov edx, dword [ebp - 0x940]
movzx edx, byte [ebp + edx - 0x820]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sub.cvirte.dll_fprintf
mov dword [ebp - 0x119c], eax
mov eax, dword [ebp - 0x940]
add eax, 1
mov dword [ebp - 0x940], eax
jmp 0x40798f
lea eax, str._2.2x__n_n
mov ecx, dword [ebp - 0x95c]
mov edx, dword [ebp - 0x944]
sub edx, 1
movzx edx, byte [ebp + edx - 0x820]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sub.cvirte.dll_fprintf
mov ecx, dword [ebp - 0x95c]
mov dword [esp], ecx
mov dword [ebp - 0x11a0], eax
call sub.cvirte.dll_fclose
mov dword [ebp - 0x11a4], eax
add esp, 0x11c4
pop esi
pop edi
pop ebx
pop ebp
ret