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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffff9b0
cmp dword [0x82d1e8], 0
mov edi, esp
lea ebp, [esp + 0x1c]
lea ebx, [esp + 0x40]
jne 0x639a6d
or eax, 0xffffffff
jmp 0x63b293
cmp dword [0x82d1f0], 0
je 0x639a9c
push 0x6c915c
call fcn.00610394
pop ecx
mov edx, dword [0x82d1f0]
push edx
mov ecx, dword [edx]
call dword [ecx + 8]
xor eax, eax
xor edx, edx
mov dword [0x82d1f0], eax
mov dword [0x874160], edx
push 0x38
push 0
push ebx
call fcn.006111d4
add esp, 0xc
mov ecx, dword [0x77be74]
mov dword [ebx], ecx
mov eax, dword [0x77be78]
mov dword [ebx + 4], eax
call fcn.00611c24
dec eax
jne 0x639b50
lea edx, [esp + 0x78]
mov ecx, dword [0x82d1e8]
push edx
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov edx, dword [esp + 0x84]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], 1
mov dword [ebx + 0x20], 1
cmp dword [0x82475c], 0
jne 0x639b00
mov ecx, 3
jmp 0x639b05
mov ecx, 1
mov dword [ebx + 0x18], ecx
mov eax, dword [esp + 0x84]
sub eax, 0x16
je 0x639b1c
dec eax
sub eax, 3
jb 0x639b28
jmp 0x639b32
mov dword [0x77be7c], 0x20
jmp 0x639b32
mov dword [0x77be7c], 0x10
cmp dword [0x824750], 0
je 0x639b3f
xor edx, edx
jmp 0x639b44
mov edx, 1
push edx
call fcn.00611dac
pop ecx
jmp 0x639d0f
cmp dword [0x72e2ac], 0x108
jl 0x639c28
cmp dword [0x77be84], 0
jne 0x639b7f
cmp dword [0x94e824], 0
jne 0x639b7f
cmp dword [0x824768], 0
je 0x639c28
lea eax, [esp + 0x78]
mov ecx, dword [0x82d1e8]
push eax
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov edx, dword [esp + 0x84]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], 1
mov dword [ebx + 0x20], 1
cmp dword [0x82475c], 0
jne 0x639bba
mov ecx, 3
jmp 0x639bbf
mov ecx, 1
mov dword [ebx + 0x18], ecx
mov eax, dword [0x77be7c]
sub eax, 0x10
je 0x639bd3
sub eax, 0x10
je 0x639c0c
jmp 0x639c18
push 0x17
cmp dword [0x824738], 0
je 0x639be6
mov edx, dword [0x82473c]
jmp 0x639be8
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x639bff
mov eax, 0x17
jmp 0x639c04
mov eax, 0x18
mov dword [ebx + 8], eax
jmp 0x639d0f
mov dword [ebx + 8], 0x16
jmp 0x639d0f
push 0x6c9176
call fcn.00610394
pop ecx
jmp 0x63b290
mov edx, dword [0x77be7c]
sub edx, 0x10
je 0x639c3a
sub edx, 0x10
je 0x639c70
jmp 0x639c79
push 0x17
cmp dword [0x824738], 0
je 0x639c4d
mov ecx, dword [0x82473c]
jmp 0x639c4f
xor ecx, ecx
push ecx
mov eax, dword [0x82d1e8]
push eax
mov edx, dword [eax]
call dword [edx + 0x18]
test eax, eax
je 0x639c66
mov eax, 0x17
jmp 0x639c6b
mov eax, 0x18
mov dword [ebx + 8], eax
jmp 0x639c89
mov dword [ebx + 8], 0x16
jmp 0x639c89
push 0x6c91aa
call fcn.00610394
pop ecx
jmp 0x63b290
mov dword [ebx + 0xc], 1
xor edx, edx
mov dword [ebx + 0x20], edx
mov ecx, dword [0x77be80]
mov dword [ebx + 0x30], ecx
cmp dword [0x82475c], 0
jne 0x639cae
mov eax, 3
jmp 0x639cb3
mov eax, 1
mov dword [ebx + 0x18], eax
mov dword [esp + 0x88], 0x18
mov edx, dword [ebx + 8]
mov dword [esp + 0x98], edx
mov ecx, dword [ebx]
mov dword [esp + 0x8c], ecx
mov eax, dword [ebx + 4]
mov dword [esp + 0x90], eax
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x94], edx
mov dword [esp + 0x9c], 1
push 0
call fcn.00611dac
pop ecx
cmp dword [0x72361c], 0
je 0x639d0f
push str.Desktop_Window_Manager
call fcn.00610394
pop ecx
mov ecx, dword [0x82475c]
mov dword [ebx + 0x10], ecx
mov eax, dword [0x824760]
mov dword [ebx + 0x14], eax
call fcn.00611c1c
mov dword [ebx + 0x1c], eax
cmp dword [0x94e81c], 0
je 0x639d38
mov edx, 0x80000000
jmp 0x639d3d
mov edx, 1
mov dword [ebx + 0x34], edx
xor eax, eax
mov dword [ebx + 0x24], eax
cmp dword [0x82475c], 0
jne 0x639d55
mov ecx, 1
jmp 0x639d57
xor ecx, ecx
mov dword [ebx + 0x2c], ecx
cmp dword [0x82475c], 0
je 0x639e3e
xor eax, eax
mov dword [esp + 8], eax
lea edx, [esp + 8]
push edx
mov eax, dword [ebx + 0x10]
push eax
call fcn.00611c24
push eax
mov ecx, dword [0x82d1e8]
mov edx, dword [ebx + 8]
push edx
push 1
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x2c]
test eax, eax
je 0x639d9d
dec dword [ebx + 0x10]
cmp dword [ebx + 0x10], 0
jne 0x639d6d
cmp dword [ebx + 0x10], 0
jne 0x639dbd
xor edx, edx
mov dword [0x82475c], edx
xor ecx, ecx
mov dword [0x824760], ecx
xor eax, eax
mov dword [ebx + 0x14], eax
jmp 0x639e4a
xor edx, edx
mov dword [esp + 0xc], edx
lea ecx, [esp + 0xc]
push ecx
mov eax, dword [ebx + 0x10]
push eax
call fcn.00611c24
push eax
push 0x50
mov edx, dword [0x82d1e8]
push 1
push 0
push edx
mov ecx, dword [edx]
call dword [ecx + 0x2c]
test eax, eax
je 0x639df1
dec dword [ebx + 0x10]
cmp dword [ebx + 0x10], 0
jne 0x639dc3
cmp dword [ebx + 0x10], 0
jne 0x639e0d
xor eax, eax
mov dword [0x82475c], eax
xor edx, edx
mov dword [0x824760], edx
xor ecx, ecx
mov dword [ebx + 0x14], ecx
jmp 0x639e4a
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 8]
jae 0x639e1d
mov eax, dword [esp + 0xc]
jmp 0x639e21
mov eax, dword [esp + 8]
dec eax
cmp eax, dword [ebx + 0x14]
jae 0x639e2a
mov dword [ebx + 0x14], eax
mov edx, dword [ebx + 0x10]
mov dword [0x82475c], edx
mov ecx, dword [ebx + 0x14]
mov dword [0x824760], ecx
jmp 0x639e4a
xor eax, eax
xor edx, edx
mov dword [0x824760], eax
mov dword [ebx + 0x14], edx
cmp dword [0x824740], 1
jne 0x639e65
cmp dword [0x82d1ec], 0
jne 0x639f67
jmp 0x63a09d
lea ecx, [esp + 0xa0]
push ecx
push 1
cmp dword [0x824738], 0
je 0x639e7f
mov eax, dword [0x82473c]
jmp 0x639e81
xor eax, eax
push eax
mov edx, dword [0x82d1e8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x38]
mov eax, dword [esp + 0x164]
and eax, 0xffff
cmp eax, 0x200
jb 0x639eb6
mov edx, dword [esp + 0x16c]
and edx, 0xffff
cmp edx, 0x200
jae 0x639ec0
xor ecx, ecx
mov dword [0x824744], ecx
jmp 0x639eca
mov dword [0x824744], 1
cmp dword [0x82d1ec], 0
je 0x63a023
push str.IDirect3DDevice9Ex
call fcn.00610394
pop ecx
push 0x82d1f4
cmp dword [ebx + 0x20], 0
je 0x639ef1
xor eax, eax
jmp 0x639ef8
lea eax, [esp + 0x8c]
push eax
push ebx
cmp dword [0x824744], 0
je 0x639f0a
mov edx, 0x80
jmp 0x639f0f
mov edx, 0x20
cmp dword [0x72378c], 0
je 0x639f1f
mov eax, 2
jmp 0x639f21
xor eax, eax
or edx, eax
cmp dword [0x824734], 0
je 0x639f33
mov ecx, 4
jmp 0x639f35
xor ecx, ecx
or edx, ecx
push edx
call fcn.00611c1c
push eax
push 1
cmp dword [0x824738], 0
je 0x639f50
mov eax, dword [0x82473c]
jmp 0x639f52
xor eax, eax
push eax
mov edx, dword [0x82d1ec]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x50]
test eax, eax
jge 0x639ff8
xor eax, eax
mov dword [0x824744], eax
push 0x82d1f4
cmp dword [ebx + 0x20], 0
je 0x639f7d
xor edx, edx
jmp 0x639f84
lea edx, [esp + 0x8c]
push edx
push ebx
cmp dword [0x72378c], 0
je 0x639f96
mov eax, 2
jmp 0x639f98
xor eax, eax
or eax, 0x20
cmp dword [0x824734], 0
je 0x639fab
mov edx, 4
jmp 0x639fad
xor edx, edx
or eax, edx
push eax
call fcn.00611c1c
push eax
push 1
cmp dword [0x824738], 0
je 0x639fc8
mov eax, dword [0x82473c]
jmp 0x639fca
xor eax, eax
push eax
mov edx, dword [0x82d1ec]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x50]
test eax, eax
jge 0x639feb
push str.Direct3DDevice9Ex
call fcn.00610394
pop ecx
jmp 0x63b290
push 0x6c9260
call fcn.00610394
pop ecx
jmp 0x63a003
push 0x6c9282
call fcn.00610394
pop ecx
mov eax, dword [0x82d1f4]
mov dword [0x82d1f0], eax
push 1
mov edx, dword [0x82d1f4]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x1f8]
jmp 0x63a127
push str.IDirect3DDevice9
call fcn.00610394
pop ecx
push 0x82d1f0
push ebx
cmp dword [0x824744], 0
je 0x63a044
mov eax, 0x80
jmp 0x63a049
mov eax, 0x20
cmp dword [0x72378c], 0
je 0x63a059
mov edx, 2
jmp 0x63a05b
xor edx, edx
or eax, edx
cmp dword [0x824734], 0
je 0x63a06d
mov ecx, 4
jmp 0x63a06f
xor ecx, ecx
or eax, ecx
push eax
call fcn.00611c1c
push eax
push 1
cmp dword [0x824738], 0
je 0x63a08a
mov eax, dword [0x82473c]
jmp 0x63a08c
xor eax, eax
push eax
mov edx, dword [0x82d1e8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x40]
test eax, eax
jge 0x63a11c
xor eax, eax
push 0x82d1f0
mov dword [0x824744], eax
push ebx
cmp dword [0x72378c], 0
je 0x63a0ba
mov edx, 2
jmp 0x63a0bc
xor edx, edx
or edx, 0x20
cmp dword [0x824734], 0
je 0x63a0cf
mov eax, 4
jmp 0x63a0d1
xor eax, eax
or edx, eax
push edx
call fcn.00611c1c
push eax
push 1
cmp dword [0x824738], 0
je 0x63a0ed
mov edx, dword [0x82473c]
jmp 0x63a0ef
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
test eax, eax
jge 0x63a10f
push 0x6c92d3
call fcn.00610394
pop ecx
jmp 0x63b290
push 0x6c92f9
call fcn.00610394
pop ecx
jmp 0x63a127
push 0x6c931b
call fcn.00610394
pop ecx
call fcn.0063908c
xor eax, eax
xor edx, edx
mov dword [0x8741a4], eax
mov dword [0x8741ac], edx
xor ecx, ecx
xor eax, eax
mov dword [0x8741a8], ecx
mov dword [0x8741b0], eax
xor edx, edx
xor ecx, ecx
mov dword [0x8741b8], edx
mov dword [0x8741b4], ecx
mov eax, dword [0x82d1f0]
push 1
push 7
push eax
mov edx, dword [eax]
call dword [edx + 0xe4]
mov ecx, dword [0x723da8]
mov eax, dword [0x723dac]
shl eax, 8
push 0
shl ecx, 0x10
push 0x3f800000
or ecx, eax
mov edx, dword [0x82d1f0]
or ecx, dword [0x723db0]
push ecx
push 1
push 0
push 0
push edx
mov ecx, dword [edx]
call dword [ecx + 0xac]
push 0
call fcn.00611c1c
push eax
push 0
push 0
mov eax, dword [0x82d1f0]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
mov ecx, dword [0x723da8]
mov eax, dword [0x723dac]
shl eax, 8
push 0
shl ecx, 0x10
push 0x3f800000
or ecx, eax
mov edx, dword [0x82d1f0]
or ecx, dword [0x723db0]
push ecx
push 1
push 0
push 0
push edx
mov ecx, dword [edx]
call dword [ecx + 0xac]
push 0
call fcn.00611c1c
push eax
push 0
push 0
mov eax, dword [0x82d1f0]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
mov ecx, dword [0x723da8]
mov eax, dword [0x723dac]
shl eax, 8
push 0
shl ecx, 0x10
push 0x3f800000
or ecx, eax
mov edx, dword [0x82d1f0]
or ecx, dword [0x723db0]
push ecx
push 1
push 0
push 0
push edx
mov ecx, dword [edx]
call dword [ecx + 0xac]
push 0
call fcn.00611c1c
push eax
push 0
push 0
mov eax, dword [0x82d1f0]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
mov ecx, dword [0x723da8]
mov eax, dword [0x723dac]
shl eax, 8
push 0
shl ecx, 0x10
push 0x3f800000
or ecx, eax
mov edx, dword [0x82d1f0]
or ecx, dword [0x723db0]
push ecx
push 1
push 0
push 0
push edx
mov ecx, dword [edx]
call dword [ecx + 0xac]
push 0x82d200
push 0
mov eax, dword [0x82d1f0]
push 0
push 0
push eax
mov edx, dword [eax]
call dword [edx + 0x48]
mov ecx, dword [0x82d1f0]
push 0x82d1f8
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x38]
push edi
mov edx, dword [0x82d1f8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x18]
cmp dword [edi], 1
jne 0x63a2b2
push edi
mov eax, dword [0x82d1f8]
push eax
mov edx, dword [eax]
call dword [edx + 0x18]
cmp dword [edi], 0
jne 0x63a2c4
call dword [0x7236e8]
mov ebx, eax
push edi
mov eax, dword [0x82d1f8]
push eax
mov edx, dword [eax]
call dword [edx + 0x18]
cmp dword [edi], 1
jne 0x63a2dd
push edi
mov ecx, dword [0x82d1f8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp dword [edi], 0
jne 0x63a2ee
call dword [0x7236e8]
sub eax, ebx
push 0x6c933d
mov dword [0x82d1dc], eax
call fcn.00610394
mov edx, dword [0x82d1f0]
pop ecx
push 0x82d220
push edx
mov ecx, dword [edx]
call dword [ecx + 0x1c]
test byte [0x82d241], 4
je 0x63a339
mov eax, 1
jmp 0x63a33b
xor eax, eax
mov dword [0x82d1fc], eax
cmp dword [0x824744], 0
je 0x63a35d
mov edx, dword [0x82d2e4]
and edx, 0xffff
cmp edx, 0x200
jae 0x63a361
xor ecx, ecx
jmp 0x63a366
mov ecx, 1
mov dword [0x824748], ecx
cmp dword [0x824744], 0
je 0x63a386
mov eax, dword [0x82d2ec]
and eax, 0xffff
cmp eax, 0x200
jae 0x63a38a
xor edx, edx
jmp 0x63a38f
mov edx, 1
mov dword [0x82474c], edx
test byte [0x82d241], 8
jne 0x63a3a2
xor ecx, ecx
jmp 0x63a3a7
mov ecx, 1
mov dword [0x82d354], ecx
cmp dword [0x82d278], 0
jne 0x63a3c0
mov dword [0x82d278], 0x100
cmp dword [0x82d27c], 0
jne 0x63a3d3
mov dword [0x82d27c], 0x100
mov eax, dword [0x82d278]
cmp eax, dword [0x82d27c]
jae 0x63a3e8
mov edx, dword [0x82d278]
jmp 0x63a3ee
mov edx, dword [0x82d27c]
mov dword [0x82d350], edx
mov dword [0x87414c], 0xff
mov dword [0x874150], 0xff
lea eax, [esp + 0x1d0]
mov ecx, dword [0x82d1e8]
push eax
push 0
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14]
lea edx, [esp + 0x3d0]
push edx
lea ecx, [esp + 0x1d4]
push ecx
push str.Driver:_s__Description:_s
call fcn.006105fc
add esp, 0xc
mov edx, dword [0x82d200]
lea eax, [esp + 0x620]
push eax
push edx
mov ecx, dword [edx]
call dword [ecx + 0x30]
mov eax, dword [esp + 0x620]
mov dword [0x82d178], eax
sub eax, 0x16
je 0x63a46a
dec eax
je 0x63a471
dec eax
je 0x63a478
jmp 0x63a47f
mov esi, str.D3DFMT_X8R8G8B8
jmp 0x63a492
mov esi, 0x6c936d
jmp 0x63a492
mov esi, str.D3DFMT_X1R5G5B5
jmp 0x63a492
mov eax, dword [0x82d178]
push eax
push 0x6c938b
call fcn.00610684
add esp, 8
push esi
push 0x6c93be
call fcn.00610684
add esp, 8
mov eax, dword [0x82d178]
cmp dword [0x824738], 0
push 0x50
push eax
push eax
push 1
je 0x63a4bc
mov edx, dword [0x82473c]
jmp 0x63a4be
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
test eax, eax
jne 0x63a4e2
mov dword [0x82d1bc], 0x50
mov esi, str.D3DFMT_D16
jmp 0x63a570
push 0x4d
mov eax, dword [0x82d178]
push eax
push eax
push 1
cmp dword [0x824738], 0
je 0x63a4fe
mov edx, dword [0x82473c]
jmp 0x63a500
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
test eax, eax
jne 0x63a521
mov dword [0x82d1bc], 0x4d
mov esi, str.D3DFMT_D24X8
jmp 0x63a570
push 0x47
mov eax, dword [0x82d178]
push eax
push eax
push 1
cmp dword [0x824738], 0
je 0x63a53d
mov edx, dword [0x82473c]
jmp 0x63a53f
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
test eax, eax
jne 0x63a560
mov dword [0x82d1bc], 0x47
mov esi, str.D3DFMT_D32
jmp 0x63a570
push 0x6c93fe
call fcn.00610394
pop ecx
jmp 0x63b290
push esi
push 0x6c9436
call fcn.00610684
add esp, 8
push 0x17
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a59d
mov edx, dword [0x82473c]
jmp 0x63a59f
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a5c0
mov dword [0x82d17c], 0x17
mov esi, 0x6c9459
jmp 0x63a612
push 0x18
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a5df
mov edx, dword [0x82473c]
jmp 0x63a5e1
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a602
mov dword [0x82d17c], 0x18
mov esi, str.D_D3DFMT_X1R5G5B5
jmp 0x63a612
push 0x6c947b
call fcn.00610394
pop ecx
jmp 0x63b290
push esi
push str.16bit
call fcn.00610684
add esp, 8
push 0x16
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a63f
mov edx, dword [0x82473c]
jmp 0x63a641
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a662
mov dword [0x82d180], 0x16
mov esi, 0x6c94d9
jmp 0x63a66c
mov eax, dword [0x82d17c]
mov dword [0x82d180], eax
push esi
push str.32bit
call fcn.00610684
add esp, 8
push 0x1a
push 3
push 0
mov edx, dword [0x82d178]
push edx
push 1
cmp dword [0x824738], 0
je 0x63a69a
mov ecx, dword [0x82473c]
jmp 0x63a69c
xor ecx, ecx
push ecx
mov eax, dword [0x82d1e8]
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
test eax, eax
jne 0x63a6bd
mov dword [0x82d184], 0x1a
mov esi, 0x6c950e
jmp 0x63a70f
push 0x15
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a6dc
mov edx, dword [0x82473c]
jmp 0x63a6de
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a6ff
mov dword [0x82d184], 0x15
mov esi, 0x6c9520
jmp 0x63a70f
push 0x6c9532
call fcn.00610394
pop ecx
jmp 0x63b290
push esi
push 0x6c9579
call fcn.00610684
add esp, 8
push 0x15
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a73c
mov edx, dword [0x82473c]
jmp 0x63a73e
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a75f
mov dword [0x82d188], 0x15
mov esi, 0x6c95a9
jmp 0x63a7b1
push 0x1a
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a77e
mov edx, dword [0x82473c]
jmp 0x63a780
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a7a1
mov dword [0x82d188], 0x1a
mov esi, 0x6c95bb
jmp 0x63a7b1
push 0x6c95cd
call fcn.00610394
pop ecx
jmp 0x63b290
push esi
push 0x6c9614
call fcn.00610684
add esp, 8
push 0x19
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a7de
mov edx, dword [0x82473c]
jmp 0x63a7e0
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a804
mov dword [0x82d18c], 0x19
mov esi, 0x6c9644
jmp 0x63a898
push 0x15
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a823
mov edx, dword [0x82473c]
jmp 0x63a825
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a846
mov dword [0x82d18c], 0x15
mov esi, 0x6c9656
jmp 0x63a898
push 0x1a
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a865
mov edx, dword [0x82473c]
jmp 0x63a867
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a888
mov dword [0x82d18c], 0x1a
mov esi, 0x6c9668
jmp 0x63a898
push 0x6c967a
call fcn.00610394
pop ecx
jmp 0x63b290
push esi
push 0x6c96c5
call fcn.00610684
add esp, 8
push 0x15
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a8c5
mov edx, dword [0x82473c]
jmp 0x63a8c7
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a8eb
mov dword [0x82d190], 0x15
mov esi, 0x6c96f9
jmp 0x63a97f
push 0x19
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a90a
mov edx, dword [0x82473c]
jmp 0x63a90c
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a92d
mov dword [0x82d190], 0x19
mov esi, str.D_D3DFMT_A1R5G5B5
jmp 0x63a97f
push 0x1a
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a94c
mov edx, dword [0x82473c]
jmp 0x63a94e
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a96f
mov dword [0x82d190], 0x1a
mov esi, str.D_D3DFMT_A4R4G4B4
jmp 0x63a97f
push 0x6c972f
call fcn.00610394
pop ecx
jmp 0x63b290
push esi
push 0x6c977a
call fcn.00610684
add esp, 8
push 0x31545844
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63a9af
mov edx, dword [0x82473c]
jmp 0x63a9b1
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63a9d2
mov dword [0x82d194], 0x31545844
mov esi, str._D_D3DFMT_DXT1
jmp 0x63a9e1
mov eax, dword [0x82d18c]
mov esi, 0x6c97c2
mov dword [0x82d194], eax
push esi
push 0x6c97cd
call fcn.00610684
add esp, 8
push 0x32545844
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63aa11
mov edx, dword [0x82473c]
jmp 0x63aa13
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63aa34
mov dword [0x82d198], 0x32545844
mov esi, str._D_D3DFMT_DXT2
jmp 0x63aa43
mov eax, dword [0x82d188]
mov esi, 0x6c9804
mov dword [0x82d198], eax
push esi
push 0x6c980f
call fcn.00610684
add esp, 8
push 0x33545844
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63aa73
mov edx, dword [0x82473c]
jmp 0x63aa75
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63aa96
mov dword [0x82d19c], 0x33545844
mov esi, str._D_D3DFMT_DXT3
jmp 0x63aaa5
mov eax, dword [0x82d188]
mov esi, 0x6c9846
mov dword [0x82d19c], eax
push esi
push 0x6c9851
call fcn.00610684
add esp, 8
push 0x34545844
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63aad5
mov edx, dword [0x82473c]
jmp 0x63aad7
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63aaf8
mov dword [0x82d1a0], 0x34545844
mov esi, str._D_D3DFMT_DXT4
jmp 0x63ab07
mov eax, dword [0x82d188]
mov esi, 0x6c9888
mov dword [0x82d1a0], eax
push esi
push 0x6c9893
call fcn.00610684
add esp, 8
push 0x35545844
push 3
push 0
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63ab37
mov edx, dword [0x82473c]
jmp 0x63ab39
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63ab5a
mov dword [0x82d1a4], 0x35545844
mov esi, str._D_D3DFMT_DXT5
jmp 0x63ab69
mov eax, dword [0x82d188]
mov esi, 0x6c98ca
mov dword [0x82d1a4], eax
push esi
push 0x6c98d5
call fcn.00610684
add esp, 8
mov eax, dword [0x82d178]
cmp eax, 0x17
jne 0x63ab88
mov edx, 0x17
jmp 0x63ab8d
mov edx, 0x18
push edx
push 3
push 1
push eax
push 1
cmp dword [0x824738], 0
je 0x63aba5
mov eax, dword [0x82473c]
jmp 0x63aba7
xor eax, eax
push eax
mov edx, dword [0x82d1e8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x28]
test eax, eax
jne 0x63abef
cmp dword [0x82d178], 0x17
jne 0x63abc8
mov eax, 0x17
jmp 0x63abcd
mov eax, 0x18
mov dword [0x82d1a8], eax
cmp dword [0x82d178], 0x17
jne 0x63abe5
mov esi, 0x6c98f8
jmp 0x63acb5
mov esi, str.D_D3DFMT_R5G5B5
jmp 0x63acb5
mov eax, dword [0x82d178]
cmp eax, 0x17
jne 0x63ac00
mov edx, 0x18
jmp 0x63ac05
mov edx, 0x17
push edx
push 3
push 1
push eax
push 1
cmp dword [0x824738], 0
je 0x63ac1d
mov eax, dword [0x82473c]
jmp 0x63ac1f
xor eax, eax
push eax
mov edx, dword [0x82d1e8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x28]
test eax, eax
jne 0x63ac61
cmp dword [0x82d178], 0x17
jne 0x63ac40
mov eax, 0x18
jmp 0x63ac45
mov eax, 0x17
mov dword [0x82d1a8], eax
cmp dword [0x82d178], 0x17
jne 0x63ac5a
mov esi, 0x6c9916
jmp 0x63acb5
mov esi, str.D_D3DFMT_R5G6B5
jmp 0x63acb5
push 0x16
push 3
push 1
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63ac80
mov edx, dword [0x82473c]
jmp 0x63ac82
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63aca3
mov dword [0x82d1a8], 0x16
mov esi, 0x6c9934
jmp 0x63acb5
push 0x6c9946
call fcn.00610394
pop ecx
xor eax, eax
mov dword [0x82d1a8], eax
cmp dword [0x82d1a8], 0
je 0x63accc
push esi
push 0x6c9983
call fcn.00610684
add esp, 8
push 0x16
push 3
push 1
mov edx, dword [0x82d178]
push edx
push 1
cmp dword [0x824738], 0
je 0x63acec
mov ecx, dword [0x82473c]
jmp 0x63acee
xor ecx, ecx
push ecx
mov eax, dword [0x82d1e8]
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
test eax, eax
jne 0x63ad12
mov dword [0x82d1ac], 0x16
mov esi, str.D_D3DFMT_X8R8G8B8
jmp 0x63ada8
push 0x17
push 3
push 1
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63ad31
mov edx, dword [0x82473c]
jmp 0x63ad33
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63ad54
mov dword [0x82d1ac], 0x17
mov esi, str.D3DFMT_R5G6B5
jmp 0x63ada8
push 0x18
push 3
push 1
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63ad73
mov edx, dword [0x82473c]
jmp 0x63ad75
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63ad96
mov dword [0x82d1ac], 0x18
mov esi, str.D3DFMT_R5G5B5
jmp 0x63ada8
push 0x6c99db
call fcn.00610394
pop ecx
xor eax, eax
mov dword [0x82d1ac], eax
cmp dword [0x82d1ac], 0
je 0x63adbf
push esi
push 0x6c9a18
call fcn.00610684
add esp, 8
push 0x15
push 3
push 1
mov edx, dword [0x82d178]
push edx
push 1
cmp dword [0x824738], 0
je 0x63addf
mov ecx, dword [0x82473c]
jmp 0x63ade1
xor ecx, ecx
push ecx
mov eax, dword [0x82d1e8]
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
test eax, eax
jne 0x63ae02
mov dword [0x82d1b0], 0x15
mov esi, str.D_D3DFMT_A8R8G8B8
jmp 0x63ae56
push 0x1a
push 3
push 1
mov eax, dword [0x82d178]
push eax
push 1
cmp dword [0x824738], 0
je 0x63ae21
mov edx, dword [0x82473c]
jmp 0x63ae23
xor edx, edx
push edx
mov eax, dword [0x82d1e8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jne 0x63ae44
mov dword [0x82d1b0], 0x1a
mov esi, str.D3DFMT_A4R4G4B4
jmp 0x63ae56
push 0x6c9a64
call fcn.00610394
pop ecx
xor eax, eax
mov dword [0x82d1b0], eax
cmp dword [0x82d1b0], 0
je 0x63ae6d
push esi
push 0x6c9aad
call fcn.00610684
add esp, 8
cmp dword [0x77be7c], 0x20
jne 0x63ae7e
mov edx, dword [0x82d1ac]
jmp 0x63ae84
mov edx, dword [0x82d1a8]
mov dword [0x82d1b4], edx
cmp dword [0x77be7c], 0x20
jne 0x63ae9a
mov eax, dword [0x82d190]
jmp 0x63ae9f
mov eax, dword [0x82d18c]
mov dword [0x82d1b8], eax
mov edx, dword [0x82d27c]
mov ecx, dword [0x82d278]
push edx
push ecx
push 0x6c9ae3
call fcn.006105fc
add esp, 0xc
cmp dword [0x82d1fc], 0
je 0x63aecf
mov eax, 0x6c9b30
jmp 0x63aed4
mov eax, 0x6c9b37
push eax
push 0x6c9b07
call fcn.006105fc
add esp, 8
cmp dword [0x82d354], 0
je 0x63aef2
mov edx, 0x6c9b5f
jmp 0x63aef7
mov edx, 0x6c9b6a
push edx
push 0x6c9b40
call fcn.006105fc
add esp, 8
mov eax, dword [0x82d2e4]
and eax, 0xffff
push eax
push 0x6c9b77
call fcn.006105fc
add esp, 8
mov ecx, dword [0x82d2ec]
and ecx, 0xffff
push ecx
push 0x6c9b9a
call fcn.006105fc
add esp, 8
xor eax, eax
xor edx, edx
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x14], edx
xor ecx, ecx
mov dword [esp + 0x18], ecx
xor edx, edx
mov dword [esp + 0x3c], edx
mov dword [0x82476c], eax
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov ebx, 0x100
jmp 0x63af7f
sar ebx, 1
cmp ebx, dword [0x77be74]
jg 0x63af7d
cmp ebx, dword [0x77be78]
jg 0x63af7d
xor eax, eax
mov ecx, dword [0x82d178]
mov dword [esp + 0x18], eax
push 0
lea edx, [esp + 0x1c]
mov eax, ebx
push edx
push 2
push ecx
mov edx, dword [0x82d1f0]
push eax
push eax
push edx
mov ecx, dword [edx]
call dword [ecx + 0x90]
test eax, eax
jne 0x63b1be
xor eax, eax
mov dword [esp + 0x640], eax
xor edx, edx
mov dword [esp + 0x644], edx
mov dword [esp + 0x648], ebx
mov dword [esp + 0x64c], ebx
mov ecx, dword [0x82d178]
push ecx
call fcn.00652ab8
pop ecx
mov edi, eax
push 0x10
lea eax, [esp + 0x644]
push eax
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
jne 0x63b1be
push 0
call fcn.0061369c
pop ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
push 0x10
lea edx, [esp + 0x644]
mov ecx, dword [0x82d200]
push edx
push ebp
push ecx
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
jne 0x63b1be
xor esi, esi
cmp ebx, esi
jle 0x63b06f
movzx eax, word [edi + 2]
imul ebx
push eax
mov edx, dword [ebp]
imul edx, esi
add edx, dword [ebp + 4]
push edx
mov ecx, dword [esp + 0x2c]
imul ecx, esi
add ecx, dword [esp + 0x30]
push ecx
call fcn.0061125c
add esp, 0xc
inc esi
cmp ebx, esi
jg 0x63b045
mov eax, dword [0x82d200]
push eax
mov edx, dword [eax]
call dword [edx + 0x38]
push 0
call fcn.0061369c
pop ecx
sub eax, dword [esp + 0x2c]
sbb edx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
push 0
call fcn.0061369c
pop ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
push 0
lea ecx, [esp + 0x14]
mov eax, dword [0x82d178]
push ecx
push 0
push 0
push 0
mov esi, ebx
push eax
mov eax, dword [0x82d1f0]
push esi
push esi
push eax
mov edx, dword [eax]
call dword [edx + 0x70]
test eax, eax
jne 0x63b1be
push 0
lea ecx, [esp + 0x18]
push ecx
mov eax, dword [0x82d178]
push 2
push eax
mov edx, dword [0x82d1f0]
push esi
push esi
push edx
mov ecx, dword [edx]
call dword [ecx + 0x90]
test eax, eax
jne 0x63b1be
push 0
lea eax, [esp + 0x644]
push eax
mov eax, dword [0x82d200]
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x64c]
mov edx, dword [0x82d1f0]
push ecx
push eax
push edx
mov ecx, dword [edx]
call dword [ecx + 0x88]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x82d1f0]
push eax
mov edx, dword [esp + 0x14]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x80]
push 0x10
push 0
push ebp
mov edx, dword [esp + 0x20]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x34]
test eax, eax
jne 0x63b1be
xor esi, esi
cmp ebx, esi
jle 0x63b17c
movzx eax, word [edi + 2]
imul ebx
push eax
mov edx, dword [ebp]
imul edx, esi
add edx, dword [ebp + 4]
push edx
mov ecx, dword [esp + 0x2c]
imul ecx, esi
add ecx, dword [esp + 0x30]
push ecx
call fcn.0061125c
add esp, 0xc
inc esi
cmp ebx, esi
jg 0x63b152
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [eax]
call dword [edx + 0x38]
mov ecx, dword [esp + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov edx, dword [esp + 0x14]
push edx
mov ecx, dword [edx]
call dword [ecx + 8]
xor eax, eax
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push 0
call fcn.0061369c
pop ecx
sub eax, dword [esp + 0x34]
sbb edx, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
cmp dword [esp + 0x14], 0
je 0x63b1d5
mov ecx, dword [esp + 0x14]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
xor edx, edx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x10], 0
je 0x63b1ec
mov ecx, dword [esp + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
xor edx, edx
mov dword [esp + 0x10], edx
cmp dword [esp + 0x18], 0
je 0x63b203
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
xor edx, edx
mov dword [esp + 0x18], edx
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 3
jl 0x63af56
cmp dword [esp + 0x38], 0xffffffff
jne 0x63b21e
cmp dword [esp + 0x34], 0xffffffff
je 0x63b22e
cmp dword [esp + 0x30], 0xffffffff
jne 0x63b23b
cmp dword [esp + 0x2c], 0xffffffff
jne 0x63b23b
push 0x6c9bc1
call fcn.00610394
pop ecx
jmp 0x63b28c
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x30]
push eax
push 0x6c9be9
call fcn.00610684
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x38]
jne 0x63b268
cmp eax, dword [esp + 0x34]
jae 0x63b281
jmp 0x63b26a
jge 0x63b281
mov dword [0x82476c], 1
push 0x6c9c44
call fcn.00610394
pop ecx
jmp 0x63b28c
push 0x6c9c66
call fcn.00610394
pop ecx
xor eax, eax
jmp 0x63b293
or eax, 0xffffffff
add esp, 0x650
pop ebp
pop edi
pop esi
pop ebx
ret