Function at 0x180154c50
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 - 0x858]
sub rsp, 0x918
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
mov r13, rcx
xor r12d, r12d
mov dword [rbp + 0x868], r12d
xor eax, eax
mov qword [rbp - 0x20], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
mov edi, 0xf
mov qword [rbp], rdi
mov byte [rbp + 8], al
mov qword [rbp - 8], 0xe
movsd xmm0, qword [str._UnlitGeneric_]
movsd qword [rbp - 0x18], xmm0
mov eax, dword [0x1801fbb98]
mov dword [rbp - 0x10], eax
movzx eax, word [0x1801fbb9c]
mov word [rbp - 0xc], ax
mov byte [rbp - 0xa], r12b
lea r8d, [r12 + 2]
lea rdx, [0x1801fbb8c]
lea rcx, [rbp - 0x18]
call fcn.1800a1c40
lea r8d, [r12 + 0x13]
lea rdx, str._n_t_color2___0_0_0__
lea rcx, [rbp - 0x18]
call fcn.1800a1c40
mov r8d, edi
lea rdx, str._n_t_additive__1_
lea rcx, [rbp - 0x18]
call fcn.1800a1c40
lea r8d, [r12 + 2]
lea rdx, [0x1801fbb60]
lea rcx, [rbp - 0x18]
call fcn.1800a1c40
mov byte [rbp + 8], 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x130], xmm0
mov qword [rbp + 0x140], 4
mov qword [rbp + 0x148], rdi
mov eax, dword [str.None]
mov dword [rbp + 0x130], eax
mov byte [rbp + 0x134], r12b
lea r8, [rbp + 0x130]
lea rdx, [rbp + 0x380]
mov rcx, r13
call fcn.180152250
mov rbx, qword [rax]
mov rax, qword [rbp - 0x20]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp - 0x18]
cmp rcx, rax
je 0x180154d96
lea rdx, [rbp - 0x18]
cmp qword [rbp], 0x10
cmovae rdx, qword [rbp - 0x18]
mov r8, qword [rbp - 8]
call fcn.180090b40
movzx eax, byte [rbp + 8]
mov byte [rbx + 0x58], al
mov rdx, qword [rbp + 0x148]
cmp rdx, 0x10
jb 0x180154de2
inc rdx
mov rcx, qword [rbp + 0x130]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180154ddc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180154ddc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18017dba4
nop
lea rcx, [rbp - 0x18]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x30], rdi
mov byte [rbp + 0x38], al
mov qword [rbp + 0x28], 0xe
movsd xmm0, qword [str._UnlitGeneric_]
movsd qword [rbp + 0x18], xmm0
mov eax, dword [0x1801fbb98]
mov dword [rbp + 0x20], eax
movzx eax, word [0x1801fbb9c]
mov word [rbp + 0x24], ax
mov byte [rbp + 0x26], 0
mov r8d, 2
lea rdx, [0x1801fbb8c]
lea rcx, [rbp + 0x18]
call fcn.1800a1c40
mov r8d, 0x24
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0x18]
call fcn.1800a1c40
mov r8d, 2
lea rdx, [0x1801fbb60]
lea rcx, [rbp + 0x18]
call fcn.1800a1c40
mov byte [rbp + 0x38], 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x1d0], xmm0
mov qword [rbp + 0x1e0], 4
mov qword [rbp + 0x1e8], rdi
mov eax, dword [str.Flat]
mov dword [rbp + 0x1d0], eax
mov byte [rbp + 0x1d4], 0
lea r8, [rbp + 0x1d0]
lea rdx, [rbp + 0xb0]
mov rcx, r13
call fcn.180152250
mov rbx, qword [rax]
mov rax, qword [rbp + 0x10]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp + 0x18]
cmp rcx, rax
je 0x180154ee6
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0x10
cmovae rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x28]
call fcn.180090b40
movzx eax, byte [rbp + 0x38]
mov byte [rbx + 0x58], al
mov rdx, qword [rbp + 0x1e8]
cmp rdx, 0x10
jb 0x180154f32
inc rdx
mov rcx, qword [rbp + 0x1d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180154f2c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180154f2c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18017dba4
nop
lea rcx, [rbp + 0x18]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x70], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x78], xmm0
mov qword [rbp + 0x88], r12
mov qword [rbp + 0x90], rdi
mov byte [rbp + 0x78], al
mov byte [rbp + 0x98], al
lea r8d, [rax + 0x12]
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp + 0x78]
call fcn.180090b40
mov r8d, 2
lea rdx, [0x1801fbb8c]
lea rcx, [rbp + 0x78]
call fcn.1800a1c40
mov r8d, 0x24
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0x78]
call fcn.1800a1c40
mov r8d, 2
lea rdx, [0x1801fbb60]
lea rcx, [rbp + 0x78]
call fcn.1800a1c40
mov byte [rbp + 0x98], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 6
mov qword [rsp + 0x78], rdi
mov eax, dword [str.Shaded]
mov dword [rsp + 0x60], eax
movzx eax, word [0x1801fbb1c]
mov word [rsp + 0x64], ax
mov byte [rsp + 0x66], 0
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x1f0]
mov rcx, r13
call fcn.180152250
mov rbx, qword [rax]
mov rax, qword [rbp + 0x70]
mov qword [rbx + 0x30], rax
lea rcx, [rbx + 0x38]
lea rax, [rbp + 0x78]
cmp rcx, rax
je 0x180155036
lea rdx, [rbp + 0x78]
cmp qword [rbp + 0x90], 0x10
cmovae rdx, qword [rbp + 0x78]
mov r8, qword [rbp + 0x88]
call fcn.180090b40
movzx eax, byte [rbp + 0x98]
mov byte [rbx + 0x58], al
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x180155081
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015507b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18015507b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18017dba4
nop
lea rcx, [rbp + 0x78]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x160], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x168], xmm0
mov qword [rbp + 0x178], r12
mov qword [rbp + 0x180], rdi
xor r8d, r8d
lea rdx, [0x1801ac4ce]
lea rcx, [rbp + 0x168]
call fcn.180091380
mov byte [rbp + 0x168], 0
mov byte [rbp + 0x188], 0
lea rdx, str._UnlitGeneric_
lea rcx, [rbp + 0x168]
call fcn.180090630
lea rdx, [0x1801fbb8c]
lea rcx, [rbp + 0x168]
call fcn.180121ea0
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0x168]
call fcn.180121ea0
lea rdx, str._n_t_wireframe__1_
lea rcx, [rbp + 0x168]
call fcn.180121ea0
lea rdx, [0x1801fbb60]
lea rcx, [rbp + 0x168]
call fcn.180121ea0
mov byte [rbp + 0x188], 1
lea rdx, str.Wireframe
lea rcx, [rbp + 0xf0]
call fcn.180090710
nop
lea rdx, [rbp + 0xf0]
mov rcx, r13
call fcn.180152120
mov rcx, rax
lea rdx, [rbp + 0x160]
call fcn.1801565a0
nop
lea rcx, [rbp + 0xf0]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x168]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0xc0], rax
lea rdx, [0x1801ac4ce]
lea rcx, [rbp + 0xc8]
call fcn.180090710
mov byte [rbp + 0xe8], 0
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp + 0xc8]
call fcn.180090630
lea rdx, [0x1801fbb8c]
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_basetexture__vgui_white_additive_
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_bumpmap__models_player_shared_shared_normal_
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_color2___0_0_0__
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_additive__1_
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_phong__1_
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_phongfresnelranges___0_0.5_1__
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_envmap__skybox_sky_dustbowl_01_
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, str._n_t_envmapfresnel__1_
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
lea rdx, [0x1801fbb60]
lea rcx, [rbp + 0xc8]
call fcn.180121ea0
mov byte [rbp + 0xe8], 1
lea rdx, str.Fresnel
lea rcx, [rbp + 0x110]
call fcn.180090710
nop
lea rdx, [rbp + 0x110]
mov rcx, r13
call fcn.180152120
mov rcx, rax
lea rdx, [rbp + 0xc0]
call fcn.1801565a0
nop
lea rcx, [rbp + 0x110]
call fcn.180090ae0
nop
lea rcx, [rbp + 0xc8]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x230], rax
lea rdx, [0x1801ac4ce]
lea rcx, [rbp + 0x238]
call fcn.180090710
mov byte [rbp + 0x258], 0
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp + 0x238]
call fcn.180090630
lea rdx, [0x1801fbb8c]
lea rcx, [rbp + 0x238]
call fcn.180121ea0
lea rdx, str._n_t_additive__1_
lea rcx, [rbp + 0x238]
call fcn.180121ea0
lea rdx, str._n_t_envmap__cubemaps_cubemap_sheen002.hdr_
lea rcx, [rbp + 0x238]
call fcn.180121ea0
lea rdx, str._n_t_envmaptint___1_1_1__
lea rcx, [rbp + 0x238]
call fcn.180121ea0
lea rdx, [0x1801fbb60]
lea rcx, [rbp + 0x238]
call fcn.180121ea0
mov byte [rbp + 0x258], 1
lea rdx, str.Shine
lea rcx, [rbp + 0x3f0]
call fcn.180090710
nop
lea rdx, [rbp + 0x3f0]
mov rcx, r13
call fcn.180152120
mov rcx, rax
lea rdx, [rbp + 0x230]
call fcn.1801565a0
nop
lea rcx, [rbp + 0x3f0]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x238]
call fcn.180090ae0
xor eax, eax
mov qword [rbp - 0x70], rax
lea rdx, [0x1801ac4ce]
lea rcx, [rbp - 0x68]
call fcn.180090710
mov byte [rbp - 0x48], 0
lea rdx, str._VertexLitGeneric_
lea rcx, [rbp - 0x68]
call fcn.180090630
lea rdx, [0x1801fbb8c]
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_basetexture__models_player_shared_ice_player_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_bumpmap__models_player_shared_shared_normal_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_additive__1_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_phong__1_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_phongfresnelranges___0_0.001_0.001__
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_envmap__skybox_sky_dustbowl_01_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_envmapfresnel__1_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_selfillum__1_
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, str._n_t_selfillumtint___0_0_0__
lea rcx, [rbp - 0x68]
call fcn.180121ea0
lea rdx, [0x1801fbb60]
lea rcx, [rbp - 0x68]
call fcn.180121ea0
mov byte [rbp - 0x48], 1
lea rdx, str.Tint
lea rcx, [rbp + 0x410]
call fcn.180090710
nop
lea rdx, [rbp + 0x410]
mov rcx, r13
call fcn.180152120
mov rbx, rax
mov rcx, qword [rbp - 0x70]
mov qword [rax], rcx
lea rcx, [rax + 8]
lea rax, [rbp - 0x68]
cmp rcx, rax
je 0x1801554df
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae rdx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x58]
call fcn.180090b40
movzx eax, byte [rbp - 0x48]
mov byte [rbx + 0x28], al
lea rcx, [rbp + 0x410]
call fcn.180090ae0
nop
lea rcx, [rbp - 0x68]
call fcn.180090ae0
mov rcx, qword [0x18022ac40]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0xa
jb 0x18015658c
lea r9, [0x18022ac30]
cmp qword [0x18022ac48], 0x10
cmovae r9, qword [0x18022ac30]
mov qword [rsp + 0x30], 0xa
lea rax, str.Materials
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0x50]
call fcn.1800f43f0
nop
lea rax, [rbp + 0x50]
cmp qword [rbp + 0x68], 0x10
cmovae rax, qword [rbp + 0x50]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x48], rax
call fcn.18017ee94
movaps xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x150], xmm0
lea r8, [rbp + 0x150]
mov edx, eax
lea rcx, [rbp + 0x1b0]
call fcn.1800e4d00
mov edi, 0xe00
mov dword [rbp + 0x868], edi
lea rdx, [rbp + 0x1b0]
lea rcx, [rsp + 0x50]
call fcn.18010dc60
nop
lea rcx, [rbp + 0x1b0]
call fcn.1800f1bd0
nop
lea rcx, [rbp + 0x50]
call fcn.180090ae0
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x1801555e1
lock inc dword [rbx + 8]
mov rbx, qword [rsp + 0x58]
mov edi, dword [rbp + 0x868]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x40], rsi
mov r15, rsi
mov qword [rsp + 0x48], rbx
test rbx, rbx
je 0x18015560c
lock inc dword [rbx + 8]
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x40]
mov edi, dword [rbp + 0x868]
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3e0], xmm1
mov r14, 0xffffffffffffffff
test rbx, rbx
je 0x18015565e
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18015564e
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18015564e
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov edi, dword [rbp + 0x868]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x58]
test r15, r15
je 0x180155bab
nop word [rax + rax]
lea rdx, [rbp + 0x200]
mov rcx, rsi
call fcn.18010d760
mov rax, qword [rbp + 0x200]
mov edx, dword [rbp + 0x208]
test edx, edx
je 0x18015569f
lea ecx, [rax - 1]
test ecx, 0xfffffff7
jne 0x18015657b
mov r15d, 0xf
cmp eax, 2
jne 0x18015579f
xorps xmm0, xmm0
movups xmmword [rbp + 0x260], xmm0
mov qword [rbp + 0x270], 4
mov qword [rbp + 0x278], r15
mov eax, dword [str..vmt]
mov dword [rbp + 0x260], eax
mov byte [rbp + 0x264], 0
or edi, 1
mov dword [rbp + 0x868], edi
lea rax, [rbp + 0x260]
mov qword [rbp + 0x390], rax
mov qword [rbp + 0x398], 4
call fcn.18017ee94
movaps xmm0, xmmword [rbp + 0x390]
movdqa xmmword [rbp + 0x3d0], xmm0
lea r8, [rbp + 0x3d0]
mov edx, eax
lea rcx, [rbp + 0x360]
call fcn.1800e4d00
or edi, 0x30
or edi, 2
mov dword [rbp + 0x868], edi
lea rcx, [rsi + 0x20]
lea rdx, [rbp + 0x4b0]
call fcn.18010d5d0
or edi, 4
mov dword [rbp + 0x868], edi
lea rcx, [rbp + 0x360]
cmp qword [rbp + 0x378], 8
cmovae rcx, qword [rbp + 0x360]
mov qword [rbp + 0xa0], rcx
mov rcx, qword [rbp + 0x370]
mov qword [rbp + 0xa8], rcx
movaps xmm0, xmmword [rbp + 0xa0]
movdqa xmmword [rbp + 0x3c0], xmm0
lea rdx, [rbp + 0x3c0]
mov rcx, rax
call fcn.18010d330
test eax, eax
jne 0x18015579f
xor bl, bl
jmp 0x1801557a1
mov bl, 1
test dil, 4
je 0x1801557bd
and edi, 0xfffffffb
mov dword [rbp + 0x868], edi
lea rcx, [rbp + 0x4b0]
call fcn.1800f1bd0
nop
test dil, 2
je 0x1801557d9
and edi, 0xfffffffd
mov dword [rbp + 0x868], edi
lea rcx, [rbp + 0x360]
call fcn.1800f1bd0
nop
test dil, 1
je 0x1801557f4
and edi, 0xfffffffe
mov dword [rbp + 0x868], edi
lea rcx, [rbp + 0x260]
call fcn.180090ae0
test bl, bl
jne 0x180155b8e
lea rdx, [rsi + 0x20]
cmp qword [rsi + 0x38], 8
jb 0x18015580b
mov rdx, qword [rsi + 0x20]
lea rcx, [rbp + 0x4e0]
call fcn.180158960
mov rax, qword [rbp + 0x4e0]
movsxd rcx, dword [rax + 4]
lea r8, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x4e0], r8
mov rax, qword [rbp + 0x4e0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4dc], edx
mov rax, qword [rbp + 0x4e0]
movsxd rcx, dword [rax + 4]
cmp dword [rbp + rcx + 0x4f0], 0
je 0x1801558a9
mov qword [rbp + rcx + 0x4e0], r8
mov rax, qword [rbp + 0x4e0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4dc], edx
lea rcx, [rbp + 0x4f0]
call fcn.1800f4140
lea rcx, [rbp + 0x4f8]
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 + 0x590]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
jmp 0x180155b8e
lea rcx, [rsi + 0x20]
cmp qword [rsi + 0x38], 8
jb 0x1801558b8
mov rcx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x30]
lea rdx, [rcx + rax*2]
mov r10, rdx
call fcn.18010cfd0
cmp rax, rdx
je 0x18015590c
nop dword [rax]
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x1801558df
cmp cx, 0x2f
jne 0x1801558e8
add rax, 2
cmp rax, rdx
jne 0x1801558d0
cmp rax, rdx
je 0x18015590c
nop dword [rax]
lea r8, [r10 - 2]
movzx ecx, word [r8]
cmp cx, 0x5c
je 0x18015590c
cmp cx, 0x2f
je 0x18015590c
mov r10, r8
cmp rax, r8
jne 0x1801558f0
sub rdx, r10
sar rdx, 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x340], xmm0
mov qword [rbp + 0x350], r12
mov qword [rbp + 0x358], r12
mov r8, rdx
mov rdx, r10
lea rcx, [rbp + 0x340]
call fcn.1801267b0
or edi, 0x1c0
mov dword [rbp + 0x868], edi
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x340]
call fcn.1800e4e70
nop
lea rcx, [rbp + 0x340]
call fcn.1800f1bd0
lea rax, [rbp - 0x40]
mov rbx, qword [rbp - 0x30]
cmp qword [rbp - 0x28], 0x10
jb 0x180155990
mov rcx, qword [rbp - 0x40]
lea rax, [rcx - 4]
add rax, rbx
mov r9, rax
sub r9, rcx
mov rdx, rbx
sub rdx, rax
add rdx, rcx
jmp 0x1801559b0
lea rdx, [rbx + rax]
lea rax, [rbp - 0x40]
add rax, 0xfffffffffffffffc
add rax, rbx
lea rcx, [rbp - 0x40]
mov r9, rax
sub r9, rcx
sub rdx, rax
lea rcx, [rbp - 0x40]
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 - 0x30], rbx
mov qword [rbp + 0x40], r12
mov word [rbp + 0x48], 1
mov rax, qword [rbp + 0x4e0]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x528]
mov qword [rbp + 0x210], rcx
test rcx, rcx
sete byte [rbp + 0x218]
mov byte [rbp + 0x219], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x190], xmm0
mov qword [rbp + 0x1a0], r12
mov qword [rbp + 0x1a8], r12
movaps xmm0, xmmword [rbp + 0x210]
movaps xmmword [rbp - 0x80], xmm0
movaps xmm6, xmmword [rbp + 0x40]
test rcx, rcx
je 0x180155a66
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 0x180155a55
mov byte [rbp - 0x77], al
mov rax, qword [rbp - 0x80]
mov byte [rbp - 0x78], 1
movaps xmm0, xmmword [rbp - 0x80]
jmp 0x180155a6b
mov rax, r12
mov qword [rbp - 0x80], rax
mov byte [rbp - 0x78], 1
movaps xmm0, xmmword [rbp - 0x80]
jmp 0x180155a6b
movq rax, xmm0
test rax, rax
movq rax, xmm6
jne 0x180156522
test rax, rax
je 0x18015652b
movdqa xmmword [rbp + 0x3b0], xmm6
movdqa xmmword [rbp + 0x3a0], xmm0
lea r8, [rbp + 0x3b0]
lea rdx, [rbp + 0x3a0]
lea rcx, [rbp + 0x190]
call fcn.180158b40
nop
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0x10
cmovae rbx, qword [rbp - 0x40]
mov edx, 0xca0c003e
lea rcx, [0x1801ee9b1]
call fcn.1800de790
mov r9d, eax
mov r8d, 0x811c9dc5
mov rcx, r14
nop dword [rax + rax]
inc rcx
cmp byte [rbx + rcx], 0
jne 0x180155ae0
mov rdx, r12
test rcx, rcx
je 0x180155b07
movsx eax, byte [rdx + rbx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180155af1
cmp r8d, r9d
je 0x180155b6b
xor eax, eax
mov qword [rbp + 0x430], rax
lea rdx, [0x1801ac4ce]
lea rcx, [rbp + 0x438]
call fcn.180090710
mov byte [rbp + 0x458], 0
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x438]
call fcn.180090650
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.1801583a0
mov rcx, rax
lea rdx, [rbp + 0x430]
call fcn.1801565a0
nop
lea rcx, [rbp + 0x438]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x190]
call fcn.180090ae0
nop
lea rcx, [rbp - 0x40]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x4e0]
call fcn.1800f35b0
lea rcx, [rsp + 0x40]
call fcn.18010dd70
mov rsi, qword [rsp + 0x40]
test rsi, rsi
jne 0x180155670
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x180155bf2
mov eax, r14d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x180155be7
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x180155be7
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + 8]
mov edi, dword [rbp + 0x868]
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x180155c27
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180155c21
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r14d
cmp r14d, 1
jne 0x180155c21
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov edi, dword [rbp + 0x868]
mov r12, qword [r13 + 8]
mov rbx, qword [r12]
lea r15, [r13 + 0x80]
cmp rbx, r12
je 0x180155dee
lea rax, str.m_pMat_s
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 8
mov qword [rbp + 0xb0], 1
lea rax, [rbp + 0x130]
mov qword [rbp + 0xb8], rax
movaps xmm6, xmmword [rbp + 0xa0]
movaps xmm7, xmmword [rbp + 0xb0]
movabs r13, 0xc000000000000000
nop dword [rax]
mov ecx, 0x40
call fcn.18017de44
mov r14, rax
mov qword [rbp + 0x868], rax
lea r8, [rbx + 0x10]
cmp qword [rbx + 0x28], 0x10
jb 0x180155cb3
mov r8, qword [rbx + 0x10]
mov edx, 0x80
lea rcx, [rbp + 0x5f0]
call fcn.1800d38e0
lea rdx, [rbp + 0x5f0]
mov rcx, r14
call qword [0x180226350]
nop
lea r8, [rbx + 0x38]
cmp qword [r8 + 0x18], 0x10
jb 0x180155ce3
mov r8, qword [r8]
lea rdx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0x10
jb 0x180155cf2
mov rdx, qword [rbx + 0x10]
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov rcx, r14
call qword [0x180226378]
lea rcx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0x10
jb 0x180155d16
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 0x20]
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x158], rax
movups xmm0, xmmword [rbp + 0x150]
movups xmmword [rbp + 0x138], xmm0
mov qword [rbp + 0x130], r13
movdqa xmmword [rbp + 0xb0], xmm7
movdqa xmmword [rbp + 0x380], xmm6
lea r8, [rbp + 0xb0]
lea rdx, [rbp + 0x380]
lea rcx, [rbp + 0x1b0]
call fcn.1800cb390
or edi, 8
lea rdx, [rbp + 0x1b0]
cmp qword [rbp + 0x1c8], 0x10
cmovae rdx, qword [rbp + 0x1b0]
mov rcx, qword [0x180229a28]
mov rax, qword [rcx]
mov r8, r14
call qword [rax + 0x240]
mov qword [rbp + 0x870], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x870]
lea rdx, [rbp + 0x480]
mov rcx, r15
call fcn.1801583c0
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rax, qword [rbp + 0x870]
mov qword [rbx + 0x30], rax
lea rcx, [rbp + 0x1b0]
call fcn.180090ae0
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r12
jne 0x180155c90
mov r13, qword [rbp + 0x860]
xor eax, eax
mov qword [rbp + 0x2b0], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x2b8], xmm0
xor edx, edx
mov qword [rbp + 0x2c8], rdx
mov qword [rbp + 0x2d0], 0xf
mov byte [rbp + 0x2b8], al
xor sil, sil
mov byte [rbp + 0x2d8], sil
mov rcx, qword [0x180229a28]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rdx
mov r9b, 1
lea r8, str.Other_textures
lea rdx, str.dev_glow_color
call qword [rax + 0x248]
mov rbx, rax
mov qword [rbp + 0x2b0], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r12, [r13 + 0x40]
xorps xmm0, xmm0
movups xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0x120], 9
mov qword [rbp + 0x128], 0xf
movsd xmm0, qword [str.GlowColor]
movsd qword [rbp + 0x110], xmm0
movzx ecx, byte [0x1801fb2b8]
mov byte [rbp + 0x118], cl
mov byte [rbp + 0x119], sil
lea r8, [rbp + 0x110]
lea rdx, [rbp + 0x470]
mov rcx, r12
call fcn.180152250
mov rdi, qword [rax]
mov qword [rdi + 0x30], rbx
lea rcx, [rdi + 0x38]
lea rax, [rbp + 0x2b8]
cmp rcx, rax
je 0x180155ee9
xor r8d, r8d
lea rdx, [rbp + 0x2b8]
call fcn.180090b40
movzx esi, byte [rbp + 0x2d8]
mov byte [rdi + 0x58], sil
lea rcx, [rbp + 0x110]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x2b8]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x2e0], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x2e8], xmm0
xor r13d, r13d
mov qword [rbp + 0x2f8], r13
mov qword [rbp + 0x300], 0xf
mov byte [rbp + 0x2e8], al
xor r14b, r14b
mov byte [rbp + 0x308], r14b
lea ecx, [rax + 0x40]
call fcn.18017de44
mov rsi, rax
mov qword [rbp + 0x868], rax
lea r8, str.BlurFilterX
mov edx, 0x80
lea rcx, [rbp + 0x670]
call fcn.1800d38e0
lea rdx, [rbp + 0x670]
mov rcx, rsi
call qword [0x180226350]
nop
mov r9, qword [0x180226328]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, rsi
call r9
mov rbx, rax
lea rax, str.glow_buffer_1
test rbx, rbx
je 0x180155ff3
cmp byte [rbx + 0x20], 1
jne 0x180155fab
cmp qword [rbx + 8], rax
je 0x180155ff3
mov rcx, qword [rbx + 8]
call fcn.18017dba4
mov rcx, qword [rbx + 0x10]
call fcn.18017dba4
mov qword [rbx + 0x10], r13
mov ecx, 0xe
call fcn.18017e4b0
mov qword [rbx + 8], rax
movsd xmm0, qword [str.glow_buffer_1]
movsd qword [rax], xmm0
mov ecx, dword [0x1801fb2e8]
mov dword [rax + 8], ecx
movzx ecx, word [0x1801fb2ec]
mov word [rax + 0xc], cx
mov byte [rbx + 0x20], 1
mov rcx, qword [0x180229a28]
mov rax, qword [rcx]
mov r8, rsi
lea rdx, str.m_pMatBlurX
call qword [rax + 0x240]
mov qword [rbp + 0x878], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x878]
lea rdx, [rbp + 0x490]
mov rcx, r15
call fcn.1801583c0
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rbx, qword [rbp + 0x878]
mov qword [rbp + 0x2e0], rbx
xorps xmm0, xmm0
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], 5
mov qword [rbp + 0x108], 0xf
mov eax, dword [str.BlurX]
mov dword [rbp + 0xf0], eax
movzx eax, byte [0x1801fb2a8]
mov byte [rbp + 0xf4], al
mov byte [rbp + 0xf5], 0
lea r8, [rbp + 0xf0]
lea rdx, [rbp + 0x460]
mov rcx, r12
call fcn.180152250
mov rdi, qword [rax]
mov qword [rdi + 0x30], rbx
lea rcx, [rdi + 0x38]
lea rax, [rbp + 0x2e8]
cmp rcx, rax
je 0x1801560cc
xor r8d, r8d
lea rdx, [rbp + 0x2e8]
call fcn.180090b40
movzx r14d, byte [rbp + 0x308]
mov byte [rdi + 0x58], r14b
lea rcx, [rbp + 0xf0]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x2e8]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x280], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x288], xmm0
mov qword [rbp + 0x298], r13
mov qword [rbp + 0x2a0], 0xf
mov byte [rbp + 0x288], al
xor r14b, r14b
mov byte [rbp + 0x2a8], r14b
lea ecx, [rax + 0x40]
call fcn.18017de44
mov rsi, rax
mov qword [rbp + 0x868], rax
lea r8, str.BlurFilterY
mov edx, 0x80
lea rcx, [rbp + 0x6f0]
call fcn.1800d38e0
lea rdx, [rbp + 0x6f0]
mov rcx, rsi
call qword [0x180226350]
nop
mov r9, qword [0x180226328]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, rsi
call r9
mov rbx, rax
test rax, rax
je 0x1801561d3
cmp byte [rax + 0x20], 1
jne 0x18015618b
lea rax, str.glow_buffer_2
cmp qword [rbx + 8], rax
je 0x1801561d3
mov rcx, qword [rbx + 8]
call fcn.18017dba4
mov rcx, qword [rbx + 0x10]
call fcn.18017dba4
mov qword [rbx + 0x10], r13
mov ecx, 0xe
call fcn.18017e4b0
mov qword [rbx + 8], rax
movsd xmm0, qword [str.glow_buffer_2]
movsd qword [rax], xmm0
mov ecx, dword [0x1801fb2d8]
mov dword [rax + 8], ecx
movzx ecx, word [0x1801fb2dc]
mov word [rax + 0xc], cx
mov byte [rbx + 0x20], 1
mov rcx, qword [0x180229a28]
mov rax, qword [rcx]
mov r8, rsi
lea rdx, str.m_pMatBlurY
call qword [rax + 0x240]
mov qword [rbp + 0x220], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x220]
lea rdx, [rbp + 0x4d0]
mov rcx, r15
call fcn.1801583c0
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rbx, qword [rbp + 0x220]
mov qword [rbp + 0x280], rbx
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], 5
mov qword [rbp + 0x68], 0xf
mov eax, dword [str.BlurY]
mov dword [rbp + 0x50], eax
movzx eax, byte [0x1801fb324]
mov byte [rbp + 0x54], al
mov byte [rbp + 0x55], 0
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x410]
mov rcx, r12
call fcn.180152250
mov rdi, qword [rax]
mov qword [rdi + 0x30], rbx
lea rcx, [rdi + 0x38]
lea rax, [rbp + 0x288]
cmp rcx, rax
je 0x180156297
xor r8d, r8d
lea rdx, [rbp + 0x288]
call fcn.180090b40
movzx r14d, byte [rbp + 0x2a8]
mov byte [rdi + 0x58], r14b
lea rcx, [rbp + 0x50]
call fcn.180090ae0
nop
lea rcx, [rbp + 0x288]
call fcn.180090ae0
xor eax, eax
mov qword [rbp + 0x310], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x318], xmm0
mov qword [rbp + 0x328], r13
mov qword [rbp + 0x330], 0xf
mov byte [rbp + 0x318], al
xor r14b, r14b
mov byte [rbp + 0x338], r14b
lea ecx, [rax + 0x40]
call fcn.18017de44
mov rsi, rax
mov qword [rbp + 0x868], rax
lea r8, str.UnlitGeneric
mov edx, 0x80
lea rcx, [rbp + 0x770]
call fcn.1800d38e0
lea rdx, [rbp + 0x770]
mov rcx, rsi
call qword [0x180226350]
nop
mov r9, qword [0x180226328]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, rsi
call r9
mov rbx, rax
test rax, rax
je 0x18015639b
cmp byte [rax + 0x20], 1
jne 0x180156353
lea rax, str.glow_buffer_1
cmp qword [rbx + 8], rax
je 0x18015639b
mov rcx, qword [rbx + 8]
call fcn.18017dba4
mov rcx, qword [rbx + 0x10]
call fcn.18017dba4
mov qword [rbx + 0x10], r13
mov ecx, 0xe
call fcn.18017e4b0
mov qword [rbx + 8], rax
movsd xmm0, qword [str.glow_buffer_1]
movsd qword [rax], xmm0
mov ecx, dword [0x1801fb2e8]
mov dword [rax + 8], ecx
movzx ecx, word [0x1801fb2ec]
mov word [rax + 0xc], cx
mov byte [rbx + 0x20], 1
mov rax, qword [0x180226328]
mov r8b, 1
lea rdx, str._additive
mov rcx, rsi
call rax
mov rbx, rax
test rax, rax
je 0x1801563fe
cmp byte [rax + 0x20], 1
jne 0x1801563cc
lea rax, [0x1801ac970]
cmp qword [rbx + 8], rax
je 0x1801563fe
mov rcx, qword [rbx + 8]
call fcn.18017dba4
mov rcx, qword [rbx + 0x10]
call fcn.18017dba4
mov qword [rbx + 0x10], r13
mov ecx, 2
call fcn.18017e4b0
mov qword [rbx + 8], rax
movzx ecx, word [0x1801ac970]
mov word [rax], cx
mov byte [rbx + 0x20], 1
mov rcx, qword [0x180229a28]
mov rax, qword [rcx]
mov r8, rsi
lea rdx, str.m_pMatHaloAddToScreen
call qword [rax + 0x240]
mov qword [rbp + 0x1f0], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
lea r8, [rbp + 0x1f0]
lea rdx, [rbp + 0x3f0]
mov rcx, r15
call fcn.1801583c0
mov rcx, qword [rax]
mov byte [rcx + 0x18], 1
mov rbx, qword [rbp + 0x1f0]
mov qword [rbp + 0x310], rbx
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0xf
mov qword [rsp + 0x78], 0xf
movsd xmm0, qword [str.HaloAddToScreen]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [0x1801fb318]
mov dword [rsp + 0x68], eax
movzx eax, word [0x1801fb31c]
mov word [rsp + 0x6c], ax
movzx eax, byte [0x1801fb31e]
mov byte [rsp + 0x6e], al
mov byte [rsp + 0x6f], 0
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x1d0]
mov rcx, r12
call fcn.180152250
mov rdi, qword [rax]
mov qword [rdi + 0x30], rbx
lea rcx, [rdi + 0x38]
lea rax, [rbp + 0x318]
cmp rcx, rax
je 0x1801564e3
xor r8d, r8d
lea rdx, [rbp + 0x318]
call fcn.180090b40
movzx r14d, byte [rbp + 0x338]
mov byte [rdi + 0x58], r14b
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x18015654b
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180156545
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180156545
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
test rax, rax
je 0x180155a82
mov qword [rbp + 0x1a0], r12
mov qword [rbp + 0x1a8], r15
mov byte [rbp + 0x190], 0
jmp 0x180155aad
call fcn.18017dba4
nop
lea rcx, [rbp + 0x318]
call fcn.180090ae0
movaps xmm6, xmmword [rsp + 0x900]
movaps xmm7, xmmword [rsp + 0x8f0]
add rsp, 0x918
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.1800e54e0
nop
call fcn.18006b3b0
int3