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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], rsi
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0x90
mov rax, qword [0x1800da0c0]
xor rax, rsp
mov qword [rbp + 0x1f], 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.SphereLightSettings
movaps xmmword [r11 - 0x18], xmm6
movaps xmmword [rsp + 0x70], xmm7
xorps xmm7, xmm7
movaps xmmword [r11 - 0x38], xmm9
mov qword [rbp + 0xf], 0
call fcn.18001a770
lea rdx, [rbp + 0xf]
movss dword [rsp + 0x28], xmm7
mov qword [rsp + 0x20], rdx
lea rcx, str.SphereLightSettings
mov edx, eax
xor r9d, r9d
mov r8d, 3
call fcn.18003a400
movss xmm9, dword [0x1800c5ecc]
test al, al
je 0x18006eb6d
xorps xmm1, xmm1
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006d372
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006d372
cmp eax, 0xffffffff
je 0x18006d36b
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.AttenuationOffset
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
movss xmm6, dword [0x1800c5ff8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 7]
mov dword [rbp + 7], 0x3e99999a
lea r8, [rdi + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3dcccccd
lea rcx, [0x1800c5220]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006d42e
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006d42e
cmp eax, 0xffffffff
je 0x18006d424
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.AttenuationRadius
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x7c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5250]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006d4e1
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006d4e1
cmp eax, 0xffffffff
je 0x18006d4d7
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.ContactShadowLength
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x9c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5280]
call fcn.1800471e0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006d5a2
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006d5a2
cmp eax, 0xffffffff
je 0x18006d59b
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.CullDistance
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0xa0]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c52b0]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006d658
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006d658
cmp eax, 0xffffffff
je 0x18006d64e
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.CullScreenArea
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c52d0]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006d70b
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006d70b
cmp eax, 0xffffffff
je 0x18006d701
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.Dimmer
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0xa8]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c52f8]
call fcn.1800471e0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006d7cc
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006d7cc
cmp eax, 0xffffffff
je 0x18006d7c5
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.FadeDistance
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5310]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006d882
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006d882
cmp eax, 0xffffffff
je 0x18006d878
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.FadeScreenArea
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x94]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5330]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006d938
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006d938
cmp eax, 0xffffffff
je 0x18006d92e
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.IESMultiplier
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5358]
call fcn.1800471e0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006d9f9
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006d9f9
cmp eax, 0xffffffff
je 0x18006d9f2
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.Intensity
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5378]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006daac
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006daac
cmp eax, 0xffffffff
je 0x18006daa2
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.IntensityMultiplier
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5398]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006db5f
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006db5f
cmp eax, 0xffffffff
je 0x18006db55
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.ShadowCullDistance
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c53c8]
call fcn.1800471e0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006dc1d
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006dc1d
cmp eax, 0xffffffff
je 0x18006dc16
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.ShadowCullScreenArea
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x3c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c53f8]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006dcd0
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006dcd0
cmp eax, 0xffffffff
je 0x18006dcc6
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.ShadowDimmer
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x84]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5428]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006dd86
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006dd86
cmp eax, 0xffffffff
je 0x18006dd7c
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.ShadowFadeDistance
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5448]
call fcn.1800471e0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006de47
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006de47
cmp eax, 0xffffffff
je 0x18006de40
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.ShadowFadeScreenArea
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x5c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5478]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006defa
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006defa
cmp eax, 0xffffffff
je 0x18006def0
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.ShadowFarRadius
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x6c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c54a8]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006dfad
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006dfad
cmp eax, 0xffffffff
je 0x18006dfa3
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.ShadowNearRadius
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x8c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c54d0]
call fcn.1800471e0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e06e
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e06e
cmp eax, 0xffffffff
je 0x18006e067
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.SphereRadius
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5500]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
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 0x18006e121
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e121
cmp eax, 0xffffffff
je 0x18006e117
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rcx, str.VolumetricScatteringIntensity
call fcn.180042d70
movss xmm0, dword [0x1800daee8]
mulss xmm0, xmm6
call fcn.18001d300
lea rax, [rbp + 0xf]
mov dword [rbp + 0xf], 0x3e99999a
lea r8, [rdi + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5520]
call fcn.1800471e0
mov r10, qword [0x1800dea00]
or bl, al
movss xmm0, dword [0x1800daee8]
mulss xmm0, dword [0x1800c5fb4]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e23d
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e23d
cmp eax, 0xffffffff
je 0x18006e236
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rax, str.LuminousPower
mov edx, 0xffe6e6e6
mov qword [rbp + 0xf], rax
xor ecx, ecx
lea rax, str.Luminance
mov qword [rbp + 0x17], rax
call fcn.18000d710
lea rcx, str.LightUnit
call fcn.180042d70
mov r8, qword [0x1800dea00]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18006e2a6
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.18001d300
lea rdx, [rdi + 0x48]
mov dword [rsp + 0x20], 2
lea r9, [rbp + 0xf]
lea rcx, [0x1800c5580]
call fcn.1800465d0
mov r10, qword [0x1800dea00]
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 0x18006e335
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e335
cmp eax, 0xffffffff
je 0x18006e32b
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d710
lea rcx, str.CastVolumetricShadows
call fcn.180042d70
mov r8, qword [0x1800dea00]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18006e388
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.18001d300
lea rdx, [rdi + 0x54]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dae30]
lea rcx, [0x1800c55a0]
call fcn.1800465d0
mov r10, qword [0x1800dea00]
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 0x18006e41a
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006e41a
cmp eax, 0xffffffff
je 0x18006e410
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d710
lea rcx, str.CastShadows
call fcn.180042d70
mov r8, qword [0x1800dea00]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18006e46d
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.18001d300
lea rdx, [rdi + 0x64]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dae30]
lea rcx, [0x1800c55d0]
call fcn.1800465d0
mov rdx, qword [0x1800dea00]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e50a
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e50a
cmp eax, 0xffffffff
je 0x18006e503
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d710
lea rcx, str.CastVolumetric
call fcn.180042d70
mov r8, qword [0x1800dea00]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18006e55d
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.18001d300
lea rdx, [rdi + 0x90]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dae30]
lea rcx, [0x1800c55f0]
call fcn.1800465d0
mov r10, qword [0x1800dea00]
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 0x18006e5f2
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e5f2
cmp eax, 0xffffffff
je 0x18006e5e8
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
mov edx, 0xffe6e6e6
xor ecx, ecx
call fcn.18000d710
lea rcx, str.CastContactShadows
call fcn.180042d70
mov r8, qword [0x1800dea00]
movsxd rax, dword [r8 + 0x4a30]
cmp eax, 1
jl 0x18006e645
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.18001d300
lea rdx, [rdi + 0xa4]
mov dword [rsp + 0x20], 5
lea r9, [0x1800dae30]
lea rcx, [0x1800c5618]
call fcn.1800465d0
mov r10, qword [0x1800dea00]
or bl, al
movss xmm0, dword [0x1800daee8]
mulss xmm0, dword [0x1800c5fb4]
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.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e743
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e743
cmp eax, 0xffffffff
je 0x18006e73c
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xbb]
lea rcx, str.AffectDiffuse
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e787
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e787
cmp eax, 0xffffffff
je 0x18006e77d
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xb3]
lea rcx, str.AffectRadiosity
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e7cb
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006e7cb
cmp eax, 0xffffffff
je 0x18006e7c1
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xb7]
lea rcx, str.AffectSpecular
call fcn.180044d10
xorps xmm1, xmm1
or bl, al
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e813
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e813
cmp eax, 0xffffffff
je 0x18006e80c
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xba]
lea rcx, str.AllowGlobalCullFadeScale
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e857
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e857
cmp eax, 0xffffffff
je 0x18006e84d
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xb4]
lea rcx, str.AllowGlobalShadowCullFadeScale
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e89b
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006e89b
cmp eax, 0xffffffff
je 0x18006e891
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xad]
lea rcx, str.CastContactShadowsEnable
call fcn.180044d10
xorps xmm1, xmm1
or bl, al
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e8e3
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e8e3
cmp eax, 0xffffffff
je 0x18006e8dc
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xb9]
lea rcx, str.CastShadowsEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e927
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e927
cmp eax, 0xffffffff
je 0x18006e91d
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xb6]
lea rcx, str.CastVolumetricShadowsEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e96b
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006e96b
cmp eax, 0xffffffff
je 0x18006e961
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xb1]
lea rcx, str.DirectLightmapEnable
call fcn.180044d10
xorps xmm1, xmm1
or bl, al
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e9b3
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006e9b3
cmp eax, 0xffffffff
je 0x18006e9ac
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xb0]
lea rcx, str.EmissiveShapeEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006e9f7
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006e9f7
cmp eax, 0xffffffff
je 0x18006e9ed
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xb5]
lea rcx, str.IsEnabled
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006ea3b
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006ea3b
cmp eax, 0xffffffff
je 0x18006ea31
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xae]
lea rcx, str.IsFirstPerson
call fcn.180044d10
xorps xmm1, xmm1
or bl, al
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006ea83
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006ea83
cmp eax, 0xffffffff
je 0x18006ea7c
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xac]
lea rcx, str.OnlyHempishere
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006eac7
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18006eac7
cmp eax, 0xffffffff
je 0x18006eabd
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xb8]
lea rcx, str.ShadowCacheEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006eb0b
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18006eb0b
cmp eax, 0xffffffff
je 0x18006eb01
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xaf]
lea rcx, str.SurfelLightingForceShadowCasting
call fcn.180044d10
xorps xmm1, xmm1
or bl, al
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18006eb53
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18006eb53
cmp eax, 0xffffffff
je 0x18006eb4c
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xb2]
lea rcx, str.UseIESProfileAsMask
call fcn.180044d10
or bl, al
call fcn.18003c880
lea rcx, str.SphereLightSettings1
mov qword [rbp + 0xf], 0
call fcn.18001a770
lea rdx, [rbp + 0xf]
movss dword [rsp + 0x28], xmm7
mov qword [rsp + 0x20], rdx
lea rcx, str.SphereLightSettings1
mov edx, eax
xor r9d, r9d
mov r8d, 4
call fcn.18003a400
movaps xmm7, xmmword [rsp + 0x70]
test al, al
je 0x18006ec19
movss xmm6, dword [0x1800c5fe8]
lea rdx, [rdi + 0x10]
movaps xmm3, xmm6
movss dword [rsp + 0x20], xmm9
mov r8b, 1
lea rcx, str.Color
call fcn.180057630
lea rdx, [rdi + 0x20]
movss dword [rsp + 0x20], xmm9
movaps xmm3, xmm6
lea rcx, str.RadiosityColorScale
xor r8d, r8d
or bl, al
call fcn.180057630
movaps xmm3, xmm6
movss dword [rsp + 0x20], xmm9
xor r8d, r8d
lea rcx, str.ParticleColorScale
mov rdx, rdi
or bl, al
call fcn.180057630
or bl, al
call fcn.18003c880
movaps xmm9, xmmword [rsp + 0x60]
test bl, bl
mov rbx, qword [rsp + 0xa8]
movaps xmm6, xmmword [rsp + 0x80]
mov rdi, qword [rsp + 0xb0]
je 0x18006ec48
cmp dword [rsi + 0x1c], 0
je 0x18006ec48
mov dword [rsi + 0x1c], 1
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.18007c0e0
mov rsi, qword [rsp + 0xb8]
add rsp, 0x90
pop rbp
ret