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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x638
push ebx
push ebp
xor ebx, ebx
cmp dword [0x9bed20], ebx
push esi
push edi
je 0x5a2136
mov eax, dword [0x9bed28]
cmp eax, ebx
je 0x5a0a05
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [0x9bed28], ebx
push 0x38
lea eax, [esp + 0x34]
push ebx
push eax
call fcn.0057f8f2
mov ecx, dword [0x90d9ac]
mov edx, dword [0x90d9b0]
add esp, 0xc
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
call fcn.0057dc91
mov ebp, 1
cmp eax, ebp
jne 0x5a0aab
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
lea edx, [esp + 0xb8]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x20]
call eax
mov eax, dword [esp + 0xc4]
xor ecx, ecx
cmp dword [0x9b6294], ebx
mov dword [esp + 0x38], eax
sete cl
cmp eax, 0x16
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], ebp
lea ecx, [ecx + ecx + 1]
mov dword [esp + 0x48], ecx
je 0x5a0a8b
jle 0x5a0a95
cmp eax, 0x19
jg 0x5a0a95
mov dword [0x90d9b4], 0x10
jmp 0x5a0a95
mov dword [0x90d9b4], 0x20
xor edx, edx
cmp dword [0x9b6288], ebx
sete dl
push edx
call fcn.0057ef79
jmp 0x5a0c2e
cmp dword [0x8fd150], 0x108
jl 0x5a0b77
cmp dword [0x90d9bc], ebx
jne 0x5a0ad7
cmp dword [0xb16110], ebx
jne 0x5a0ad7
cmp dword [0x9b62a0], ebx
je 0x5a0b77
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
lea edx, [esp + 0xb8]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x20]
call eax
mov eax, dword [0x90d9b4]
mov ecx, dword [esp + 0xc4]
xor edx, edx
cmp dword [0x9b6294], ebx
mov dword [esp + 0x38], ecx
sete dl
cmp eax, 0x10
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], ebp
lea edx, [edx + edx + 1]
mov dword [esp + 0x48], edx
je 0x5a0b47
cmp eax, 0x20
je 0x5a0b3a
push 0x881184
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x38], 0x16
jmp 0x5a0c31
mov edx, dword [0x9b6270]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push 0x17
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
neg eax
sbb eax, eax
add eax, 0x18
mov dword [esp + 0x38], eax
jmp 0x5a0c31
mov eax, dword [0x90d9b4]
cmp eax, 0x10
je 0x5a0b8d
cmp eax, 0x20
jne 0x5a0b22
mov eax, 0x16
jmp 0x5a0bb4
mov edx, dword [0x9b6270]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push 0x17
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
neg eax
sbb eax, eax
add eax, 0x18
mov ecx, dword [0x90d9b8]
xor edx, edx
cmp dword [0x9b6294], ebx
mov dword [esp + 0x38], eax
sete dl
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x30]
push ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x64], ecx
lea edx, [edx + edx + 1]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x84], 0x18
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], ebp
call fcn.0057ef79
add esp, 4
cmp dword [0x8f269c], ebx
je 0x5a0c31
push str.Desktop_Window_Manager
call fcn.0057a587
add esp, 4
mov eax, dword [0x9b6294]
mov ecx, dword [0x9b6298]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
call fcn.0057e1a0
mov edx, dword [0xb16108]
neg edx
sbb edx, edx
and edx, 0x7fffffff
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [0x9b6294]
add edx, ebp
cmp eax, ebx
sete cl
cmp eax, ebx
mov dword [esp + 0x64], edx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x5c], ecx
je 0x5a0d96
mov edx, dword [0x9bed20]
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ebx
mov esi, dword [edx]
push eax
push ecx
add esi, 0x2c
call fcn.0057dc91
mov edx, dword [esp + 0x40]
mov ecx, dword [esi]
push eax
mov eax, dword [0x9bed20]
push edx
push ebp
push ebx
push eax
call ecx
test eax, eax
je 0x5a0ced
sub dword [esp + 0x40], ebp
je 0x5a0d90
mov edx, dword [0x9bed20]
mov ecx, dword [esp + 0x40]
mov esi, dword [edx]
lea eax, [esp + 0x14]
push eax
push ecx
add esi, 0x2c
call fcn.0057dc91
mov edx, dword [esp + 0x40]
mov ecx, dword [esi]
push eax
mov eax, dword [0x9bed20]
push edx
push ebp
push ebx
push eax
call ecx
test eax, eax
jne 0x5a0cb3
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x5a0d90
mov edx, dword [0x9bed20]
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], ebx
mov esi, dword [edx]
push ecx
push eax
add esi, 0x2c
call fcn.0057dc91
mov edx, dword [0x9bed20]
push eax
mov eax, dword [esi]
push 0x50
push ebp
push ebx
push edx
call eax
test eax, eax
je 0x5a0d5b
sub dword [esp + 0x40], ebp
je 0x5a0d90
mov ecx, dword [0x9bed20]
mov eax, dword [esp + 0x40]
mov esi, dword [ecx]
lea edx, [esp + 0x10]
push edx
push eax
add esi, 0x2c
call fcn.0057dc91
mov ecx, dword [0x9bed20]
mov edx, dword [esi]
push eax
push 0x50
push ebp
push ebx
push ecx
call edx
test eax, eax
jne 0x5a0d27
mov edx, dword [esp + 0x40]
cmp edx, ebx
je 0x5a0d90
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jb 0x5a0d71
mov eax, ecx
mov ecx, dword [esp + 0x44]
add eax, 0xffffffff
cmp ecx, eax
jbe 0x5a0d82
mov ecx, eax
mov dword [esp + 0x44], ecx
mov dword [0x9b6294], edx
mov dword [0x9b6298], ecx
jmp 0x5a0da0
mov dword [0x9b6294], ebx
mov dword [0x9b6298], ebx
mov dword [esp + 0x44], ebx
cmp dword [0x9b6278], ebp
jne 0x5a0db9
cmp dword [0x9bed24], ebx
jne 0x5a0ea4
jmp 0x5a0fd5
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
lea edx, [esp + 0xc8]
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x38]
call eax
movzx ecx, word [esp + 0x18c]
cmp ecx, 0x200
jb 0x5a0e06
movzx edx, word [esp + 0x194]
cmp edx, 0x200
mov dword [0x9b627c], ebp
jae 0x5a0e0c
mov dword [0x9b627c], ebx
cmp dword [0x9bed24], ebx
je 0x5a0f5e
push str.IDirect3DDevice9Ex
call fcn.0057a587
mov ecx, dword [esp + 0x54]
mov eax, dword [0x9bed24]
mov esi, dword [eax]
add esp, 4
neg ecx
sbb ecx, ecx
not ecx
lea edx, [esp + 0x80]
and ecx, edx
mov edx, dword [0x9b626c]
push 0x9bed2c
push ecx
mov ecx, dword [0x9b627c]
neg ecx
sbb ecx, ecx
and ecx, 0x60
add ecx, 0x20
neg edx
sbb edx, edx
lea eax, [esp + 0x38]
push eax
mov eax, dword [0x8f2738]
and edx, 4
or ecx, edx
neg eax
sbb eax, eax
and eax, 2
or ecx, eax
push ecx
call fcn.0057e1a0
mov ecx, dword [0x9b6270]
mov edx, dword [0x9bed24]
neg ecx
push eax
mov eax, dword [esi + 0x50]
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push edx
call eax
test eax, eax
jge 0x5a0f36
mov edx, dword [esp + 0x50]
mov ecx, dword [0x9bed24]
neg edx
sbb edx, edx
not edx
lea eax, [esp + 0x80]
and edx, eax
mov eax, dword [0x8f2738]
push 0x9bed2c
push edx
mov edx, dword [0x9b626c]
neg edx
sbb edx, edx
and edx, 4
neg eax
sbb eax, eax
mov dword [0x9b627c], ebx
mov esi, dword [ecx]
and eax, 2
lea ecx, [esp + 0x38]
or edx, eax
push ecx
or edx, 0x20
push edx
call fcn.0057e1a0
mov ecx, dword [0x9b6270]
mov edx, dword [0x9bed24]
neg ecx
push eax
mov eax, dword [esi + 0x50]
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push edx
call eax
test eax, eax
jge 0x5a0f2f
push str.Direct3DDevice9Ex
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x8810bc
jmp 0x5a0f3b
push 0x881094
call fcn.0057a587
mov eax, dword [0x9bed2c]
add esp, 4
mov dword [0x9bed28], eax
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1f8]
push ebp
push eax
call edx
jmp 0x5a1060
push str.IDirect3DDevice9
call fcn.0057a587
mov edx, dword [0x9b627c]
mov eax, dword [0x9bed20]
mov esi, dword [eax]
mov eax, dword [0x9b626c]
add esp, 4
neg edx
sbb edx, edx
and edx, 0x60
add edx, 0x20
neg eax
sbb eax, eax
push 0x9bed28
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [0x8f2738]
and eax, 4
or edx, eax
neg ecx
sbb ecx, ecx
and ecx, 2
or edx, ecx
push edx
call fcn.0057e1a0
mov edx, dword [0x9b6270]
mov ecx, dword [esi + 0x40]
neg edx
push eax
mov eax, dword [0x9bed20]
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
call ecx
test eax, eax
jge 0x5a1053
mov ecx, dword [0x9b626c]
mov edx, dword [0x9bed20]
neg ecx
sbb ecx, ecx
mov dword [0x9b627c], ebx
mov esi, dword [edx]
mov edx, dword [0x8f2738]
and ecx, 4
neg edx
sbb edx, edx
and edx, 2
push 0x9bed28
lea eax, [esp + 0x34]
or ecx, edx
push eax
or ecx, 0x20
push ecx
call fcn.0057e1a0
mov ecx, dword [0x9bed20]
mov edx, dword [esi + 0x40]
push eax
mov eax, dword [0x9b6270]
neg eax
sbb eax, eax
and eax, dword [0x9b6274]
push ebp
push eax
push ecx
call edx
test eax, eax
jge 0x5a104c
push 0x88102c
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x8810bc
jmp 0x5a1058
push 0x881094
call fcn.0057a587
add esp, 4
call fcn.0059ffe0
mov eax, dword [0x9bed28]
push ebp
mov dword [0xa05cc8], ebx
mov dword [0xa05cd0], ebx
mov dword [0xa05ccc], ebx
mov dword [0xa05cd4], ebx
mov dword [0xa05cdc], ebx
mov dword [0xa05cd8], ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 0xe4]
push 7
push eax
call edx
fld1
mov edx, dword [0x8f2d54]
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
shl edx, 8
or edx, dword [0x8f2d58]
push ebx
push ecx
fstp dword [esp]
shl edx, 8
or edx, dword [0x8f2d5c]
push edx
push ebp
push ebx
push ebx
push eax
mov eax, dword [ecx + 0xac]
call eax
mov ecx, dword [0x9bed28]
mov esi, dword [ecx]
push ebx
add esi, 0x44
call fcn.0057e1a0
mov edx, dword [0x9bed28]
push eax
mov eax, dword [esi]
push ebx
push ebx
push edx
call eax
fld1
mov edx, dword [0x8f2d54]
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
shl edx, 8
or edx, dword [0x8f2d58]
push ebx
push ecx
fstp dword [esp]
shl edx, 8
or edx, dword [0x8f2d5c]
push edx
push ebp
push ebx
push ebx
push eax
mov eax, dword [ecx + 0xac]
call eax
mov ecx, dword [0x9bed28]
mov esi, dword [ecx]
push ebx
add esi, 0x44
call fcn.0057e1a0
mov edx, dword [0x9bed28]
push eax
mov eax, dword [esi]
push ebx
push ebx
push edx
call eax
fld1
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
mov edx, dword [0x8f2d54]
push ebx
push ecx
fstp dword [esp]
shl edx, 8
or edx, dword [0x8f2d58]
shl edx, 8
or edx, dword [0x8f2d5c]
push edx
push ebp
push ebx
push ebx
push eax
mov eax, dword [ecx + 0xac]
call eax
mov ecx, dword [0x9bed28]
mov esi, dword [ecx]
push ebx
add esi, 0x44
call fcn.0057e1a0
mov edx, dword [0x9bed28]
push eax
mov eax, dword [esi]
push ebx
push ebx
push edx
call eax
fld1
mov edx, dword [0x8f2d54]
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
shl edx, 8
or edx, dword [0x8f2d58]
push ebx
push ecx
fstp dword [esp]
shl edx, 8
or edx, dword [0x8f2d5c]
push edx
push ebp
push ebx
push ebx
push eax
mov eax, dword [ecx + 0xac]
call eax
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x48]
push 0x9bed38
push ebx
push ebx
push ebx
push eax
call edx
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
push 0x9bed30
push ebx
push eax
call edx
lea ecx, [ecx]
mov eax, dword [0x9bed30]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
cmp dword [esp + 0x28], ebp
jne 0x5a11f0
jmp 0x5a1210
mov eax, dword [0x9bed30]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
cmp dword [esp + 0x28], ebx
jne 0x5a1210
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
call esi
mov edi, eax
mov eax, dword [0x9bed30]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
cmp dword [esp + 0x28], ebp
jne 0x5a1232
lea ebx, [ebx]
mov eax, dword [0x9bed30]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
cmp dword [esp + 0x28], ebx
jne 0x5a1250
call esi
sub eax, edi
push 0x8805cc
mov dword [0x9bed14], eax
call fcn.0057a587
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
add esp, 4
push 0x9bed58
push eax
call edx
mov eax, dword [0x9bed78]
mov ecx, eax
shr ecx, 0xa
and ecx, ebp
mov dword [0x9bed34], ecx
mov ecx, dword [0x9b627c]
cmp ecx, ebx
je 0x5a12c1
movzx edx, word [0x9bee1c]
cmp edx, 0x200
mov dword [0x9b6280], ebp
jae 0x5a12c7
mov dword [0x9b6280], ebx
cmp ecx, ebx
je 0x5a12e0
movzx ecx, word [0x9bee24]
cmp ecx, 0x200
mov dword [0x9b6284], ebp
jae 0x5a12e6
mov dword [0x9b6284], ebx
shr eax, 0xb
and eax, ebp
mov dword [0x9bee8c], eax
mov eax, dword [0x9bedb0]
cmp eax, ebx
jne 0x5a1303
mov eax, 0x100
mov dword [0x9bedb0], eax
mov ecx, dword [0x9bedb4]
cmp ecx, ebx
jne 0x5a1318
mov ecx, 0x100
mov dword [0x9bedb4], ecx
cmp eax, ecx
mov dword [0x9bee88], eax
jb 0x5a1327
mov dword [0x9bee88], ecx
mov eax, 0xff
lea ecx, [esp + 0x1f8]
push ecx
mov dword [0xa05c80], eax
mov dword [0xa05c84], eax
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x14]
push ebx
push ebx
push eax
call edx
lea eax, [esp + 0x3f8]
push eax
lea ecx, [esp + 0x1fc]
push ecx
push str.Driver:_s__Description:_s
call fcn.0057bcf2
mov eax, dword [0x9bed38]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
add esp, 0xc
lea ecx, [esp + 0x98]
push ecx
push eax
call edx
mov ecx, dword [esp + 0x98]
mov eax, ecx
sub eax, 0x16
mov dword [0x9becb0], ecx
je 0x5a13bd
sub eax, ebp
je 0x5a13b6
sub eax, ebp
je 0x5a13af
push ecx
push 0x880fc8
call fcn.0057a2e9
mov eax, dword [esp + 0x24]
add esp, 8
jmp 0x5a13c2
mov eax, str.D3DFMT_X1R5G5B5
jmp 0x5a13c2
mov eax, str.D3DFMT_R5G6B5
jmp 0x5a13c2
mov eax, str.D3DFMT_X8R8G8B8
push eax
push 0x880f6c
call fcn.0057a2e9
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
add esp, 8
push 0x50
push ecx
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
jne 0x5a1411
mov dword [0x9becf4], 0x50
mov eax, str.D3DFMT_D16
jmp 0x5a148f
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
push 0x4d
push ecx
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
jne 0x5a144f
mov dword [0x9becf4], 0x4d
mov eax, str.D3DFMT_D24X8
jmp 0x5a148f
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
push 0x47
push ecx
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
jne 0x5a2129
mov dword [0x9becf4], 0x47
mov eax, str.D3DFMT_D32
push eax
push 0x880f10
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push 0x17
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a14dd
mov dword [0x9becb4], 0x17
mov esi, str.D_D3DFMT_R5G6B5
jmp 0x5a151f
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x18
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a2111
mov dword [0x9becb4], 0x18
mov esi, str.D_D3DFMT_X1R5G5B5
push esi
push str.16bit
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push 0x16
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a156d
mov dword [0x9becb8], 0x16
mov esi, str.D_D3DFMT_X8R8G8B8
jmp 0x5a1579
mov ecx, dword [0x9becb4]
mov dword [0x9becb8], ecx
push esi
push str.32bit
call fcn.0057a2e9
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x28]
add esp, 8
push 0x1a
push 3
push ebx
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
mov edi, 0x15
jne 0x5a15cc
mov dword [0x9becbc], 0x1a
mov eax, str.D_D3DFMT_A4R4G4B4
jmp 0x5a1609
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push edi
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a20f9
mov dword [0x9becbc], edi
mov eax, str.D_D3DFMT_A8R8G8B8
push eax
push 0x880e08
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push edi
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1652
mov dword [0x9becc0], edi
mov eax, str.D_D3DFMT_A8R8G8B8
jmp 0x5a1694
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x1a
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a20e1
mov dword [0x9becc0], 0x1a
mov eax, str.D_D3DFMT_A4R4G4B4
push eax
push 0x880dcc
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
mov esi, 0x19
push esi
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a16e5
mov dword [0x9becc4], esi
mov eax, str.D_D3DFMT_A1R5G5B5
jmp 0x5a1762
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push edi
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1720
mov dword [0x9becc4], edi
mov eax, str.D_D3DFMT_A8R8G8B8
jmp 0x5a1762
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x1a
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a20c9
mov dword [0x9becc4], 0x1a
mov eax, str.D_D3DFMT_A4R4G4B4
push eax
push 0x880d74
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push edi
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a17ae
mov dword [0x9becc8], edi
mov eax, str.D_D3DFMT_A8R8G8B8
jmp 0x5a182b
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push esi
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a17e9
mov dword [0x9becc8], esi
mov eax, str.D_D3DFMT_A1R5G5B5
jmp 0x5a182b
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x1a
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a20b1
mov dword [0x9becc8], 0x1a
mov eax, str.D_D3DFMT_A4R4G4B4
push eax
push 0x880d34
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push 0x31545844
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a187c
mov dword [0x9beccc], 0x31545844
mov eax, str._D_D3DFMT_DXT1
jmp 0x5a188d
mov ecx, dword [0x9becc4]
mov dword [0x9beccc], ecx
mov eax, 0x880d0c
push eax
push 0x880ce0
call fcn.0057a2e9
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x28]
add esp, 8
push 0x32545844
push 3
push ebx
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
jne 0x5a18de
mov dword [0x9becd0], 0x32545844
mov eax, str._D_D3DFMT_DXT2
jmp 0x5a18ed
mov eax, dword [0x9becc0]
mov dword [0x9becd0], eax
mov eax, 0x880d0c
push eax
push 0x880c9c
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push 0x33545844
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a193e
mov dword [0x9becd4], 0x33545844
mov eax, str._D_D3DFMT_DXT3
jmp 0x5a194f
mov ecx, dword [0x9becc0]
mov dword [0x9becd4], ecx
mov eax, 0x880d0c
push eax
push 0x880c58
call fcn.0057a2e9
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x28]
add esp, 8
push 0x34545844
push 3
push ebx
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
jne 0x5a19a0
mov dword [0x9becd8], 0x34545844
mov eax, str._D_D3DFMT_DXT4
jmp 0x5a19af
mov eax, dword [0x9becc0]
mov dword [0x9becd8], eax
mov eax, 0x880d0c
push eax
push 0x880c14
call fcn.0057a2e9
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
add esp, 8
push 0x35545844
push 3
push ebx
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1a00
mov dword [0x9becdc], 0x35545844
mov eax, str._D_D3DFMT_DXT5
jmp 0x5a1a11
mov ecx, dword [0x9becc0]
mov dword [0x9becdc], ecx
mov eax, 0x880d0c
push eax
push 0x880bd0
call fcn.0057a2e9
xor ecx, ecx
add esp, 8
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
cmp ecx, 0x17
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x1c]
setne bl
mov edx, dword [edx + 0x28]
add ebx, 0x17
push ebx
push 3
push ebp
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
mov ebx, dword [esp + 0x10]
jne 0x5a1b6e
mov eax, dword [0x9becb0]
xor edx, edx
cmp eax, 0x17
setne dl
add edx, 0x17
cmp eax, 0x17
mov dword [0x9bece0], edx
jne 0x5a1b64
mov ecx, str.D3DFMT_R5G6B5
cmp edx, ebx
je 0x5a1aa7
push ecx
push 0x880b9c
call fcn.0057a2e9
add esp, 8
mov eax, dword [0x9becb0]
mov ecx, dword [0x9bed20]
mov edx, dword [ecx]
push 0x16
push 3
push ebp
push eax
mov eax, dword [0x9b6270]
neg eax
sbb eax, eax
and eax, dword [0x9b6274]
push ebp
push eax
push ecx
mov ecx, dword [edx + 0x28]
call ecx
test eax, eax
jne 0x5a1c39
mov dword [0x9bece4], 0x16
mov eax, str.D_D3DFMT_X8R8G8B8
push eax
push 0x880b68
call fcn.0057a2e9
add esp, 8
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push edi
push 3
push ebp
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1cd7
mov dword [0x9bece8], edi
mov eax, str.D_D3DFMT_A8R8G8B8
push eax
push 0x880b28
call fcn.0057a2e9
add esp, 8
cmp dword [0x90d9b4], 0x20
jne 0x5a1d32
mov ecx, dword [0x9bece4]
mov eax, dword [0x9becc8]
mov dword [0x9becec], ecx
mov dword [0x9becf0], eax
jmp 0x5a1d4a
mov ecx, str.D_D3DFMT_R5G5B5
jmp 0x5a1a90
xor ecx, ecx
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
cmp ecx, 0x17
mov edx, dword [edx + 0x28]
mov dword [esp + 0x10], ebx
sete bl
add ebx, 0x17
push ebx
push 3
push ebp
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
mov ebx, dword [esp + 0x10]
jne 0x5a1bde
mov eax, dword [0x9becb0]
xor edx, edx
cmp eax, 0x17
sete dl
add edx, 0x17
cmp eax, 0x17
mov dword [0x9bece0], edx
jne 0x5a1bd4
mov ecx, str.D3DFMT_R5G5B5
jmp 0x5a1a90
mov ecx, str.D_D3DFMT_R5G6B5
jmp 0x5a1a90
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x16
push 3
push ebp
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1c21
mov dword [0x9bece0], 0x16
mov ecx, str.D_D3DFMT_X8R8G8B8
jmp 0x5a1a94
push 0x880ab8
call fcn.0057a587
add esp, 4
mov dword [0x9bece0], ebx
jmp 0x5a1aa2
mov ecx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov edx, dword [eax]
mov edx, dword [edx + 0x28]
push 0x17
push 3
push ebp
push ecx
mov ecx, dword [0x9b6270]
neg ecx
sbb ecx, ecx
and ecx, dword [0x9b6274]
push ebp
push ecx
push eax
call edx
test eax, eax
jne 0x5a1c7c
mov dword [0x9bece4], 0x17
mov eax, str.D3DFMT_R5G6B5
jmp 0x5a1ae3
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x18
push 3
push ebp
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1cbf
mov dword [0x9bece4], 0x18
mov eax, str.D3DFMT_R5G5B5
jmp 0x5a1ae3
push 0x880a6c
call fcn.0057a587
add esp, 4
mov dword [0x9bece4], ebx
jmp 0x5a1af1
mov edx, dword [0x9becb0]
mov eax, dword [0x9bed20]
mov ecx, dword [eax]
push 0x1a
push 3
push ebp
push edx
mov edx, dword [0x9b6270]
neg edx
sbb edx, edx
and edx, dword [0x9b6274]
push ebp
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
test eax, eax
jne 0x5a1d1a
mov dword [0x9bece8], 0x1a
mov eax, str.D3DFMT_A4R4G4B4
jmp 0x5a1b2e
push 0x880a00
call fcn.0057a587
add esp, 4
mov dword [0x9bece8], ebx
jmp 0x5a1b3c
mov edx, dword [0x9bece0]
mov ecx, dword [0x9becc4]
mov dword [0x9becec], edx
mov dword [0x9becf0], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [0x9b62a4], ebx
mov dword [esp + 0x1c], 3
mov eax, dword [0x90d9b0]
mov ecx, dword [0x90d9ac]
or ebp, 0xffffffff
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x7c], ebp
mov esi, 0x100
nop
cmp esi, ecx
jg 0x5a1d88
cmp esi, eax
jle 0x5a1d8c
sar esi, 1
jmp 0x5a1d80
mov eax, dword [0x9bed28]
push ebx
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [0x9becb0]
push 2
push ecx
push esi
mov dword [esp + 0x24], ebx
mov edx, dword [eax]
mov edx, dword [edx + 0x90]
push esi
push eax
call edx
test eax, eax
jne 0x5a1fe2
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov eax, dword [0x9becb0]
push eax
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
call fcn.0057fc9e
add esp, 4
push 0x10
lea edx, [esp + 0x9c]
push edx
mov ebx, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x78]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
test eax, eax
jne 0x5a1fe2
push eax
call fcn.0057bd2e
add esp, 4
mov dword [esp + 0x24], edx
push 0x10
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0x28], eax
mov eax, dword [0x9bed38]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
test eax, eax
jne 0x5a1fe2
xor edi, edi
test esi, esi
jle 0x5a1e72
movzx ecx, word [ebx + 2]
mov edx, dword [esp + 0x68]
imul ecx, esi
mov eax, dword [esp + 0x70]
imul edx, edi
add edx, dword [esp + 0x6c]
imul eax, edi
add eax, dword [esp + 0x74]
push ecx
push edx
push eax
call fcn.0057bde2
add edi, 1
add esp, 0xc
cmp edi, esi
jl 0x5a1e43
mov eax, dword [0x9bed38]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
push eax
call edx
push 0
call fcn.0057bd2e
sub eax, dword [esp + 0x24]
push 0
sbb edx, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
call fcn.0057bd2e
add esp, 8
push 0
mov dword [esp + 0x80], edx
lea edx, [esp + 0x18]
push edx
mov edx, dword [0x9becb0]
push 0
push 0
push 0
push edx
mov ebp, eax
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
push esi
push esi
push eax
mov eax, dword [ecx + 0x70]
call eax
test eax, eax
jne 0x5a1fe2
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x1c]
push edx
mov edx, dword [0x9becb0]
push 2
push edx
push esi
push esi
push eax
mov eax, dword [ecx + 0x90]
call eax
test eax, eax
jne 0x5a1fe2
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x9c]
push edx
mov edx, dword [esp + 0x1c]
push edx
lea edx, [esp + 0xa4]
push edx
mov edx, dword [0x9bed38]
push edx
push eax
mov eax, dword [ecx + 0x88]
call eax
mov edx, dword [esp + 0x18]
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x18]
push edx
push eax
mov eax, dword [ecx + 0x80]
call eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push 0x10
push 0
lea edx, [esp + 0x70]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
test eax, eax
jne 0x5a1fe2
xor edi, edi
test esi, esi
jle 0x5a1f9f
lea esp, [esp]
movzx ecx, word [ebx + 2]
mov edx, dword [esp + 0x68]
imul ecx, esi
mov eax, dword [esp + 0x70]
imul edx, edi
add edx, dword [esp + 0x6c]
imul eax, edi
add eax, dword [esp + 0x74]
push ecx
push edx
push eax
call fcn.0057bde2
add edi, 1
add esp, 0xc
cmp edi, esi
jl 0x5a1f70
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
push eax
call edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
push eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
call fcn.0057bd2e
add esp, 4
sub eax, ebp
sbb edx, dword [esp + 0x7c]
mov ebp, eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x18]
xor ebx, ebx
cmp eax, ebx
je 0x5a1ff8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x5a200c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x5a2020
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x10], ebx
sub dword [esp + 0x1c], 1
jne 0x5a1d60
mov ebx, dword [esp + 0x7c]
mov eax, ebp
and eax, ebx
cmp eax, 0xffffffff
je 0x5a209a
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
je 0x5a209a
push ebp
push esi
push 0x880990
call fcn.0057a2e9
add esp, 0xc
cmp edi, ebx
jg 0x5a2083
jl 0x5a2062
cmp esi, ebp
jae 0x5a2083
push 0x880968
mov dword [0x9b62a4], 1
call fcn.0057a587
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x88093c
call fcn.0057a587
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x88090c
call fcn.0057a587
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x8808b0
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x880850
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x8807f8
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x8807a0
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x880758
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x880714
call fcn.0057a587
add esp, 4
pop edi
or eax, 0xffffffff
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret