Function at 0x49f920
Capabilities:
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x514d00
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov ebx, ecx
push 0x5245f0
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], ebx
call fcn.00402110
xor esi, esi
push 0x5245f0
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], esi
call fcn.00402110
mov ecx, dword [ebx + 0x84]
lea eax, [ebx + 0x8c]
push eax
mov dword [eax], 0x7c
mov edx, dword [ecx]
push ecx
mov byte [esp + 0x38], 1
call dword [edx + 0x58]
mov eax, dword [ebx + 0xe4]
cmp eax, esi
mov dword [ebx + 0x124], esi
mov dword [ebx + 0x11c], esi
mov dword [ebx + 0x114], esi
mov dword [ebx + 0x10c], esi
je 0x49f9bb
test al, 1
jne 0x49f9bb
mov edi, dword [ebx + 0x10c]
inc edi
shr eax, 1
cmp eax, esi
mov dword [ebx + 0x10c], edi
jne 0x49f9a4
mov eax, dword [ebx + 0xe8]
cmp eax, esi
je 0x49f9dc
test al, 1
jne 0x49f9dc
mov edi, dword [ebx + 0x114]
inc edi
shr eax, 1
cmp eax, esi
mov dword [ebx + 0x114], edi
jne 0x49f9c5
mov eax, dword [ebx + 0xec]
cmp eax, esi
je 0x49f9fd
test al, 1
jne 0x49f9fd
mov edi, dword [ebx + 0x11c]
inc edi
shr eax, 1
cmp eax, esi
mov dword [ebx + 0x11c], edi
jne 0x49f9e6
mov eax, dword [ebx + 0xf0]
cmp eax, esi
je 0x49fa1e
test al, 1
jne 0x49fa1e
mov edi, dword [ebx + 0x124]
inc edi
shr eax, 1
cmp eax, esi
mov dword [ebx + 0x124], edi
jne 0x49fa07
mov eax, dword [ebx + 0x98]
push eax
push str.dwWidth
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0x94]
add esp, 0x10
push eax
push str.dwHeight
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov al, byte [ebx + 0x90]
add esp, 0x10
test al, 8
je 0x49fabe
mov eax, dword [ebx + 0x9c]
push eax
push str.lPitch
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
add esp, 0x10
test dword [ebx + 0x90], 0x80000
je 0x49fafc
mov eax, dword [ebx + 0x9c]
push eax
push str.dwLinearSize
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
add esp, 0x10
mov eax, dword [ebx + 0xa0]
push eax
push str.dwBackBufferCount
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0x90]
add esp, 0x10
test eax, 0x20000
je 0x49fb6d
mov eax, dword [ebx + 0xa4]
push eax
push str.dwMipMapCount
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
add esp, 0x10
test dword [ebx + 0x90], 0x40000
je 0x49fbab
mov eax, dword [ebx + 0xa4]
push eax
push str.dwRefreshRate
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
add esp, 0x10
mov eax, dword [ebx + 0xa8]
push eax
push str.dwAlphaBitDepth
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xac]
add esp, 0x10
push eax
push str.dwReserved
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:__u
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0x90]
add esp, 0x10
mov esi, 0x2000
test esi, eax
mov eax, dword [ebx + 0xb4]
push eax
je 0x49fc5e
push str.ddckCKDestOverlay.dwColorSpaceLowValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xb8]
add esp, 0x10
push eax
push str.ddckCKDestOverlay.dwColorSpaceHighValue
jmp 0x49fc63
push str.dwEmptyFaceColor
push ecx
mov dword [esp + 0x30], esp
mov ecx, esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xbc]
add esp, 0x10
push eax
push str.ddckCKDestBlt.dwColorSpaceLowValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xc0]
add esp, 0x10
push eax
push str.ddckCKDestBlt.dwColorSpaceHighValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xc4]
add esp, 0x10
push eax
push str.ddckCKSrcOverlay.dwColorSpaceLowValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xc8]
add esp, 0x10
push eax
push str.ddckCKSrcOverlay.dwColorSpaceHighValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xcc]
add esp, 0x10
push eax
push str.ddckCKSrcBlt.dwColorSpaceLowValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [ebx + 0xd0]
add esp, 0x10
push eax
push str.ddckCKSrcBlt.dwColorSpaceHighValue
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s:_0x_08x
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
add esp, 0x10
lea eax, [ebx + 0xd4]
push eax
call fcn.004e2cd5
mov edx, dword [0x55cd0c]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [edx + 0x868]
call fcn.004b53f0
mov eax, dword [eax]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.ddpfPixelFormat:__s
mov byte [esp + 0x3c], 2
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 3
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49fe5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49fe7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0xe4]
push eax
mov ecx, ebx
call fcn.0049f610
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._Number_of_red_bits:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 4
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49ff08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0xe8]
push eax
mov ecx, ebx
call fcn.0049f610
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._Number_of_green_bits:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 5
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49ff92
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0xec]
push eax
mov ecx, ebx
call fcn.0049f610
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._Number_of_blue_bits:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 6
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a001c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0xf0]
push eax
mov ecx, ebx
call fcn.0049f610
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._Number_of_alpha_bits:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 7
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a00a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0x10c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._dwRShiftR:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 8
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a0128
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0x114]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._dwGShiftR:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 9
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a01aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0x11c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._dwBShiftR:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 0xa
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a022c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0x124]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str._dwAShiftR:__d
call fcn.00402110
mov edx, dword [0x55cd0c]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.004a7680
add esp, 0x10
mov eax, dword [eax]
push eax
push str.Surface::dumpCaps
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._s__:__s
mov byte [esp + 0x40], 0xb
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x30], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a02ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx + 0xf4]
mov edi, str._DDSCAPS_3DDEVICE
test esi, eax
mov eax, edi
lea edx, [eax + 1]
je 0x4a0335
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a02c2
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0301
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a030b
add edi, edx
jmp 0x4a030f
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a03a6
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0335
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0374
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a037e
add edi, edx
jmp 0x4a0382
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov al, byte [ebx + 0xf4]
mov edi, str._DDSCAPS_ALPHA
test al, 2
mov eax, edi
lea edx, [eax + 1]
je 0x4a0433
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a03c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a03ff
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a0409
add edi, edx
jmp 0x4a040d
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a04a4
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0433
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0472
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a047c
add edi, edx
jmp 0x4a0480
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov al, byte [ebx + 0xf4]
mov edi, str._DDSCAPS_BACKBUFFER
test al, 4
mov eax, edi
lea edx, [eax + 1]
je 0x4a0533
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a04c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a04ff
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a0509
add edi, edx
jmp 0x4a050d
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a05a4
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0533
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0572
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a057c
add edi, edx
jmp 0x4a0580
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov al, byte [ebx + 0xf4]
mov edi, str._DDSCAPS_COMPLEX
test al, 8
mov eax, edi
lea edx, [eax + 1]
je 0x4a0634
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a05c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [edx - 0xc]
mov dword [esp + 0x1c], eax
lea ebp, [esi + eax]
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0600
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a060a
add edi, edx
jmp 0x4a060e
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a06a6
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0634
sub eax, edx
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [edx - 0xc]
mov dword [esp + 0x1c], eax
lea ebp, [esi + eax]
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0674
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a067e
add edi, edx
jmp 0x4a0682
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov al, byte [ebx + 0xf4]
mov edi, str._DDSCAPS_FLIP
test al, 0x10
mov eax, edi
lea edx, [eax + 1]
je 0x4a0733
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a06c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a06ff
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a0709
add edi, edx
jmp 0x4a070d
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a07a4
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0733
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0772
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a077c
add edi, edx
jmp 0x4a0780
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov al, byte [ebx + 0xf4]
mov edi, str._DDSCAPS_FRONTBUFFER
test al, 0x20
mov eax, edi
lea edx, [eax + 1]
je 0x4a0833
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a07c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a07ff
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a0809
add edi, edx
jmp 0x4a080d
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a08a4
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0833
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0872
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a087c
add edi, edx
jmp 0x4a0880
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov eax, dword [ebx + 0xf4]
mov edi, str._DDSCAPS_HWCODEC
test eax, 0x100000
mov eax, edi
lea edx, [eax + 1]
je 0x4a0933
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a08c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a08ff
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a0909
add edi, edx
jmp 0x4a090d
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a09a4
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0933
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0972
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 0x1c]
ja 0x4a097c
add edi, edx
jmp 0x4a0980
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov eax, dword [ebx + 0xf4]
mov edi, str._DDSCAPS_LIVEVIDEO
test eax, 0x80000
mov eax, edi
lea edx, [eax + 1]
je 0x4a0a33
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a09c0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
mov dword [esp + 0x1c], ebp
add ebp, esi
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a09ff
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0x1c]
ja 0x4a0a09
add edi, edx
jmp 0x4a0a0d
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a0a9f
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0a33
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebx, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
lea ebp, [ebx + esi]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0a6f
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, ebx
ja 0x4a0a77
add edi, edx
jmp 0x4a0a7b
mov edi, dword [esp + 0x24]
mov ecx, esi
mov esi, edi
lea edi, [ebx + edx]
mov ebx, dword [esp + 0x18]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov byte [ecx + ebp], 0
mov eax, dword [ebx + 0xf4]
mov edi, str._DDSCAPS_LOCALVIDMEM
test eax, 0x10000000
mov eax, edi
lea edx, [eax + 1]
je 0x4a0b30
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ac0
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
lea ebp, [ebx + esi]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0afc
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, ebx
ja 0x4a0b04
add edi, edx
jmp 0x4a0b08
mov edi, dword [esp + 0x24]
mov ecx, esi
mov esi, edi
lea edi, [ebx + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x14]
jmp 0x4a0b98
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0b30
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebx, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
lea ebp, [ebx + esi]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0b6c
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, ebx
ja 0x4a0b74
add edi, edx
jmp 0x4a0b78
mov edi, dword [esp + 0x24]
mov ecx, esi
mov esi, edi
lea edi, [ebx + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [eax - 0xc], ebp
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov byte [ecx + ebp], 0
mov eax, dword [edx + 0xf4]
mov edi, str._DDSCAPS_MIPMAP
test eax, 0x400000
mov eax, edi
lea edx, [eax + 1]
je 0x4a0c21
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0bb7
sub eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
lea ebp, [ebx + esi]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0bf3
push ebp
lea ecx, [esp + 0x18]
call fcn.004019f0
mov edx, dword [esp + 0x14]
cmp edi, ebx
ja 0x4a0bfb
add edi, edx
jmp 0x4a0bff
mov edi, dword [esp + 0x24]
mov ecx, esi
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [ebx + edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [ecx - 0xc], ebp
mov edx, dword [esp + 0x14]
jmp 0x4a0c89
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0c21
sub eax, edx
mov edx, dword [esp + 0x10]
mov ebx, dword [edx - 0xc]
mov esi, eax
mov eax, dword [edx - 4]
mov ecx, 1
sub ecx, eax
mov eax, dword [edx - 8]
lea ebp, [ebx + esi]
mov dword [esp + 0x24], edi
sub eax, ebp
sub edi, edx
or eax, ecx
jge 0x4a0c5d
push ebp
lea ecx, [esp + 0x14]
call fcn.004019f0
mov edx, dword [esp + 0x10]
cmp edi, ebx
ja 0x4a0c65
add edi, edx
jmp 0x4a0c69
mov edi, dword [esp + 0x24]
mov ecx, esi
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [ebx + edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov dword [ecx - 0xc], ebp
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov byte [edx + ebp], 0
test dword [eax + 0xf4], 0x200000
mov eax, str._DDSCAPS_MODEX
lea edx, [eax + 1]
je 0x4a0cb2
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ca5
lea ecx, [esp + 0x14]
jmp 0x4a0cbd
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0cb2
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_MODEX
call fcn.0041f860
mov esi, dword [esp + 0x18]
test dword [esi + 0xf4], 0x20000000
mov eax, str._DDSCAPS_NONLOCALVIDMEM
lea edx, [eax + 1]
je 0x4a0cf0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ce2
lea ecx, [esp + 0x14]
jmp 0x4a0cfb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0cf0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_NONLOCALVIDMEM
call fcn.0041f860
test byte [esi + 0xf4], 0x40
mov eax, str._DDSCAPS_OFFSCREENPLAIN
lea edx, [eax + 1]
je 0x4a0d30
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0d20
lea ecx, [esp + 0x14]
jmp 0x4a0d3b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0d30
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_OFFSCREENPLAIN
call fcn.0041f860
mov al, byte [esi + 0xf4]
test al, al
mov eax, str._DDSCAPS_OVERLAY
lea edx, [eax + 1]
jns 0x4a0d70
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0d60
lea ecx, [esp + 0x14]
jmp 0x4a0d7b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0d70
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_OVERLAY
call fcn.0041f860
test dword [esi + 0xf4], 0x40000
mov eax, str._DDSCAPS_OWNDC
lea edx, [eax + 1]
je 0x4a0db0
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0da0
lea ecx, [esp + 0x14]
jmp 0x4a0dbb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0db0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_OWNDC
call fcn.0041f860
mov eax, dword [esi + 0xf4]
test ah, 1
mov eax, str._DDSCAPS_PALETTE
lea edx, [eax + 1]
je 0x4a0df0
jmp 0x4a0de0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0de0
lea ecx, [esp + 0x14]
jmp 0x4a0dfb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0df0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_PALETTE
call fcn.0041f860
mov eax, dword [esi + 0xf4]
mov edi, 0x200
test edi, eax
mov eax, str._DDSCAPS_PRIMARYSURFACE
lea edx, [eax + 1]
je 0x4a0e30
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0e20
lea ecx, [esp + 0x14]
jmp 0x4a0e3b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0e30
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_PRIMARYSURFACE
call fcn.0041f860
test dword [esi + 0xf4], 0x40000000
mov eax, str._DDSCAPS_STANDARDVGAMODE
lea edx, [eax + 1]
je 0x4a0e70
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0e60
lea ecx, [esp + 0x14]
jmp 0x4a0e7b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0e70
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_STANDARDVGAMODE
call fcn.0041f860
mov eax, dword [esi + 0xf4]
mov ebx, 0x800
test ebx, eax
mov eax, str._DDSCAPS_SYSTEMMEMORY
lea edx, [eax + 1]
je 0x4a0eb0
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ea0
lea ecx, [esp + 0x14]
jmp 0x4a0ebb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0eb0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_SYSTEMMEMORY
call fcn.0041f860
mov eax, dword [esi + 0xf4]
mov ebp, 0x1000
test ebp, eax
mov eax, str._DDSCAPS_TEXTURE
lea edx, [eax + 1]
je 0x4a0ef0
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ee0
lea ecx, [esp + 0x14]
jmp 0x4a0efb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ef0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_TEXTURE
call fcn.0041f860
mov eax, dword [esi + 0xf4]
test ah, 0x40
mov eax, str._DDSCAPS_VIDEOMEMORY
lea edx, [eax + 1]
je 0x4a0f30
jmp 0x4a0f20
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0f20
lea ecx, [esp + 0x14]
jmp 0x4a0f3b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0f30
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_VIDEOMEMORY
call fcn.0041f860
test dword [esi + 0xf4], 0x8000000
mov eax, str._DDSCAPS_VIDEOPORT
lea edx, [eax + 1]
je 0x4a0f70
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0f60
lea ecx, [esp + 0x14]
jmp 0x4a0f7b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0f70
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_VIDEOPORT
call fcn.0041f860
mov eax, dword [esi + 0xf4]
test ah, ah
mov eax, str._DDSCAPS_VISIBLE
lea edx, [eax + 1]
jns 0x4a0fb0
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0fa0
lea ecx, [esp + 0x14]
jmp 0x4a0fbb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0fb0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_VISIBLE
call fcn.0041f860
test dword [esi + 0xf4], 0x10000
mov eax, str._DDSCAPS_WRITEONLY
lea edx, [eax + 1]
je 0x4a0ff0
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0fe0
lea ecx, [esp + 0x14]
jmp 0x4a0ffb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a0ff0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_WRITEONLY
call fcn.0041f860
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xf4]
mov esi, 0x20000
test esi, eax
mov eax, str._DDSCAPS_ZBUFFER
lea edx, [eax + 1]
je 0x4a1030
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1023
lea ecx, [esp + 0x14]
jmp 0x4a103b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1030
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS_ZBUFFER
call fcn.0041f860
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push edx
push eax
push str.ddsCaps.dwCaps
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str._t_s:_s
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x24]
push 0x5245f0
push eax
call fcn.004edc73
add esp, 0x1c
test eax, eax
je 0x4a10c0
mov ecx, dword [esp + 0x10]
push ecx
push str._unsupported_
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str._t_s__s
call fcn.00402110
mov edx, dword [0x55cd0c]
mov eax, dword [edx + 0x85c]
push eax
call fcn.00475320
add esp, 0x10
mov eax, 0x5245f0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a10c8
sub eax, edx
push eax
push 0x5245f0
lea ecx, [esp + 0x1c]
call fcn.00401ee0
mov eax, 0x5245f0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a10e8
sub eax, edx
push eax
push 0x5245f0
lea ecx, [esp + 0x18]
call fcn.00401ee0
mov ecx, dword [esp + 0x18]
test dword [ecx + 0xf8], edi
mov eax, str._DDSCAPS2_CUBEMAP
lea edx, [eax + 1]
je 0x4a1121
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1114
lea ecx, [esp + 0x14]
jmp 0x4a112c
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1121
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP
call fcn.0041f860
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0xf8]
test ah, 4
mov eax, str._DDSCAPS2_CUBEMAP_POSITIVEX
lea edx, [eax + 1]
je 0x4a1160
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1150
lea ecx, [esp + 0x14]
jmp 0x4a116b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1160
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_POSITIVEX
call fcn.0041f860
test dword [edi + 0xf8], ebx
mov eax, str._DDSCAPS2_CUBEMAP_NEGATIVEX
lea edx, [eax + 1]
je 0x4a1195
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1188
lea ecx, [esp + 0x14]
jmp 0x4a11a0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1195
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_NEGATIVEX
call fcn.0041f860
test dword [edi + 0xf8], ebp
mov eax, str._DDSCAPS2_CUBEMAP_POSITIVEY
lea edx, [eax + 1]
je 0x4a11d0
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a11c0
lea ecx, [esp + 0x14]
jmp 0x4a11db
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a11d0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_POSITIVEY
call fcn.0041f860
mov eax, dword [edi + 0xf8]
test ah, 0x20
mov eax, str._DDSCAPS2_CUBEMAP_NEGATIVEY
lea edx, [eax + 1]
je 0x4a1210
jmp 0x4a1200
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1200
lea ecx, [esp + 0x14]
jmp 0x4a121b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1210
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_NEGATIVEY
call fcn.0041f860
mov eax, dword [edi + 0xf8]
test ah, 0x40
mov eax, str._DDSCAPS2_CUBEMAP_POSITIVEZ
lea edx, [eax + 1]
je 0x4a1250
jmp 0x4a1240
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1240
lea ecx, [esp + 0x14]
jmp 0x4a125b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1250
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_POSITIVEZ
call fcn.0041f860
mov eax, dword [edi + 0xf8]
test ah, ah
mov eax, str._DDSCAPS2_CUBEMAP_NEGATIVEZ
lea edx, [eax + 1]
jns 0x4a1290
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1280
lea ecx, [esp + 0x14]
jmp 0x4a129b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1290
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_NEGATIVEZ
call fcn.0041f860
mov eax, dword [edi + 0xf8]
test ah, 0xfc
mov eax, str._DDSCAPS2_CUBEMAP_ALLFACES
lea edx, [eax + 1]
je 0x4a12d0
jmp 0x4a12c0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a12c0
lea ecx, [esp + 0x14]
jmp 0x4a12db
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a12d0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_CUBEMAP_ALLFACES
call fcn.0041f860
test dword [edi + 0xf8], esi
mov eax, str._DDSCAPS2_D3DTEXTUREMANAGE
lea edx, [eax + 1]
je 0x4a1305
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a12f8
lea ecx, [esp + 0x14]
jmp 0x4a1310
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1305
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_D3DTEXTUREMANAGE
call fcn.0041f860
test dword [edi + 0xf8], 0x40000
mov eax, str._DDSCAPS2_DONOTPERSIST
lea edx, [eax + 1]
je 0x4a1340
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1331
lea ecx, [esp + 0x14]
jmp 0x4a134b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1340
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_DONOTPERSIST
call fcn.0041f860
test byte [edi + 0xf8], 2
mov eax, str._DDSCAPS2_HARDWAREDEINTERLACE
lea edx, [eax + 1]
je 0x4a1380
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1370
lea ecx, [esp + 0x14]
jmp 0x4a138b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1380
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_HARDWAREDEINTERLACE
call fcn.0041f860
mov eax, dword [edi + 0xf8]
test ah, 1
mov eax, str._DDSCAPS2_HINTANTIALIASING
lea edx, [eax + 1]
je 0x4a13c0
jmp 0x4a13b0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a13b0
lea ecx, [esp + 0x14]
jmp 0x4a13cb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a13c0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_HINTANTIALIASING
call fcn.0041f860
test byte [edi + 0xf8], 4
mov eax, str._DDSCAPS2_HINTDYNAMIC
lea edx, [eax + 1]
je 0x4a1400
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a13f0
lea ecx, [esp + 0x14]
jmp 0x4a140b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1400
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_HINTDYNAMIC
call fcn.0041f860
test byte [edi + 0xf8], 8
mov eax, str._DDSCAPS2_HINTSTATIC
lea edx, [eax + 1]
je 0x4a1440
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1430
lea ecx, [esp + 0x14]
jmp 0x4a144b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1440
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_HINTSTATIC
call fcn.0041f860
test dword [edi + 0xf8], 0x10000
mov eax, str._DDSCAPS2_MIPMAPSUBLEVEL
lea edx, [eax + 1]
je 0x4a1480
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1470
lea ecx, [esp + 0x14]
jmp 0x4a148b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1480
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_MIPMAPSUBLEVEL
call fcn.0041f860
mov al, byte [edi + 0xf8]
test al, al
mov eax, str._DDSCAPS2_OPAQUE
lea edx, [eax + 1]
jns 0x4a14c0
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a14b0
lea ecx, [esp + 0x14]
jmp 0x4a14cb
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a14c0
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_OPAQUE
call fcn.0041f860
test dword [edi + 0xf8], 0x80000
mov eax, str._DDSCAPS2_STEREOSURFACELEFT
lea edx, [eax + 1]
je 0x4a1500
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a14f0
lea ecx, [esp + 0x14]
jmp 0x4a150b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1500
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_STEREOSURFACELEFT
call fcn.0041f860
test byte [edi + 0xf8], 0x10
mov eax, str._DDSCAPS2_TEXTUREMANAGE
lea edx, [eax + 1]
je 0x4a1540
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1530
lea ecx, [esp + 0x14]
jmp 0x4a154b
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a1540
lea ecx, [esp + 0x10]
sub eax, edx
push eax
push str._DDSCAPS2_TEXTUREMANAGE
call fcn.0041f860
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push edx
push eax
push str.ddsCaps.dwCaps2
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str._t_s:_s
call fcn.00402110
mov ecx, dword [0x55cd0c]
mov edx, dword [ecx + 0x85c]
push edx
call fcn.00475320
mov eax, dword [esp + 0x24]
push 0x5245f0
push eax
call fcn.004edc73
add esp, 0x1c
test eax, eax
je 0x4a15d0