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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x57c
mov eax, dword [0x1004e040]
xor eax, esp
mov dword [esp + 0x578], eax
cmp dword [0x1004e864], 0
push ebx
push esi
push edi
mov esi, ecx
jne 0x1003e57c
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, 6
test esi, esi
je 0x1003f51d
cmp esi, 1
jl 0x1003e4ed
cmp esi, 4
jle 0x1003e596
cmp esi, 5
je 0x1003e66b
cmp esi, ebx
je 0x1003f51d
cmp esi, 7
jne 0x1003f51d
push str.d3d9.dll
xor esi, esi
call edi
test eax, eax
je 0x1003e51b
mov esi, 1
jmp 0x1003e56f
push str.d3d10.dll
call edi
test eax, eax
je 0x1003e52d
mov esi, 2
jmp 0x1003e56f
push str.d3d11.dll
call edi
test eax, eax
je 0x1003e53f
mov esi, 3
jmp 0x1003e56f
push str.d3d12.dll
call edi
test eax, eax
je 0x1003e551
mov esi, 4
jmp 0x1003e56f
push str.opengl32.dll
call edi
test eax, eax
je 0x1003e563
mov esi, 5
jmp 0x1003e56f
push str.vulcan_1.dll
call edi
test eax, eax
cmovne esi, ebx
cmp dword [0x1004e864], 0
je 0x1003e4d7
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x578]
xor ecx, esp
call fcn.1004123c
mov esp, ebp
pop ebp
ret
mov eax, dword [sym.imp.USER32.dll_DefWindowProcA]
push 0
mov dword [esp + 0x558], 0x30
mov dword [esp + 0x55c], 3
mov dword [esp + 0x560], eax
mov dword [esp + 0x564], 0
mov dword [esp + 0x568], 0
call edi
mov dword [esp + 0x568], eax
xorps xmm0, xmm0
lea eax, [esp + 0x554]
mov dword [esp + 0x57c], 0x10049d28
push eax
movups xmmword [esp + 0x570], xmm0
mov dword [esp + 0x584], 0
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
push dword [esp + 0x56c]
push 0
push 0
push 0x64
push 0x64
push 0
push 0
push 0xcf0000
push str.Kiero_DirectX_Window
push dword [esp + 0x5a4]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
push dword [esp + 0x568]
push dword [esp + 0x580]
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x578]
xor ecx, esp
call fcn.1004123c
mov esp, ebp
pop ebp
ret
push str.opengl32.dll
call edi
mov edi, eax
test edi, edi
jne 0x1003e690
lea eax, [edi - 3]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x578]
xor ecx, esp
call fcn.1004123c
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], str.glAccum
mov dword [esp + 0x14], str.glAlphaFunc
mov dword [esp + 0x18], str.glAreTexturesResident
mov dword [esp + 0x1c], str.glArrayElement
mov dword [esp + 0x20], str.glBegin
mov dword [esp + 0x24], 0x10049d9c
mov dword [esp + 0x28], str.glBitmap
mov dword [esp + 0x2c], 0x10049db8
mov dword [esp + 0x30], str.glCallList
mov dword [esp + 0x34], str.glCallLists
mov dword [esp + 0x38], str.glClear
mov dword [esp + 0x3c], str.glClearAccum
mov dword [esp + 0x40], str.glClearColor
mov dword [esp + 0x44], str.glClearDepth
mov dword [esp + 0x48], str.glClearIndex
mov dword [esp + 0x4c], str.glClearStencil
mov dword [esp + 0x50], str.glClipPlane
mov dword [esp + 0x54], str.glColor3b
mov dword [esp + 0x58], str.glColor3bv
mov dword [esp + 0x5c], str.glColor3d
mov dword [esp + 0x60], str.glColor3dv
mov dword [esp + 0x64], str.glColor3f
mov dword [esp + 0x68], str.glColor3fv
mov dword [esp + 0x6c], str.glColor3i
mov dword [esp + 0x70], str.glColor3iv
mov dword [esp + 0x74], str.glColor3s
mov dword [esp + 0x78], str.glColor3sv
mov dword [esp + 0x7c], str.glColor3ub
mov dword [esp + 0x80], str.glColor3ubv
mov dword [esp + 0x84], str.glColor3ui
mov dword [esp + 0x88], str.glColor3uiv
mov dword [esp + 0x8c], str.glColor3us
mov dword [esp + 0x90], str.glColor3usv
mov dword [esp + 0x94], str.glColor4b
mov dword [esp + 0x98], str.glColor4bv
mov dword [esp + 0x9c], str.glColor4d
mov dword [esp + 0xa0], str.glColor4dv
mov dword [esp + 0xa4], str.glColor4f
mov dword [esp + 0xa8], str.glColor4fv
mov dword [esp + 0xac], str.glColor4i
mov dword [esp + 0xb0], str.glColor4iv
mov dword [esp + 0xb4], str.glColor4s
mov dword [esp + 0xb8], str.glColor4sv
mov dword [esp + 0xbc], str.glColor4ub
mov dword [esp + 0xc0], str.glColor4ubv
mov dword [esp + 0xc4], str.glColor4ui
mov dword [esp + 0xc8], str.glColor4uiv
mov dword [esp + 0xcc], str.glColor4us
mov dword [esp + 0xd0], str.glColor4usv
mov dword [esp + 0xd4], str.glColorMask
mov dword [esp + 0xd8], str.glColorMaterial
mov dword [esp + 0xdc], 0x10049fdc
mov dword [esp + 0xe0], str.glCopyPixels
mov dword [esp + 0xe4], str.glCopyTexImage1D
mov dword [esp + 0xe8], str.glCopyTexImage2D
mov dword [esp + 0xec], str.glCopyTexSubImage1D
mov dword [esp + 0xf0], str.glCopyTexSubImage2D
mov dword [esp + 0xf4], str.glCullFaceglCullFace
mov dword [esp + 0xf8], str.glDeleteLists
mov dword [esp + 0xfc], str.glDeleteTextures
mov dword [esp + 0x100], str.glDepthFunc
mov dword [esp + 0x104], str.glDepthMask
mov dword [esp + 0x108], str.glDepthRange
mov dword [esp + 0x10c], 0x1004a0b0
mov dword [esp + 0x110], 0x1004a0bc
mov dword [esp + 0x114], str.glDrawArrays
mov dword [esp + 0x118], str.glDrawBuffer
mov dword [esp + 0x11c], 0x1004a0f4
mov dword [esp + 0x120], str.glDrawPixels
mov dword [esp + 0x124], str.glEdgeFlag
mov dword [esp + 0x128], str.glEdgeFlagPointer
mov dword [esp + 0x12c], str.glEdgeFlagv
mov dword [esp + 0x130], 0x1004a140
mov dword [esp + 0x134], 0x1004a14c
mov dword [esp + 0x138], str.glEnd
mov dword [esp + 0x13c], str.glEndList
mov dword [esp + 0x140], str.glEvalCoord1d
mov dword [esp + 0x144], str.glEvalCoord1dv
mov dword [esp + 0x148], str.glEvalCoord1f
mov dword [esp + 0x14c], str.glEvalCoord1fv
mov dword [esp + 0x150], str.glEvalCoord2d
mov dword [esp + 0x154], str.glEvalCoord2dv
mov dword [esp + 0x158], str.glEvalCoord2f
mov dword [esp + 0x15c], str.glEvalCoord2fv
mov dword [esp + 0x160], str.glEvalMesh1
mov dword [esp + 0x164], str.glEvalMesh2
mov dword [esp + 0x168], str.glEvalPoint1
mov dword [esp + 0x16c], str.glEvalPoint2
mov dword [esp + 0x170], str.glFeedbackBuffer
mov dword [esp + 0x174], str.glFinish
mov dword [esp + 0x178], str.glFlush
mov dword [esp + 0x17c], str.glFogf
mov dword [esp + 0x180], str.glFogfv
mov dword [esp + 0x184], str.glFogi
mov dword [esp + 0x188], str.glFogiv
mov dword [esp + 0x18c], str.glFrontFace
mov dword [esp + 0x190], str.glFrustum
mov dword [esp + 0x194], str.glGenLists
mov dword [esp + 0x198], 0x1004a298
mov dword [esp + 0x19c], str.glGetBooleanv
mov dword [esp + 0x1a0], str.glGetClipPlane
mov dword [esp + 0x1a4], str.glGetDoublev
mov dword [esp + 0x1a8], str.glGetError
mov dword [esp + 0x1ac], str.glGetFloatv
mov dword [esp + 0x1b0], 0x1004a2f0
mov dword [esp + 0x1b4], str.glGetLightfv
mov dword [esp + 0x1b8], str.glGetLightiv
mov dword [esp + 0x1bc], str.glGetMapdv
mov dword [esp + 0x1c0], str.glGetMapfv
mov dword [esp + 0x1c4], str.glGetMapiv
mov dword [esp + 0x1c8], str.glGetMaterialfv
mov dword [esp + 0x1cc], str.glGetMaterialiv
mov dword [esp + 0x1d0], str.glGetPixelMapfv
mov dword [esp + 0x1d4], str.glGetPixelMapuiv
mov dword [esp + 0x1d8], str.glGetPixelMapusv
mov dword [esp + 0x1dc], str.glGetPointerv
mov dword [esp + 0x1e0], str.glGetPolygonStipple
mov dword [esp + 0x1e4], str.glGetString
mov dword [esp + 0x1e8], str.glGetTexEnvfv
mov dword [esp + 0x1ec], 0x1004a3dc
mov dword [esp + 0x1f0], str.glGetTexGendv
mov dword [esp + 0x1f4], str.glGetTexGenfv
mov dword [esp + 0x1f8], str.glGetTexGeniv
mov dword [esp + 0x1fc], str.glGetTexImage
mov dword [esp + 0x200], str.glGetTexLevelParameterfv
mov dword [esp + 0x204], str.glGetTexLevelParameteriv
mov dword [esp + 0x208], str.glGetTexParameterfv
mov dword [esp + 0x20c], str.glGetTexParameteriv
mov dword [esp + 0x210], str.glHint
mov dword [esp + 0x214], str.glIndexMask
mov dword [esp + 0x218], str.glIndexPointer
mov dword [esp + 0x21c], str.glIndexd
mov dword [esp + 0x220], str.glIndexdv
mov dword [esp + 0x224], str.glIndexf
mov dword [esp + 0x228], str.glIndexfv
mov dword [esp + 0x22c], str.glIndexi
mov dword [esp + 0x230], str.glIndexiv
mov dword [esp + 0x234], str.glIndexs
mov dword [esp + 0x238], str.glIndexsv
mov dword [esp + 0x23c], str.glIndexub
mov dword [esp + 0x240], str.glIndexubv
mov dword [esp + 0x244], str.glInitNames
mov dword [esp + 0x248], str.glInterleavedArrays
mov dword [esp + 0x24c], str.glIsEnabled
mov dword [esp + 0x250], str.glIsList
mov dword [esp + 0x254], str.glIsTexture
mov dword [esp + 0x258], str.glLightModelf
mov dword [esp + 0x25c], str.glLightModelfv
mov dword [esp + 0x260], str.glLightModeli
mov dword [esp + 0x264], str.glLightModeliv
mov dword [esp + 0x268], str.glLightf
mov dword [esp + 0x26c], str.glLightfv
mov dword [esp + 0x270], str.glLighti
mov dword [esp + 0x274], str.glLightiv
mov dword [esp + 0x278], str.glLineStipple
mov dword [esp + 0x27c], str.glLineWidth
mov dword [esp + 0x280], str.glListBase
mov dword [esp + 0x284], 0x1004a604
mov dword [esp + 0x288], str.glLoadMatrixd
mov dword [esp + 0x28c], str.glLoadMatrixf
mov dword [esp + 0x290], str.glLoadName
mov dword [esp + 0x294], str.glLogicOp
mov dword [esp + 0x298], str.glMap1d
mov dword [esp + 0x29c], str.glMap1f
mov dword [esp + 0x2a0], str.glMap2d
mov dword [esp + 0x2a4], str.glMap2f
mov dword [esp + 0x2a8], str.glMapGrid1d
mov dword [esp + 0x2ac], str.glMapGrid1f
mov dword [esp + 0x2b0], str.glMapGrid2d
mov dword [esp + 0x2b4], str.glMapGrid2f
mov dword [esp + 0x2b8], str.glMaterialf
mov dword [esp + 0x2bc], str.glMaterialfv
mov dword [esp + 0x2c0], str.glMateriali
mov dword [esp + 0x2c4], str.glMaterialiv
mov dword [esp + 0x2c8], 0x1004a6d4
mov dword [esp + 0x2cc], str.glMultMatrixd
mov dword [esp + 0x2d0], str.glMultMatrixf
mov dword [esp + 0x2d4], str.glNewList
mov dword [esp + 0x2d8], str.glNormal3b
mov dword [esp + 0x2dc], str.glNormal3bv
mov dword [esp + 0x2e0], str.glNormal3d
mov dword [esp + 0x2e4], str.glNormal3dv
mov dword [esp + 0x2e8], str.glNormal3f
mov dword [esp + 0x2ec], str.glNormal3fv
mov dword [esp + 0x2f0], str.glNormal3i
mov dword [esp + 0x2f4], str.glNormal3iv
mov dword [esp + 0x2f8], str.glNormal3s
mov dword [esp + 0x2fc], str.glNormal3sv
mov dword [esp + 0x300], str.glNormalPointer
mov dword [esp + 0x304], 0x1004a798
mov dword [esp + 0x308], str.glPassThrough
mov dword [esp + 0x30c], str.glPixelMapfv
mov dword [esp + 0x310], str.glPixelMapuiv
mov dword [esp + 0x314], str.glPixelMapusv
mov dword [esp + 0x318], str.glPixelStoref
mov dword [esp + 0x31c], 0x1004a7f0
mov dword [esp + 0x320], str.glPixelTransferf
mov dword [esp + 0x324], str.glPixelTransferi
mov dword [esp + 0x328], str.glPixelZoom
mov dword [esp + 0x32c], str.glPointSize
mov dword [esp + 0x330], 0x1004a840
mov dword [esp + 0x334], str.glPolygonOffset
mov dword [esp + 0x338], str.glPolygonStipple
mov dword [esp + 0x33c], 0x1004a874
mov dword [esp + 0x340], str.glPopClientAttrib
mov dword [esp + 0x344], 0x1004a894
mov dword [esp + 0x348], str.glPopName
mov dword [esp + 0x34c], str.glPrioritizeTextures
mov dword [esp + 0x350], 0x1004a8c4
mov dword [esp + 0x354], str.glPushClientAttrib
mov dword [esp + 0x358], 0x1004a8e8
mov dword [esp + 0x35c], str.glPushName
mov dword [esp + 0x360], str.glRasterPos2d
mov dword [esp + 0x364], str.glRasterPos2dv
mov dword [esp + 0x368], str.glRasterPos2f
mov dword [esp + 0x36c], str.glRasterPos2fv
mov dword [esp + 0x370], str.glRasterPos2i
mov dword [esp + 0x374], str.glRasterPos2iv
mov dword [esp + 0x378], str.glRasterPos2s
mov dword [esp + 0x37c], str.glRasterPos2sv
mov dword [esp + 0x380], str.glRasterPos3d
mov dword [esp + 0x384], str.glRasterPos3dv
mov dword [esp + 0x388], str.glRasterPos3f
mov dword [esp + 0x38c], str.glRasterPos3fv
mov dword [esp + 0x390], str.glRasterPos3i
mov dword [esp + 0x394], str.glRasterPos3iv
mov dword [esp + 0x398], str.glRasterPos3s
mov dword [esp + 0x39c], str.glRasterPos3sv
mov dword [esp + 0x3a0], str.glRasterPos4d
mov dword [esp + 0x3a4], str.glRasterPos4dv
mov dword [esp + 0x3a8], str.glRasterPos4f
mov dword [esp + 0x3ac], str.glRasterPos4fv
mov dword [esp + 0x3b0], str.glRasterPos4i
mov dword [esp + 0x3b4], str.glRasterPos4iv
mov dword [esp + 0x3b8], str.glRasterPos4s
mov dword [esp + 0x3bc], str.glRasterPos4sv
mov dword [esp + 0x3c0], str.glReadBuffer
mov dword [esp + 0x3c4], str.glReadPixels
mov dword [esp + 0x3c8], str.glRectd
mov dword [esp + 0x3cc], str.glRectdv
mov dword [esp + 0x3d0], str.glRectf
mov dword [esp + 0x3d4], str.glRectfv
mov dword [esp + 0x3d8], str.glRecti
mov dword [esp + 0x3dc], str.glRectiv
mov dword [esp + 0x3e0], str.glRects
mov dword [esp + 0x3e4], str.glRectsv
mov dword [esp + 0x3e8], str.glRenderMode
mov dword [esp + 0x3ec], 0x1004ab04
mov dword [esp + 0x3f0], 0x1004ab10
mov dword [esp + 0x3f4], 0x1004ab1c
mov dword [esp + 0x3f8], 0x1004ab28
mov dword [esp + 0x3fc], 0x1004ab34
mov dword [esp + 0x400], 0x1004ab40
mov dword [esp + 0x404], 0x1004ab50
mov dword [esp + 0x408], 0x1004ab60
mov dword [esp + 0x40c], 0x1004ab70
mov dword [esp + 0x410], 0x1004ab80
mov dword [esp + 0x414], 0x1004ab8c
mov dword [esp + 0x418], 0x1004ab9c
mov dword [esp + 0x41c], 0x1004abac
mov dword [esp + 0x420], 0x1004abbc
mov dword [esp + 0x424], 0x1004abcc
mov dword [esp + 0x428], 0x1004abdc
mov dword [esp + 0x42c], 0x1004abec
mov dword [esp + 0x430], 0x1004abfc
mov dword [esp + 0x434], 0x1004ac0c
mov dword [esp + 0x438], 0x1004ac1c
mov dword [esp + 0x43c], 0x1004ac2c
mov dword [esp + 0x440], 0x1004ac3c
mov dword [esp + 0x444], 0x1004ac4c
mov dword [esp + 0x448], 0x1004ac5c
mov dword [esp + 0x44c], 0x1004ac6c
mov dword [esp + 0x450], 0x1004ac7c
mov dword [esp + 0x454], 0x1004ac8c
mov dword [esp + 0x458], 0x1004ac9c
mov dword [esp + 0x45c], 0x1004acac
mov dword [esp + 0x460], 0x1004acbc
mov dword [esp + 0x464], 0x1004accc
mov dword [esp + 0x468], 0x1004acdc
mov dword [esp + 0x46c], 0x1004acec
mov dword [esp + 0x470], 0x1004acfc
mov dword [esp + 0x474], 0x1004ad0c
mov dword [esp + 0x478], 0x1004ad1c
mov dword [esp + 0x47c], 0x1004ad2c
mov dword [esp + 0x480], 0x1004ad3c
mov dword [esp + 0x484], 0x1004ad4c
mov dword [esp + 0x488], 0x1004ad5c
mov dword [esp + 0x48c], 0x1004ad6c
mov dword [esp + 0x490], 0x1004ad7c
mov dword [esp + 0x494], 0x1004ad8c
mov dword [esp + 0x498], 0x1004ada0
mov dword [esp + 0x49c], 0x1004adac
mov dword [esp + 0x4a0], 0x1004adb8
mov dword [esp + 0x4a4], 0x1004adc4
mov dword [esp + 0x4a8], 0x1004add0
mov dword [esp + 0x4ac], 0x1004addc
mov dword [esp + 0x4b0], 0x1004ade8
mov dword [esp + 0x4b4], 0x1004adf4
mov dword [esp + 0x4b8], 0x1004ae00
mov dword [esp + 0x4bc], 0x1004ae0c
mov dword [esp + 0x4c0], 0x1004ae18
mov dword [esp + 0x4c4], 0x1004ae28
mov dword [esp + 0x4c8], 0x1004ae38
mov dword [esp + 0x4cc], 0x1004ae48
mov dword [esp + 0x4d0], 0x1004ae5c
mov dword [esp + 0x4d4], 0x1004ae6c
mov dword [esp + 0x4d8], 0x1004ae80
mov dword [esp + 0x4dc], 0x1004ae90
mov dword [esp + 0x4e0], 0x1004aea0
mov dword [esp + 0x4e4], 0x1004aeb0
mov dword [esp + 0x4e8], 0x1004aec0
mov dword [esp + 0x4ec], 0x1004aecc
mov dword [esp + 0x4f0], 0x1004aed8
mov dword [esp + 0x4f4], 0x1004aee4
mov dword [esp + 0x4f8], 0x1004aef0
mov dword [esp + 0x4fc], 0x1004aefc
mov dword [esp + 0x500], 0x1004af08
mov dword [esp + 0x504], 0x1004af14
mov dword [esp + 0x508], 0x1004af20
mov dword [esp + 0x50c], 0x1004af2c
mov dword [esp + 0x510], 0x1004af38
mov dword [esp + 0x514], 0x1004af44
mov dword [esp + 0x518], 0x1004af50
mov dword [esp + 0x51c], 0x1004af5c
push 4
push 0x150
mov dword [esp + 0x528], 0x1004af68
mov dword [esp + 0x52c], 0x1004af74
mov dword [esp + 0x530], 0x1004af80
mov dword [esp + 0x534], 0x1004af8c
mov dword [esp + 0x538], 0x1004af98
mov dword [esp + 0x53c], 0x1004afa4
mov dword [esp + 0x540], 0x1004afb0
mov dword [esp + 0x544], 0x1004afbc
mov dword [esp + 0x548], 0x1004afc8
mov dword [esp + 0x54c], 0x1004afd4
mov dword [esp + 0x550], 0x1004afe0
mov dword [esp + 0x554], 0x1004aff0
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 8
mov dword [0x1004e860], eax
xor esi, esi
nop dword [eax]
push dword [esp + esi + 0x10]
push edi
call ebx
mov ecx, dword [0x1004e860]
mov dword [esi + ecx], eax
add esi, 4
cmp esi, 0x540
jb 0x1003f4d0
call fcn.10040220
cmp dword [0x1004e800], 0
jne 0x1003f50a
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [0x1004e800], eax
xor eax, eax
mov ecx, 0x1004e7fc
xchg dword [ecx], eax
mov dword [0x1004e864], 5
mov ecx, dword [esp + 0x584]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1004123c
mov esp, ebp
pop ebp
ret