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

Disassembly:
push 0xffffffffffffffff
push 0x10e0f9db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x114
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x134]
mov esi, ecx
push str.PUBLICHACK
push eax
mov dword [esp + 0x28], esi
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098af48
lea ecx, [esp + 0x18]
call fcn.10929810
mov edi, dword [esp + 0x1c]
cmp edi, dword [0x1107b730]
jge 0x1098af2b
mov ebx, 4
mov ebp, 1
mov ecx, dword [0x1107b72c]
mov esi, dword [ecx + edi*4]
test byte [esi + 0x20], 4
jne 0x1098af16
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x1098aef0
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x1098aee7
call fcn.109c2d40
cmp esi, eax
je 0x1098af16
push esi
call fcn.10957260
mov dword [eax + 0x38], ebp
mov edx, dword [0x1107b72c]
mov eax, dword [edx + edi*4]
mov ecx, dword [eax + 0x20]
add esp, 4
or ecx, ebx
mov dword [eax + 0x20], ecx
lea ecx, [esp + 0x18]
call fcn.1090c880
mov edi, dword [esp + 0x1c]
cmp edi, dword [0x1107b730]
jl 0x1098aed1
xor eax, eax
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x120
ret 8
lea eax, [esp + 0x134]
push str.PALETTEHACK
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098b026
mov eax, dword [0x110b8b00]
test eax, eax
mov esi, dword [esp + 0x134]
jne 0x1098af8c
push 0x10e44b40
call fcn.10a276a0
add esp, 4
mov dword [0x110b8b00], eax
call fcn.10a224b0
mov edx, dword [0x110b8b00]
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
push ecx
push edx
push str.NAME
push esi
call fcn.109b9750
add esp, 0x14
test eax, eax
je 0x1098bbed
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [0x110a36dc]
mov eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x138]
add eax, 0xc
push eax
push str.Hacking_alpha_channel_in_palette_for_texture__s.
push ecx
call fcn.109baf50
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x5c]
add esp, 0xc
xor eax, eax
mov edx, dword [ecx + 0x2c]
lea esi, [edx + eax]
mov dl, byte [esi + 2]
mov byte [esi + 3], dl
mov edx, dword [ecx + 0x2c]
lea esi, [edx + eax]
mov dl, byte [esi + 6]
mov byte [esi + 7], dl
mov edx, dword [ecx + 0x2c]
lea esi, [edx + eax]
mov dl, byte [esi + 0xa]
mov byte [esi + 0xb], dl
mov edx, dword [ecx + 0x2c]
lea esi, [edx + eax]
mov dl, byte [esi + 0xe]
add eax, 0x10
cmp eax, 0x400
mov byte [esi + 0xf], dl
jl 0x1098afe2
mov eax, 1
jmp 0x1098af2d
lea eax, [esp + 0x134]
push str.DETAILHACK
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098b28d
mov edx, dword [esp + 0x134]
push 0xffffffffffffffff
lea ecx, [esp + 0x24]
push ecx
push str.NAME
push edx
call fcn.10933a20
add esp, 0x10
test eax, eax
mov ebx, 1
je 0x1098b26e
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0
mov eax, dword [esp + 0x28]
push eax
push 0
push ebx
push ebx
call fcn.10a25b10
mov eax, dword [esp + 0x20]
cmp dword [eax + 0xb8], ebx
jle 0x1098bbed
mov dword [esp + 0x14], 0x2c
lea ebx, [ebx]
mov ecx, dword [eax + 0xb4]
mov esi, dword [esp + 0x14]
mov edx, dword [ecx + esi + 0x10]
lea ecx, [ecx + esi + 0x10]
call dword [edx]
mov edx, dword [esp + 0x20]
cmp byte [edx + 0x44], 5
jne 0x1098b231
mov eax, dword [edx + 0xb4]
mov esi, dword [eax + esi + 0x20]
mov eax, dword [edx + 0x50]
mov ebp, dword [edx + 0x4c]
mov ecx, ebx
imul ecx, ebx
mov dword [esp + 0x24], ecx
mov ecx, ebx
fild dword [esp + 0x24]
sar eax, cl
sar ebp, cl
fstp dword [esp + 0x40]
test eax, eax
jle 0x1098b225
mov dword [esp + 0x24], eax
test ebp, ebp
jle 0x1098b21b
fld dword [esp + 0x40]
mov edi, ebp
fmul dword [0x10e4708c]
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fld dword [esp + 0x40]
mov dword [esp + 0x68], edx
fadd dword [0x10e45008]
fdivr dword [0x10e45008]
fstp dword [esp + 0x3c]
lea esp, [esp]
movzx eax, byte [esi + 2]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + 3]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x10e4e9dc]
mov ecx, dword [esp + 0x28]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], ecx
mov edx, ecx
fmul dword [0x10e4e9dc]
mov dword [esp + 0x64], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x6c]
push eax
fmul dword [0x10e4e9dc]
lea ecx, [esp + 0x1c]
fstp dword [esp + 0x88]
fild dword [esp + 0x14]
fmul dword [0x10e4e9dc]
fstp dword [esp + 0x8c]
fld dword [esp + 0x2c]
fadd st(2)
fstp dword [esp + 0x30]
fld dword [esp + 0x64]
fadd st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0x68]
fadd dword [esp + 0x88]
fld dword [esp + 0x6c]
fadd dword [esp + 0x8c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x30]
fmul dword [esp + 0x40]
fstp dword [esp + 0x70]
fxch st(1)
fmul dword [esp + 0x40]
fstp dword [esp + 0x74]
fmul dword [esp + 0x40]
fstp dword [esp + 0x78]
fld dword [esp + 0x3c]
fmul dword [esp + 0x40]
fstp dword [esp + 0x7c]
call fcn.1097fa00
mov ecx, dword [eax]
mov dword [esi], ecx
add esi, 4
dec edi
jne 0x1098b140
mov edx, dword [esp + 0x20]
dec dword [esp + 0x24]
jne 0x1098b105
or dword [edx + 0x88], 0x80
jmp 0x1098b246
mov edx, dword [esp + 0x138]
push str.Unsupported_texture_format.
push edx
call fcn.109baf50
add esp, 8
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xb8]
inc ebx
add edx, 0x2c
cmp ebx, ecx
mov dword [esp + 0x14], edx
jl 0x1098b0b0
mov eax, 1
jmp 0x1098af2d
mov eax, dword [esp + 0x138]
push str.Unknown_texture.
push eax
call fcn.109baf50
add esp, 8
mov eax, 1
jmp 0x1098af2d
lea ecx, [esp + 0x134]
push 0x10e5c870
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098b489
mov eax, dword [esp + 0x134]
push 0xffffffffffffffff
lea edx, [esp + 0x14]
push edx
push str.NAME
push eax
call fcn.1097f570
add esp, 0x10
test eax, eax
je 0x1098b3bd
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov edx, dword [esp + 0x134]
push ebp
lea ecx, [esp + 0x30]
push ecx
push str.FORMAT
push edx
mov dword [esp + 0x13c], ebp
call fcn.109bb350
add esp, 0x10
test eax, eax
je 0x1098b39f
push 0x10e59cb4
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 3
call fcn.109116a0
test eax, eax
je 0x1098b32a
mov dword [esp + 0x14], 7
jmp 0x1098b344
push 0x10e59ca8
lea ecx, [esp + 0x30]
call fcn.109116a0
test eax, eax
je 0x1098b344
mov dword [esp + 0x14], 8
mov ebx, dword [esp + 0x138]
mov edi, 0xd4
mov ecx, dword [esp + 0x10]
mov esi, dword [edi + ecx]
cmp esi, ebp
push ebp
je 0x1098b37f
mov eax, dword [esp + 0x18]
push 1
push eax
mov ecx, esi
call fcn.10a26ee0
test eax, eax
jne 0x1098b394
push ebp
push ebp
mov ecx, esi
call fcn.109c3600
push eax
push str.Compression_on_texture__s_failed.
jmp 0x1098b38b
push ebp
call fcn.109c3600
push eax
push str.Missing_face_in_cubemap__s.
push ebx
call fcn.109baf50
add esp, 0xc
add edi, 4
cmp edi, 0xec
jl 0x1098b350
lea ecx, [esp + 0x2c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.10902a90
mov eax, 1
jmp 0x1098af2d
mov edx, dword [esp + 0x134]
push 0xffffffffffffffff
lea ecx, [esp + 0x28]
push ecx
push str.NAME
push edx
call fcn.10933a20
add esp, 0x10
test eax, eax
je 0x1098b26e
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x134]
push edi
lea eax, [esp + 0x30]
push eax
push str.FORMAT
push ecx
mov dword [esp + 0x13c], 1
call fcn.109bb350
add esp, 0x10
test eax, eax
je 0x1098b39f
push 0x10e59cb4
lea ecx, [esp + 0x30]
mov esi, 3
call fcn.109116a0
test eax, eax
je 0x1098b437
mov esi, 7
jmp 0x1098b44e
push 0x10e59ca8
lea ecx, [esp + 0x30]
call fcn.109116a0
test eax, eax
je 0x1098b44e
mov esi, 8
mov ecx, dword [esp + 0x24]
push edi
push 1
push esi
call fcn.10a26ee0
test eax, eax
jne 0x1098b39f
mov ecx, dword [esp + 0x24]
push edi
push edi
call fcn.109c3600
mov edx, dword [esp + 0x138]
push eax
push str.Compression_on_texture__s_failed.
push edx
call fcn.109baf50
add esp, 0xc
jmp 0x1098b39f
lea ecx, [esp + 0x134]
push str.CLEAR
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098b4de
mov eax, dword [esp + 0x134]
push 0xffffffffffffffff
lea edx, [esp + 0x14]
push edx
push str.NAME
push eax
call fcn.10933a20
add esp, 0x10
test eax, eax
je 0x1098bbed
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
push 1
call dword [edx + 0xb0]
mov eax, 1
jmp 0x1098af2d
lea eax, [esp + 0x134]
push str.SCALE
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098b631
mov edx, dword [esp + 0x134]
lea ecx, [esp + 0x10]
push ecx
push str.DELTA
push edx
call fcn.109b9890
fld dword [esp + 0x1c]
fcomp dword [0x10e4500c]
add esp, 0xc
fnstsw ax
test ah, 0x41
jp 0x1098b530
push str.Invalid_DeltaScale_setting
jmp 0x1098bbd8
mov ecx, esi
call fcn.1097e480
test eax, eax
jne 0x1098b55f
mov ecx, dword [esp + 0x138]
push str.Current_viewport_not_found
push 0x300
push ecx
call fcn.109baec0
add esp, 0xc
mov eax, 1
jmp 0x1098af2d
mov ebp, dword [eax + 0x80]
test ebp, ebp
je 0x1098b58d
mov eax, dword [eax + 0x84]
test eax, eax
je 0x1098b58d
mov edx, dword [0x110a36dc]
mov eax, dword [edx + eax*4]
push 0
add eax, 0xc
push eax
push ebp
call fcn.1095ac10
add esp, 0xc
mov ebp, eax
mov ecx, dword [0x10fccc90]
mov edx, dword [0x10fccc9c]
push 8
push 0x4000
push 0x10fccc90
push 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
call fcn.1095b150
add esp, 0x10
lea ecx, [esp + 0x18]
mov ebx, eax
xor esi, esi
call fcn.109582d0
mov eax, dword [esp + 0x1c]
cmp eax, dword [0x1107b730]
jge 0x1098b606
cmp esi, 0x4000
jge 0x1098b606
mov ecx, dword [0x1107b72c]
mov edi, dword [ecx + eax*4]
push ebp
mov ecx, edi
call fcn.1097a690
test eax, eax
je 0x1098b5f1
mov dword [ebx + esi*4], edi
inc esi
lea ecx, [esp + 0x18]
call fcn.1090c880
mov eax, dword [esp + 0x1c]
cmp eax, dword [0x1107b730]
jl 0x1098b5d0
mov eax, dword [esp + 0x34]
cmp eax, dword [0x10fccc9c]
je 0x1098b61d
push eax
mov ecx, 0x10fccc90
call fcn.109fe480
mov edx, dword [esp + 0x30]
mov dword [0x10fccc90], edx
mov eax, 1
jmp 0x1098af2d
lea eax, [esp + 0x134]
push str.CULL
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098b97a
xor ebp, ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x12c], 2
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x34]
add eax, 0x30
cmp ecx, ebp
mov byte [esp + 0x12c], 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
jle 0x1098b7b6
jmp 0x1098b6a0
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [esp + 0x1c]
mov ebx, dword [edx + eax*4]
cmp ebx, ebp
je 0x1098b79e
call fcn.10906550
mov ecx, dword [ebx + 0x28]
cmp ecx, ebp
je 0x1098b6cc
cmp ecx, eax
je 0x1098b6d9
mov ecx, dword [ecx + 0x2c]
cmp ecx, ebp
jne 0x1098b6c1
xor ecx, ecx
cmp eax, ebp
sete cl
mov eax, ecx
cmp eax, ebp
je 0x1098b6e7
mov eax, dword [ebx + 0x98]
mov esi, dword [eax + 0x90]
jmp 0x1098b6ed
mov esi, dword [ebx + 0x258]
cmp esi, ebp
je 0x1098b79e
mov eax, dword [esi + 0xa0]
xor edi, edi
cmp eax, ebp
jle 0x1098b72a
mov eax, dword [esi + 0x9c]
mov edx, edi
shl edx, 6
mov ecx, dword [eax + edx]
add eax, edx
cmp ecx, ebp
je 0x1098b71f
push eax
lea ecx, [esp + 0x48]
call fcn.10981950
mov eax, dword [esi + 0xa0]
inc edi
cmp edi, eax
jl 0x1098b701
cmp dword [esi + 0x58], ebp
je 0x1098b79e
call fcn.109068b0
mov ecx, dword [ebx + 0x28]
cmp ecx, ebp
je 0x1098b74b
jmp 0x1098b740
cmp ecx, eax
je 0x1098b758
mov ecx, dword [ecx + 0x2c]
cmp ecx, ebp
jne 0x1098b740
xor ecx, ecx
cmp eax, ebp
sete cl
mov eax, ecx
cmp eax, ebp
je 0x1098b79e
mov esi, dword [esi + 0x58]
mov eax, dword [esi + 0x30]
add esi, 0x2c
xor edi, edi
cmp eax, ebp
jle 0x1098b79e
jmp 0x1098b770
mov eax, dword [esi]
mov edx, edi
imul edx, edx, 0x148
mov ecx, dword [edx + eax + 0xf8]
cmp ecx, ebp
lea eax, [edx + eax + 0xf8]
je 0x1098b796
push eax
lea ecx, [esp + 0x48]
call fcn.10981950
mov eax, dword [esi + 4]
inc edi
cmp edi, eax
jl 0x1098b770
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jl 0x1098b6a0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x114]
add eax, 0x30
mov dword [esp + 0x18], eax
mov eax, dword [eax + 4]
cmp eax, ebp
mov dword [esp + 0x1c], ebp
jle 0x1098b8a6
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 0x1c]
mov esi, dword [ecx + edx*4]
test esi, esi
je 0x1098b88c
call fcn.10906550
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1098b802
cmp ecx, eax
je 0x1098b80f
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
jne 0x1098b7f7
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je 0x1098b81d
mov esi, dword [esi + 0x98]
mov esi, dword [esi + 0x90]
jmp 0x1098b823
mov esi, dword [esi + 0x258]
test esi, esi
je 0x1098b88c
mov ebp, dword [esi + 0x58]
test ebp, ebp
je 0x1098b88c
mov eax, dword [ebp + 0x30]
xor ebx, ebx
test eax, eax
jle 0x1098b88c
jmp 0x1098b840
mov edx, dword [ebp + 0x2c]
mov esi, ebx
imul esi, esi, 0x148
mov eax, dword [esi + edx + 0xf8]
test eax, eax
lea edi, [esi + edx + 0xf8]
je 0x1098b884
push edi
lea ecx, [esp + 0x48]
call fcn.1097e6b0
cmp eax, 0xffffffff
jne 0x1098b884
push edi
lea ecx, [esp + 0x30]
call fcn.10981950
mov eax, dword [ebp + 0x2c]
mov dword [esi + eax + 0xf8], 0
mov eax, dword [ebp + 0x30]
inc ebx
cmp ebx, eax
jl 0x1098b840
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jl 0x1098b7d6
xor ebp, ebp
mov edx, dword [0x10f43370]
push str.TEXTURE_CULLING_SUMMARY
push edx
call fcn.109baf50
mov eax, dword [0x10f43370]
push str.__REFERENCED
push eax
call fcn.109baf50
mov eax, dword [esp + 0x58]
add esp, 0x10
xor esi, esi
cmp eax, ebp
jle 0x1098b8ff
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + esi*4]
push ebp
call fcn.109c36f0
mov edx, dword [0x10f43370]
push eax
push 0x10e5c6e4
push edx
call fcn.109baf50
mov eax, dword [esp + 0x54]
add esp, 0xc
inc esi
cmp esi, eax
jl 0x1098b8d4
mov eax, dword [0x10f43370]
push str.__CULLED
push eax
call fcn.109baf50
mov eax, dword [esp + 0x38]
add esp, 8
xor esi, esi
cmp eax, ebp
jle 0x1098b94b
lea esp, [esp]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + esi*4]
push ebp
call fcn.109c36f0
mov edx, dword [0x10f43370]
push eax
push 0x10e5c6e4
push edx
call fcn.109baf50
mov eax, dword [esp + 0x3c]
add esp, 0xc
inc esi
cmp esi, eax
jl 0x1098b920
lea ecx, [esp + 0x2c]
mov byte [esp + 0x12c], 2
call fcn.10982610
lea ecx, [esp + 0x44]
mov dword [esp + 0x12c], 0xffffffff
call fcn.10982610
mov eax, 1
jmp 0x1098af2d
lea eax, [esp + 0x134]
push 0x10e5b11c
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098bbf7
mov ecx, dword [esp + 0x134]
push 0
push 0x40
push 0x10fabde0
push str.NAME
push ecx
mov dword [esp + 0x38], 0
call fcn.109b9410
add esp, 0x14
test eax, eax
je 0x1098bbd3
mov eax, dword [esp + 0x134]
push 0xffffffffffffffff
lea edx, [esp + 0x18]
push edx
push 0x10e4bef8
push eax
call fcn.10917e20
add esp, 0x10
test eax, eax
je 0x1098bbd3
mov edx, dword [esp + 0x134]
lea ecx, [esp + 0x3c]
push ecx
push str.USIZE
push edx
call fcn.109b98d0
add esp, 0xc
test eax, eax
je 0x1098bbd3
mov ecx, dword [esp + 0x134]
lea eax, [esp + 0x40]
push eax
push str.VSIZE
push ecx
call fcn.109b98d0
add esp, 0xc
test eax, eax
je 0x1098bbd3
mov eax, dword [esp + 0x134]
lea edx, [esp + 0x10]
push edx
push 0x10e4c450
push eax
call fcn.109b97e0
add esp, 0xc
test eax, eax
je 0x1098bbd3
call fcn.10905ce0
mov ecx, dword [esp + 0x14]
push eax
call fcn.10917f60
test eax, eax
je 0x1098bbd3
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1098bbd3
mov ecx, dword [0x110a36dc]
mov edx, dword [ecx + eax*4]
add edx, 0xc
push edx
push 0
call fcn.109c9200
mov esi, eax
lea eax, [esp + 0x2c]
push eax
mov dword [esi + 0x38], 1
mov ecx, dword [esp + 0x140]
push str.GROUP
push ecx
call fcn.109b97e0
add esp, 0x14
test eax, eax
je 0x1098bacd
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1098bacd
mov edx, dword [0x110a36dc]
mov eax, dword [edx + eax*4]
add eax, 0xc
push eax
push esi
call fcn.109c9200
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0x14]
push 0
push 0x10fabde0
push esi
push ecx
call fcn.109ca290
add esp, 0x10
test eax, eax
jne 0x1098bbaf
mov edx, dword [0x10f43374]
push eax
push edx
push eax
push 0x80004
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 1
push 0x10fabde0
call fcn.109d7850
mov eax, dword [esp + 0x28]
push esi
push eax
call fcn.109cd900
push eax
call fcn.109264c0
mov edi, eax
push edi
call fcn.1097ee20
mov esi, eax
add esp, 0x24
test esi, esi
je 0x1098bb84
mov eax, dword [esi + 0x5c]
test eax, eax
jne 0x1098bb70
push 4
push ecx
mov eax, esp
mov dword [eax], 0
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], esp
push eax
push 0x38
call fcn.109245b0
add esp, 0x10
test eax, eax
je 0x1098bb5e
mov ecx, eax
call fcn.10a24920
jmp 0x1098bb60
xor eax, eax
push 0x100
lea ecx, [eax + 0x2c]
mov dword [esi + 0x5c], eax
call fcn.1097dc10
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esi]
push eax
push ecx
mov ecx, esi
call dword [edx + 0xb4]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x24]
test esi, esi
je 0x1098bb9b
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax + 0xb0]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x11c], edi
mov eax, 1
jmp 0x1098af2d
mov edx, dword [esp + 0x138]
push str.Texture_exists
push 0x300
push edx
call fcn.109baec0
add esp, 0xc
mov eax, 1
jmp 0x1098af2d
push str.Bad_TEXTURE_NEW
mov eax, dword [esp + 0x13c]
push 0x300
push eax
call fcn.109baec0
add esp, 0xc
mov eax, 1
jmp 0x1098af2d
lea ecx, [esp + 0x134]
push str.DUPLICATE
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098af2b
mov eax, dword [esi + 0x11c]
xor ebx, ebx
cmp eax, ebx
je 0x1098af2b
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x12c], 4
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov eax, dword [esp + 0x134]
push ebx
lea edx, [esp + 0x70]
push edx
push 0x10e4c450
push eax
mov byte [esp + 0x13c], 6
call fcn.109bb350
mov eax, dword [esp + 0x80]
add esp, 0x10
cmp eax, ebx
mov eax, dword [esp + 0x6c]
jne 0x1098bc90
mov eax, 0x10e43c3c
push eax
push ebx
call fcn.109c9200
push ebx
lea ecx, [esp + 0x88]
mov edi, eax
push ecx
mov dword [edi + 0x38], 1
mov edx, dword [esp + 0x144]
push str.GROUP
push edx
call fcn.109bb350
add esp, 0x18
test eax, eax
je 0x1098bcdb
cmp dword [esp + 0x80], ebx
je 0x1098bcdb
mov eax, dword [esp + 0x7c]
push eax
push edi
call fcn.109c9200
add esp, 8
mov edi, eax
mov edx, dword [esp + 0x134]
push ebx
lea ecx, [esp + 0x54]
push ecx
push str.NAME
push edx
call fcn.109bb350
add esp, 0x10
test eax, eax
je 0x1098bed8
cmp dword [esp + 0x54], ebx
mov eax, dword [esp + 0x50]
jne 0x1098bd0d
mov eax, 0x10e43c3c
push ebx
push eax
push edi
call fcn.10905ce0
push eax
call fcn.109ca290
add esp, 0x10
test eax, eax
jne 0x1098bebe
mov eax, dword [0x10fcef24]
mov ecx, dword [0x10fceedc]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
or ecx, 8
cmp eax, ebx
mov dword [0x10fceedc], ecx
mov dword [0x10fcef24], ebx
jne 0x1098bd55
mov edx, 0x10e43c3c
mov ecx, dword [0x10f43374]
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp + 0x11c]
mov esi, dword [eax + 0x28]
push ebx
push ecx
push eax
push 0x80004
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 1
push edx
call fcn.109d7850
push edi
push esi
call fcn.109cd900
push eax
call fcn.10939b80
add esp, 0x20
mov esi, eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0xdc]
call fcn.1097df10
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x90]
call fcn.1097de50
mov ecx, dword [ebp + 0x11c]
mov edx, dword [ecx]
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x130], 9
call dword [edx + 0x2c]
mov edx, dword [esi]
lea eax, [esp + 0x8c]
push eax
mov ecx, esi
call dword [edx + 0x2c]
push esi
call fcn.1097ee20
mov ecx, dword [ebp + 0x11c]
push ecx
mov edi, eax
call fcn.1097ee20
add esp, 8
cmp edi, ebx
mov ebp, eax
je 0x1098be6a
cmp dword [ebp + 0x5c], ebx
je 0x1098be6a
push 4
push ecx
mov eax, esp
mov dword [eax], ebx
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x20], esp
push eax
push 0x38
call fcn.109245b0
add esp, 0x10
cmp eax, ebx
je 0x1098be31
mov ecx, eax
call fcn.10a24920
jmp 0x1098be33
xor eax, eax
push 0x100
lea ecx, [eax + 0x2c]
mov dword [edi + 0x5c], eax
call fcn.1097dc10
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ecx + 0x30]
xor eax, eax
cmp edx, ebx
jle 0x1098be6a
nop
mov edx, dword [ecx + 0x2c]
mov ecx, dword [edi + 0x5c]
mov edx, dword [edx + eax*4]
mov ecx, dword [ecx + 0x2c]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ecx + 0x30]
inc eax
cmp eax, edx
jl 0x1098be50
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x48]
mov eax, dword [0x10fceedc]
mov ecx, dword [esp + 0x20]
and eax, 0xfffffff7
mov dword [0x10fceedc], eax
mov eax, dword [esp + 0x10]
mov dword [0x10fcef24], eax
mov eax, 0x10e48600
mov dword [ecx + 0x11c], esi
lea ecx, [esp + 0x5c]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xd8], eax
mov byte [esp + 0x12c], 6
call fcn.10926770
jmp 0x1098bed8
mov edx, dword [esp + 0x138]
push str.Texture_exists
push 0x300
push edx
call fcn.109baec0
add esp, 0xc
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
push ebx
push ebx
push 0x32
mov ecx, esi
call dword [eax + 0xcc]
mov edx, dword [esi]
push 0x1fd
push 1
push 0x37
mov ecx, esi
call dword [edx + 0xcc]
lea ecx, [esp + 0x50]
mov byte [esp + 0x12c], 5
call fcn.10902a90
lea ecx, [esp + 0x7c]
mov byte [esp + 0x12c], 4
call fcn.10902a90
lea ecx, [esp + 0x6c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.10902a90
mov eax, 1
jmp 0x1098af2d