Function at 0x18003a3d0
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 0x20], rsi
xor edx, edx
mov qword [rax - 8], rdi
mov esi, 1
mov qword [rax - 0x10], r12
mov r8d, esi
mov qword [rax - 0x18], r13
mov ecx, 0x241
mov qword [rax - 0x28], r15
xor r13b, r13b
xor r15b, r15b
xor dil, dil
xor r12b, r12b
call fcn.180011850
test al, al
je 0x18003a435
cmp byte [0x180075b19], dil
jne 0x18003a435
cmp byte [0x180075c61], dil
movzx eax, sil
jne 0x18003a43d
cmp byte [0x1800720d0], dil
sete byte [0x1800720d0]
jmp 0x18003a43d
xor al, al
mov byte [0x180075b19], al
mov r9, qword [0x180075b20]
mov edx, 0x20f
mov rcx, r9
mov byte [0x180075c61], al
call fcn.180011140
cmp byte [rax], dil
je 0x18003a49d
cmp byte [r9 + 0x4034], dil
jne 0x18003a49d
mov edx, 0x24d
mov rcx, r9
call fcn.180011140
cmp byte [rax], dil
je 0x18003a49d
cmp byte [r9 + 0x431c], dil
jne 0x18003a49d
cmp byte [0x180075c5e], dil
movzx eax, sil
jne 0x18003a49f
cmp byte [0x180075b1f], dil
sete byte [0x180075b1f]
jmp 0x18003a49f
xor al, al
mov byte [0x180075c5e], al
call fcn.180039ff0
call fcn.180008fc0
cmp byte [0x1800720d0], dil
je 0x18003b074
mov qword [rsp + 0x78], rbx
lea rdx, [0x1800720d0]
mov rbx, qword [0x180075b20]
lea rcx, str.BetterRenderDragon
mov qword [rsp + 0x80], rbp
mov r8d, 0x400
xor ebp, ebp
or dword [rbx + 0x47a8], 3
mov dword [rbx + 0x47b8], 0x41200000
mov qword [rbx + 0x47bc], 0x41200000
mov dword [rbx + 0x47c4], ebp
mov dword [rbx + 0x47ac], 4
mov dword [rbx + 0x47c8], 0x43aa0000
mov dword [rbx + 0x47cc], 0x43898000
mov dword [rbx + 0x47b0], 4
call fcn.18000e1f0
test al, al
je 0x18003aac5
call fcn.180038820
test al, al
je 0x18003a6f3
movzx r8d, sil
lea rcx, str.View
xor edx, edx
call fcn.180038d10
test al, al
je 0x18003a588
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Open_Module_Manager
call fcn.180039a40
test al, al
je 0x18003a583
mov byte [0x180075c5c], sil
movzx edi, sil
call fcn.180039940
movzx r8d, sil
lea rcx, str.Windows
xor edx, edx
call fcn.180038d10
test al, al
je 0x18003a672
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Reset_window_position_and_size
call fcn.180039a40
movzx edx, byte [0x180075c5c]
movzx r13d, al
test dl, dl
jne 0x18003a5ce
cmp byte [0x180075c60], bpl
je 0x18003a646
mov rcx, qword [0x180075b20]
mov rcx, qword [rcx + 0x3ed0]
cmp byte [rcx + 0xbb], bpl
jne 0x18003a5fe
mov ecx, dword [rcx + 0x1b4]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.180036d90
movzx edx, byte [0x180075c5c]
test dl, dl
je 0x18003a61f
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Module_Manager
call fcn.180039a40
test al, al
movzx edi, dil
cmovne edi, esi
cmp byte [0x180075c60], bpl
je 0x18003a646
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.About
call fcn.180039a40
test al, al
movzx r15d, r15b
cmovne r15d, esi
cmp byte [0x180075c5d], bpl
je 0x18003a66d
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Changelog
call fcn.180039a40
test al, al
movzx r12d, r12b
cmovne r12d, esi
call fcn.180039940
movzx r8d, sil
lea rcx, str.Help
xor edx, edx
call fcn.180038d10
test al, al
je 0x18003a6b0
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.About
call fcn.180039a40
test al, al
je 0x18003a6ab
mov byte [0x180075c60], sil
movzx r15d, sil
call fcn.180039940
movzx r8d, sil
lea rcx, str.Changelog
xor edx, edx
call fcn.180038d10
test al, al
je 0x18003a6ee
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Changelog
call fcn.180039a40
test al, al
je 0x18003a6e9
mov byte [0x180075c5d], sil
movzx r12d, sil
call fcn.180039940
call fcn.180038a70
lea rdx, str.v1.3.7
lea rcx, str.BetterRenderDragon__s
call fcn.180034d10
call fcn.180036c80
cmp byte [0x1800720d2], bpl
je 0x18003a7fb
lea rcx, str.Performance
call fcn.180037c10
test al, al
je 0x18003a7fb
mov rcx, qword [0x180075b20]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rcx + 0x383c]
lea rcx, str.FPS:__.01f
addss xmm0, dword [rax + 0x144]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
movss xmm1, dword [rbx + 0xe0]
cvtps2pd xmm1, xmm1
movq rdx, xmm1
call fcn.180034d10
movss xmm0, dword [rbx + 0x18]
lea rcx, str.Frame_Time:__.01fms
mulss xmm0, dword [0x1800654cc]
cvtps2pd xmm1, xmm0
movq rdx, xmm1
call fcn.180034d10
mov rcx, qword [0x180075b20]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rax + 0x144]
subss xmm0, dword [rcx + 0x383c]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
cmp byte [0x1800720d1], bpl
je 0x18003a94e
lea rcx, str.Vanilla2Deferred
call fcn.180037c10
test al, al
je 0x18003a94e
cmp byte [0x1800720d4], bpl
jne 0x18003a82a
call fcn.180010c80
cmp byte [0x180075b1d], bpl
mov rcx, qword [0x180075b20]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rcx + 0x383c]
addss xmm0, dword [rax + 0x144]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
je 0x18003a88c
lea rcx, str.Force_Enable_Deferred_Technical_Preview
lea rdx, [0x180075b1b]
jmp 0x18003a89a
lea rcx, str.Enable_Deferred_Rendering
lea rdx, [0x180075b1f]
call fcn.1800365e0
lea rdx, [0x180075b54]
lea rcx, str.Disable_RTX__Requires_restart_
call fcn.1800365e0
cmp byte [0x1800720d4], bpl
mov rdx, qword [0x180075b20]
mov rax, qword [rdx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rdx + 0x3ed0]
movss xmm0, dword [rax + 0x144]
subss xmm0, dword [rdx + 0x383c]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
jne 0x18003a94e
mov eax, dword [rdx + 0x4750]
movsxd rcx, dword [rdx + 0x4858]
dec word [rdx + 0x5b78]
shr eax, 2
test sil, al
lea eax, [rcx - 1]
mov dword [rdx + 0x4858], eax
mov rax, qword [rdx + 0x4860]
mov r8d, dword [rax + rcx*4 - 8]
mov dword [rdx + 0x4750], r8d
je 0x18003a94e
test r8b, 4
jne 0x18003a94e
mov eax, dword [rdx + 0x5b74]
mov dword [rdx + 0x37d0], eax
cmp byte [0x1800720d5], bpl
je 0x18003aa14
lea rcx, str.MaterialBinLoader
call fcn.180037c10
test al, al
je 0x18003aa14
mov rcx, qword [0x180075b20]
lea rdx, [0x1800720d3]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rcx + 0x383c]
lea rcx, str.Load_shaders_from_resource_pack
addss xmm0, dword [rax + 0x144]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
call fcn.1800365e0
mov rcx, qword [0x180075b20]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rax + 0x144]
subss xmm0, dword [rcx + 0x383c]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
cmp byte [0x180075b1e], bpl
je 0x18003aac0
lea rcx, str.CustomUniforms
call fcn.180037c10
test al, al
je 0x18003aac0
mov rcx, qword [0x180075b20]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rcx + 0x383c]
addss xmm0, dword [rax + 0x144]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rax + 0x144]
subss xmm0, dword [rcx + 0x383c]
movss dword [rax + 0x144], xmm0
addss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x148]
movss dword [rax + 0x100], xmm0
call fcn.180036c80
call fcn.180010480
cmp byte [0x180075c5c], bpl
je 0x18003af96
mov rax, qword [0x180075b20]
test dil, dil
je 0x18003aaea
or dword [rax + 0x47a8], 0x20
or dword [rax + 0x47a8], 2
lea rdx, [0x180075c5c]
xor r8d, r8d
mov dword [rax + 0x47c8], 0x43960000
lea rcx, str.BetterRenderDragon___Module_Manager
mov dword [rax + 0x47cc], 0x43020000
mov dword [rax + 0x47b0], 4
call fcn.18000e1f0
test al, al
je 0x18003af91
movaps xmmword [rsp + 0x30], xmm6
xorps xmm6, xmm6
mov qword [rsp + 0x70], rbp
call fcn.1800110d0
lea rcx, [rsp + 0x70]
movss dword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rcx
mov r9d, 0x7c0
lea rcx, str.modulesTable
mov r8d, 2
mov edx, eax
call fcn.18002c4e0
test al, al
je 0x18003af8c
mov rax, qword [0x180075b20]
mov esi, 8
mov qword [rsp + 0x48], r14
lea r14, str.Module
mov rdi, qword [rax + 0x4b10]
movsx rcx, word [rdi + 0x1f6]
cmp ecx, dword [rdi + 0x6c]
jge 0x18003acb9
imul rbx, rcx, 0x70
inc cx
xor r8d, r8d
add rbx, qword [rdi + 0x18]
mov word [rdi + 0x1f6], cx
mov rdx, rbx
mov rcx, rdi
call fcn.18002d2a0
mov eax, dword [rbx]
mov dword [rbx + 0x30], ebp
mov dword [rbx + 0x1c], ebp
cmp byte [rdi + 0x224], bpl
je 0x18003ac1a
comiss xmm6, dword [rbx + 0x10]
jbe 0x18003abea
comiss xmm6, dword [rbx + 0x18]
jbe 0x18003abea
test sil, al
je 0x18003abea
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x18003abf8
test byte [rdi + 0x60], 4
jne 0x18003abf8
mov word [rbx + 0x63], bp
test al, 4
je 0x18003ac1a
test byte [rdi + 0x60], sil
jne 0x18003ac1a
bt eax, 0xf
mov word [rbx + 0x5a], bp
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
add rdi, 0x188
mov word [rbx + 0x50], 0xffff
mov eax, dword [rdi]
test eax, eax
lea ecx, [rax - 1]
cmove cx, bp
lea rbp, [0x180061f67]
sub ebp, r14d
mov word [rbx + 0x50], cx
mov eax, dword [rdi]
mov r14d, 1
mov edx, dword [rdi + 4]
test eax, eax
cmovne r14d, eax
lea ebx, [r14 + rbp]
cmp ebx, edx
jl 0x18003ac68
add edx, edx
mov rcx, rdi
cmp ebx, edx
cmovg edx, ebx
call fcn.18001c2c0
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18003ac8f
test ecx, ecx
je 0x18003ac7e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18003ac80
mov eax, esi
cmp eax, ebx
mov edx, ebx
mov rcx, rdi
cmovg edx, eax
call fcn.18001c2c0
lea eax, [r14 - 1]
mov dword [rdi], ebx
movsxd rcx, eax
lea rdx, str.Module
add rcx, qword [rdi + 8]
movsxd r8, ebp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 8]
xor ebp, ebp
movsxd rcx, ebx
mov byte [rcx + rax - 1], 0
mov rax, qword [0x180075b20]
lea r14, str.Enabled
mov rdi, qword [rax + 0x4b10]
movsx rcx, word [rdi + 0x1f6]
cmp ecx, dword [rdi + 0x6c]
jge 0x18003adf4
imul rbx, rcx, 0x70
inc cx
xor r8d, r8d
add rbx, qword [rdi + 0x18]
mov word [rdi + 0x1f6], cx
mov rdx, rbx
mov rcx, rdi
call fcn.18002d2a0
mov eax, dword [rbx]
mov dword [rbx + 0x30], ebp
mov dword [rbx + 0x1c], ebp
cmp byte [rdi + 0x224], 0
je 0x18003ad5a
comiss xmm6, dword [rbx + 0x10]
jbe 0x18003ad28
comiss xmm6, dword [rbx + 0x18]
jbe 0x18003ad28
test sil, al
je 0x18003ad28
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x18003ad38
test byte [rdi + 0x60], 4
jne 0x18003ad38
mov word [rbx + 0x63], 0
test al, 4
je 0x18003ad5a
test byte [rdi + 0x60], sil
jne 0x18003ad5a
bt eax, 0xf
mov word [rbx + 0x5a], bp
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
add rdi, 0x188
mov word [rbx + 0x50], 0xffff
mov eax, dword [rdi]
test eax, eax
lea ecx, [rax - 1]
cmove cx, bp
lea rbp, str.true
sub ebp, r14d
mov word [rbx + 0x50], cx
mov eax, dword [rdi]
mov r14d, 1
mov edx, dword [rdi + 4]
test eax, eax
cmovne r14d, eax
lea ebx, [r14 + rbp]
cmp ebx, edx
jl 0x18003ada8
add edx, edx
mov rcx, rdi
cmp ebx, edx
cmovg edx, ebx
call fcn.18001c2c0
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18003adcc
test ecx, ecx
je 0x18003adbd
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
lea esi, [rcx + rax]
cmp esi, ebx
mov edx, ebx
mov rcx, rdi
cmovg edx, esi
call fcn.18001c2c0
lea eax, [r14 - 1]
mov dword [rdi], ebx
movsxd rcx, eax
lea rdx, str.Enabled
add rcx, qword [rdi + 8]
movsxd r8, ebp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 8]
movsxd rcx, ebx
mov byte [rcx + rax - 1], 0
call fcn.1800317a0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f190
mov rax, qword [0x180075b20]
mov r14, qword [rsp + 0x48]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ae33
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003ae33
cmp eax, 0xffffffff
je 0x18003ae2c
call fcn.18002fd70
xor edx, edx
call fcn.18002fba0
lea rcx, str.Performance
call fcn.180034d10
mov rax, qword [0x180075b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ae6e
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003ae6e
cmp eax, 0xffffffff
je 0x18003ae64
call fcn.18002fd70
mov edx, 1
call fcn.18002fba0
lea rdx, [0x1800720d2]
lea rcx, [0x180061f68]
call fcn.1800365e0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f190
mov rax, qword [0x180075b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003aeb6
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003aeb6
cmp eax, 0xffffffff
je 0x18003aeaf
call fcn.18002fd70
xor edx, edx
call fcn.18002fba0
lea rcx, str.Vanilla2Deferred
call fcn.180034d10
mov rax, qword [0x180075b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003aef1
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003aef1
cmp eax, 0xffffffff
je 0x18003aee7
call fcn.18002fd70
mov edx, 1
call fcn.18002fba0
lea rdx, [0x1800720d1]
lea rcx, [0x180061f6c]
call fcn.1800365e0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f190
mov rax, qword [0x180075b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003af39
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003af39
cmp eax, 0xffffffff
je 0x18003af32
call fcn.18002fd70
xor edx, edx
call fcn.18002fba0
lea rcx, str.MaterialBinLoader
call fcn.180034d10
mov rax, qword [0x180075b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003af74
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003af74
cmp eax, 0xffffffff
je 0x18003af6a
call fcn.18002fd70
mov edx, 1
call fcn.18002fba0
lea rdx, [0x1800720d5]
lea rcx, [0x180061f70]
call fcn.1800365e0
call fcn.18002e830
movaps xmm6, xmmword [rsp + 0x30]
call fcn.180010480
cmp byte [0x180075c60], 0
mov rbp, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
je 0x18003affd
test r15b, r15b
je 0x18003afbf
mov rax, qword [0x180075b20]
or dword [rax + 0x47a8], 0x20
xor r8d, r8d
lea rdx, [0x180075c60]
lea rcx, str.BetterRenderDragon___About
call fcn.18000e1f0
test al, al
je 0x18003aff8
lea rdx, str.v1.3.7
lea rcx, str.BetterRenderDragon__s
call fcn.180034d10
lea rcx, str.https:__github.com_ddf8196_BetterRenderDragon
call fcn.180034d10
call fcn.180010480
cmp byte [0x180075c5d], 0
je 0x18003b074
test r12b, r12b
je 0x18003b019
mov rax, qword [0x180075b20]
or dword [rax + 0x47a8], 0x20
xor r8d, r8d
lea rdx, [0x180075c5d]
lea rcx, str.BetterRenderDragon___Changelog
call fcn.18000e1f0
test al, al
je 0x18003b06f
lea rcx, str.V1.3.3_n_Support_1.20.1
call fcn.180034d10
lea rcx, str.V1.3.4_n_Support_1.20.10_n_No_longer_support_version_below_1.20.10
call fcn.180034d10
lea rcx, str.V1.3.5_n_Support_1.20.32_n_Fixed_ImGui_flickering_on_some_devices_n_Removed_Vanilla2Deferred_option
call fcn.180034d10
lea rcx, str.V1.3.6_n_Support_1.20.40_and_1.20.50_n_Added_Force_Enable_Deferred_Technical_Preview_option
call fcn.180034d10
lea rcx, str.V1.3.7_n_Support_1.20.60.23_preview_n
call fcn.180034d10
call fcn.180010480
call fcn.18000acb0
mov r15, qword [rsp + 0x40]
test r13b, r13b
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x88]
je 0x18003b0b6
lea rcx, str.BetterRenderDragon
call fcn.18001a6f0
lea rcx, str.Dear_ImGui_Demo
add rsp, 0x68
jmp fcn.18001a6f0
add rsp, 0x68
ret