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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x103f7cf8]
push ebx
push esi
push edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
cmp eax, dword [0x102d91d8]
je 0x100646b1
call fcn.1005b0d0
mov ecx, dword [0x103f7cf8]
mov edx, dword [esp + 0x24]
mov dword [0x102d91d8], ecx
mov ecx, dword [esp + 0x28]
mov dword [0x103faf80], eax
jmp 0x100646b6
mov eax, dword [0x103faf80]
mov ebx, dword [eax + 8]
xor esi, esi
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x2c], esi
cmp dword [0x103f7cc0], esi
je 0x100646ef
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
push dword [ebp + 0xc]
push edx
push ecx
push str.gl_defer_draw:_call_with_primitivetype:__u___vertextype:__u___vertexcount:__u___count:__u___clip:__d___mipmap:__d_n
push dword [0x104072b0]
push esi
push str.TRACE
call fcn.10067cf0
add esp, 0x28
cmp dword [0x10405bcc], esi
jne 0x1006470e
push 0x400
push 0xf8
call fcn.10093169
add esp, 8
mov dword [0x10405bcc], eax
cmp dword [0x103f7d34], esi
jne 0x1006473e
cmp dword [0x10405b30], esi
je 0x1006473e
cmp dword [0x10405b1c], esi
jne 0x1006473e
mov eax, dword [0x10405b08]
cmp eax, 4
je 0x10064747
test eax, eax
je 0x10064760
cmp ebx, 3
je 0x10064760
cmp ebx, 1
je 0x10064760
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x10405b00]
test eax, eax
je 0x1006473e
cmp dword [eax], esi
jne 0x10064760
mov eax, dword [eax + 0x84]
cmp dword [eax + 0x78], 2
jb 0x1006473e
cmp dword [esp + 0x28], 4
jne 0x1006473e
mov ecx, dword [0x10405bd0]
mov eax, 0xaaaaaaab
mul edi
mov ebx, edx
shr ebx, 1
mov dword [esp + 0x3c], ebx
lea eax, [ebx + ecx]
cmp eax, 0x400
jbe 0x100647b8
cmp dword [0x103f7cc0], esi
je 0x1006473e
push 0x400
push edi
push ecx
push str.gl_defer_draw:_deferred_draw_queue_overflow___num_deferred:__u___count:__u___DEFERRED_MAX:__u_n
push dword [0x104072b0]
push 0
push str.TRACE
call fcn.10067cf0
add esp, 0x1c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
push 4
call fcn.10093169
push ebx
push 4
mov dword [esp + 0x2c], eax
call fcn.10093169
add esp, 0x10
mov edx, eax
xor edi, edi
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x1006522f
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
add eax, 4
mov dword [esp + 0x40], eax
mov esi, eax
nop
movzx eax, word [esi - 4]
shl eax, 5
add eax, ecx
cmp dword [esp + 0x24], 3
jne 0x10064832
movss xmm6, dword [eax + 8]
addss xmm6, dword [edx + edi*4]
movss dword [edx + edi*4], xmm6
movzx eax, word [esi - 2]
shl eax, 5
addss xmm6, dword [eax + ecx + 8]
movss dword [edx + edi*4], xmm6
movzx eax, word [esi]
shl eax, 5
addss xmm6, dword [eax + ecx + 8]
jmp 0x10064ec0
movss xmm2, dword [eax + 4]
movss xmm3, dword [eax]
movaps xmm0, xmm2
mulss xmm0, dword [0x10405b58]
movaps xmm7, xmm3
mulss xmm7, dword [0x10405b48]
movaps xmm6, xmm3
movss xmm1, dword [eax + 8]
movaps xmm4, xmm3
mulss xmm6, dword [0x10405b4c]
addss xmm7, xmm0
mulss xmm4, dword [0x10405b50]
movaps xmm0, xmm1
mulss xmm3, dword [0x10405b54]
mulss xmm0, dword [0x10405b68]
addss xmm7, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x10405b5c]
addss xmm6, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b6c]
addss xmm7, dword [0x10405b78]
addss xmm6, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x10405b60]
mulss xmm2, dword [0x10405b64]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b70]
mulss xmm1, dword [0x10405b74]
addss xmm3, xmm2
addss xmm6, dword [0x10405b7c]
addss xmm4, xmm0
addss xmm3, xmm1
movaps xmm1, xmm6
addss xmm4, dword [0x10405b80]
mulss xmm1, dword [0x10405b98]
addss xmm3, dword [0x10405b84]
movaps xmm0, xmm4
mulss xmm0, dword [0x10405ba8]
movaps xmm5, xmm3
movss dword [esp + 0x10], xmm3
mulss xmm5, dword [0x10405bb8]
mulss xmm3, dword [0x10405bbc]
addss xmm5, xmm0
movss xmm2, dword [esp + 0x10]
mulss xmm2, dword [0x10405bc0]
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b88]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10405bac]
addss xmm3, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b8c]
addss xmm5, xmm1
movaps xmm1, xmm6
mulss xmm1, dword [0x10405b9c]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10405bb0]
mulss xmm4, dword [0x10405bb4]
addss xmm2, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b90]
addss xmm3, xmm1
mulss xmm7, dword [0x10405b94]
movaps xmm1, xmm6
mulss xmm1, dword [0x10405ba0]
mulss xmm6, dword [0x10405ba4]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x10405bc4]
addss xmm6, xmm7
addss xmm0, xmm4
addss xmm2, xmm1
addss xmm0, xmm6
movaps xmm4, xmm2
mulss xmm4, dword [0x102d91c0]
movss dword [esp + 0x10], xmm0
mulss xmm0, dword [0x102d91d0]
addss xmm4, xmm0
mulss xmm2, dword [0x102d91c4]
movaps xmm0, xmm3
movaps xmm1, xmm5
mulss xmm0, dword [0x102d91b0]
mulss xmm1, dword [0x102d91a0]
mulss xmm3, dword [0x102d91b4]
mulss xmm5, dword [0x102d91a4]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x102d91d4]
addss xmm5, xmm3
addss xmm4, xmm1
addss xmm2, xmm0
addss xmm2, xmm5
divss xmm4, xmm2
addss xmm4, dword [edx + edi*4]
movss dword [edx + edi*4], xmm4
movzx eax, word [esi - 2]
shl eax, 5
movss dword [esp + 0x38], xmm4
movss xmm2, dword [eax + ecx + 4]
movss xmm3, dword [eax + ecx]
movaps xmm7, xmm2
mulss xmm7, dword [0x10405b58]
movaps xmm0, xmm3
mulss xmm0, dword [0x10405b48]
movaps xmm6, xmm2
movss xmm1, dword [eax + ecx + 8]
movaps xmm4, xmm3
mulss xmm6, dword [0x10405b5c]
addss xmm7, xmm0
mulss xmm4, dword [0x10405b50]
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b68]
addss xmm7, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x10405b4c]
mulss xmm3, dword [0x10405b54]
addss xmm6, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b6c]
addss xmm7, dword [0x10405b78]
addss xmm6, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x10405b60]
mulss xmm2, dword [0x10405b64]
addss xmm6, dword [0x10405b7c]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b70]
addss xmm3, xmm2
mulss xmm1, dword [0x10405b74]
addss xmm4, xmm0
addss xmm3, xmm1
movaps xmm1, xmm6
mulss xmm1, dword [0x10405b98]
addss xmm4, dword [0x10405b80]
addss xmm3, dword [0x10405b84]
movaps xmm0, xmm4
mulss xmm0, dword [0x10405ba8]
movaps xmm5, xmm3
movss dword [esp + 0x10], xmm3
mulss xmm5, dword [0x10405bb8]
mulss xmm3, dword [0x10405bbc]
addss xmm5, xmm0
movss xmm2, dword [esp + 0x10]
mulss xmm2, dword [0x10405bc0]
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b88]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10405bac]
addss xmm5, xmm1
movaps xmm1, xmm6
mulss xmm1, dword [0x10405b9c]
addss xmm3, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b8c]
addss xmm1, xmm0
addss xmm3, xmm1
movaps xmm0, xmm4
movaps xmm1, xmm6
mulss xmm0, dword [0x10405bb0]
mulss xmm1, dword [0x10405ba0]
mulss xmm6, dword [0x10405ba4]
addss xmm2, xmm0
mulss xmm4, dword [0x10405bb4]
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b90]
mulss xmm7, dword [0x10405b94]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x10405bc4]
addss xmm6, xmm7
addss xmm0, xmm4
addss xmm2, xmm1
addss xmm0, xmm6
movaps xmm6, xmm5
mulss xmm6, dword [0x102d91a0]
movaps xmm1, xmm2
mulss xmm1, dword [0x102d91c0]
mulss xmm5, dword [0x102d91a4]
mulss xmm2, dword [0x102d91c4]
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x102d91b0]
movss xmm4, dword [esp + 0x10]
mulss xmm3, dword [0x102d91b4]
addss xmm6, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x102d91d0]
mulss xmm4, dword [0x102d91d4]
addss xmm5, xmm3
addss xmm1, xmm0
addss xmm2, xmm4
addss xmm6, xmm1
addss xmm5, xmm2
divss xmm6, xmm5
addss xmm6, dword [esp + 0x38]
movss dword [edx + edi*4], xmm6
movzx eax, word [esi]
shl eax, 5
movss dword [esp + 0x38], xmm6
movss xmm3, dword [eax + ecx]
movss xmm2, dword [eax + ecx + 4]
movaps xmm0, xmm3
mulss xmm0, dword [0x10405b48]
movaps xmm7, xmm2
mulss xmm7, dword [0x10405b58]
movaps xmm6, xmm2
movss xmm1, dword [eax + ecx + 8]
movaps xmm4, xmm3
mulss xmm6, dword [0x10405b5c]
addss xmm7, xmm0
mulss xmm4, dword [0x10405b50]
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b68]
addss xmm7, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x10405b4c]
mulss xmm3, dword [0x10405b54]
addss xmm6, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10405b6c]
addss xmm7, dword [0x10405b78]
addss xmm6, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x10405b60]
mulss xmm2, dword [0x10405b64]
addss xmm6, dword [0x10405b7c]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x10405b74]
addss xmm3, xmm2
mulss xmm0, dword [0x10405b70]
addss xmm3, xmm1
addss xmm4, xmm0
addss xmm3, dword [0x10405b84]
addss xmm4, dword [0x10405b80]
movss dword [esp + 0x10], xmm3
movaps xmm5, xmm3
mulss xmm5, dword [0x10405bb8]
movaps xmm0, xmm4
mulss xmm0, dword [0x10405ba8]
movaps xmm1, xmm6
mulss xmm1, dword [0x10405b98]
mulss xmm3, dword [0x10405bbc]
addss xmm5, xmm0
movss xmm2, dword [esp + 0x10]
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b88]
mulss xmm2, dword [0x10405bc0]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10405bac]
addss xmm3, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b8c]
addss xmm5, xmm1
movaps xmm1, xmm6
mulss xmm1, dword [0x10405b9c]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10405bb0]
mulss xmm4, dword [0x10405bb4]
addss xmm2, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x10405b90]
addss xmm3, xmm1
mulss xmm7, dword [0x10405b94]
movaps xmm1, xmm6
mulss xmm1, dword [0x10405ba0]
mulss xmm6, dword [0x10405ba4]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x10405bc4]
addss xmm6, xmm7
addss xmm0, xmm4
addss xmm2, xmm1
addss xmm0, xmm6
movaps xmm6, xmm5
mulss xmm6, dword [0x102d91a0]
movaps xmm1, xmm2
mulss xmm5, dword [0x102d91a4]
mulss xmm1, dword [0x102d91c0]
mulss xmm2, dword [0x102d91c4]
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x102d91b0]
movss xmm4, dword [esp + 0x10]
mulss xmm3, dword [0x102d91b4]
addss xmm6, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x102d91d0]
mulss xmm4, dword [0x102d91d4]
addss xmm5, xmm3
addss xmm1, xmm0
addss xmm2, xmm4
addss xmm6, xmm1
addss xmm5, xmm2
divss xmm6, xmm5
addss xmm6, dword [esp + 0x38]
mulss xmm6, dword [0x102d0bf0]
add esi, 6
movss dword [edx + edi*4], xmm6
inc edi
cmp edi, ebx
jb 0x100647f0
mov esi, dword [esp + 0x2c]
nop dword [eax]
movss xmm1, dword [edx + esi*4]
xor ecx, ecx
xor esi, esi
movss dword [esp + 0x28], xmm1
mov dword [esp + 0x10], esi
movaps xmm4, xmm1
shufps xmm4, xmm4, 0
cmp ebx, 8
jb 0x10064f87
movaps xmm5, xmmword [0x102d0c60]
mov eax, ebx
and eax, 0xfffffff8
xorps xmm2, xmm2
xorps xmm3, xmm3
movups xmm1, xmmword [edx + ecx*4]
movaps xmm0, xmm2
cmpeqps xmm1, xmm4
paddd xmm0, xmm5
pand xmm0, xmm1
pandn xmm1, xmm2
por xmm0, xmm1
movups xmm1, xmmword [edx + ecx*4 + 0x10]
add ecx, 8
movaps xmm2, xmm0
movaps xmm0, xmm5
paddd xmm0, xmm3
cmpeqps xmm1, xmm4
pand xmm0, xmm1
pandn xmm1, xmm3
por xmm0, xmm1
movaps xmm3, xmm0
cmp ecx, eax
jb 0x10064f15
paddd xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd esi, xmm2
cmp ecx, ebx
jae 0x10065004
movss xmm1, dword [esp + 0x28]
mov eax, ebx
sub eax, ecx
cmp eax, 4
jb 0x10064ff0
mov edi, ebx
lea edx, [edx + ecx*4]
sub edi, ecx
add edx, 8
sub edi, 4
shr edi, 2
inc edi
lea ecx, [ecx + edi*4]
movss xmm0, dword [edx - 8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10064fb3
inc esi
movss xmm0, dword [edx - 4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10064fc2
inc esi
movss xmm0, dword [edx]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10064fd0
inc esi
movss xmm0, dword [edx + 4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10064fdf
inc esi
add edx, 0x10
sub edi, 1
jne 0x10064fa4
cmp ecx, ebx
jae 0x10065004
mov edx, dword [esp + 0x20]
nop
movss xmm0, dword [edx + ecx*4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10064fff
inc esi
inc ecx
cmp ecx, ebx
jb 0x10064ff0
imul ebx, dword [0x10405bd0], 0xf8
lea ecx, [esi + esi*2]
mov eax, dword [0x10405bcc]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x38], ecx
mov dword [ebx + eax + 0x18], edx
mov edx, dword [ebp + 0x1c]
mov dword [ebx + eax + 0x1c], edx
mov edx, dword [esp + 0x24]
mov dword [ebx + eax + 0xc], ecx
mov dword [ebx + eax], 4
mov dword [ebx + eax + 4], edx
mov dword [ebx + eax + 8], ecx
lea eax, [esi + esi*2]
add eax, eax
push eax
call fcn.10092b15
mov edi, dword [0x10405bcc]
add esp, 4
mov dword [esp + 0x18], edi
mov dword [ebx + edi + 0x14], eax
lea eax, [esi + esi*2]
shl eax, 5
push eax
call fcn.10092b15
movss xmm1, dword [esp + 0x2c]
mov ecx, 0x32
mov edx, dword [esp + 0x24]
mov esi, 0x10405b00
mov dword [ebx + edi + 0x10], eax
add esp, 4
mov eax, dword [esp + 0x1c]
add edi, 0x20
add edi, ebx
mov dword [esp + 0x34], 0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
xor esi, esi
mov ecx, dword [esp + 0x40]
sub edx, eax
cvtps2pd xmm0, xmm1
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
mov dword [ebx + edi + 0xf0], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], ecx
movsd qword [ebx + edi + 0xe8], xmm0
nop dword [eax + eax]
cmp edx, dword [esp + 0x38]
jae 0x10065206
mov edi, dword [esp + 0x44]
movss xmm0, dword [edi + eax]
mov edi, dword [esp + 0x18]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100651b7
mov eax, dword [ebx + edi + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
je 0x100651b7
movzx eax, word [ecx - 4]
mov edx, dword [esp + 0x30]
shl eax, 5
add eax, dword [ebp + 8]
movups xmm0, xmmword [eax]
movups xmmword [edx + esi], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, edx
mov edx, dword [ebp + 8]
movups xmmword [eax + esi + 0x10], xmm0
movzx ecx, word [ecx - 2]
mov eax, dword [ebx + edi + 0x10]
shl ecx, 5
movups xmm0, xmmword [ecx + edx]
movups xmmword [eax + esi + 0x20], xmm0
movups xmm0, xmmword [ecx + edx + 0x10]
movups xmmword [eax + esi + 0x30], xmm0
mov eax, dword [esp + 0x28]
movzx ecx, word [eax]
mov eax, dword [ebx + edi + 0x10]
shl ecx, 5
movups xmm0, xmmword [ecx + edx]
movups xmmword [esi + eax + 0x40], xmm0
movups xmm0, xmmword [ecx + edx + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movups xmmword [esi + eax + 0x50], xmm0
mov eax, dword [ebx + edi + 0x14]
movzx edx, dx
mov word [eax + ecx*2], dx
mov eax, dword [ebx + edi + 0x14]
lea ecx, [edx + 1]
mov edi, dword [esp + 0x10]
mov word [eax + edi*2 + 2], cx
lea ecx, [edx + 2]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + edi + 0x14]
mov word [eax + edx*2 + 4], cx
add edx, 3
mov eax, dword [esp + 0x14]
add esi, 0x60
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], edx
mov dword [eax], 1
jmp 0x100651bb
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
add ecx, 6
inc edi
mov dword [esp + 0x28], ecx
add eax, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], eax
cmp edi, dword [esp + 0x3c]
jb 0x100650d0
cmp edx, dword [esp + 0x38]
jae 0x10065206
xor eax, eax
cmp dword [0x103f7c80], eax
push str.deferred_draw_z_mismatch_n
push dword [0x104072a8]
setne al
push eax
push str.ERROR
call fcn.10067cf0
add esp, 0x10
inc dword [0x10405bd0]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
cmp esi, ebx
jae 0x1006522f
mov eax, dword [esp + 0x1c]
nop dword [eax]
cmp dword [eax + esi*4], 0
je 0x10065253
inc esi
mov dword [esp + 0x2c], esi
cmp esi, ebx
jb 0x10065220
push dword [esp + 0x1c]
call fcn.10092afa
add esp, 4
push dword [esp + 0x20]
call fcn.10092afa
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
jmp 0x10064ee0