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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], rsi
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0xa0
mov rax, qword [0x1800db0c0]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [r11 + 0x10], rbx
mov rsi, rcx
mov qword [r11 + 0x18], rdi
xor bl, bl
mov rdi, qword [rcx + 8]
lea rcx, str.RectangularLightSettings
movaps xmmword [r11 - 0x18], xmm6
movaps xmmword [r11 - 0x28], xmm7
xorps xmm7, xmm7
movaps xmmword [r11 - 0x38], xmm9
mov qword [rbp - 1], 0
call fcn.18001a780
lea rdx, [rbp - 1]
movss dword [rsp + 0x28], xmm7
xor r9d, r9d
mov qword [rsp + 0x20], rdx
mov edx, eax
lea rcx, str.RectangularLightSettings
lea r8d, [r9 + 3]
call fcn.18003af80
movss xmm9, dword [0x1800c6eac]
test al, al
je 0x180074ef4
xorps xmm1, xmm1
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180073350
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180073350
cmp eax, 0xffffffff
je 0x180073349
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.Height
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
movss xmm6, dword [0x1800c6fd8]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 9]
mov dword [rbp - 9], 0x3e99999a
lea r8, [rdi + 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 1]
mov dword [rbp - 1], 0x3dcccccd
lea rcx, [0x1800c6988]
call fcn.180047ed0
mov r10, qword [0x1800df940]
movzx ebx, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x18007340f
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18007340f
cmp eax, 0xffffffff
je 0x180073405
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.Width
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x3c]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c69a0]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x1800734cd
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800734cd
cmp eax, 0xffffffff
je 0x1800734c6
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.Aspect
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0xa0]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c69b0]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073583
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180073583
cmp eax, 0xffffffff
je 0x180073579
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.AttenuationOffset
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6200]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073636
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180073636
cmp eax, 0xffffffff
je 0x18007362c
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rcx, str.AttenuationRadius
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0xbc]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6230]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x1800736f7
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800736f7
cmp eax, 0xffffffff
je 0x1800736f0
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.ContactShadowLength
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x9c]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6260]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800737ad
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x1800737ad
cmp eax, 0xffffffff
je 0x1800737a3
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.CullDistance
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0xb4]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6290]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073863
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180073863
cmp eax, 0xffffffff
je 0x180073859
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rcx, str.CullScreenArea
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c62b0]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180073921
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180073921
cmp eax, 0xffffffff
je 0x18007391a
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.Dimmer
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x8c]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c62d8]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800739d7
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x1800739d7
cmp eax, 0xffffffff
je 0x1800739cd
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.FadeDistance
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x6c]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c62f0]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073a8a
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180073a8a
cmp eax, 0xffffffff
je 0x180073a80
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rcx, str.FadeScreenArea
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x90]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6310]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180073b4b
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180073b4b
cmp eax, 0xffffffff
je 0x180073b44
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.Intensity
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x7c]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6358]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073bfe
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180073bfe
cmp eax, 0xffffffff
je 0x180073bf4
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.IntensityMultiplier
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x64]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6378]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180073cbc
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180073cbc
cmp eax, 0xffffffff
je 0x180073cb5
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.OuterAngle
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6848]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073d6f
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180073d6f
cmp eax, 0xffffffff
je 0x180073d65
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.ShadowCullDistance
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c63a8]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073e22
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180073e22
cmp eax, 0xffffffff
je 0x180073e18
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rcx, str.ShadowCullScreenArea
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c63d8]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180073ee0
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180073ee0
cmp eax, 0xffffffff
je 0x180073ed9
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.ShadowDimmer
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6408]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180073f96
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180073f96
cmp eax, 0xffffffff
je 0x180073f8c
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.ShadowFadeDistance
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0xac]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6428]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x18007404c
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18007404c
cmp eax, 0xffffffff
je 0x180074042
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rcx, str.ShadowFadeOutRange
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x5c]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6868]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18007410a
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18007410a
cmp eax, 0xffffffff
je 0x180074103
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.ShadowFadeScreenArea
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x54]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6458]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800741bd
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x1800741bd
cmp eax, 0xffffffff
je 0x1800741b3
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.ShadowFarRadius
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0xa4]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6488]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180074273
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180074273
cmp eax, 0xffffffff
je 0x180074269
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rcx, str.ShadowMaxAngle
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x94]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6898]
call fcn.180047ed0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074334
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074334
cmp eax, 0xffffffff
je 0x18007432d
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rcx, str.ShadowNearRadius
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c64b0]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800743ea
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x1800743ea
cmp eax, 0xffffffff
je 0x1800743e0
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rcx, str.VolumetricScatteringIntensity
call fcn.180043a00
movss xmm0, dword [0x1800dbe38]
mulss xmm0, xmm6
call fcn.18001d3a0
lea rax, [rbp - 1]
mov dword [rbp - 1], 0x3e99999a
lea r8, [rdi + 0xb0]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 9]
mov dword [rbp - 9], 0x3dcccccd
lea rcx, [0x1800c6500]
call fcn.180047ed0
mov r10, qword [0x1800df940]
or bl, al
movss xmm0, dword [0x1800dbe38]
mulss xmm0, dword [0x1800c6f94]
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rax, qword [r10 + 0x4008]
movss xmm1, dword [rax + 0x114]
subss xmm1, dword [rax + 0x2c]
addss xmm1, dword [rax + 0x90]
mov byte [rax + 0xc0], 1
mov rax, qword [r10 + 0x4008]
addss xmm1, xmm0
movss xmm0, dword [rax + 0x2c]
subss xmm0, dword [rax + 0x90]
mov byte [rax + 0x151], 1
addss xmm0, xmm1
xorps xmm1, xmm1
movss dword [rax + 0x114], xmm0
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074509
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074509
cmp eax, 0xffffffff
je 0x180074502
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rax, str.LuminousPower
mov edx, 0xffe6e6e6
mov qword [rbp - 1], rax
xor ecx, ecx
lea rax, str.Luminance
mov qword [rbp + 7], rax
call fcn.18000d790
lea rcx, str.LightUnit
call fcn.180043a00
mov r8, qword [0x1800df940]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x180074572
mov rcx, qword [r8 + 0x4a38]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a30]
movaps xmm0, xmm6
call fcn.18001d3a0
lea rdx, [rdi + 0x44]
mov dword [rsp + 0x20], 2
lea r9, [rbp - 1]
lea rcx, [0x1800c6560]
call fcn.1800472c0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x180074601
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180074601
cmp eax, 0xffffffff
je 0x1800745f7
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d790
lea rcx, str.CastVolumetricShadows
call fcn.180043a00
mov r8, qword [0x1800df940]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x180074654
mov rcx, qword [r8 + 0x4a38]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a30]
movaps xmm0, xmm6
call fcn.18001d3a0
lea rdx, [rdi + 0xa8]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dbd80]
lea rcx, [0x1800c6580]
call fcn.1800472c0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800746e9
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x1800746e9
cmp eax, 0xffffffff
je 0x1800746df
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d790
lea rcx, str.CastShadows
call fcn.180043a00
mov r8, qword [0x1800df940]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18007473c
mov rcx, qword [r8 + 0x4a38]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a30]
movaps xmm0, xmm6
call fcn.18001d3a0
lea rdx, [rdi + 0x48]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dbd80]
lea rcx, [0x1800c65b0]
call fcn.1800472c0
mov rdx, qword [0x1800df940]
xorps xmm1, xmm1
or bl, al
mov rcx, qword [rdx + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [rdx + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x1800747d9
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800747d9
cmp eax, 0xffffffff
je 0x1800747d2
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d790
lea rcx, str.CastVolumetric
call fcn.180043a00
mov r8, qword [0x1800df940]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18007482c
mov rcx, qword [r8 + 0x4a38]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a30]
movaps xmm0, xmm6
call fcn.18001d3a0
lea rdx, [rdi + 0xc0]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dbd80]
lea rcx, [0x1800c65d0]
call fcn.1800472c0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800748c1
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x1800748c1
cmp eax, 0xffffffff
je 0x1800748b7
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d790
lea rcx, str.CastContactShadows
call fcn.180043a00
mov r8, qword [0x1800df940]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x180074914
mov rcx, qword [r8 + 0x4a38]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a30]
movaps xmm0, xmm6
call fcn.18001d3a0
lea rdx, [rdi + 0x50]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dbd80]
lea rcx, [0x1800c65f8]
call fcn.1800472c0
mov r10, qword [0x1800df940]
or bl, al
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
mov rcx, qword [r9 + 0x1e0]
movsxd r8, dword [r9 + 0x1d8]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rcx, qword [r10 + 0x4da8]
test rcx, rcx
je 0x1800749a6
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x1800749a6
cmp eax, 0xffffffff
je 0x18007499c
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rax, str.Rectangular
mov edx, 0xffe6e6e6
mov qword [rbp - 1], rax
xor ecx, ecx
lea rax, str.Frustum
mov qword [rbp + 7], rax
lea rax, str.OrthoFrustum
mov qword [rbp + 0xf], rax
call fcn.18000d790
lea rcx, str.Shape
call fcn.180043a00
mov r8, qword [0x1800df940]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x180074a1a
mov rcx, qword [r8 + 0x4a38]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm1, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm1
dec dword [r8 + 0x4a30]
movaps xmm0, xmm6
call fcn.18001d3a0
lea rdx, [rdi + 0x4c]
mov dword [rsp + 0x20], 3
lea r9, [rbp - 1]
lea rcx, [0x1800c69f0]
call fcn.1800472c0
mov r10, qword [0x1800df940]
or bl, al
movss xmm0, dword [0x1800dbe38]
mulss xmm0, dword [0x1800c6f94]
mov rcx, qword [r10 + 0x4008]
mov byte [rcx + 0xc0], 1
mov r9, qword [r10 + 0x4008]
movsxd r8, dword [r9 + 0x1d8]
mov rcx, qword [r9 + 0x1e0]
mov edx, dword [rcx + r8*4 - 4]
lea ecx, [r8 - 1]
mov dword [r9 + 0x1d8], ecx
mov dword [r9 + 0x1cc], edx
mov rax, qword [r10 + 0x4008]
movss xmm1, dword [rax + 0x114]
subss xmm1, dword [rax + 0x2c]
addss xmm1, dword [rax + 0x90]
mov byte [rax + 0xc0], 1
mov rax, qword [r10 + 0x4008]
addss xmm1, xmm0
movss xmm0, dword [rax + 0x2c]
subss xmm0, dword [rax + 0x90]
mov byte [rax + 0x151], 1
addss xmm0, xmm1
xorps xmm1, xmm1
movss dword [rax + 0x114], xmm0
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074b12
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074b12
cmp eax, 0xffffffff
je 0x180074b0b
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rdx, [rdi + 0xc5]
lea rcx, str.AffectDiffuse
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074b56
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180074b56
cmp eax, 0xffffffff
je 0x180074b4c
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rdx, [rdi + 0xd1]
lea rcx, str.AffectRadiosity
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074b9a
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180074b9a
cmp eax, 0xffffffff
je 0x180074b90
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rdx, [rdi + 0xd0]
lea rcx, str.AffectSpecular
call fcn.1800459c0
xorps xmm1, xmm1
or bl, al
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074be2
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074be2
cmp eax, 0xffffffff
je 0x180074bdb
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rdx, [rdi + 0xd2]
lea rcx, str.AllowGlobalCullFadeScale
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074c26
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180074c26
cmp eax, 0xffffffff
je 0x180074c1c
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rdx, [rdi + 0xca]
lea rcx, str.AllowGlobalShadowCullFadeScale
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074c6a
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180074c6a
cmp eax, 0xffffffff
je 0x180074c60
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rdx, [rdi + 0xc8]
lea rcx, str.CastContactShadowsEnable
call fcn.1800459c0
xorps xmm1, xmm1
or bl, al
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074cb2
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074cb2
cmp eax, 0xffffffff
je 0x180074cab
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rdx, [rdi + 0xcc]
lea rcx, str.CastShadowsEnable
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074cf6
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180074cf6
cmp eax, 0xffffffff
je 0x180074cec
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rdx, [rdi + 0xc9]
lea rcx, str.CastVolumetricShadowsEnable
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074d3a
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180074d3a
cmp eax, 0xffffffff
je 0x180074d30
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rdx, [rdi + 0xcb]
lea rcx, str.DirectLightmapEnable
call fcn.1800459c0
xorps xmm1, xmm1
or bl, al
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074d82
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074d82
cmp eax, 0xffffffff
je 0x180074d7b
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rdx, [rdi + 0xce]
lea rcx, str.EmissiveShapeEnable
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074dc6
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180074dc6
cmp eax, 0xffffffff
je 0x180074dbc
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rdx, [rdi + 0xc7]
lea rcx, str.IsEnabled
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074e0a
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180074e0a
cmp eax, 0xffffffff
je 0x180074e00
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rdx, [rdi + 0xc4]
lea rcx, str.IsFirstPerson
call fcn.1800459c0
xorps xmm1, xmm1
or bl, al
call fcn.18003dda0
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074e52
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180074e52
cmp eax, 0xffffffff
je 0x180074e4b
call fcn.18003e9e0
xor edx, edx
call fcn.18003e800
lea rdx, [rdi + 0xcf]
lea rcx, str.ShadowCacheEnable
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074e96
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180074e96
cmp eax, 0xffffffff
je 0x180074e8c
call fcn.18003e9e0
mov edx, 1
call fcn.18003e800
lea rdx, [rdi + 0xc6]
lea rcx, str.SurfelLightingForceShadowCasting
call fcn.1800459c0
or bl, al
mov rax, qword [0x1800df940]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180074eda
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180074eda
cmp eax, 0xffffffff
je 0x180074ed0
call fcn.18003e9e0
mov edx, 2
call fcn.18003e800
lea rdx, [rdi + 0xcd]
lea rcx, str.UseEmissiveMaterial
call fcn.1800459c0
or bl, al
call fcn.18003d440
lea rcx, str.RectangularLightSettings1
mov qword [rbp - 1], 0
call fcn.18001a780
lea rdx, [rbp - 1]
movss dword [rsp + 0x28], xmm7
xor r9d, r9d
mov qword [rsp + 0x20], rdx
mov edx, eax
lea rcx, str.RectangularLightSettings1
lea r8d, [r9 + 4]
call fcn.18003af80
movaps xmm7, xmmword [rsp + 0x80]
test al, al
je 0x180074fa1
movss xmm6, dword [0x1800c6fc8]
lea rcx, str.Color
movaps xmm3, xmm6
movss dword [rsp + 0x20], xmm9
mov r8b, 1
mov rdx, rdi
call fcn.180058650
lea rdx, [rdi + 0x20]
movss dword [rsp + 0x20], xmm9
movaps xmm3, xmm6
lea rcx, str.RadiosityColorScale
xor r8d, r8d
or bl, al
call fcn.180058650
lea rdx, [rdi + 0x10]
movss dword [rsp + 0x20], xmm9
movaps xmm3, xmm6
lea rcx, str.ParticleColorScale
xor r8d, r8d
or bl, al
call fcn.180058650
or bl, al
call fcn.18003d440
movaps xmm9, xmmword [rsp + 0x70]
test bl, bl
mov rbx, qword [rsp + 0xb8]
movaps xmm6, xmmword [rsp + 0x90]
mov rdi, qword [rsp + 0xc0]
je 0x180074fd0
cmp dword [rsi + 0x1c], 0
je 0x180074fd0
mov dword [rsi + 0x1c], 1
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.18007cc10
mov rsi, qword [rsp + 0xc8]
add rsp, 0xa0
pop rbp
ret