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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [0x7405c794]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [edx]
push ebx
mov ebx, ecx
mov dword [esp + 0x10], eax
lea eax, [edx + 0xc]
mov dword [esp + 0x24], eax
push esi
and dword [ebx + 0x1264], 0
mov eax, dword [ebx + 0x1260]
push edi
test eax, eax
je 0x74015b43
push eax
call sym.d3dim.dll_D3DFree
and dword [ebx + 0x1260], 0
mov eax, dword [ebx]
mov esi, dword [eax + 0x64]
mov ecx, esi
call dword [0x74063138]
mov ecx, ebx
call esi
test eax, eax
jne 0x74015f29
mov eax, dword [ebx + 0xfb8]
lea ecx, [ebx + 0xf30]
mov eax, dword [eax + 0xac]
shl eax, 5
cmp eax, dword [ecx + 8]
jbe 0x74015b8b
add eax, 0x400
push eax
push ebx
call fcn.74004022
jmp 0x74015b8d
xor eax, eax
test eax, eax
jne 0x74015f29
mov eax, dword [ebx + 0xfb8]
lea ecx, [ebx + 0xf24]
mov eax, dword [eax + 0xac]
add eax, eax
cmp eax, dword [ecx + 8]
jbe 0x74015bbb
add eax, 0x400
push eax
call fcn.74003e88
jmp 0x74015bbd
xor eax, eax
test eax, eax
jne 0x74015f29
mov esi, dword [esp + 0x18]
lea edi, [esp + 0x48]
stosd dword es:[edi], eax
mov edx, dword [esi + 4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0x14
push eax
call fcn.74019730
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x74015bfd
jmp 0x74015f29
mov eax, dword [ebx + 0xf40]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0xf44]
and dword [ebx + 0xf44], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xf48]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xf4c]
and dword [ebx + 0xf4c], 0
mov dword [esp + 0x20], eax
mov eax, fcn.74014d70
mov dword [ebx + 0xf40], eax
mov dword [ebx + 0xf48], eax
mov esi, dword [esi + 0x10]
add esi, ecx
mov dword [ebx + 0x1278], esi
mov dword [esp + 0xc], esi
mov al, byte [esi]
cmp al, 0xb
je 0x74015ed6
movzx eax, al
lea edx, [esi + 4]
mov dword [esp + 0x14], edx
cmp eax, 8
ja 0x74015e3b
je 0x74015d9e
sub eax, 3
je 0x74015cf1
sub eax, 1
je 0x74015ce3
sub eax, 1
je 0x74015cbc
sub eax, 1
jne 0x74015e4f
push edx
movzx edx, word [esi + 2]
mov ecx, ebx
call fcn.7401509a
pop ecx
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x74015f7d
movzx eax, word [esi + 2]
lea esi, [esi + eax*8]
add esi, 4
jmp 0x74015f62
push edx
movzx edx, word [esi + 2]
mov ecx, ebx
call fcn.7401500c
pop ecx
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x74015f7d
movzx eax, word [esi + 2]
imul eax, eax, 0xc
jmp 0x74015f5d
push edx
movzx edx, word [esi + 2]
mov ecx, ebx
call fcn.74014f78
jmp 0x74015c9e
mov eax, dword [ebx + 0x15d0]
cmp dword [eax + 0x78], 0
jne 0x74015cad
test byte [ebx + 0xf1c], 4
lea edi, [ebx + 0x1268]
mov esi, dword [esp + 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xc]
je 0x74015d5a
mov dword [ebx + 0xe4c], 4
mov ecx, ebx
movzx eax, word [esi + 2]
imul eax, eax, 3
mov dword [ebx + 0xe30], eax
movzx eax, word [esi + 2]
mov dword [ebx + 0xe48], eax
mov eax, dword [ebx + 0xf3c]
add eax, dword [ebx + 0xf34]
mov dword [ebx + 0xe28], eax
mov dword [ebx + 0xe34], edx
call fcn.74014d70
jmp 0x74015d97
movzx ecx, word [esi + 2]
imul eax, ecx, 3
mov dword [ebx + 0xe48], ecx
lea ecx, [ebx + 0x10]
mov dword [ebx + 0xe4c], 4
mov dword [ebx + 0xe30], eax
mov eax, dword [ebx + 0xf3c]
add eax, dword [ebx + 0xf34]
mov dword [ebx + 0xe28], eax
mov dword [ebx + 0xe34], edx
call fcn.74023da6
test eax, eax
jmp 0x74015ca7
xor eax, eax
lea edi, [esp + 0x34]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebx + 0x1224]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov eax, esi
sub eax, ecx
add eax, 4
mov dword [esp + 0x38], eax
movzx eax, word [esi + 2]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xfb4]
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x74015df4
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call dword [0x74063138]
call edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x74015df9
and dword [esp + 0x10], 0
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x74015f79
movzx eax, word [esi + 2]
xor edi, edi
and dword [esp + 0xc], edi
mov ecx, eax
cmp word [esp + 0xc], ax
jae 0x74015e33
mov ecx, ebx
call fcn.74014b5b
mov edx, dword [esp + 0x14]
inc edi
movzx ecx, word [esi + 2]
add edx, 8
mov dword [esp + 0x14], edx
cmp edi, ecx
jb 0x74015e18
movzx eax, cx
jmp 0x74015cb1
sub eax, 9
je 0x74015f3b
sub eax, 3
je 0x74015ea9
dec eax
sub eax, 1
je 0x74015e64
movzx ecx, word [esi + 2]
movzx eax, byte [esi + 1]
add esi, 4
imul ecx, eax
add esi, ecx
jmp 0x74015f62
mov eax, dword [edx]
test al, 1
je 0x74015e75
mov eax, dword [edx + 4]
mov dword [ebx + 0x12e0], eax
mov eax, dword [edx]
test al, 2
je 0x74015e9d
fild dword [edx + 8]
fstp dword [ebx + 0xea4]
fild dword [edx + 0xc]
fstp dword [ebx + 0xea8]
fild dword [edx + 0x10]
fstp dword [ebx + 0xeac]
fild dword [edx + 0x14]
fstp dword [ebx + 0xeb0]
movzx eax, word [esi + 2]
imul eax, eax, 0x18
jmp 0x74015f5d
mov eax, dword [ebx + 0x12e0]
and eax, dword [edx]
cmp dword [edx + 8], 0
je 0x74015ec2
cmp eax, dword [edx + 4]
je 0x74015f56
jmp 0x74015ecb
cmp eax, dword [edx + 4]
jne 0x74015f56
mov eax, dword [edx + 0xc]
test eax, eax
jne 0x74015f60
mov esi, dword [esp + 0x18]
mov edx, dword [esi + 4]
call fcn.740197d6
lea eax, [esi + 0x24]
mov ecx, ebx
push eax
lea edx, [ebx + 0xea4]
call fcn.74020b23
mov eax, dword [ebx + 0x12e0]
add esp, 4
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0xf48], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0xf4c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xf40], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0xf44], eax
xor eax, eax
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.74045bf0
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x48]
mov ecx, ebx
push eax
push edx
movzx edx, word [esi + 2]
call fcn.74015195
mov dword [esp + 0x18], eax
pop ecx
pop ecx
test eax, eax
jne 0x74015f7d
movzx eax, word [esi + 2]
shl eax, 4
add esi, 4
add esi, eax
mov al, byte [esi]
mov dword [esp + 0xc], esi
cmp al, 0xb
je 0x74015ed6
mov ecx, dword [esp + 0x58]
jmp 0x74015c61
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 4]
call fcn.740197d6
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0xf48], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0xf4c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xf40], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0xf44], eax
mov eax, dword [esp + 0x10]
jmp 0x74015f29