Function at 0x45c480
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x470
xorps xmm0, xmm0
mov dword [esp + 0x220], 0
movups xmmword [esp + 0x70], xmm0
push ebx
movups xmmword [esp + 0x84], xmm0
push esi
movups xmmword [esp + 0x98], xmm0
push edi
movups xmmword [esp + 0xac], xmm0
push 0x248
movups xmmword [esp + 0xc0], xmm0
lea eax, [esp + 0x238]
mov esi, ecx
movups xmmword [esp + 0xd0], xmm0
push 0
movups xmmword [esp + 0xe4], xmm0
push eax
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0x23c], 0
movups xmmword [esp + 0x108], xmm0
movups xmmword [esp + 0x118], xmm0
movups xmmword [esp + 0x128], xmm0
movups xmmword [esp + 0x138], xmm0
movaps xmm0, xmmword [0x4a6b60]
movups xmmword [esp + 0x148], xmm0
movaps xmm0, xmmword [0x4a6b70]
movups xmmword [esp + 0x158], xmm0
movaps xmm0, xmmword [0x4a6b10]
movups xmmword [esp + 0x168], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x178], xmm0
movaps xmm0, xmmword [0x4a6b80]
movups xmmword [esp + 0x188], xmm0
movaps xmm0, xmmword [0x4a6b40]
movups xmmword [esp + 0x198], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x1a8], xmm0
movups xmmword [esp + 0x1b8], xmm0
movups xmmword [esp + 0x1c8], xmm0
movups xmmword [esp + 0x1d8], xmm0
movups xmmword [esp + 0x1e8], xmm0
movups xmmword [esp + 0x1f8], xmm0
movaps xmm0, xmmword [0x4a6b90]
movups xmmword [esp + 0x208], xmm0
movaps xmm0, xmmword [0x4a6b20]
movups xmmword [esp + 0x218], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x228], xmm0
call fcn.004682f0
add esp, 0xc
mov dword [esp + 0xc], str.white
cmp byte [esi], 0x23
xorps xmm0, xmm0
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], str.black
mov dword [esp + 0x18], 0xff000000
mov dword [esp + 0x1c], str.clear
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], str.gray
mov dword [esp + 0x28], 0xff808080
mov dword [esp + 0x2c], 0x4a5150
mov dword [esp + 0x30], 0xff0000ff
mov dword [esp + 0x34], str.orange
mov dword [esp + 0x38], 0xff0080ff
mov dword [esp + 0x3c], str.yellow
mov dword [esp + 0x40], 0xff00ffff
mov dword [esp + 0x44], str.chartreuse
mov dword [esp + 0x48], 0xff00ff80
mov dword [esp + 0x4c], str.green
mov dword [esp + 0x50], 0xff00ff00
mov dword [esp + 0x54], str.teal
mov dword [esp + 0x58], 0xff80ff00
mov dword [esp + 0x5c], str.cyan
mov dword [esp + 0x60], 0xffffff00
mov dword [esp + 0x64], str.blue
mov dword [esp + 0x68], 0xffff0000
mov dword [esp + 0x6c], str.purple
mov dword [esp + 0x70], 0xffff0080
movq qword [esp + 0x74], xmm0
jne 0x45c743
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 4
jne 0x45c6ed
movsx eax, byte [esi + 2]
movsx ecx, byte [esi + 3]
pop edi
imul eax, dword [esp + eax*4 + 0x78], 0x1100
imul ecx, dword [esp + ecx*4 + 0x78], 0x110000
or eax, ecx
movsx ecx, byte [esi + 1]
pop esi
pop ebx
mov ecx, dword [esp + ecx*4 + 0x70]
mov edx, ecx
shl edx, 4
add edx, ecx
or eax, edx
add esp, 0x470
ret
cmp eax, 7
jne 0x45c784
movsx eax, byte [esi + 3]
movsx ecx, byte [esi + 6]
mov edi, dword [esp + eax*4 + 0x7c]
movsx eax, byte [esi + 4]
shl edi, 4
add edi, dword [esp + eax*4 + 0x7c]
movsx eax, byte [esi + 5]
shl edi, 8
mov eax, dword [esp + eax*4 + 0x7c]
shl eax, 4
add eax, dword [esp + ecx*4 + 0x7c]
movsx ecx, byte [esi + 1]
shl eax, 0x10
or eax, edi
pop edi
mov edx, dword [esp + ecx*4 + 0x78]
movsx ecx, byte [esi + 2]
shl edx, 4
pop esi
pop ebx
add edx, dword [esp + ecx*4 + 0x70]
or eax, edx
add esp, 0x470
ret
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea edi, [esp + 0xc]
push str.white
push esi
call ebx
test eax, eax
je 0x45c772
nop dword [eax]
mov eax, dword [edi + 8]
add edi, 8
test eax, eax
je 0x45c784
push eax
push esi
call ebx
test eax, eax
jne 0x45c760
mov eax, dword [edi + 4]
pop edi
pop esi
and eax, 0xffffff
pop ebx
add esp, 0x470
ret
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x470
ret