Function at 0x427e40
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x52c
call fcn.00481370
jmp 0x427e60
xor esi, esi
mov ebx, 2
call fcn.004971f0
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], str.Interact_with_Colors
call fcn.004814e0
mov dword [esp], str._1__Load_a_user_pref_file
mov ecx, 5
mov edx, 4
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call fcn.004814e0
mov dword [esp], str._2__Dump_colors
mov eax, 5
mov dword [esp + 8], eax
mov eax, 5
mov dword [esp + 4], eax
call fcn.004814e0
mov dword [esp], str._3__Modify_colors
mov eax, 5
mov dword [esp + 8], eax
mov eax, 6
mov dword [esp + 4], eax
call fcn.004814e0
mov dword [esp], 0x4abdba
xor eax, eax
mov dword [esp + 8], eax
mov eax, 8
mov dword [esp + 4], eax
call fcn.004814e0
call fcn.0047fe70
movsx eax, al
cmp eax, 0x1b
je 0x428611
cmp eax, 0x31
je 0x42840b
cmp eax, 0x32
je 0x428436
cmp eax, 0x33
je 0x427f33
mov dword [esp], str.Illegal_command_for_colors_
call fcn.00480b00
call fcn.00481230
jmp 0x427e60
call fcn.004971f0
xor ebx, ebx
mov dword [ebp - 0x50c], ebx
jmp 0x427f6e
mov dword [esp + 0xc], edi
mov ecx, 0x4ac5cd
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], 1
call fcn.00481410
inc dword [ebp - 0x50c]
cmp dword [ebp - 0x50c], 0x1f
jg 0x427fe4
mov eax, dword [ebp - 0x50c]
test eax, eax
js 0x428403
mov edx, dword [ebp - 0x50c]
sar eax, 4
mov ecx, dword [ebp - 0x50c]
lea edi, [eax + eax*4 + 2]
shl eax, 4
sub edx, eax
movzx eax, byte [ecx*4 + 0x4a4a01]
lea esi, [edx + 6]
movzx edx, byte [ecx*4 + 0x4a4a02]
add eax, edx
movzx edx, byte [ecx*4 + 0x4a4a03]
add eax, edx
je 0x427f42
movzx eax, byte [ebp - 0x50c]
mov edx, 0x4ac02e
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00481410
inc dword [ebp - 0x50c]
cmp dword [ebp - 0x50c], 0x1f
jle 0x427f6e
mov dword [esp], 1
mov eax, 0x2a
mov edi, 0x2a
mov dword [esp + 0xc], eax
mov eax, 2
mov esi, 5
mov dword [esp + 8], eax
mov eax, 0x4ac5d1
mov ebx, str.Arrows:_Move_to_color
mov dword [esp + 4], eax
call fcn.00481410
mov dword [esp], 1
mov eax, 0x2a
mov dword [esp + 0xc], eax
mov eax, 4
mov dword [esp + 8], eax
mov eax, str.ESC:_Return
mov dword [esp + 4], eax
call fcn.00481410
mov dword [esp + 0xc], edi
mov edi, str.g_G:_Incr_Decr_green_value
mov dword [esp + 8], esi
mov esi, 0x2a
mov dword [esp + 4], ebx
mov ebx, 9
mov dword [esp], 1
call fcn.00481410
mov dword [esp], 1
mov edx, 6
mov ecx, 0x2a
mov dword [esp + 8], edx
mov eax, str.k_K:_Incr_Decr_extra_value
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
call fcn.00481410
mov dword [esp], 1
mov eax, 0x2a
mov dword [esp + 0xc], eax
mov eax, 7
mov dword [esp + 8], eax
mov eax, str.r_R:_Incr_Decr_red_value
mov dword [esp + 4], eax
call fcn.00481410
mov dword [esp + 4], edi
mov eax, 0x2a
mov edi, 0xd
mov dword [esp + 0xc], eax
mov eax, 8
mov dword [esp + 8], eax
mov dword [esp], 1
call fcn.00481410
mov dword [esp + 0xc], esi
mov ecx, str.b_B:_Incr_Decr_blue_value
mov esi, str.First_column:_base_colors
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ebx, 0x2a
mov dword [esp], 1
call fcn.00481410
mov dword [esp], 1
mov eax, 0xa
mov edx, 0x2a
mov dword [esp + 8], eax
mov eax, str.c:_Copy_from_color
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call fcn.00481410
mov dword [esp], 1
mov eax, 0x2a
mov dword [esp + 0xc], eax
mov eax, 0xb
mov dword [esp + 8], eax
mov eax, str.v:_Set_specific_values
mov dword [esp + 4], eax
call fcn.00481410
mov dword [esp + 8], edi
mov eax, 0x2a
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov dword [esp], 1
call fcn.00481410
mov dword [esp + 0xc], ebx
mov edx, str.Second_column:_first_shade__etc.
mov ecx, 0xe
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], 1
call fcn.00481410
mov dword [esp], 1
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, 0x17
mov dword [esp + 8], eax
mov eax, str.Shades_look_like_base_colors_in_16_color_ports.
mov dword [esp + 4], eax
call fcn.00481410
mov byte [ebp - 0x50d], 1
xor eax, eax
mov edx, 0xffffffff
mov byte [ebp - 0x50e], 1
mov dword [ebp - 0x50c], eax
test edx, edx
js 0x428224
mov dword [esp], 1
mov eax, edx
sar eax, 4
lea ebx, [eax + eax*4]
shl eax, 4
sub edx, eax
lea esi, [edx + 6]
mov eax, 0x4aae28
lea edi, [ebx + 1]
mov dword [esp + 4], eax
add ebx, 5
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
call fcn.00481410
mov dword [esp + 0xc], ebx
mov eax, 0x4aae28
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00481410
mov eax, dword [ebp - 0x50c]
test eax, eax
js 0x4286d2
mov dword [esp], 1
mov edx, dword [ebp - 0x50c]
sar eax, 4
lea ebx, [eax + eax*4]
shl eax, 4
sub edx, eax
lea edi, [ebx + 1]
add ebx, 5
lea esi, [edx + 6]
mov dword [esp + 0xc], edi
mov edi, 0x4ac700
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.00481410
mov dword [esp + 8], esi
mov esi, 0x4ac702
mov dword [esp + 0xc], ebx
mov ebx, 0x64
mov dword [esp + 4], esi
mov dword [esp], 1
call fcn.00481410
movzx eax, byte [ebp - 0x50c]
mov dword [esp], eax
call fcn.004832b0
mov dword [esp + 0xc], eax
mov ecx, dword [ebp - 0x50c]
mov dword [esp], str.Color___d__0x_02X___Name___s
mov dword [esp + 8], ecx
mov dword [esp + 4], ecx
call fcn.00495450
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x4d8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00498050
mov dword [esp + 4], ebx
mov dword [esp], str.__40s
call fcn.00495450
mov dword [esp + 4], eax
xor ecx, ecx
mov edx, 2
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp], 1
call fcn.00481410
cmp byte [ebp - 0x50e], 0
je case.0x4283fc.51
mov eax, dword [ebp - 0x50c]
test eax, eax
js 0x428937
mov edx, dword [ebp - 0x50c]
sar eax, 4
mov ebx, dword [ebp - 0x50c]
lea edi, [eax + eax*4 + 2]
mov ecx, dword [ebp - 0x50c]
shl eax, 4
sub ebx, eax
lea esi, [ebx + 6]
movzx eax, byte [edx*4 + 0x4a4a01]
movzx edx, byte [edx*4 + 0x4a4a02]
add eax, edx
movzx edx, byte [ecx*4 + 0x4a4a03]
add eax, edx
jne 0x4286b2
mov dword [esp + 0xc], edi
mov eax, 0x4ac5cd
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00481410
mov dword [esp], 0xa
xor ecx, ecx
mov dword [esp + 4], ecx
call fcn.00495ae0
cmp dword [ebp - 0x50c], 1
je 0x4286da
mov dword [esp + 0xc], esi
lea eax, [edi + 2]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00497300
movzx ebx, byte [ebp - 0x50d]
or bl, byte [ebp - 0x50e]
jne 0x428621
mov byte [ebp - 0x50d], 0
lea ecx, [ebp - 0x4f9]
mov byte [ebp - 0x50e], 0
mov dword [esp + 4], ecx
mov dword [esp], str.Command:_Modify_colors
call fcn.004823e0
test al, al
je 0x427f29
movsx eax, byte [ebp - 0x4f9]
sub eax, 0x32
cmp eax, 0x44
ja case.0x4283fc.51
jmp dword [eax*4 + 0x4ac83c]
add eax, 0xf
jmp 0x427f7c
xor edi, edi
mov eax, 8
call fcn.00424890
mov dword [esp + 4], edi
mov dword [esp], 0xa
call fcn.00495ae0
call fcn.004972e0
call fcn.00481230
jmp 0x427e60
mov dword [esp], str.Command:_Dump_colors
xor esi, esi
mov ebx, 8
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x468]
mov dword [esp + 8], esi
call fcn.004814e0
mov dword [esp], 0x4ab7c9
xor ecx, ecx
mov edx, 0xa
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call fcn.004814e0
mov dword [esp], ebx
mov eax, dword [0x4a49ec]
add eax, 0x20
mov dword [esp + 0xc], eax
mov eax, 0x4ab7d0
mov dword [esp + 8], eax
mov eax, 0x50
mov dword [esp + 4], eax
call fcn.00495420
mov dword [esp], ebx
mov eax, 0x50
mov dword [esp + 4], eax
call fcn.00481a80
test al, al
je 0x427e60
mov dword [esp + 0xc], ebx
mov eax, dword [0x873420]
lea ebx, [ebp - 0x418]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, 0x400
mov dword [esp + 4], eax
call fcn.0047eb50
mov edx, dword [str.Colors]
mov eax, ebx
call fcn.0041b800
mov dword [esp], ebx
mov eax, 0x4abbc1
mov dword [esp + 4], eax
call fcn.0047ec20
mov dword [ebp - 0x500], eax
test eax, eax
je 0x427e60
mov edx, dword [str.Colors]
mov edi, 1
mov ebx, 1
mov esi, 0x17
call fcn.0041bae0
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x500]
mov dword [esp], 0x4abbc3
mov dword [esp + 0xc], eax
mov eax, 2
mov dword [esp + 8], eax
call sub.msvcrt.dll_fwrite
mov dword [esp + 4], ebx
mov edx, dword [ebp - 0x500]
xor ebx, ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp], str._Color_redefinitions_n_n
call sub.msvcrt.dll_fwrite
jmp 0x42856d
inc ebx
cmp ebx, 0xff
jg 0x4288da
movzx eax, byte [ebx*4 + 0x4a4a01]
mov edx, 0x4ac76e
movzx ecx, byte [ebx*4 + 0x4a4a00]
movzx edi, byte [ebx*4 + 0x4a4a02]
movzx esi, byte [ebx*4 + 0x4a4a03]
mov dword [ebp - 0x508], eax
mov eax, ecx
mov dword [ebp - 0x504], ecx
mov ecx, dword [ebp - 0x508]
or eax, ecx
or eax, edi
or eax, esi
je 0x428560
cmp ebx, 0xf
jg 0x4285ba
mov edx, dword [ebx*4 + 0x4a42a0]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x500]
mov eax, str._Color__s_n
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0x504]
mov ecx, dword [ebp - 0x508]
mov dword [esp + 0x14], edi
mov edx, dword [ebp - 0x500]
mov dword [esp + 0xc], eax
mov eax, str.V:_d:0x_02X:0x_02X:0x_02X:0x_02X_n_n
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
jmp 0x428560
call fcn.004813c0
add esp, 0x52c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str.K___d___R_G_B___d___d___d
mov edx, dword [ebp - 0x50c]
lea ebx, [ebp - 0x4d8]
xor edi, edi
mov esi, 4
movzx eax, byte [edx*4 + 0x4a4a03]
mov dword [esp + 0x10], eax
movzx eax, byte [edx*4 + 0x4a4a02]
mov dword [esp + 0xc], eax
movzx eax, byte [edx*4 + 0x4a4a01]
mov dword [esp + 8], eax
movzx eax, byte [edx*4 + 0x4a4a00]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp + 4], eax
mov edx, 0x64
mov dword [esp + 8], edx
mov dword [esp], ebx
call fcn.00498050
mov dword [esp + 4], ebx
mov dword [esp], str.__40s
call fcn.00495450
mov dword [esp + 4], eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp], 1
call fcn.00481410
jmp 0x4283c1
movzx eax, byte [ebp - 0x50c]
mov ebx, 0x4ac02e
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
jmp 0x428373
add eax, 0xf
jmp 0x428232
call fcn.004972e0
jmp case.0x4283fc.51
mov ebx, dword [ebp - 0x50c]
mov edi, 0xa
movzx eax, byte [ebx*4 + 0x4a4a01]
lea ebx, [ebp - 0x4f8]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, 0x4aae4a
mov dword [esp + 4], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], str.Red__0_255_
call fcn.00481ec0
xor ecx, ecx
test al, al
jne 0x42893f
mov byte [ebp - 0x50e], cl
jmp 0x4282fd
mov edx, dword [ebp - 0x50c]
inc byte [edx*4 + 0x4a4a01]
mov byte [ebp - 0x50e], 1
jmp 0x4282fd
mov ebx, dword [ebp - 0x50c]
inc byte [ebx*4 + 0x4a4a00]
jmp 0x428748
mov ebx, dword [ebp - 0x50c]
inc byte [ebx*4 + 0x4a4a02]
jmp 0x428748
mov eax, dword [ebp - 0x50c]
mov ebx, 0x4aae4a
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x4e8]
and eax, 0xf
mov dword [esp + 8], eax
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp], str.Copy_from_color__0__d__def._base_
mov ecx, 0x1f
mov dword [esp + 4], ecx
call fcn.00495450
mov dword [esp], eax
mov edx, 0xa
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
call fcn.00481ec0
test al, al
je case.0x4283fc.51
mov dword [esp], ebx
call sub.msvcrt.dll_atoi
test eax, eax
mov edx, eax
js 0x428aed
cmp eax, 0x1f
jle 0x4287e4
mov edx, 0x1f
cmp edx, dword [ebp - 0x50c]
je case.0x4283fc.51
movzx eax, byte [edx*4 + 0x4a4a00]
mov ecx, 0x4a4a00
mov ebx, dword [ebp - 0x50c]
mov byte [ebx*4 + 0x4a4a00], al
movzx eax, byte [edx*4 + 0x4a4a01]
mov byte [ecx + ebx*4 + 1], al
movzx eax, byte [edx*4 + 0x4a4a02]
mov byte [ecx + ebx*4 + 2], al
movzx eax, byte [edx*4 + 0x4a4a03]
mov byte [ecx + ebx*4 + 3], al
jmp 0x428748
mov edx, dword [ebp - 0x50c]
inc byte [edx*4 + 0x4a4a03]
jmp 0x428748
mov ecx, dword [ebp - 0x50c]
dec byte [ecx*4 + 0x4a4a01]
jmp 0x428748
mov eax, dword [ebp - 0x50c]
dec byte [eax*4 + 0x4a4a00]
jmp 0x428748
mov eax, dword [ebp - 0x50c]
dec byte [eax*4 + 0x4a4a02]
jmp 0x428748
mov ecx, dword [ebp - 0x50c]
dec byte [ecx*4 + 0x4a4a03]
jmp 0x428748
mov eax, dword [ebp - 0x50c]
dec eax
js case.0x4283fc.51
mov byte [ebp - 0x50d], 1
mov edx, dword [ebp - 0x50c]
mov dword [ebp - 0x50c], eax
jmp 0x4281d0
mov eax, dword [ebp - 0x50c]
add eax, 0x10
cmp eax, 0x1f
jg case.0x4283fc.51
jmp 0x42889a
mov eax, dword [ebp - 0x50c]
sub eax, 0x10
jmp 0x428894
mov eax, dword [ebp - 0x50c]
inc eax
jmp 0x4288bb
mov dword [esp], 0x4abe35
mov ecx, dword [ebp - 0x500]
mov edi, 4
mov dword [esp + 8], edi
mov esi, 1
mov dword [esp + 4], esi
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov edx, dword [str.Colors]
mov eax, dword [ebp - 0x500]
call fcn.0041bb60
mov ebx, dword [ebp - 0x500]
mov dword [esp], ebx
call fcn.0047ec70
mov dword [esp], str.Dumped_color_redefinitions.
call fcn.004811d0
call fcn.00481230
jmp 0x427e60
add eax, 0xf
jmp 0x428318
mov dword [esp], ebx
call sub.msvcrt.dll_atoi
mov dword [ebp - 0x514], eax
test eax, eax
js 0x428ae0
cmp dword [ebp - 0x514], 0xff
jle 0x42896c
mov ecx, 0xff
mov dword [ebp - 0x514], ecx
mov dword [esp], ebx
mov edx, dword [ebp - 0x50c]
movzx eax, byte [edx*4 + 0x4a4a02]
mov edx, 0x4aae4a
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov eax, 0xa
mov dword [esp + 8], eax
mov dword [esp], str.Green__0_255_
call fcn.00481ec0
xor ecx, ecx
test al, al
je 0x428730
mov dword [esp], ebx
call sub.msvcrt.dll_atoi
test eax, eax
mov esi, eax
js 0x428af4
cmp eax, 0xff
jle 0x4289d0
mov esi, 0xff
mov dword [esp], ebx
mov ecx, dword [ebp - 0x50c]
movzx eax, byte [ecx*4 + 0x4a4a03]
mov dword [esp + 8], eax
mov eax, 0x4aae4a
mov dword [esp + 4], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov eax, 0xa
mov dword [esp + 8], eax
mov dword [esp], str.Blue__0_255_
call fcn.00481ec0
xor ecx, ecx
test al, al
je 0x428730
mov dword [esp], ebx
call sub.msvcrt.dll_atoi
test eax, eax
mov edi, eax
js 0x428afb
cmp eax, 0xff
jle 0x428a34
mov edi, 0xff
mov dword [esp], ebx
mov edx, dword [ebp - 0x50c]
movzx eax, byte [edx*4 + 0x4a4a00]
mov dword [esp + 8], eax
mov eax, 0x4aae4a
mov dword [esp + 4], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov eax, 0xa
mov dword [esp + 8], eax
mov dword [esp], str.Extra__0_255_
call fcn.00481ec0
xor ecx, ecx
test al, al
je 0x428730
mov dword [esp], ebx
call sub.msvcrt.dll_atoi
test eax, eax
mov edx, eax
js 0x428b02
cmp eax, 0xff
jle 0x428a94
mov edx, 0xff
mov ecx, dword [ebp - 0x50c]
movzx eax, byte [ecx*4 + 0x4a4a00]
cmp eax, edx
je 0x428b06
movzx eax, byte [ebp - 0x514]
mov ecx, esi
mov ebx, dword [ebp - 0x50c]
mov byte [ebx*4 + 0x4a4a00], dl
mov edx, 0x4a4a00
mov byte [edx + ebx*4 + 1], al
mov eax, edi
mov byte [edx + ebx*4 + 2], cl
mov ecx, 1
mov byte [edx + ebx*4 + 3], al
jmp 0x428730
xor esi, esi
mov dword [ebp - 0x514], esi
jmp 0x42896c
xor edx, edx
jmp 0x4287e4
xor esi, esi
jmp 0x4289d0
xor edi, edi
jmp 0x428a34
xor edx, edx
jmp 0x428a94
movzx eax, byte [ecx*4 + 0x4a4a01]
cmp eax, dword [ebp - 0x514]
jne 0x428aa6
movzx eax, byte [ecx*4 + 0x4a4a02]
cmp eax, esi
jne 0x428aa6
movzx eax, byte [ecx*4 + 0x4a4a03]
xor ecx, ecx
cmp eax, edi
jne 0x428aa6
jmp 0x428730