Function at 0x4dd450
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x55c054]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
push str.Creating_3D_Renderer_context
push 0
mov esi, ecx
push 0x41
push str.C:UsersMi_PcDocumentsGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceModuleRenderer3D.cpp
mov dword [esp + 0x58], esi
call fcn.004ce750
mov eax, dword [esi + 8]
mov bl, 1
mov byte [esp + 0x57], bl
mov eax, dword [eax]
push dword [eax + 0xc]
call dword [sym.imp.SDL2.dll_SDL_GL_CreateContext]
add esp, 0x14
mov dword [esi + 0x1ac], eax
test eax, eax
jne 0x4dd4c4
call dword [sym.imp.SDL2.dll_SDL_GetError]
push eax
push str.OpenGL_context_could_not_be_created__SDL_Error:__s_n
push 0
push 0x48
push str.C:UsersMi_PcDocumentsGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceModuleRenderer3D.cpp
call fcn.004ce750
add esp, 0x14
xor bl, bl
mov byte [esp + 0x47], bl
call dword [sym.imp.glew32.dll__glewInit_0]
call dword [sym.imp.OPENGL32.dll_glGetError]
test eax, eax
je 0x4dd4fc
push eax
call dword [sym.imp.GLU32.dll_gluErrorString]
push eax
push str.Error_initializing_OpenGL___s_n
push 2
push 0x56
push str.C:UsersMi_PcDocumentsGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceModuleRenderer3D.cpp
call fcn.004ce750
add esp, 0x14
mov byte [esp + 0x47], 0
jmp 0x4dd727
cmp bl, 1
jne 0x4dd727
mov edi, dword [sym.imp.OPENGL32.dll_glMatrixMode]
push 0x1700
call edi
mov esi, dword [sym.imp.OPENGL32.dll_glLoadIdentity]
call esi
push 0x1700
call edi
call esi
mov esi, dword [sym.imp.OPENGL32.dll_glGetError]
call esi
mov edi, dword [sym.imp.GLU32.dll_gluErrorString]
test eax, eax
je 0x4dd554
push eax
call edi
push eax
push str.Error_initializing_OpenGL___s_n
push 0
push 0x6c
push str.C:UsersMi_PcDocumentsGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceModuleRenderer3D.cpp
call fcn.004ce750
add esp, 0x14
mov byte [esp + 0x47], 0
push 0x1102
push 0xc50
call dword [sym.imp.OPENGL32.dll_glHint]
movsd xmm0, qword [0x54f580]
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OPENGL32.dll_glClearDepth]
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.OPENGL32.dll_glClearColor]
push 0x4000
call dword [sym.imp.OPENGL32.dll_glClear]
call esi
test eax, eax
je 0x4dd5d2
push eax
call edi
push eax
push str.Error_initializing_OpenGL___s_n
push 0
push 0x7b
push str.C:UsersMi_PcDocumentsGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceModuleRenderer3D.cpp
call fcn.004ce750
add esp, 0x14
mov byte [esp + 0x47], 0
mov ebx, dword [sym.imp.OPENGL32.dll_glEnable]
push 0xbc0
call ebx
push ecx
mov dword [esp], 0x3dcccccd
push 0x204
call dword [sym.imp.OPENGL32.dll_glAlphaFunc]
push 0xbe2
call ebx
push 0x303
push 0x302
call dword [sym.imp.OPENGL32.dll_glBlendFunc]
movaps xmm0, xmmword [0x550500]
lea eax, [esp + 0x4c]
push eax
push 0xb53
movups xmmword [esp + 0x54], xmm0
call dword [sym.imp.OPENGL32.dll_glLightModelfv]
mov eax, dword [esp + 0x48]
mov esi, dword [sym.imp.OPENGL32.dll_glLightfv]
lea edi, [eax + 0xc]
push edi
push 0x1200
mov dword [eax + 0x38], 0x4000
mov dword [edi], 0x3e800000
mov dword [edi + 4], 0x3e800000
mov dword [edi + 8], 0x3e800000
mov dword [edi + 0xc], 0x3f800000
mov dword [eax + 0x1c], 0x3f400000
mov dword [eax + 0x20], 0x3f400000
mov dword [eax + 0x24], 0x3f400000
mov dword [eax + 0x28], 0x3f800000
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0x40200000
push dword [edi + 0x2c]
call esi
lea eax, [edi + 0x10]
push eax
push 0x1201
push dword [edi + 0x2c]
call esi
movaps xmm0, xmmword [0x550500]
lea eax, [esp + 0x5c]
mov esi, dword [sym.imp.OPENGL32.dll_glMaterialfv]
push eax
push 0x1200
push 0x408
movups xmmword [esp + 0x68], xmm0
call esi
movaps xmm0, xmmword [0x550500]
lea eax, [esp + 0x6c]
push eax
push 0x1201
push 0x408
movups xmmword [esp + 0x78], xmm0
call esi
mov esi, dword [esp + 0x48]
mov cl, byte [esi + 0x3c]
cmp cl, 1
je 0x4dd704
test cl, cl
sete al
mov byte [esi + 0x3c], al
mov eax, dword [esi + 0x38]
push eax
test cl, cl
jne 0x4dd6fe
call ebx
jmp 0x4dd704
call dword [sym.imp.OPENGL32.dll_glDisable]
push 0xb71
call ebx
push 0xb44
call ebx
push 0xb50
call ebx
push 0xb57
call ebx
push 0xde1
call ebx
call dword [sym.imp.DevIL.dll_ilInit]
call dword [sym.imp.ILU.dll_iluInit]
call dword [sym.imp.ILUT.dll_ilutInit]
push 0
call dword [sym.imp.ILUT.dll_ilutRenderer]
push 0x4010
call fcn.004c9070
mov edi, eax
add esp, 4
test edi, edi
je 0x4dd771
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
jmp 0x4dd773
xor edi, edi
xor esi, esi
lea ecx, [edi + 0x11]
mov ebx, esi
xor edx, edx
shr ebx, 3
nop
mov eax, edx
mov byte [ecx + 2], 0xff
shr eax, 3
inc edx
xor al, bl
and al, 1
neg al
mov byte [ecx - 1], al
mov byte [ecx], al
mov byte [ecx + 1], al
add ecx, 4
cmp edx, 0x40
jl 0x4dd780
inc esi
cmp esi, 0x40
jl 0x4dd778
push 1
push 0xcf5
call dword [sym.imp.OPENGL32.dll_glPixelStorei]
lea esi, [edi + 0xc]
push esi
push 1
call dword [sym.imp.OPENGL32.dll_glGenTextures]
push dword [esi]
push 0xde1
call dword [sym.imp.OPENGL32.dll_glBindTexture]
mov esi, dword [sym.imp.OPENGL32.dll_glTexParameteri]
push 0x2901
push 0x2802
push 0xde1
call esi
push 0x2901
push 0x2803
push 0xde1
call esi
push 0x2600
push 0x2800
push 0xde1
call esi
push 0x2600
push 0x2801
push 0xde1
call esi
lea eax, [edi + 0x10]
push eax
push 0x1401
push 0x1908
push 0
push 0x40
push 0x40
push 0x1908
push 0
push 0xde1
call dword [sym.imp.OPENGL32.dll_glTexImage2D]
mov esi, dword [esp + 0x48]
mov eax, dword [0x562820]
mov byte [esi + 0x204], 1
mov eax, dword [eax]
mov edi, dword [eax + 0x18]
mov ebx, dword [eax + 0x14]
push edi
push ebx
push 0
push 0
call dword [sym.imp.OPENGL32.dll_glViewport]
mov ecx, dword [0x562820]
mov eax, dword [ecx]
mov dword [eax + 0x14], ebx
mov eax, dword [ecx]
mov dword [eax + 0x18], edi
mov ecx, dword [esi + 0x220]
test ecx, ecx
je 0x4dd893
call fcn.0040f0a0
push eax
call dword [sym.imp.OPENGL32.dll_glLoadMatrixf]
mov ecx, dword [esi + 0x220]
push edi
push ebx
call fcn.0040f1e0
mov ecx, dword [esp + 0x7c]
mov al, byte [esp + 0x47]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e7a8e
mov esp, ebp
pop ebp
ret