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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x23c
movzx esi, byte [esp + 0x254]
movzx ecx, byte [esp + 0x258]
mov eax, esi
test al, al
jne 0x4c8660
mov eax, dword [esp + 0x250]
mov ebx, dword [eax + 0x14]
mov eax, dword [0x54b9b8]
mov word [0xa6b360], 0x28
mov word [0xa6b362], 1
mov edx, eax
and edx, 2
cmp edx, 1
sbb edx, edx
add edx, 0x25
mov edi, edx
or edi, 2
test ah, 1
cmovne edx, edi
test al, 1
mov dword [0xa6b364], edx
jne 0x4c8460
mov edx, eax
and edx, 8
mov byte [0xa6b368], 0
mov byte [0xa6b36a], 8
mov byte [0xa6b36c], 8
mov byte [0xa6b36e], 8
mov byte [0xa6b370], dl
mov edx, eax
shr edx, 2
and edx, 1
test ah, 0x80
mov byte [0xa6b372], dl
mov edx, 4
mov byte [0xa6b369], 0x18
mov byte [0xa6b36b], 0
mov byte [0xa6b36d], 0
mov byte [0xa6b36f], 0
mov byte [0xa6b371], 0
mov byte [0xa6b373], 0
mov byte [0xa6b374], 0
mov byte [0xa6b375], 0
mov byte [0xa6b376], 0
mov byte [0xa6b377], 0x18
mov byte [0xa6b378], 8
je 0x4c8488
mov byte [0xa6b379], dl
mov byte [0xa6b37a], cl
mov byte [0xa6b37b], 0
mov dword [0xa6b37c], 0
mov dword [0xa6b380], 0
mov dword [0xa6b384], 0
mov dword [esp + 4], 0xc
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
sub esp, 8
mov byte [0xa6b369], al
mov dword [esp + 4], 0xa6b360
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_ChoosePixelFormat]
sub esp, 8
mov ebp, eax
test dword [0x54b9b8], 0x1080
jne 0x4c84c0
test ebp, ebp
je 0x4c8447
mov edx, esi
mov edi, 1
test dl, dl
je 0x4c8698
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, edi
sub esp, 4
add esp, 0x23c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, esi
xor edi, edi
test dl, dl
jne 0x4c842e
add esp, 0x23c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [0xa6b368], 1
mov byte [0xa6b36a], 0
mov byte [0xa6b36c], 0
mov byte [0xa6b36e], 0
mov byte [0xa6b370], 0
jmp 0x4c8342
test ah, 0x40
mov edx, 3
jne 0x4c83ab
test ah, 0x20
mov edx, 2
jne 0x4c83ab
xor edx, edx
test ah, 0x10
je 0x4c83ab
movzx edx, byte [0x54ba30]
jmp 0x4c83ab
call dword [sym.imp.OPENGL32.DLL_wglGetCurrentContext]
mov dword [esp + 0x4c], eax
call dword [sym.imp.OPENGL32.DLL_wglGetCurrentDC]
lea edx, [esp + 0x78]
mov ecx, 0xa
mov edi, edx
mov dword [esp + 0x50], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [sym.imp.USER32.dll_DefWindowProcA]
mov dword [esp], edx
mov dword [esp + 0x78], 0x23
mov dword [esp + 0x9c], str.FREEGLUT_dummy
mov dword [esp + 0x7c], eax
mov eax, dword [0xa6b2a0]
mov dword [esp + 0x88], eax
call dword [sym.imp.USER32.dll_RegisterClassA]
mov edi, dword [0xa6b2a0]
sub esp, 4
call fcn.00466e2d
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
imul eax, eax, 0xcf0000
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
or eax, 0x6cb0000
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x57bab1
mov dword [esp + 4], str.FREEGLUT_dummy
mov dword [esp], 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
sub esp, 0x30
mov dword [esp + 0x44], eax
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetDC]
sub esp, 4
mov edi, eax
mov dword [esp + 8], 0xa6b360
mov dword [esp + 4], ebp
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_SetPixelFormat]
sub esp, 0xc
mov dword [esp], edi
call dword [sym.imp.OPENGL32.DLL_wglCreateContext]
mov edx, dword [sym.imp.OPENGL32.DLL_wglMakeCurrent]
sub esp, 4
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], eax
mov dword [esp + 4], eax
mov dword [esp], edi
call edx
mov edx, str.WGL_ARB_multisample
mov eax, edi
sub esp, 8
call fcn.004c7c70
test eax, eax
jne 0x4c86c4
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call dword [esp + 0x40]
sub esp, 8
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call dword [sym.imp.OPENGL32.DLL_wglDeleteContext]
sub esp, 4
mov eax, dword [esp + 0x44]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
sub esp, 8
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0xa6b2a0]
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], str.FREEGLUT_dummy
call dword [sym.imp.USER32.dll_UnregisterClassA]
sub esp, 8
jmp 0x4c841b
mov byte [esp + 0x3c], cl
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.DISPLAY
call dword [sym.imp.GDI32.dll_CreateDCA]
sub esp, 0x10
mov ebx, eax
movzx ecx, byte [esp + 0x3c]
jmp 0x4c82de
mov dword [esp + 4], ebp
mov dword [esp], ebx
mov dword [esp + 8], 0xa6b360
call dword [sym.imp.GDI32.dll_SetPixelFormat]
sub esp, 0xc
test eax, eax
setne al
add esp, 0x23c
mov edi, eax
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov dword [esp], str.wglChoosePixelFormatARB
call dword [sym.imp.OPENGL32.DLL_wglGetProcAddress]
sub esp, 4
test eax, eax
mov ecx, eax
je 0x4c85f1
movzx eax, byte [0xa6b369]
mov edx, dword [0x54b9b8]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xbc], eax
movzx eax, byte [0xa6b370]
mov dword [esp + 0xa0], 0x2001
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0x2010
mov dword [esp + 0xc4], eax
movzx eax, byte [0xa6b377]
mov dword [esp + 0xac], 1
mov dword [esp + 0xb0], 0x2003
mov dword [esp + 0xb4], 0x2027
mov dword [esp + 0xcc], eax
movzx eax, byte [0xa6b378]
mov dword [esp + 0xb8], 0x2014
mov dword [esp + 0xc0], 0x201b
mov dword [esp + 0xc8], 0x2022
mov dword [esp + 0xd4], eax
mov eax, edx
shr eax, 1
and eax, 1
and dh, 0x10
mov dword [esp + 0xd0], 0x2023
mov dword [esp + 0xd8], 0x2011
mov dword [esp + 0xdc], eax
je 0x4c8890
mov dword [esp + 0xe0], 0x20a9
mov edx, 0x4c
mov dword [esp + 0xe4], 1
mov dword [esp + 0x5c], 0x58
mov dword [esp + 0x58], 0x54
mov dword [esp + 0x38], 0x50
mov dword [esp + 0x54], 0x48
mov eax, dword [esp + 0x54]
mov dword [esp + eax + 0xa0], 0x2041
mov eax, dword [0x54ba34]
mov dword [esp + edx + 0xa0], 1
mov edx, dword [esp + 0x38]
mov dword [esp + edx + 0xa0], 0x2042
mov edx, dword [esp + 0x58]
mov dword [esp + edx + 0xa0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + eax + 0xa0], 0
lea eax, [esp + 0x6c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0xc], 1
mov dword [esp + 4], eax
mov dword [esp], edi
call ecx
sub esp, 0x18
test eax, eax
je 0x4c85f1
mov eax, dword [esp + 0x6c]
test eax, eax
cmovne ebp, dword [esp + 0x68]
jmp 0x4c85f1
mov dword [esp + 0x5c], 0x50
mov edx, 0x44
mov dword [esp + 0x58], 0x4c
mov dword [esp + 0x38], 0x48
mov dword [esp + 0x54], 0x40
jmp 0x4c87f7