Function at 0x18015b870
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x6a8]
sub rsp, 0x768
vmovaps xmmword [rax - 0x58], xmm6
vmovaps xmmword [rax - 0x68], xmm7
mov r15, rcx
xor r13d, r13d
mov dword [rbp + 0x6b8], r13d
xor eax, eax
mov qword [rbp - 0x30], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x28], xmm0
mov r12d, 0xf
mov qword [rbp - 0x10], r12
mov byte [rbp - 8], al
mov qword [rbp - 0x18], 0xe
vmovsd xmm0, qword [str._UnlitGeneric_]
vmovsd qword [rbp - 0x28], xmm0
mov eax, dword [0x180205d90]
mov dword [rbp - 0x20], eax
movzx eax, word [0x180205d94]
mov word [rbp - 0x1c], ax
mov byte [rbp - 0x1a], r13b
lea r8d, [r13 + 2]
lea rdx, [0x180205d84]
lea rcx, [rbp - 0x28]
call fcn.1800a57a0
lea r8d, [r13 + 0x13]
lea rdx, str._n_t_color2___0_0_0__
lea rcx, [rbp - 0x28]
call fcn.1800a57a0
mov r8d, r12d
lea rdx, str._n_t_additive__1_
lea rcx, [rbp - 0x28]
call fcn.1800a57a0
lea r8d, [r13 + 2]
lea rdx, [0x180205d58]
lea rcx, [rbp - 0x28]
call fcn.1800a57a0
mov byte [rbp - 8], 1
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x150], xmm0
mov qword [rbp + 0x160], 4
mov qword [rbp + 0x168], r12
mov eax, dword [str.None]
mov dword [rbp + 0x150], eax
mov byte [rbp + 0x154], r13b
lea r8, [rbp + 0x150]
lea rdx, [rbp + 0x340]
mov rcx, r15
call fcn.1801589c0
mov rbx, qword [rax]
mov rax, qword [rbp - 0x30]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp - 0x28]
cmp rcx, rax
je 0x18015b9b9
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], r12
cmova rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x18]
call fcn.180091b90
movzx eax, byte [rbp - 8]
mov byte [rbx + 0x58], al
mov rdx, qword [rbp + 0x168]
cmp rdx, 0xf
jbe 0x18015ba05
inc rdx
mov rcx, qword [rbp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b9ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18015b9ff
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180184c4c
nop
lea rcx, [rbp - 0x28]
call fcn.180091b30
xor eax, eax
mov qword [rbp], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x20], r12
mov byte [rbp + 0x28], al
mov qword [rbp + 0x18], 0xe
vmovsd xmm0, qword [str._UnlitGeneric_]
vmovsd qword [rbp + 8], xmm0
mov eax, dword [0x180205d90]
mov dword [rbp + 0x10], eax
movzx eax, word [0x180205d94]
mov word [rbp + 0x14], ax
mov byte [rbp + 0x16], 0
mov r8d, 2
lea rdx, [0x180205d84]
lea rcx, [rbp + 8]
call fcn.1800a57a0
mov r8d, 0x24
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 8]
call fcn.1800a57a0
mov r8d, 2
lea rdx, [0x180205d58]
lea rcx, [rbp + 8]
call fcn.1800a57a0
mov byte [rbp + 0x28], 1
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x170], xmm0
mov qword [rbp + 0x180], 4
mov qword [rbp + 0x188], r12
mov eax, dword [str.Flat]
mov dword [rbp + 0x170], eax
mov byte [rbp + 0x174], 0
lea r8, [rbp + 0x170]
lea rdx, [rbp + 0x90]
mov rcx, r15
call fcn.1801589c0
mov rbx, qword [rax]
mov rax, qword [rbp]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp + 8]
cmp rcx, rax
je 0x18015bb0d
lea rdx, [rbp + 8]
cmp qword [rbp + 0x20], 0xf
cmova rdx, qword [rbp + 8]
mov r8, qword [rbp + 0x18]
call fcn.180091b90
movzx eax, byte [rbp + 0x28]
mov byte [rbx + 0x58], al
mov rdx, qword [rbp + 0x188]
cmp rdx, 0xf
jbe 0x18015bb59
inc rdx
mov rcx, qword [rbp + 0x170]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015bb53
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18015bb53
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180184c4c
nop
lea rcx, [rbp + 8]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0x50], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], r13
mov qword [rbp + 0x70], r12
mov byte [rbp + 0x58], al
mov byte [rbp + 0x78], al
lea r8d, [rax + 0x12]
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp + 0x58]
call fcn.180091b90
mov r8d, 2
lea rdx, [0x180205d84]
lea rcx, [rbp + 0x58]
call fcn.1800a57a0
mov r8d, 0x24
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0x58]
call fcn.1800a57a0
mov r8d, 2
lea rdx, [0x180205d58]
lea rcx, [rbp + 0x58]
call fcn.1800a57a0
mov byte [rbp + 0x78], 1
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 6
mov qword [rsp + 0x58], r12
mov eax, dword [str.Shaded]
mov dword [rsp + 0x40], eax
movzx eax, word [0x180205e50]
mov word [rsp + 0x44], ax
mov byte [rsp + 0x46], 0
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x1a0]
mov rcx, r15
call fcn.1801589c0
mov rbx, qword [rax]
mov rax, qword [rbp + 0x50]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp + 0x58]
cmp rcx, rax
je 0x18015bc4f
lea rdx, [rbp + 0x58]
cmp qword [rbp + 0x70], 0xf
cmova rdx, qword [rbp + 0x58]
mov r8, qword [rbp + 0x68]
call fcn.180091b90
movzx eax, byte [rbp + 0x78]
mov byte [rbx + 0x58], al
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x18015bc97
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015bc91
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18015bc91
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180184c4c
nop
lea rcx, [rbp + 0x58]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0xd0], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0xf0], r12
mov byte [rbp + 0xf8], al
mov qword [rbp + 0xe8], 0xe
vmovsd xmm0, qword [str._UnlitGeneric_]
vmovsd qword [rbp + 0xd8], xmm0
mov eax, dword [0x180205d90]
mov dword [rbp + 0xe0], eax
movzx eax, word [0x180205d94]
mov word [rbp + 0xe4], ax
mov byte [rbp + 0xe6], 0
lea rdx, [0x180205d84]
lea rcx, [rbp + 0xd8]
call fcn.180126f80
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0xd8]
call fcn.180126f80
lea rdx, str._n_t_wireframe__1_
lea rcx, [rbp + 0xd8]
call fcn.180126f80
lea rdx, [0x180205d58]
lea rcx, [rbp + 0xd8]
call fcn.180126f80
mov byte [rbp + 0xf8], 1
lea rdx, str.Wireframe
lea rcx, [rbp + 0x3e0]
call fcn.180091760
nop
lea rdx, [rbp + 0x3e0]
mov rcx, r15
call fcn.180158890
mov rcx, rax
lea rdx, [rbp + 0xd0]
call fcn.18015d210
nop
lea rcx, [rbp + 0x3e0]
call fcn.180091b30
nop
lea rcx, [rbp + 0xd8]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0xa0], rax
lea rdx, [0x1801b44ae]
lea rcx, [rbp + 0xa8]
call fcn.180091760
mov byte [rbp + 0xc8], 0
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp + 0xa8]
call fcn.180091680
lea rdx, [0x180205d84]
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_bumpmap__models_player_shared_shared_normal_
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_color2___0_0_0__
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_additive__1_
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_phong__1_
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_phongfresnelranges___0_0.5_1__
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_envmap__skybox_sky_dustbowl_01_
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, str._n_t_envmapfresnel__1_
lea rcx, [rbp + 0xa8]
call fcn.180126f80
lea rdx, [0x180205d58]
lea rcx, [rbp + 0xa8]
call fcn.180126f80
mov byte [rbp + 0xc8], 1
lea rdx, str.Fresnel
lea rcx, [rbp + 0x400]
call fcn.180091760
nop
lea rdx, [rbp + 0x400]
mov rcx, r15
call fcn.180158890
mov rcx, rax
lea rdx, [rbp + 0xa0]
call fcn.18015d210
nop
lea rcx, [rbp + 0x400]
call fcn.180091b30
nop
lea rcx, [rbp + 0xa8]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0x1d0], rax
lea rdx, [0x1801b44ae]
lea rcx, [rbp + 0x1d8]
call fcn.180091760
mov byte [rbp + 0x1f8], 0
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp + 0x1d8]
call fcn.180091680
lea rdx, [0x180205d84]
lea rcx, [rbp + 0x1d8]
call fcn.180126f80
lea rdx, str._n_t_additive__1_
lea rcx, [rbp + 0x1d8]
call fcn.180126f80
lea rdx, str._n_t_envmap__cubemaps_cubemap_sheen002.hdr_
lea rcx, [rbp + 0x1d8]
call fcn.180126f80
lea rdx, str._n_t_envmaptint___1_1_1__
lea rcx, [rbp + 0x1d8]
call fcn.180126f80
lea rdx, [0x180205d58]
lea rcx, [rbp + 0x1d8]
call fcn.180126f80
mov byte [rbp + 0x1f8], 1
lea rdx, str.Shine
lea rcx, [rbp + 0x420]
call fcn.180091760
nop
lea rdx, [rbp + 0x420]
mov rcx, r15
call fcn.180158890
mov rcx, rax
lea rdx, [rbp + 0x1d0]
call fcn.18015d210
nop
lea rcx, [rbp + 0x420]
call fcn.180091b30
nop
lea rcx, [rbp + 0x1d8]
call fcn.180091b30
xor eax, eax
mov qword [rbp - 0x80], rax
lea rdx, [0x1801b44ae]
lea rcx, [rbp - 0x78]
call fcn.180091760
mov byte [rbp - 0x58], 0
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp - 0x78]
call fcn.180091680
lea rdx, [0x180205d84]
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_basetexture__models_player_shared_ice_player_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_bumpmap__models_player_shared_shared_normal_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_additive__1_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_phong__1_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_phongfresnelranges___0_0.001_0.001__
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_envmap__skybox_sky_dustbowl_01_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_envmapfresnel__1_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_selfillum__1_
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, str._n_t_selfillumtint___0_0_0__
lea rcx, [rbp - 0x78]
call fcn.180126f80
lea rdx, [0x180205d58]
lea rcx, [rbp - 0x78]
call fcn.180126f80
mov byte [rbp - 0x58], 1
lea rdx, str.Tint
lea rcx, [rbp + 0x360]
call fcn.180091760
nop
lea r8, [rbp + 0x360]
lea rdx, [rbp + 0x190]
mov rcx, r15
call fcn.1801589c0
mov rbx, qword [rax]
mov rax, qword [rbp - 0x80]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp - 0x78]
cmp rcx, rax
je 0x18015c103
lea rdx, [rbp - 0x78]
cmp qword [rbp - 0x60], 0xf
cmova rdx, qword [rbp - 0x78]
mov r8, qword [rbp - 0x68]
call fcn.180091b90
movzx eax, byte [rbp - 0x58]
mov byte [rbx + 0x58], al
lea rcx, [rbp + 0x360]
call fcn.180091b30
nop
lea rcx, [rbp - 0x78]
call fcn.180091b30
mov rcx, qword [0x180235dd0]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0xa
jb 0x18015d200
lea r9, [0x180235dc0]
cmp qword [0x180235dd8], 0xf
cmova r9, qword [0x180235dc0]
mov qword [rsp + 0x30], 0xa
lea rax, str.Materials
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0x320]
call fcn.1800f8990
nop
lea rax, [rbp + 0x320]
cmp qword [rbp + 0x338], 0xf
cmova rax, qword [rbp + 0x320]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x330]
mov qword [rbp + 0x48], rax
call fcn.180185da4
vmovups xmm0, xmmword [rbp + 0x40]
vmovdqa xmmword [rbp + 0x100], xmm0
lea r8, [rbp + 0x100]
mov edx, eax
lea rcx, [rbp + 0x130]
call fcn.1800e88b0
mov edi, 0xe00
mov dword [rbp + 0x6b8], edi
lea rdx, [rbp + 0x130]
lea rcx, [rsp + 0x60]
call fcn.1801125c0
nop
lea rcx, [rbp + 0x130]
call fcn.1800f6250
nop
lea rcx, [rbp + 0x320]
call fcn.180091b30
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x18015c218
lock inc dword [rbx + 8]
mov rbx, qword [rsp + 0x68]
mov edi, dword [rbp + 0x6b8]
vmovups xmm0, xmmword [rsp + 0x60]
vmovdqu xmmword [rbp + 0x3d0], xmm0
vmovdqu xmmword [rbp + 0x30], xmm0
test rbx, rbx
je 0x18015c23f
lock inc dword [rbx + 8]
mov rbx, qword [rsp + 0x68]
mov edi, dword [rbp + 0x6b8]
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rbp + 0x3c0], xmm1
mov r14, 0xffffffffffffffff
test rbx, rbx
je 0x18015c28d
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18015c282
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18015c282
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov edi, dword [rbp + 0x6b8]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rbp + 0x30]
test rsi, rsi
je 0x18015c809
nop word [rax + rax]
lea rdx, [rbp + 0x1b0]
mov rcx, rsi
call fcn.1801120b0
mov rax, qword [rbp + 0x1b0]
mov edx, dword [rbp + 0x1b8]
test edx, edx
je 0x18015c2cf
lea ecx, [rax - 1]
test ecx, 0xfffffff7
jne 0x18015d1ef
cmp eax, 2
jne 0x18015c3cd
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x200], xmm0
mov qword [rbp + 0x210], 4
mov qword [rbp + 0x218], r12
mov eax, dword [str..vmt]
mov dword [rbp + 0x200], eax
mov byte [rbp + 0x204], 0
or edi, 1
mov dword [rbp + 0x6b8], edi
lea rax, [rbp + 0x200]
mov qword [rbp + 0x350], rax
mov qword [rbp + 0x358], 4
call fcn.180185da4
vmovups xmm0, xmmword [rbp + 0x350]
vmovdqa xmmword [rbp + 0x3b0], xmm0
lea r8, [rbp + 0x3b0]
mov edx, eax
lea rcx, [rbp + 0x2e0]
call fcn.1800e88b0
or edi, 0x30
or edi, 2
mov dword [rbp + 0x6b8], edi
lea rcx, [rsi + 0x20]
lea rdx, [rbp + 0x5a0]
call fcn.180111e40
or edi, 4
mov dword [rbp + 0x6b8], edi
lea rcx, [rbp + 0x2e0]
cmp qword [rbp + 0x2f8], 7
cmova rcx, qword [rbp + 0x2e0]
mov qword [rbp + 0x80], rcx
mov rcx, qword [rbp + 0x2f0]
mov qword [rbp + 0x88], rcx
vmovups xmm0, xmmword [rbp + 0x80]
vmovdqa xmmword [rbp + 0x3a0], xmm0
lea rdx, [rbp + 0x3a0]
mov rcx, rax
call fcn.180111b90
test eax, eax
jne 0x18015c3cd
xor bl, bl
jmp 0x18015c3cf
mov bl, 1
test dil, 4
je 0x18015c3eb
and edi, 0xfffffffb
mov dword [rbp + 0x6b8], edi
lea rcx, [rbp + 0x5a0]
call fcn.1800f6250
nop
test dil, 2
je 0x18015c407
and edi, 0xfffffffd
mov dword [rbp + 0x6b8], edi
lea rcx, [rbp + 0x2e0]
call fcn.1800f6250
nop
test dil, 1
je 0x18015c422
and edi, 0xfffffffe
mov dword [rbp + 0x6b8], edi
lea rcx, [rbp + 0x200]
call fcn.180091b30
test bl, bl
jne 0x18015c7ee
lea rbx, [rsi + 0x20]
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x18015c43b
mov rdx, qword [rbx]
lea rcx, [rbp + 0x470]
call fcn.18015f610
mov rax, qword [rbp + 0x470]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x470], rsi
mov rax, qword [rbp + 0x470]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x46c], edx
mov rax, qword [rbp + 0x470]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x470]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::good_void_const___ptr64]
test al, al
jne 0x18015c4ee
mov rax, qword [rbp + 0x470]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x470], rsi
mov rax, qword [rbp + 0x470]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x46c], edx
lea rcx, [rbp + 0x480]
call fcn.1800f8660
lea rcx, [rbp + 0x488]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x520]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
jmp 0x18015c7ee
mov rcx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x18015c4fb
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
lea rdx, [rcx + rax*2]
mov r10, rdx
call fcn.1801117b0
cmp rax, rdx
je 0x18015c54c
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x18015c51f
cmp cx, 0x2f
jne 0x18015c528
add rax, 2
cmp rax, rdx
jne 0x18015c510
cmp rax, rdx
je 0x18015c54c
nop dword [rax]
lea r8, [r10 - 2]
movzx ecx, word [r8]
cmp cx, 0x5c
je 0x18015c54c
cmp cx, 0x2f
je 0x18015c54c
mov r10, r8
cmp rax, r8
jne 0x18015c530
sub rdx, r10
sar rdx, 1
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x300], xmm0
mov qword [rbp + 0x310], r13
mov qword [rbp + 0x318], r13
mov r8, rdx
mov rdx, r10
lea rcx, [rbp + 0x300]
call fcn.18012bda0
or edi, 0x1c0
mov dword [rbp + 0x6b8], edi
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x300]
call fcn.1800e8a20
nop
lea rcx, [rbp + 0x300]
call fcn.1800f6250
lea rax, [rbp - 0x50]
mov rbx, qword [rbp - 0x40]
cmp qword [rbp - 0x38], 0xf
jbe 0x18015c5d2
mov rcx, qword [rbp - 0x50]
lea rax, [rbx - 4]
add rax, rcx
mov r9, rax
sub r9, rcx
mov rdx, rbx
sub rdx, rax
add rdx, rcx
jmp 0x18015c5f2
lea rdx, [rax + rbx]
lea rax, [rbp - 0x50]
add rax, 0xfffffffffffffffc
add rax, rbx
lea rcx, [rbp - 0x50]
mov r9, rax
sub r9, rcx
sub rdx, rax
lea rcx, [rbp - 0x50]
mov rax, rbx
sub rax, r9
cmp rax, rdx
cmovb rdx, rax
add rcx, r9
sub rbx, rdx
mov r8, rbx
sub r8, r9
inc r8
add rdx, rcx
call sub.VCRUNTIME140.dll_memmove
mov qword [rbp - 0x40], rbx
mov qword [rbp + 0x40], r13
mov word [rbp + 0x48], 1
mov rax, qword [rbp + 0x470]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x470]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ios_char__struct_std::char_traits_char__::rdbuf_void_const___ptr64]
mov qword [rbp + 0x1c0], rax
test rax, rax
sete byte [rbp + 0x1c8]
mov byte [rbp + 0x1c9], 0
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0x120], r13
mov qword [rbp + 0x128], r13
vmovups xmm0, xmmword [rbp + 0x1c0]
vmovups xmmword [rsp + 0x70], xmm0
vmovups xmm6, xmmword [rbp + 0x40]
test rax, rax
je 0x18015c6c2
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
je 0x18015c6ad
mov byte [rsp + 0x79], al
mov rax, qword [rsp + 0x70]
mov byte [rsp + 0x78], 1
vmovups xmm0, xmmword [rsp + 0x70]
jmp 0x18015c6c7
mov rax, r13
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x78], 1
vmovups xmm0, xmmword [rsp + 0x70]
jmp 0x18015c6c7
vmovq rax, xmm0
test rax, rax
vmovq rax, xmm6
jne 0x18015d194
test rax, rax
je 0x18015d19d
vmovdqa xmmword [rbp + 0x390], xmm6
vmovdqa xmmword [rbp + 0x380], xmm0
lea r8, [rbp + 0x390]
lea rdx, [rbp + 0x380]
lea rcx, [rbp + 0x110]
call fcn.18015f7f0
nop
mov edx, 0xca0c003e
lea rcx, [0x1801f69a1]
call fcn.1800e1f90
mov r10d, eax
lea r8, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova r8, qword [rbp - 0x50]
mov r9d, 0x811c9dc5
mov rcx, r14
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18015c734
mov rdx, r13
test rcx, rcx
je 0x18015c767
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x18015c750
cmp r9d, r10d
je 0x18015c7cb
xor eax, eax
mov qword [rbp + 0x440], rax
lea rdx, [0x1801b44ae]
lea rcx, [rbp + 0x448]
call fcn.180091760
mov byte [rbp + 0x468], 0
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x448]
call fcn.1800916a0
lea rdx, [rbp - 0x50]
mov rcx, r15
call fcn.18015f020
mov rcx, rax
lea rdx, [rbp + 0x440]
call fcn.18015d210
nop
lea rcx, [rbp + 0x448]
call fcn.180091b30
nop
lea rcx, [rbp + 0x110]
call fcn.180091b30
nop
lea rcx, [rbp - 0x50]
call fcn.180091b30
nop
lea rcx, [rbp + 0x470]
call fcn.1800f7aa0
lea rcx, [rbp + 0x30]
call fcn.1801126d0
mov rsi, qword [rbp + 0x30]
test rsi, rsi
jne 0x18015c2a0
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x18015c84d
mov eax, r14d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18015c842
mov rbx, qword [rbp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18015c842
mov rcx, qword [rbp + 0x38]
mov rax, qword [rcx]
call qword [rax + 8]
mov edi, dword [rbp + 0x6b8]
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x18015c882
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18015c87c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r14d
cmp r14d, 1
jne 0x18015c87c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov edi, dword [rbp + 0x6b8]
mov r12, qword [r15 + 8]
mov rbx, qword [r12]
cmp rbx, r12
je 0x18015ca44
lea rax, str.m_pMat_s
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 8
mov qword [rbp + 0x90], 1
lea rax, [rsp + 0x40]
mov qword [rbp + 0x98], rax
lea r13, [r15 + 0x80]
vmovups xmm6, xmmword [rbp + 0x80]
vmovups xmm7, xmmword [rbp + 0x90]
movabs r15, 0xc000000000000000
mov ecx, 0x40
call fcn.180184d74
mov r14, rax
mov qword [rbp + 0x6b8], rax
lea r8, [rbx + 0x10]
cmp qword [rbx + 0x28], 0xf
jbe 0x18015c907
mov r8, qword [rbx + 0x10]
mov edx, 0x80
lea rcx, [rbp + 0x5c0]
call fcn.1800d6bc0
lea rdx, [rbp + 0x5c0]
mov rcx, r14
call qword [0x180231478]
nop
lea r8, [rbx + 0x38]
cmp qword [r8 + 0x18], 0xf
jbe 0x18015c937
mov r8, qword [r8]
lea rdx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0xf
jbe 0x18015c946
mov rdx, qword [rbx + 0x10]
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov rcx, r14
call qword [0x1802314a0]
nop
lea rcx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0xf
jbe 0x18015c96b
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 0x20]
mov qword [rbp + 0x100], rcx
mov qword [rbp + 0x108], rax
vmovups xmm0, xmmword [rbp + 0x100]
vmovups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x40], r15
vmovdqa xmmword [rbp + 0x90], xmm7
vmovdqa xmmword [rbp + 0x340], xmm6
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x340]
lea rcx, [rbp + 0x130]
call fcn.1800a99f0
or edi, 8
lea rdx, [rbp + 0x130]
cmp qword [rbp + 0x148], 0xf
cmova rdx, qword [rbp + 0x130]
mov rcx, qword [0x180234ba8]
mov rax, qword [rcx]
mov r8, r14
call qword [rax + 0x240]
mov qword [rbp + 0x6c0], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x6c0]
lea rdx, [rbp + 0x580]
mov rcx, r13
call fcn.18015f040
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rax, qword [rbp + 0x6c0]
mov qword [rbx + 0x30], rax
lea rcx, [rbp + 0x130]
call fcn.180091b30
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r12
jne 0x18015c8e4
mov r15, qword [rbp + 0x6b0]
xor r13d, r13d
xor eax, eax
mov qword [rbp + 0x220], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x228], xmm0
mov qword [rbp + 0x238], r13
mov qword [rbp + 0x240], 0xf
mov byte [rbp + 0x228], al
xor r14b, r14b
mov byte [rbp + 0x248], r14b
mov rcx, qword [0x180234ba8]
mov rax, qword [rcx]
mov qword [rsp + 0x20], r13
mov r9b, 1
lea r8, str.Other_textures
lea rdx, str.dev_glow_color
call qword [rax + 0x248]
mov rbx, rax
mov qword [rbp + 0x220], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea rdi, [r15 + 0x40]
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 9
mov qword [rsp + 0x58], 0xf
vmovsd xmm0, qword [str.GlowColor]
vmovsd qword [rsp + 0x40], xmm0
movzx eax, byte [0x180205530]
mov byte [rsp + 0x48], al
mov byte [rsp + 0x49], r14b
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x360]
mov rcx, rdi
call fcn.1801589c0
mov rsi, qword [rax]
mov qword [rsi + 0x30], rbx
lea rcx, [rsi + 0x38]
lea rax, [rbp + 0x228]
cmp rcx, rax
je 0x18015cb34
xor r8d, r8d
lea rdx, [rbp + 0x228]
call fcn.180091b90
movzx r14d, byte [rbp + 0x248]
mov byte [rsi + 0x58], r14b
lea rcx, [rsp + 0x40]
call fcn.180091b30
nop
lea rcx, [rbp + 0x228]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0x250], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x258], xmm0
mov qword [rbp + 0x268], r13
mov qword [rbp + 0x270], 0xf
mov byte [rbp + 0x258], al
xor r12b, r12b
mov byte [rbp + 0x278], r12b
lea ecx, [rax + 0x40]
call fcn.180184d74
mov r14, rax
mov qword [rbp + 0x6b8], rax
lea r8, str.BlurFilterX
mov edx, 0x80
lea rcx, [rbp + 0x5c0]
call fcn.1800d6bc0
lea rdx, [rbp + 0x5c0]
mov rcx, r14
call qword [0x180231478]
nop
mov r9, qword [0x180231450]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r14
call r9
mov rbx, rax
lea rax, str.glow_buffer_1
test rbx, rbx
je 0x18015cc3f
cmp byte [rbx + 0x20], 1
jne 0x18015cbf7
cmp qword [rbx + 8], rax
je 0x18015cc3f
lea rdi, [r15 + 0x40]
mov rcx, qword [rbx + 8]
call fcn.180184c4c
mov rcx, qword [rbx + 0x10]
call fcn.180184c4c
mov qword [rbx + 0x10], r13
mov ecx, 0xe
call fcn.180185224
mov qword [rbx + 8], rax
vmovsd xmm0, qword [str.glow_buffer_1]
vmovsd qword [rax], xmm0
mov ecx, dword [0x1802054d8]
mov dword [rax + 8], ecx
movzx ecx, word [0x1802054dc]
mov word [rax + 0xc], cx
mov byte [rbx + 0x20], 1
mov rcx, qword [0x180234ba8]
mov rax, qword [rcx]
mov r8, r14
lea rdx, str.m_pMatBlurX
call qword [rax + 0x240]
mov qword [rbp + 0x6c8], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea rsi, [r15 + 0x80]
lea r8, [rbp + 0x6c8]
lea rdx, [rbp + 0x420]
mov rcx, rsi
call fcn.18015f040
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rbx, qword [rbp + 0x6c8]
mov qword [rbp + 0x250], rbx
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 5
mov qword [rsp + 0x58], 0xf
mov eax, dword [str.BlurX]
mov dword [rsp + 0x40], eax
movzx eax, byte [0x180205538]
mov byte [rsp + 0x44], al
mov byte [rsp + 0x45], 0
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x400]
mov rcx, rdi
call fcn.1801589c0
mov r14, qword [rax]
mov qword [r14 + 0x30], rbx
lea rcx, [r14 + 0x38]
lea rax, [rbp + 0x258]
cmp rcx, rax
je 0x18015cd13
xor r8d, r8d
lea rdx, [rbp + 0x258]
call fcn.180091b90
movzx r12d, byte [rbp + 0x278]
mov byte [r14 + 0x58], r12b
lea rcx, [rsp + 0x40]
call fcn.180091b30
nop
lea rcx, [rbp + 0x258]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0x280], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x288], xmm0
mov qword [rbp + 0x298], r13
mov qword [rbp + 0x2a0], 0xf
mov byte [rbp + 0x288], al
xor r13b, r13b
mov byte [rbp + 0x2a8], r13b
lea ecx, [rax + 0x40]
call fcn.180184d74
mov r12, rax
mov qword [rbp + 0x6b8], rax
lea r8, str.BlurFilterY
mov edx, 0x80
lea rcx, [rbp + 0x5c0]
call fcn.1800d6bc0
lea rdx, [rbp + 0x5c0]
mov rcx, r12
call qword [0x180231478]
nop
mov r9, qword [0x180231450]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r12
call r9
mov rbx, rax
test rax, rax
je 0x18015ce29
cmp byte [rax + 0x20], 1
jne 0x18015cddd
lea rax, str.glow_buffer_2
cmp qword [rbx + 8], rax
je 0x18015ce29
lea rsi, [r15 + 0x80]
lea rdi, [r15 + 0x40]
mov rcx, qword [rbx + 8]
call fcn.180184c4c
mov rcx, qword [rbx + 0x10]
call fcn.180184c4c
mov qword [rbx + 0x10], 0
mov ecx, 0xe
call fcn.180185224
mov qword [rbx + 8], rax
vmovsd xmm0, qword [str.glow_buffer_2]
vmovsd qword [rax], xmm0
mov ecx, dword [0x1802054e8]
mov dword [rax + 8], ecx
movzx ecx, word [0x1802054ec]
mov word [rax + 0xc], cx
mov byte [rbx + 0x20], 1
mov rcx, qword [0x180234ba8]
mov rax, qword [rcx]
mov r8, r12
lea rdx, str.m_pMatBlurY
call qword [rax + 0x240]
mov qword [rbp + 0x190], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x190]
lea rdx, [rbp + 0x3e0]
mov rcx, rsi
call fcn.18015f040
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rbx, qword [rbp + 0x190]
mov qword [rbp + 0x280], rbx
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 5
mov qword [rsp + 0x58], 0xf
mov eax, dword [str.BlurY]
mov dword [rsp + 0x40], eax
movzx eax, byte [0x180205514]
mov byte [rsp + 0x44], al
mov byte [rsp + 0x45], 0
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x320]
mov rcx, rdi
call fcn.1801589c0
mov r14, qword [rax]
mov qword [r14 + 0x30], rbx
lea rcx, [r14 + 0x38]
lea rax, [rbp + 0x288]
cmp rcx, rax
je 0x18015cef6
xor r8d, r8d
lea rdx, [rbp + 0x288]
call fcn.180091b90
movzx r13d, byte [rbp + 0x2a8]
mov byte [r14 + 0x58], r13b
lea rcx, [rsp + 0x40]
call fcn.180091b30
nop
lea rcx, [rbp + 0x288]
call fcn.180091b30
xor eax, eax
mov qword [rbp + 0x2b0], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x2b8], xmm0
mov qword [rbp + 0x2c8], rax
mov qword [rbp + 0x2d0], 0xf
mov byte [rbp + 0x2b8], al
xor r13b, r13b
mov byte [rbp + 0x2d8], r13b
lea ecx, [rax + 0x40]
call fcn.180184d74
mov r12, rax
mov qword [rbp + 0x6b8], rax
lea r8, str.UnlitGeneric
mov edx, 0x80
lea rcx, [rbp + 0x5c0]
call fcn.1800d6bc0
lea rdx, [rbp + 0x5c0]
mov rcx, r12
call qword [0x180231478]
nop
mov r9, qword [0x180231450]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r12
call r9
mov rbx, rax
test rax, rax
je 0x18015d00c
cmp byte [rax + 0x20], 1
jne 0x18015cfb5
lea rax, str.glow_buffer_1
cmp qword [rbx + 8], rax
je 0x18015d00c
mov rcx, qword [rbx + 8]
call fcn.180184c4c
mov rcx, qword [rbx + 0x10]
call fcn.180184c4c
mov qword [rbx + 0x10], 0
mov ecx, 0xe
call fcn.180185224
mov qword [rbx + 8], rax
vmovsd xmm0, qword [str.glow_buffer_1]
vmovsd qword [rax], xmm0
mov ecx, dword [0x1802054d8]
mov dword [rax + 8], ecx
movzx ecx, word [0x1802054dc]
mov word [rax + 0xc], cx
mov byte [rbx + 0x20], 1
lea rsi, [r15 + 0x80]
lea rdi, [r15 + 0x40]
mov rax, qword [0x180231450]
mov r8b, 1
lea rdx, str._additive
mov rcx, r12
call rax
mov rbx, rax
test rax, rax
je 0x18015d073
cmp byte [rax + 0x20], 1
jne 0x18015d03d
lea rax, [0x1801b4950]
cmp qword [rbx + 8], rax
je 0x18015d073
mov rcx, qword [rbx + 8]
call fcn.180184c4c
mov rcx, qword [rbx + 0x10]
call fcn.180184c4c
mov qword [rbx + 0x10], 0
mov ecx, 2
call fcn.180185224
mov qword [rbx + 8], rax
movzx ecx, word [0x1801b4950]
mov word [rax], cx
mov byte [rbx + 0x20], 1
mov rcx, qword [0x180234ba8]
mov rax, qword [rcx]
mov r8, r12
lea rdx, str.m_pMatHaloAddToScreen
call qword [rax + 0x240]
mov qword [rbp + 0x1a0], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x1a0]
lea rdx, [rbp + 0x170]
mov rcx, rsi
call fcn.18015f040
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rbx, qword [rbp + 0x1a0]
mov qword [rbp + 0x2b0], rbx
mov byte [rsp + 0x4f], 0
mov qword [rsp + 0x50], 0xf
mov qword [rsp + 0x58], 0xf
vmovsd xmm0, qword [str.HaloAddToScreen]
vmovsd qword [rsp + 0x40], xmm0
mov eax, dword [0x180205520]
mov dword [rsp + 0x48], eax
movzx eax, word [0x180205524]
mov word [rsp + 0x4c], ax
movzx eax, byte [0x180205526]
mov byte [rsp + 0x4e], al
mov byte [rsp + 0x4f], 0
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x150]
mov rcx, rdi
call fcn.1801589c0
mov rdi, qword [rax]
mov qword [rdi + 0x30], rbx
lea rcx, [rdi + 0x38]
lea rax, [rbp + 0x2b8]
cmp rcx, rax
je 0x18015d155
xor r8d, r8d
lea rdx, [rbp + 0x2b8]
call fcn.180091b90
movzx r13d, byte [rbp + 0x2d8]
mov byte [rdi + 0x58], r13b
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x18015d1bd
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015d1b7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18015d1b7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
test rax, rax
je 0x18015c6de
mov qword [rbp + 0x120], r13
mov qword [rbp + 0x128], r12
mov byte [rbp + 0x110], 0
jmp 0x18015c709
call fcn.180184c4c
nop
lea rcx, [rbp + 0x2b8]
call fcn.180091b30
vmovaps xmm6, xmmword [rsp + 0x750]
vmovaps xmm7, xmmword [rsp + 0x740]
add rsp, 0x768
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, [rsi + 0x20]
lea rcx, str.directory_entry::status
call fcn.1800e9050
nop
call fcn.18006c3e0
int3