Function at 0x180070910
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.TubeLightSettings
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.TubeLightSettings
mov edx, eax
xor r9d, r9d
mov r8d, 3
call fcn.18003a400
movss xmm9, dword [0x1800c5ecc]
test al, al
je 0x1800721be
xorps xmm1, xmm1
call fcn.18003d1d0
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x1800709d2
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800709d2
cmp eax, 0xffffffff
je 0x1800709cb
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 + 0x60]
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 0x180070a8e
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180070a8e
cmp eax, 0xffffffff
je 0x180070a84
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 + 0x70]
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 0x180070b41
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180070b41
cmp eax, 0xffffffff
je 0x180070b37
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 + 0x98]
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 0x180070c02
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180070c02
cmp eax, 0xffffffff
je 0x180070bfb
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 + 0x94]
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 0x180070cb8
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180070cb8
cmp eax, 0xffffffff
je 0x180070cae
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 + 0x78]
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 0x180070d6b
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180070d6b
cmp eax, 0xffffffff
je 0x180070d61
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 + 0x9c]
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 0x180070e2c
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180070e2c
cmp eax, 0xffffffff
je 0x180070e25
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 + 0x68]
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 0x180070edf
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180070edf
cmp eax, 0xffffffff
je 0x180070ed5
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 + 0x58]
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 0x180070f92
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180070f92
cmp eax, 0xffffffff
je 0x180070f88
call fcn.18003de00
mov edx, 2
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 + 0x54]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5378]
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 0x180071050
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071050
cmp eax, 0xffffffff
je 0x180071049
call fcn.18003de00
xor edx, edx
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 0x180071103
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071103
cmp eax, 0xffffffff
je 0x1800710f9
call fcn.18003de00
mov edx, 1
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 + 0x3c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c53c8]
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 0x1800711b6
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x1800711b6
cmp eax, 0xffffffff
je 0x1800711ac
call fcn.18003de00
mov edx, 2
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 + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c53f8]
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 0x180071274
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071274
cmp eax, 0xffffffff
je 0x18007126d
call fcn.18003de00
xor edx, edx
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 + 0x7c]
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 0x180071327
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071327
cmp eax, 0xffffffff
je 0x18007131d
call fcn.18003de00
mov edx, 1
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 + 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5448]
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 0x1800713dd
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x1800713dd
cmp eax, 0xffffffff
je 0x1800713d3
call fcn.18003de00
mov edx, 2
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 + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5478]
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 0x18007149b
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18007149b
cmp eax, 0xffffffff
je 0x180071494
call fcn.18003de00
xor edx, edx
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 0x18007154e
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18007154e
cmp eax, 0xffffffff
je 0x180071544
call fcn.18003de00
mov edx, 1
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 + 0x84]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c54d0]
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 0x180071604
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180071604
cmp eax, 0xffffffff
je 0x1800715fa
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rcx, str.TubeRadius
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 + 0x4c]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 7]
mov dword [rbp + 7], 0x3dcccccd
lea rcx, [0x1800c5920]
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 0x1800716c2
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800716c2
cmp eax, 0xffffffff
je 0x1800716bb
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rcx, str.TubeWidth
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, [0x1800c5940]
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 0x180071775
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071775
cmp eax, 0xffffffff
je 0x18007176b
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 + 0x88]
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 0x180071894
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071894
cmp eax, 0xffffffff
je 0x18007188d
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 0x1800718fd
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 + 0x40]
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 0x18007198c
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18007198c
cmp eax, 0xffffffff
je 0x180071982
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 0x1800719df
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], 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 0x180071a71
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180071a71
cmp eax, 0xffffffff
je 0x180071a67
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 0x180071ac4
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 + 0x5c]
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 0x180071b61
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071b61
cmp eax, 0xffffffff
je 0x180071b5a
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 0x180071bb4
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 + 0x34]
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 0x180071c46
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071c46
cmp eax, 0xffffffff
je 0x180071c3c
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 0x180071c99
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 + 0x74]
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 0x180071d94
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071d94
cmp eax, 0xffffffff
je 0x180071d8d
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xa2]
lea rcx, str.AffectDiffuse
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180071dd8
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071dd8
cmp eax, 0xffffffff
je 0x180071dce
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xa5]
lea rcx, str.AffectRadiosity
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180071e1c
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180071e1c
cmp eax, 0xffffffff
je 0x180071e12
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xb1]
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 0x180071e64
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071e64
cmp eax, 0xffffffff
je 0x180071e5d
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xb0]
lea rcx, str.AllowGlobalCullFadeScale
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180071ea8
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071ea8
cmp eax, 0xffffffff
je 0x180071e9e
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xae]
lea rcx, str.AllowGlobalShadowCullFadeScale
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180071eec
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180071eec
cmp eax, 0xffffffff
je 0x180071ee2
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xa4]
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 0x180071f34
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180071f34
cmp eax, 0xffffffff
je 0x180071f2d
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xad]
lea rcx, str.CastShadowsEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180071f78
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180071f78
cmp eax, 0xffffffff
je 0x180071f6e
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xaa]
lea rcx, str.CastVolumetricShadowsEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180071fbc
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x180071fbc
cmp eax, 0xffffffff
je 0x180071fb2
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xa8]
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 0x180072004
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x180072004
cmp eax, 0xffffffff
je 0x180071ffd
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xa9]
lea rcx, str.EmissiveShapeEnable
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180072048
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180072048
cmp eax, 0xffffffff
je 0x18007203e
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xa6]
lea rcx, str.IsCapsule
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18007208c
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18007208c
cmp eax, 0xffffffff
je 0x180072082
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xa7]
lea rcx, str.IsEnabled
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 0x1800720d4
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800720d4
cmp eax, 0xffffffff
je 0x1800720cd
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xa3]
lea rcx, str.IsFirstPerson
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x180072118
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x180072118
cmp eax, 0xffffffff
je 0x18007210e
call fcn.18003de00
mov edx, 1
call fcn.18003dc20
lea rdx, [rdi + 0xab]
lea rcx, str.OnlyHempishere
call fcn.180044d10
or bl, al
mov rax, qword [0x1800dea00]
mov rcx, qword [rax + 0x4da8]
test rcx, rcx
je 0x18007215c
mov eax, dword [rcx + 0x74]
cmp eax, 2
je 0x18007215c
cmp eax, 0xffffffff
je 0x180072152
call fcn.18003de00
mov edx, 2
call fcn.18003dc20
lea rdx, [rdi + 0xac]
lea rcx, str.ShadowCacheEnable
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 0x1800721a4
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x1800721a4
cmp eax, 0xffffffff
je 0x18007219d
call fcn.18003de00
xor edx, edx
call fcn.18003dc20
lea rdx, [rdi + 0xaf]
lea rcx, str.SurfelLightingForceShadowCasting
call fcn.180044d10
or bl, al
call fcn.18003c880
lea rcx, str.TubeLightSettings1
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.TubeLightSettings1
mov edx, eax
xor r9d, r9d
mov r8d, 4
call fcn.18003a400
movaps xmm7, xmmword [rsp + 0x70]
test al, al
je 0x18007226a
movss xmm6, dword [0x1800c5fe8]
lea rdx, [rdi + 0x20]
movaps xmm3, xmm6
movss dword [rsp + 0x20], xmm9
mov r8b, 1
lea rcx, str.Color
call fcn.180057630
lea rdx, [rdi + 0x10]
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 0x180072299
cmp dword [rsi + 0x1c], 0
je 0x180072299
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