Function at 0x418090
Capabilities:
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push 0x4aaca4
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x4180fb
push str.format
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x418110
push str.key_color
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41812d
push str.key_width
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x4181b7
xor ebx, ebx
jmp 0x4182a5
test ebp, ebp
je 0x4182ac
cmp dword [edi], 0
je 0x418147
mov eax, dword [edi + 8]
mov byte [eax], 0
jmp 0x41814f
test ebp, ebp
je 0x4182ac
cmp dword [edi + 0x18], 0
je 0x4181cb
mov eax, dword [edi + 0x20]
mov byte [eax], 0
jmp 0x4181d3
test ebp, ebp
je 0x4182ac
add edi, 0xc
push edi
push ebp
call fcn.004183e0
add esp, 8
jmp 0x4181c4
mov eax, dword [0x5052b0]
mov dword [edi + 8], eax
mov dword [edi + 4], 0
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov bl, 1
test eax, eax
je 0x4182a5
mov esi, eax
mov eax, dword [edi]
mov ecx, eax
sub ecx, 1
jb 0x418182
cmp ecx, esi
jb 0x418182
mov eax, dword [edi + 8]
xor ecx, ecx
jmp 0x418257
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, esi
inc edx
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x418190
test eax, eax
je 0x418240
push ebp
push dword [edi + 8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [edi + 8], eax
mov ecx, dword [edi + 4]
jmp 0x418251
push ebp
push esi
call fcn.00419040
add esp, 8
mov dword [edi + 0x24], eax
mov bl, 1
jmp 0x4182a5
mov eax, dword [0x5052b0]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], 0
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov bl, 1
test eax, eax
je 0x4182a5
mov esi, eax
mov eax, dword [edi + 0x18]
mov ecx, eax
sub ecx, 1
jb 0x418207
cmp ecx, esi
jb 0x418207
mov eax, dword [edi + 0x20]
xor ecx, ecx
jmp 0x418289
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, esi
inc edx
nop word cs:[eax + eax]
mov ebp, ecx
add ecx, ecx
cmp edx, ebp
ja 0x418220
test eax, eax
je 0x418271
push ebp
push dword [edi + 0x20]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [edi + 0x20], eax
mov ecx, dword [edi + 0x1c]
jmp 0x418282
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [edi + 8], eax
xor ecx, ecx
mov dword [edi], ebp
mov ebp, dword [esp + 0x1c]
add ecx, eax
push esi
push ebp
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 4]
add eax, esi
mov dword [edi + 4], eax
mov ecx, dword [edi + 8]
jmp 0x4182a1
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [edi + 0x20], eax
xor ecx, ecx
mov dword [edi + 0x18], ebp
mov ebp, dword [esp + 0x1c]
add ecx, eax
push esi
push ebp
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x1c]
add eax, esi
mov dword [edi + 0x1c], eax
mov ecx, dword [edi + 0x20]
mov byte [ecx + eax], 0
mov eax, ebx
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push esi
push str.Error:_usage:__s__str__n
push eax
call fcn.004183c0
add esp, 0xc
push 0x1dd
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit