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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x6c2754c1
mov eax, dword [ebx + 0x24b4]
mov ebp, dword [esp + 0x74]
imul ebp, dword [eax]
add ebp, dword [eax + 0xc]
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*8]
lea esi, [ebp + eax*4]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x6c2753fc
mov eax, dword [esi + 0x28]
test eax, eax
je 0x6c2751cf
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*8]
lea eax, [ebp + eax*4]
mov dword [eax + 8], 0x3f8147ae
mov dword [eax + 0xc], 0x3f8147ae
mov edx, dword [edi]
mov dword [eax + 0x14], edx
mov ecx, dword [edi + 4]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 3
mov ecx, dword [esp + 0x80]
mov dword [eax + 0x28], ecx
cmp dword [ebx + 0x19d8], 0xffffffff
je 0x6c2753e2
mov edx, dword [ebx + 0x1f48]
lea ecx, [edx + 1]
mov eax, dword [ebx + 0x1f4c]
cmp ecx, eax
jbe 0x6c2753ec
mov ecx, eax
shr ecx, 2
mov esi, 1
cmove ecx, esi
add ecx, eax
mov dword [esp + 0x38], ecx
mov esi, dword [ebx + 0x1f44]
mov eax, ecx
imul eax, esi
add eax, 0x13
mov dword [esp], eax
mov dword [esp + 0x30], edx
call sub.msvcrt.dll_malloc
mov ecx, eax
lea eax, [eax + 0x13]
and eax, 0xfffffff0
mov dword [eax - 4], ecx
mov edx, dword [esp + 0x30]
mov ecx, edx
imul ecx, esi
mov esi, dword [ebx + 0x1f50]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x1f50]
mov ecx, dword [ecx - 4]
mov dword [esp], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x1f50], eax
mov ecx, dword [esp + 0x38]
mov dword [ebx + 0x1f4c], ecx
mov esi, dword [ebx + 0x1f48]
lea ecx, [esi + 1]
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x1f48], ecx
imul esi, dword [ebx + 0x1f44]
add eax, esi
mov dword [esp + 4], eax
mov dword [esp], 1
mov dword [esp + 0x30], edx
call sub.OPENGL32.DLL_glGenTextures
sub esp, 8
inc dword [ebx + 0x1f54]
mov ecx, dword [esp + 0x78]
lea eax, [ecx + ecx*8]
mov edx, dword [esp + 0x30]
mov dword [ebp + eax*4 + 0x10], edx
test edx, edx
je 0x6c2753e2
imul edx, dword [ebx + 0x1f44]
mov eax, dword [ebx + 0x1f50]
mov eax, dword [eax + edx]
mov dword [esp + 4], eax
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glBindTexture
sub esp, 8
mov dword [esp + 8], 0x2703
mov dword [esp + 4], 0x2801
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glTexParameteri
sub esp, 0xc
mov dword [esp + 8], 0x2601
mov dword [esp + 4], 0x2800
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glTexParameteri
sub esp, 0xc
mov dword [esp + 8], 1
mov dword [esp + 4], 0x8191
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glTexParameteri
sub esp, 0xc
mov eax, dword [0x6c2e3088]
test eax, eax
jne 0x6c27544c
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*8]
lea eax, [ebp + eax*4]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0x1401
mov dword [esp + 0x18], 0x1907
mov dword [esp + 0x14], 0
mov edx, dword [eax + 0x18]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x14]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x8051
mov dword [esp + 4], 0
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glTexImage2D
sub esp, 0x24
mov dword [esp], 0xde1
call dword [0x6c454318]
push eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0x1f50]
mov esi, edx
jmp 0x6c2752ad
mov dword [esp], 0x84c1
call dword [0x6c45438c]
push eax
mov dword [esp + 4], 0
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glBindTexture
sub esp, 8
mov eax, dword [esi + 0x28]
test eax, eax
je 0x6c275437
mov edx, dword [esi + 0x10]
test edx, edx
jne 0x6c275474
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*8]
mov dword [ebp + eax*4 + 0x10], 0
jmp 0x6c2751cf
mov eax, dword [0x6c490a10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x84fe
mov dword [esp], 0xde1
call sub.OPENGL32.DLL_glTexParameterf
sub esp, 0xc
jmp 0x6c27537d
imul edx, dword [ebx + 0x1f44]
add edx, dword [ebx + 0x1f50]
mov dword [esp + 4], edx
mov dword [esp], 1
call sub.OPENGL32.DLL_glDeleteTextures
sub esp, 8
call sub.OPENGL32.DLL_glGetError
test eax, eax
jne 0x6c27554f
mov edx, dword [esp + 0x78]
lea eax, [edx + edx*8]
lea eax, [ebp + eax*4]
mov dword [eax + 0x10], 0
dec dword [ebx + 0x1f54]
mov eax, dword [eax + 0x28]
jmp 0x6c27542f
mov edx, dword [edi + 4]
mov dword [esp + 0x3c], edx
mov esi, dword [edi]
mov ebp, dword [edi + 8]
lea ecx, [esi*4]
mov dword [esp + 0x44], ecx
lea edx, [esi + esi*2]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x3c]
imul eax, edx
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0x3c]
test edx, edx
jle 0x6c27519a
mov ecx, ebp
xor ebp, ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], edi
mov edi, eax
nop
test esi, esi
jle 0x6c275533
mov edx, edi
xor eax, eax
mov bl, byte [ecx + eax*4]
mov byte [edx], bl
mov bl, byte [ecx + eax*4 + 1]
mov byte [edx + 1], bl
mov bl, byte [ecx + eax*4 + 2]
mov byte [edx + 2], bl
inc eax
add edx, 3
cmp eax, esi
jne 0x6c275518
inc ebp
add edi, dword [esp + 0x40]
add ecx, dword [esp + 0x44]
cmp ebp, dword [esp + 0x3c]
jne 0x6c275510
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
jmp 0x6c27519a
mov dword [esp + 4], eax
mov dword [esp], str.releasetexid:_glError_0x_04x__n
call fcn.6c263a70
jmp 0x6c2754a1