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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
push ebx
push esi
mov ebx, ecx
cmp dword [ebx + 0x70], 0
push edi
mov esi, edx
je 0x4bc3b8
cmp dword [ebx + 0x9c], 0
je 0x4bc3b8
fld dword [ebx + 0x74]
lea eax, [esp + 0xa0]
fstp dword [esp + 0x6c]
fld dword [ebx + 0x78]
fstp dword [esp + 0x70]
fld dword [ebx + 0x7c]
fstp dword [esp + 0x74]
fld dword [ebx + 0x80]
fstp dword [esp + 0x78]
call fcn.00433f80
mov eax, dword [ebx + 0x88]
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x90]
push ecx
push eax
push 0x60
mov ecx, sym.XR_3DA.exe_class_CBackend_RCache
call sym.XR_3DA.exe_public:_void____thiscall__VertexStream::Lock_unsigned_int__unsigned_int__unsigned_int__
test esi, esi
mov edx, dword [sym.XR_3DA.exe_class_IGame_Persistent__g_pGamePersistent]
mov edi, eax
mov eax, dword [edx + 0x46c]
fld dword [eax + 0x1b4]
fmul qword [0x4d0ad8]
fstp dword [esp + 0x28]
fld1
fld qword [0x4d0bf8]
je 0x4bb92e
mov ecx, dword [ebx + 0x9c]
mov edx, dword [ecx + 0x10]
and edx, 2
cmp dl, 2
jne 0x4bb92e
mov eax, ecx
cmp dword [eax + 0x2c], 0
fld dword [eax + 0x18]
fmul dword [esp + 0x28]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fld dword [ebx + 0x34]
fld dword [esp + 0x10]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x3c]
fld dword [ebx + 0x38]
fmul st(1)
fstp dword [esp + 0x40]
fmul dword [ebx + 0x3c]
fstp dword [esp + 0x44]
fstp dword [esp + 0x10]
fld dword [ebx + 0x40]
fld dword [esp + 0x10]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x54]
fld dword [ebx + 0x44]
fmul st(1)
fstp dword [esp + 0x58]
fmul dword [ebx + 0x48]
fstp dword [esp + 0x5c]
je 0x4bb5c7
fxch st(1)
fst dword [esp + 0x2c]
fst dword [esp + 0x30]
fst dword [esp + 0x34]
jmp 0x4bb5e5
fstp st(1)
fld dword [esp + 0x6c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x70]
fstp dword [esp + 0x30]
fld dword [esp + 0x74]
fstp dword [esp + 0x34]
fld dword [esp + 0x78]
fstp dword [esp + 0x38]
mov ecx, 0x9e
fld dword [ebx + 0xa4]
fmul dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov eax, edx
sar eax, 0x17
and eax, 0xff
sub ecx, eax
or edx, 0xff800000
shl edx, 8
shr edx, cl
sub ecx, 0x60
mov eax, 1
shl eax, cl
sub eax, 1
sar eax, 8
and eax, esi
neg eax
sbb eax, eax
add eax, 1
sar esi, 0x1f
and eax, esi
add ecx, 0x40
sub edx, eax
sar ecx, 0x1f
and edx, ecx
xor edx, esi
jge 0x4bb65b
mov dword [esp + 0x20], 0
jmp 0x4bb66f
cmp edx, 0xff
mov dword [esp + 0x20], 0xff
jg 0x4bb66f
mov dword [esp + 0x20], edx
fld dword [esp + 0x30]
mov ecx, 0x9e
fmul st(1)
mov eax, 1
fstp dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov edx, esi
sar edx, 0x17
or esi, 0xff800000
and edx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x18]
shl esi, 8
shr esi, cl
sub ecx, 0x60
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bb6d4
mov dword [esp + 0x24], 0
jmp 0x4bb6e8
cmp esi, 0xff
mov dword [esp + 0x24], 0xff
jg 0x4bb6e8
mov dword [esp + 0x24], esi
fld dword [esp + 0x34]
mov ecx, 0x9e
fmul st(1)
fstp dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov eax, esi
sar eax, 0x17
and eax, 0xff
sub ecx, eax
or esi, 0xff800000
shl esi, 8
shr esi, cl
sub ecx, 0x60
mov eax, 1
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bb74c
mov dword [esp + 0x48], 0
jmp 0x4bb760
cmp esi, 0xff
mov dword [esp + 0x48], 0xff
jg 0x4bb760
mov dword [esp + 0x48], esi
fmul dword [esp + 0x38]
mov ecx, 0x9e
mov eax, 1
fstp dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov edx, esi
sar edx, 0x17
or esi, 0xff800000
and edx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x18]
shl esi, 8
shr esi, cl
sub ecx, 0x60
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bb7bd
xor ecx, ecx
jmp 0x4bb7cc
cmp esi, 0xff
mov ecx, 0xff
jg 0x4bb7cc
mov ecx, esi
fld dword [esp + 0x40]
movzx eax, byte [esp + 0x20]
fld st(0)
movzx edx, byte [esp + 0x48]
fadd dword [ebx + 0x2c]
fld dword [esp + 0x58]
fld st(0)
shl ecx, 8
fsubp st(2)
or eax, ecx
movzx ecx, byte [esp + 0x24]
fxch st(1)
fstp dword [esp + 0x10]
fld dword [ebx + 0x30]
shl eax, 8
fld dword [esp + 0x44]
or eax, ecx
fld st(0)
shl eax, 8
faddp st(2)
or eax, edx
fld dword [esp + 0x5c]
add edi, 0x18
fld st(0)
add edi, 0x18
fsubp st(3)
fxch st(2)
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
mov dword [edi - 0x24], eax
fld dword [esp + 0x3c]
fld st(0)
faddp st(2)
fld dword [esp + 0x54]
fld st(0)
fsubp st(3)
fxch st(2)
fstp dword [edi - 0x30]
fld dword [esp + 0x10]
fstp dword [edi - 0x2c]
fld dword [esp + 0x14]
fstp dword [edi - 0x28]
fldz
fst dword [edi - 0x20]
fstp dword [edi - 0x1c]
fld st(5)
fadd dword [ebx + 0x2c]
fadd st(5)
fstp dword [esp + 0x10]
fld dword [ebx + 0x30]
fadd st(3)
fadd st(4)
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
mov dword [edi - 0xc], eax
fadd st(1)
fadd st(2)
fstp dword [edi - 0x18]
fld dword [esp + 0x10]
fstp dword [edi - 0x14]
fld dword [esp + 0x14]
fstp dword [edi - 0x10]
fldz
fstp dword [edi - 8]
fld1
fstp dword [edi - 4]
fld dword [ebx + 0x2c]
fsub st(6)
fsub st(5)
fstp dword [esp + 0x10]
fld dword [ebx + 0x30]
fsub st(3)
fsub st(4)
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
fsub st(1)
fsub st(2)
fstp dword [edi]
fld dword [esp + 0x10]
fstp dword [edi + 4]
fld dword [esp + 0x14]
fstp dword [edi + 8]
mov dword [edi + 0xc], eax
fld1
add edi, 0x18
fst dword [edi - 8]
push ecx
fldz
add edi, 0x18
fstp dword [edi - 0x1c]
mov ecx, esp
fld dword [ebx + 0x2c]
fsubrp st(7)
fxch st(6)
faddp st(5)
fxch st(4)
fstp dword [esp + 0x14]
fld dword [ebx + 0x30]
fsubrp st(2)
fxch st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [ebx + 0x28]
mov dword [edi - 0xc], eax
fsubrp st(2)
faddp st(1)
fstp dword [edi - 0x18]
fld dword [esp + 0x14]
fstp dword [edi - 0x14]
fld dword [esp + 0x18]
fstp dword [edi - 0x10]
fst dword [edi - 8]
fstp dword [edi - 4]
mov eax, dword [ebx + 0x9c]
mov eax, dword [eax + 0x28]
test eax, eax
mov dword [ecx], eax
je 0x4bb920
add dword [eax], 1
lea esi, [esp + 0xa4]
call fcn.00433fd0
jmp 0x4bb932
fstp st(1)
fstp st(0)
fld dword [0x4c875c]
fcomp dword [ebx + 0x14]
fnstsw ax
test ah, 0x41
jp 0x4bc24e
cmp dword [ebp + 8], 0
je 0x4bba2a
fld dword [ebx + 0x5c]
push ecx
fld dword [ebx + 0x58]
fld dword [ebx + 0x60]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fld1
fdivrp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp]
call fcn.004223d0
fstp dword [esp + 0x14]
fld dword [ebx + 0x58]
mov eax, dword [ebx + 0x9c]
fld dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
fld st(0)
and ecx, 1
fmulp st(2)
add esp, 4
cmp cl, 1
fxch st(1)
fstp dword [esp + 0x80]
fld st(0)
fmul dword [ebx + 0x5c]
fstp dword [esp + 0x84]
fmul dword [ebx + 0x60]
fstp dword [esp + 0x88]
fld dword [esp + 0x84]
fld st(0)
fmul dword [ebx + 0x54]
fld dword [esp + 0x88]
fld st(0)
fmul dword [ebx + 0x50]
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x94]
fld dword [ebx + 0x4c]
fmul st(1)
fld dword [ebx + 0x54]
fld dword [esp + 0x80]
fld st(0)
fmulp st(2)
fxch st(2)
fsubrp st(1)
fstp dword [esp + 0x98]
fld st(0)
fmul dword [ebx + 0x50]
fld dword [ebx + 0x4c]
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x9c]
jne 0x4bba24
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
jne 0x4bbb85
fstp st(2)
fstp st(0)
fstp st(0)
cmp dword [ebp + 0xc], 0
je 0x4bc24e
fld dword [0x4c875c]
fcomp dword [ebx + 0x84]
fnstsw ax
test ah, 0x41
jp 0x4bc24e
mov edx, dword [ebx + 0x9c]
mov eax, dword [edx + 0x10]
and eax, 4
cmp al, 4
jne 0x4bc24e
mov ecx, edx
fld dword [ecx + 0x34]
push ecx
fmul dword [ebx + 0x84]
lea eax, [esp + 0x30]
fmul dword [esp + 0x2c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fmul dword [ebx + 0x34]
fstp dword [esp + 0x40]
fld dword [ebx + 0x38]
fmul st(1)
fstp dword [esp + 0x44]
fmul dword [ebx + 0x3c]
fstp dword [esp + 0x48]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fmul dword [ebx + 0x40]
fstp dword [esp + 0x58]
fld dword [ebx + 0x44]
fmul st(1)
fstp dword [esp + 0x5c]
fmul dword [ebx + 0x48]
fstp dword [esp + 0x60]
fld dword [esp + 0x70]
fstp dword [esp + 0x30]
fld dword [esp + 0x74]
fstp dword [esp + 0x34]
fld dword [esp + 0x78]
fstp dword [esp + 0x38]
fld dword [esp + 0x7c]
fstp dword [esp + 0x3c]
fld dword [ebx + 0xa4]
fmul dword [ebx + 0x84]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp]
call fcn.00433e30
fld dword [esp + 0x2c]
mov ecx, 0x9e
fld qword [0x4d0bf8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, edx
sar eax, 0x17
and eax, 0xff
sub ecx, eax
or edx, 0xff800000
shl edx, 8
shr edx, cl
sub ecx, 0x60
mov eax, 1
shl eax, cl
sub eax, 1
sar eax, 8
and eax, esi
neg eax
sbb eax, eax
add eax, 1
sar esi, 0x1f
and eax, esi
add ecx, 0x40
sub edx, eax
sar ecx, 0x1f
and edx, ecx
xor edx, esi
jge 0x4bbf81
mov dword [esp + 0x28], 0
jmp 0x4bbf95
fld dword [esp + 0x84]
fld dword [esp + 0x88]
fld dword [esp + 0x80]
mov eax, dword [esp + 0x20]
fld dword [eax + 8]
mov ecx, 0x9e
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fmul dword [ebx + 0x58]
fstp dword [esp + 0x60]
fld dword [ebx + 0x5c]
fmul st(1)
fstp dword [esp + 0x64]
fmul dword [ebx + 0x60]
fstp dword [esp + 0x68]
fld dword [ebx + 0x64]
fadd dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [ebx + 0x68]
fadd dword [esp + 0x64]
fstp dword [esp + 0x64]
fld dword [esp + 0x68]
fadd dword [ebx + 0x6c]
fstp dword [esp + 0x68]
fld dword [eax + 4]
fmul dword [esp + 0x28]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x3c]
fld st(1)
fmulp st(4)
fxch st(3)
fstp dword [esp + 0x40]
fmulp st(1)
fstp dword [esp + 0x44]
fstp dword [esp + 0x18]
fld dword [esp + 0x94]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x98]
fmul st(1)
fstp dword [esp + 0x58]
fmul dword [esp + 0x9c]
fstp dword [esp + 0x5c]
fld dword [eax]
fmul dword [ebx + 0x14]
fmul dword [ebx + 0xa4]
fstp dword [esp + 0x18]
fld dword [esp + 0x6c]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x70]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x74]
fmul st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x78]
fstp dword [esp + 0x38]
fld dword [esp + 0x2c]
fld qword [0x4d0bf8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
mov eax, edx
sar eax, 0x17
and eax, 0xff
or edx, 0xff800000
sub ecx, eax
shl edx, 8
shr edx, cl
mov esi, dword [esp + 0x8c]
sub ecx, 0x60
mov eax, 1
shl eax, cl
sub eax, 1
sar eax, 8
and eax, esi
neg eax
sbb eax, eax
add eax, 1
sar esi, 0x1f
and eax, esi
add ecx, 0x40
sub edx, eax
sar ecx, 0x1f
and edx, ecx
xor edx, esi
jge 0x4bbce2
mov dword [esp + 0x48], 0
jmp 0x4bbcf6
cmp edx, 0xff
mov dword [esp + 0x48], 0xff
jg 0x4bbcf6
mov dword [esp + 0x48], edx
fld dword [esp + 0x30]
mov ecx, 0x9e
fmul st(1)
mov eax, 1
fstp dword [esp + 0x7c]
mov esi, dword [esp + 0x7c]
mov edx, esi
sar edx, 0x17
or esi, 0xff800000
and edx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x7c]
shl esi, 8
shr esi, cl
sub ecx, 0x60
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bbd5b
mov dword [esp + 0x24], 0
jmp 0x4bbd6f
cmp esi, 0xff
mov dword [esp + 0x24], 0xff
jg 0x4bbd6f
mov dword [esp + 0x24], esi
fld dword [esp + 0x34]
mov ecx, 0x9e
fmul st(1)
fstp dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov eax, esi
sar eax, 0x17
and eax, 0xff
sub ecx, eax
or esi, 0xff800000
shl esi, 8
shr esi, cl
sub ecx, 0x60
mov eax, 1
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bbdd3
mov dword [esp + 0x18], 0
jmp 0x4bbde7
cmp esi, 0xff
mov dword [esp + 0x18], 0xff
jg 0x4bbde7
mov dword [esp + 0x18], esi
fmul dword [esp + 0x38]
mov ecx, 0x9e
mov eax, 1
fstp dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, esi
sar edx, 0x17
or esi, 0xff800000
and edx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x10]
shl esi, 8
shr esi, cl
sub ecx, 0x60
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bbe44
xor ecx, ecx
jmp 0x4bbe53
cmp esi, 0xff
mov ecx, 0xff
jg 0x4bbe53
mov ecx, esi
fld dword [esp + 0x60]
movzx eax, byte [esp + 0x48]
fadd dword [esp + 0x3c]
movzx edx, byte [esp + 0x18]
fld dword [esp + 0x54]
fld st(0)
fsubr st(2)
shl ecx, 8
or eax, ecx
movzx ecx, byte [esp + 0x24]
fstp dword [edi]
fld dword [esp + 0x64]
fadd dword [esp + 0x40]
shl eax, 8
fld dword [esp + 0x58]
or eax, ecx
fld st(0)
shl eax, 8
fsubr st(2)
or eax, edx
mov dword [edi + 0xc], eax
add edi, 0x18
fstp dword [edi - 0x14]
add edi, 0x18
fld dword [esp + 0x68]
add edi, 0x18
fadd dword [esp + 0x44]
fld dword [esp + 0x5c]
fld st(0)
fsubr st(2)
fstp dword [edi - 0x40]
fldz
fst dword [edi - 0x38]
fst dword [edi - 0x34]
fld st(5)
mov dword [edi - 0x24], eax
faddp st(7)
fxch st(6)
fstp dword [edi - 0x30]
fld st(2)
faddp st(4)
fxch st(3)
fstp dword [edi - 0x2c]
fadd st(2)
fstp dword [edi - 0x28]
fxch st(3)
fst dword [edi - 0x20]
fld1
fst dword [edi - 0x1c]
fld dword [esp + 0x60]
mov dword [edi - 0xc], eax
fsub dword [esp + 0x3c]
fld st(4)
fsubr st(1)
fstp dword [edi - 0x18]
fld dword [esp + 0x64]
fsub dword [esp + 0x40]
fst qword [esp + 0x18]
fsub st(6)
fstp dword [edi - 0x14]
fld dword [esp + 0x68]
fsub dword [esp + 0x44]
fst qword [esp + 0x48]
fsub st(4)
fstp dword [edi - 0x10]
fxch st(1)
fst dword [edi - 8]
fxch st(2)
fstp dword [edi - 4]
mov dword [edi + 0xc], eax
faddp st(3)
fxch st(2)
fstp dword [edi]
fxch st(2)
fadd qword [esp + 0x18]
fstp dword [edi + 4]
fxch st(1)
fadd qword [esp + 0x48]
fstp dword [edi + 8]
fst dword [edi + 0x10]
fstp dword [edi + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
push ecx
add edi, 0x18
test eax, eax
mov ecx, esp
mov dword [ecx], eax
je 0x4bbf56
add dword [eax], 1
lea esi, [esp + 0xa4]
call fcn.00433fd0
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x9c]
add eax, 0x18
cmp eax, dword [ecx + 8]
mov dword [esp + 0x20], eax
jne 0x4bbb70
jmp 0x4bba2a
cmp edx, 0xff
mov dword [esp + 0x28], 0xff
jg 0x4bbf95
mov dword [esp + 0x28], edx
fld dword [esp + 0x30]
mov ecx, 0x9e
fmul st(1)
mov eax, 1
fstp dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, esi
sar edx, 0x17
or esi, 0xff800000
and edx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x10]
shl esi, 8
shr esi, cl
sub ecx, 0x60
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bbffa
mov dword [esp + 0x18], 0
jmp 0x4bc00e
cmp esi, 0xff
mov dword [esp + 0x18], 0xff
jg 0x4bc00e
mov dword [esp + 0x18], esi
fld dword [esp + 0x34]
mov ecx, 0x9e
fmul st(1)
fstp dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, esi
sar eax, 0x17
and eax, 0xff
sub ecx, eax
or esi, 0xff800000
shl esi, 8
shr esi, cl
sub ecx, 0x60
mov eax, 1
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bc072
mov dword [esp + 0x48], 0
jmp 0x4bc086
cmp esi, 0xff
mov dword [esp + 0x48], 0xff
jg 0x4bc086
mov dword [esp + 0x48], esi
fmul dword [esp + 0x38]
mov ecx, 0x9e
mov eax, 1
fstp dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, esi
sar edx, 0x17
or esi, 0xff800000
and edx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x10]
shl esi, 8
shr esi, cl
sub ecx, 0x60
shl eax, cl
sub eax, 1
sar eax, 8
and eax, edx
neg eax
sbb eax, eax
add eax, 1
sar edx, 0x1f
and eax, edx
add ecx, 0x40
sub esi, eax
sar ecx, 0x1f
and esi, ecx
xor esi, edx
jge 0x4bc0e3
xor ecx, ecx
jmp 0x4bc0f2
cmp esi, 0xff
mov ecx, 0xff
jg 0x4bc0f2
mov ecx, esi
fld dword [esp + 0x40]
movzx eax, byte [esp + 0x28]
fld st(0)
movzx edx, byte [esp + 0x48]
fadd dword [ebx + 0x2c]
fld dword [esp + 0x58]
fld st(0)
shl ecx, 8
fsubp st(2)
or eax, ecx
movzx ecx, byte [esp + 0x18]
fxch st(1)
fstp dword [esp + 0x10]
fld dword [ebx + 0x30]
shl eax, 8
fld dword [esp + 0x44]
or eax, ecx
fld st(0)
shl eax, 8
faddp st(2)
or eax, edx
fld dword [esp + 0x5c]
add edi, 0x18
fld st(0)
add edi, 0x18
fsubp st(3)
fxch st(2)
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
mov dword [edi - 0x24], eax
fld dword [esp + 0x3c]
fld st(0)
faddp st(2)
fld dword [esp + 0x54]
fld st(0)
fsubp st(3)
fxch st(2)
fstp dword [edi - 0x30]
fld dword [esp + 0x10]
fstp dword [edi - 0x2c]
fld dword [esp + 0x14]
fstp dword [edi - 0x28]
fldz
fst dword [edi - 0x20]
fstp dword [edi - 0x1c]
fld st(5)
fadd dword [ebx + 0x2c]
fadd st(5)
fstp dword [esp + 0x10]
fld dword [ebx + 0x30]
fadd st(3)
fadd st(4)
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
mov dword [edi - 0xc], eax
fadd st(1)
fadd st(2)
fstp dword [edi - 0x18]
fld dword [esp + 0x10]
fstp dword [edi - 0x14]
fld dword [esp + 0x14]
fstp dword [edi - 0x10]
fldz
fstp dword [edi - 8]
fld1
fstp dword [edi - 4]
fld dword [ebx + 0x2c]
fsub st(6)
fsub st(5)
fstp dword [esp + 0x10]
fld dword [ebx + 0x30]
fsub st(3)
fsub st(4)
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
fsub st(1)
fsub st(2)
fstp dword [edi]
fld dword [esp + 0x10]
fstp dword [edi + 4]
fld dword [esp + 0x14]
fstp dword [edi + 8]
mov dword [edi + 0xc], eax
fld1
add edi, 0x18
fst dword [edi - 8]
push ecx
fldz
mov ecx, esp
fstp dword [edi - 4]
fld dword [ebx + 0x2c]
fsubrp st(7)
fxch st(6)
faddp st(5)
fxch st(4)
fstp dword [esp + 0x14]
fld dword [ebx + 0x30]
fsubrp st(2)
fxch st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [ebx + 0x28]
mov dword [edi + 0xc], eax
fsubrp st(2)
faddp st(1)
fstp dword [edi]
fld dword [esp + 0x14]
fstp dword [edi + 4]
fld dword [esp + 0x18]
fstp dword [edi + 8]
fst dword [edi + 0x10]
fstp dword [edi + 0x14]
mov eax, dword [ebx + 0x9c]
mov eax, dword [eax + 0x44]
test eax, eax
mov dword [ecx], eax
je 0x4bc242
add dword [eax], 1
lea esi, [esp + 0xa4]
call fcn.00433fd0
mov ecx, dword [ebx + 0x88]
mov edx, dword [ecx + 0x14]
imul edx, dword [esp + 0x100]
mov eax, dword [0x5041e8]
lea ecx, [eax + edx*4]
mov eax, dword [sym.XR_3DA.exe_class_CBackend_RCache]
mov dword [0x5041e8], ecx
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x30]
call eax
mov ecx, dword [0x4c4478]
push ecx
mov ecx, 0x504210
call sym.XR_3DA.exe_public:_void___thiscall_R_xforms::set_W_struct__matrix_float__const__
mov ebx, dword [ebx + 0x88]
mov edx, dword [ebx + 8]
mov eax, dword [edx + 8]
cmp dword [0x5043bc], eax
je 0x4bc2b6
mov ecx, dword [0x503ff0]
mov dword [0x5043bc], eax
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x15c]
push ecx
call eax
mov eax, dword [ebx + 0xc]
cmp dword [0x5043c0], eax
mov ecx, dword [ebx + 0x14]
jne 0x4bc2cc
cmp dword [0x5043c8], ecx
je 0x4bc2ee
mov edx, dword [0x503ff0]
push ecx
push 0
push eax
mov dword [0x5043c8], ecx
mov dword [0x5043c0], eax
mov esi, dword [edx]
mov ecx, dword [esi + 0x190]
push 0
push edx
call ecx
mov ebx, dword [ebx + 0x10]
cmp dword [0x5043c4], ebx
je 0x4bc310
mov eax, dword [0x503ff0]
mov dword [0x5043c4], ebx
mov edx, dword [eax]
push ebx
push eax
mov eax, dword [edx + 0x1a0]
call eax
xor ebx, ebx
cmp dword [esp + 0x100], ebx
jbe 0x4bc3ac
mov edi, dword [esp + 0x90]
lea esi, [esp + 0xa0]
mov ecx, esi
sub edi, ecx
mov ecx, esi
call fcn.004118a0
test eax, eax
je 0x4bc39d
mov edx, dword [esi]
mov eax, dword [edx + 8]
push 0
push eax
mov ecx, sym.XR_3DA.exe_class_CBackend_RCache
call sym.XR_3DA.exe_public:_void___thiscall_CBackend::set_Element_struct_ShaderElement___unsigned_int_
add dword [0x5064b0], 1
add dword [0x5064ac], 4
add dword [0x5064a8], 2
cmp dword [0x5053e0], 0
jne 0x4bc375
cmp dword [0x506400], 0
je 0x4bc37f
mov ecx, 0x5043d0
call sym.XR_3DA.exe_public:_void___thiscall_R_constants::flush_cache_void_
mov eax, dword [0x503ff0]
mov ecx, dword [eax]
push 2
push 0
push 4
push 0
lea edx, [edi + esi]
push edx
push 4
push eax
mov eax, dword [ecx + 0x148]
call eax
add ebx, 1
add esi, 4
cmp ebx, dword [esp + 0x100]
jb 0x4bc331
lea eax, [esp + 0xa0]
call fcn.00433d50
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8