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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov dword [esp + 0x78], 0
rcr edi, 0x77
and esi, 0x6b
neg edx
rol edi, 8
rcr edi, 0x54
sbb ebx, 0xd5
rcr edi, 0x2b
not ebx
not esi
sbb edi, 0xa4
inc edi
mov edx, 0xfe
rcr eax, 0xc8
bswap ebx
imul edx
rcl edx, 0x49
or eax, 0xc6
and edi, 0x90
bswap edi
rol ebx, 0xa7
sbb edx, 0x84
rol esi, 0xd7
neg edx
not edi
mov esi, 0x66
dec edi
sub eax, 0x97
sbb eax, 0xb9
rol esi, 0xcd
imul ebx
and edx, 0x4c
rcl eax, 0x8c
mov edx, 9
not eax
bswap ebx
and edi, 0xe
dec eax
sbb ebx, 0xa7
sbb eax, 0x5f
and edx, 0xd1
sub eax, 0xb5
rcl eax, 0xca
mov ebx, 0x32
inc edx
inc eax
rol ebx, 0x52
rcr edi, 0xdd
sbb ebx, 0x8c
dec esi
dec edi
mov dword [esp + 0x78], eax
lea eax, [esp + 0x70]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub esp, 4
lea eax, [0x4101dc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub esp, 4
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x40efc8
mov ecx, dword [esp + 0x6c]
lea eax, str.FreeConsole
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x40efc3
mov eax, dword [esp + 0x68]
mov dword [esp + 0x64], eax
call dword [esp + 0x64]
jmp 0x40efc8
rcr ebx, 0xf3
mov ebx, 0xa7
ror esi, 0x82
sbb edx, 0x64
rol esi, 0xa8
mov ebx, 0x39
imul ebx
or edx, 0x8e
mov edi, 0x61
inc esi
sbb esi, 0x72
neg esi
rcr ebx, 0x3e
imul esi
neg esi
sub edx, 0x5a
rcl edi, 0x7c
bswap eax
or eax, 0x6d
imul edi
rol edi, 0xb6
imul eax
rcr ebx, 0x25
dec esi
ror edi, 0xe5
bswap edx
bswap ebx
bswap ebx
sbb esi, 0x85
rcl ebx, 0x22
dec ebx
neg esi
rcr edi, 0xf1
rcl edx, 0xbe
rcl eax, 0x1d
sbb edx, 0x3e
inc esi
or edx, 0x53
rcr eax, 0xe9
rcr esi, 0x93
sbb edx, 0x30
bswap eax
neg esi
imul ebx
add esi, 0x84
dec edx
inc edx
not esi
dec edi
rcr eax, 0x7a
mov dword [esp + 0x78], eax
mov dword [esp + 0x60], 5
mov dword [esp + 0x5c], 0xa
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
cmp dword [esp + 0x54], 0xa
jge 0x40f09f
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x5c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
add eax, 1
mov dword [esp + 0x54], eax
jmp 0x40f074
cmp dword [esp + 0x58], 0x32
jle 0x40f0cf
jmp 0x40f0af
cmp dword [esp + 0x58], 0
jle 0x40f0ca
mov eax, dword [esp + 0x58]
add eax, 0xffffffff
mov dword [esp + 0x58], eax
jmp 0x40f0af
jmp 0x40f103
mov dword [esp + 0x50], 0
cmp dword [esp + 0x50], 5
jge 0x40f0fe
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
add eax, 1
mov dword [esp + 0x50], eax
jmp 0x40f0d7
jmp 0x40f103
mov dword [esp + 0x4c], 0
cmp dword [esp + 0x4c], 0xa
jge 0x40f14c
mov eax, dword [esp + 0x4c]
mov ecx, 2
cdq
idiv ecx
cmp edx, 0
jne 0x40f137
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
jmp 0x40f13c
mov eax, dword [esp + 0x4c]
add eax, 1
mov dword [esp + 0x4c], eax
jmp 0x40f10b
mov dword [esp], 0x28
call fcn.00401030
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], 0
cmp dword [esp + 0x44], 0xa
jge 0x40f18e
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x44]
add eax, 1
mov dword [esp + 0x44], eax
jmp 0x40f164
mov dword [esp + 0x40], 0
cmp dword [esp + 0x40], 0xa
jge 0x40f1c4
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + ecx*4]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x40], eax
jmp 0x40f196
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
cmp eax, 0
je 0x40f1e1
mov eax, dword [esp + 0xc]
mov dword [esp], eax
call fcn.00401039
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x3c], 0x64
jge 0x40f20f
mov eax, dword [esp + 0x58]
add eax, 1
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x3c], eax
jmp 0x40f1e9
mov dword [esp + 0x38], 0
cmp dword [esp + 0x38], 5
jge 0x40f26a
mov dword [esp + 0x34], 0
cmp dword [esp + 0x34], 0xa
jge 0x40f255
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x34]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
add eax, 1
mov dword [esp + 0x34], eax
jmp 0x40f22a
jmp 0x40f25a
mov eax, dword [esp + 0x38]
add eax, 1
mov dword [esp + 0x38], eax
jmp 0x40f217
mov dword [esp + 0x30], 0xa
mov dword [esp + 0x2c], 0x14
mov dword [esp + 0x28], 0x1e
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x2c]
jle 0x40f2af
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x28]
jle 0x40f2af
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
jmp 0x40f2ed
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x30]
jle 0x40f2dc
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x28]
jle 0x40f2dc
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
jmp 0x40f2e8
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
jmp 0x40f2ed
mov dword [esp + 0x24], 0
cmp dword [esp + 0x24], 0xa
jge 0x40f374
mov dword [esp + 0x20], 0
cmp dword [esp + 0x20], 0xa
jge 0x40f35f
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x1c], 0xa
jge 0x40f34a
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x20]
add eax, dword [esp + 0x1c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
add eax, 1
mov dword [esp + 0x1c], eax
jmp 0x40f31b
jmp 0x40f34f
mov eax, dword [esp + 0x20]
add eax, 1
mov dword [esp + 0x20], eax
jmp 0x40f308
jmp 0x40f364
mov eax, dword [esp + 0x24]
add eax, 1
mov dword [esp + 0x24], eax
jmp 0x40f2f5
call fcn.00403fa0
mov ecx, 0x64
cdq
idiv ecx
mov dword [esp + 0x18], edx
call fcn.00403fa0
mov ecx, 0x64
cdq
idiv ecx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], 0
cmp dword [esp + 0x10], 0xa
jge 0x40f3ef
mov eax, dword [esp + 0x10]
mov ecx, 2
cdq
idiv ecx
cmp edx, 0
jne 0x40f3d3
jmp 0x40f3df
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0x10], eax
jmp 0x40f3ae
add eax, 0x66
inc eax
ror esi, 0x2c
imul ebx
neg eax
neg esi
not edx
dec ebx
not esi
dec edi
not esi
neg esi
sub ebx, 0xd4
neg eax
dec esi
or eax, 0xd3
bswap eax
or edi, 0x7a
add edi, 0x53
imul ebx
or edi, 0xbf
dec edi
inc edi
dec ebx
or edx, 0x91
dec eax
not edx
sbb edi, 0xf4
not esi
and edi, 0x97
sub ebx, 0x23
sbb ebx, 0xd1
bswap esi
bswap esi
or ebx, 0xbe
neg edi
not eax
not edi
bswap esi
neg edi
imul edi
imul ebx
ror edx, 0xd1
not ebx
and edi, 0xb7
not esi
imul eax
imul edx
dec eax
bswap eax
mov dword [esp + 0x78], eax
call fcn.0040e790
ror esi, 0xb3
and eax, 0xde
not eax
not edx
neg eax
inc ebx
mov ebx, 0xe2
bswap eax
dec ebx
dec edi
rcr esi, 0xee
rcl edi, 0x13
mov edx, 0x56
or edx, 0x60
rcl eax, 0x41
sub esi, 0xb2
rcl esi, 0x96
and edx, 0x30
rcl eax, 0x12
rol edi, 0x9d
sub esi, 0x43
sbb eax, 0x78
not edx
rcl edx, 0x38
add esi, 0xb0
rol eax, 0xd8
not esi
bswap ebx
not edi
rcl esi, 0xce
add eax, 0x95
rcl ebx, 0xa3
inc edx
ror edx, 0xa9
not esi
add ebx, 0x93
neg eax
not edi
and ebx, 0x95
inc edx
mov edi, 0x9e
mov esi, 0x81
rcl edx, 0xf3
imul eax
neg edx
rcr edi, 0x6e
add edi, 0x38
rcl edi, 0xcc
rol ebx, 0xae
mov ebx, 0xc4
mov dword [esp + 0x78], eax
lea eax, [0x41ac94]
mov dword [esp], eax
call dword [sym.imp.COMDLG32.dll_ChooseColorW]
sub esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret