Function at 0x18003a060
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 ecx, 0x241
mov qword [rax - 0x10], r12
mov edi, 1
mov qword [rax - 0x18], r13
mov r8d, edi
mov qword [rax - 0x28], r15
xor r13b, r13b
xor r15b, r15b
xor sil, sil
xor r12b, r12b
call fcn.180011840
test al, al
je 0x18003a0c5
cmp byte [0x180077af9], sil
jne 0x18003a0c5
cmp byte [0x180077c40], sil
movzx eax, dil
jne 0x18003a0cd
cmp byte [0x1800740d8], sil
sete byte [0x1800740d8]
jmp 0x18003a0cd
xor al, al
mov byte [0x180077af9], al
mov r9, qword [0x180077b00]
mov edx, 0x20f
mov rcx, r9
mov byte [0x180077c40], al
call fcn.180011130
cmp byte [rax], sil
je 0x18003a12d
cmp byte [r9 + 0x4034], sil
jne 0x18003a12d
mov edx, 0x24d
mov rcx, r9
call fcn.180011130
cmp byte [rax], sil
je 0x18003a12d
cmp byte [r9 + 0x431c], sil
jne 0x18003a12d
cmp byte [0x180077c3e], sil
movzx eax, dil
jne 0x18003a12f
cmp byte [0x180077afe], sil
sete byte [0x180077afe]
jmp 0x18003a12f
xor al, al
mov byte [0x180077c3e], al
call fcn.18003adf0
call fcn.180008fb0
cmp byte [0x1800740d8], sil
je 0x18003ad96
mov qword [rsp + 0x78], rbx
lea rdx, [0x1800740d8]
mov rbx, qword [0x180077b00]
lea rcx, str.BetterRenderDragon
mov qword [rsp + 0x80], rbp
mov r8d, 0x440
xor ebp, ebp
movaps xmmword [rsp + 0x30], xmm6
or dword [rbx + 0x47a8], edi
mov dword [rbx + 0x47b8], 0x41200000
mov qword [rbx + 0x47bc], 0x41200000
mov dword [rbx + 0x47c4], ebp
mov dword [rbx + 0x47ac], 4
call fcn.18000e1e0
xorps xmm6, xmm6
test al, al
je 0x18003a811
call fcn.180038810
test al, al
je 0x18003a36c
movzx r8d, dil
lea rcx, str.View
xor edx, edx
call fcn.180038d00
test al, al
je 0x18003a201
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.Open_Module_Manager
call fcn.180039a30
test al, al
je 0x18003a1fc
mov byte [0x180077c3c], dil
movzx esi, dil
call fcn.180039930
movzx r8d, dil
lea rcx, str.Windows
xor edx, edx
call fcn.180038d00
test al, al
je 0x18003a2eb
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.Reset_window_position_and_size
call fcn.180039a30
movzx edx, byte [0x180077c3c]
movzx r13d, al
test dl, dl
jne 0x18003a247
cmp byte [0x180077c3f], bpl
je 0x18003a2bf
mov rcx, qword [0x180077b00]
mov rcx, qword [rcx + 0x3ed0]
cmp byte [rcx + 0xbb], bpl
jne 0x18003a277
mov ecx, dword [rcx + 0x1b4]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.180036d80
movzx edx, byte [0x180077c3c]
test dl, dl
je 0x18003a298
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.Module_Manager
call fcn.180039a30
test al, al
movzx esi, sil
cmovne esi, edi
cmp byte [0x180077c3f], bpl
je 0x18003a2bf
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.About
call fcn.180039a30
test al, al
movzx r15d, r15b
cmovne r15d, edi
cmp byte [0x180077c3d], bpl
je 0x18003a2e6
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.Changelog
call fcn.180039a30
test al, al
movzx r12d, r12b
cmovne r12d, edi
call fcn.180039930
movzx r8d, dil
lea rcx, str.Help
xor edx, edx
call fcn.180038d00
test al, al
je 0x18003a329
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.About
call fcn.180039a30
test al, al
je 0x18003a324
mov byte [0x180077c3f], dil
movzx r15d, dil
call fcn.180039930
movzx r8d, dil
lea rcx, str.Changelog
xor edx, edx
call fcn.180038d00
test al, al
je 0x18003a367
xor r9d, r9d
mov byte [rsp + 0x20], dil
lea rcx, str.Changelog
call fcn.180039a30
test al, al
je 0x18003a362
mov byte [0x180077c3d], dil
movzx r12d, dil
call fcn.180039930
call fcn.180038a60
lea rdx, str.v1.3.7
lea rcx, str.BetterRenderDragon__s
call fcn.180034d00
call fcn.180036c70
cmp byte [0x1800740da], bpl
je 0x18003a548
lea rcx, str.Performance
call fcn.180037c00
test al, al
je 0x18003a548
mov rax, qword gs:[0x58]
mov ecx, dword [0x180077a4c]
mov ebp, 4
mov rdi, qword [rax + rcx*8]
mov eax, dword [rdi + rbp]
cmp dword [0x180077c98], eax
jle 0x18003a3f9
lea rcx, [0x180077c98]
call fcn.180058cd4
cmp dword [0x180077c98], 0xffffffff
jne 0x18003a3f9
movss xmm0, dword [rbx + 0xe0]
lea rcx, [0x180077c98]
movss dword [0x180077c80], xmm0
call fcn.180058c68
mov eax, dword [rdi + rbp]
cmp dword [0x180077c70], eax
jle 0x18003a432
lea rcx, [0x180077c70]
call fcn.180058cd4
cmp dword [0x180077c70], 0xffffffff
jne 0x18003a432
movss xmm0, dword [rbx + 0x18]
lea rcx, [0x180077c70]
movss dword [0x180077ca0], xmm0
call fcn.180058c68
movss xmm0, dword [0x1800740b0]
movss xmm2, dword [rbx + 0x18]
subss xmm0, xmm2
comiss xmm6, xmm0
movss dword [0x1800740b0], xmm0
jb 0x18003a474
movss xmm1, dword [rbx + 0xe0]
movss dword [0x180077c80], xmm1
movss dword [0x180077ca0], xmm2
mov dword [0x1800740b0], 0x3f000000
jmp 0x18003a47c
movss xmm1, dword [0x180077c80]
mov rcx, qword [0x180077b00]
cvtps2pd xmm1, xmm1
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
movq rdx, xmm1
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
call fcn.180034d00
movss xmm0, dword [0x180077ca0]
lea rcx, str.Frame_Time:__.01fms
mulss xmm0, dword [0x18006746c]
cvtps2pd xmm1, xmm0
movq rdx, xmm1
call fcn.180034d00
mov rcx, qword [0x180077b00]
xor ebp, ebp
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
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 [0x1800740d9], 0
je 0x18003a69a
lea rcx, str.Vanilla2Deferred
call fcn.180037c00
test al, al
je 0x18003a69a
cmp byte [0x1800740dc], 0
jne 0x18003a577
call fcn.180010c70
cmp byte [0x180077afc], 0
mov rcx, qword [0x180077b00]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
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 0x18003a5d9
lea rcx, str.Force_Enable_Deferred_Technical_Preview
lea rdx, [0x180077afa]
jmp 0x18003a5e7
lea rcx, str.Enable_Deferred_Rendering
lea rdx, [0x180077afe]
call fcn.1800365d0
lea rdx, [0x180077aff]
lea rcx, str.Disable_RTX__Requires_restart_
call fcn.1800365d0
cmp byte [0x1800740dc], 0
mov rdx, qword [0x180077b00]
mov rax, qword [rdx + 0x3ed0]
mov byte [rax + 0xb8], 1
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 0x18003a69a
mov eax, dword [rdx + 0x4750]
movsxd rcx, dword [rdx + 0x4858]
dec word [rdx + 0x5b78]
shr eax, 2
test al, 1
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 0x18003a69a
test r8b, 4
jne 0x18003a69a
mov eax, dword [rdx + 0x5b74]
mov dword [rdx + 0x37d0], eax
cmp byte [0x1800740dd], 0
je 0x18003a760
lea rcx, str.MaterialBinLoader
call fcn.180037c00
test al, al
je 0x18003a760
mov rcx, qword [0x180077b00]
lea rdx, [0x1800740db]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
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.1800365d0
mov rcx, qword [0x180077b00]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
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 [0x180077afd], 0
je 0x18003a80c
lea rcx, str.CustomUniforms
call fcn.180037c00
test al, al
je 0x18003a80c
mov rcx, qword [0x180077b00]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
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], 1
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.180036c70
call fcn.180010470
cmp byte [0x180077c3c], 0
je 0x18003acb3
test sil, sil
je 0x18003a836
mov rax, qword [0x180077b00]
or dword [rax + 0x47a8], 0x20
xor r8d, r8d
lea rdx, [0x180077c3c]
lea rcx, str.BetterRenderDragon___Module_Manager
call fcn.18000e1e0
test al, al
je 0x18003acae
mov qword [rsp + 0x70], 0
call fcn.1800110c0
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.18002c4d0
test al, al
je 0x18003acae
mov rax, qword [0x180077b00]
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 0x18003a9dc
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.18002d290
mov eax, dword [rbx]
mov dword [rbx + 0x30], ebp
mov dword [rbx + 0x1c], ebp
cmp byte [rdi + 0x224], 0
je 0x18003a93f
comiss xmm6, dword [rbx + 0x10]
jbe 0x18003a90d
comiss xmm6, dword [rbx + 0x18]
jbe 0x18003a90d
test sil, al
je 0x18003a90d
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x18003a91d
test byte [rdi + 0x60], 4
jne 0x18003a91d
mov word [rbx + 0x63], 0
test al, 4
je 0x18003a93f
test byte [rdi + 0x60], sil
jne 0x18003a93f
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, [0x180063f47]
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 0x18003a98d
add edx, edx
mov rcx, rdi
cmp ebx, edx
cmovg edx, ebx
call fcn.18001c2b0
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18003a9b4
test ecx, ecx
je 0x18003a9a3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18003a9a5
mov eax, esi
cmp eax, ebx
mov edx, ebx
mov rcx, rdi
cmovg edx, eax
call fcn.18001c2b0
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]
movsxd rcx, ebx
mov byte [rcx + rax - 1], 0
mov rax, qword [0x180077b00]
lea r14, str.Enabled
mov rdi, qword [rax + 0x4b10]
movsx rcx, word [rdi + 0x1f6]
cmp ecx, dword [rdi + 0x6c]
jge 0x18003ab16
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.18002d290
mov eax, dword [rbx]
xor edx, edx
mov dword [rbx + 0x30], edx
mov dword [rbx + 0x1c], edx
cmp byte [rdi + 0x224], dl
je 0x18003aa7c
comiss xmm6, dword [rbx + 0x10]
jbe 0x18003aa4c
comiss xmm6, dword [rbx + 0x18]
jbe 0x18003aa4c
test sil, al
je 0x18003aa4c
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x18003aa5a
test byte [rdi + 0x60], 4
jne 0x18003aa5a
mov word [rbx + 0x63], dx
test al, 4
je 0x18003aa7c
test byte [rdi + 0x60], sil
jne 0x18003aa7c
bt eax, 0xf
mov word [rbx + 0x5a], dx
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
lea rbp, str.true
mov eax, dword [rdi]
test eax, eax
lea ecx, [rax - 1]
cmove cx, dx
sub ebp, r14d
mov word [rbx + 0x50], cx
mov r14d, 1
mov eax, dword [rdi]
test eax, eax
mov edx, dword [rdi + 4]
cmovne r14d, eax
lea ebx, [r14 + rbp]
cmp ebx, edx
jl 0x18003aaca
add edx, edx
mov rcx, rdi
cmp ebx, edx
cmovg edx, ebx
call fcn.18001c2b0
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18003aaee
test ecx, ecx
je 0x18003aadf
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.18001c2b0
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.180031790
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f180
mov rax, qword [0x180077b00]
mov r14, qword [rsp + 0x48]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ab55
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003ab55
cmp eax, 0xffffffff
je 0x18003ab4e
call fcn.18002fd60
xor edx, edx
call fcn.18002fb90
lea rcx, str.Performance
call fcn.180034d00
mov rax, qword [0x180077b00]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ab90
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003ab90
cmp eax, 0xffffffff
je 0x18003ab86
call fcn.18002fd60
mov edx, 1
call fcn.18002fb90
lea rdx, [0x1800740da]
lea rcx, [0x180063f48]
call fcn.1800365d0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f180
mov rax, qword [0x180077b00]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003abd8
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003abd8
cmp eax, 0xffffffff
je 0x18003abd1
call fcn.18002fd60
xor edx, edx
call fcn.18002fb90
lea rcx, str.Vanilla2Deferred
call fcn.180034d00
mov rax, qword [0x180077b00]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ac13
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003ac13
cmp eax, 0xffffffff
je 0x18003ac09
call fcn.18002fd60
mov edx, 1
call fcn.18002fb90
lea rdx, [0x1800740d9]
lea rcx, [0x180063f4c]
call fcn.1800365d0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f180
mov rax, qword [0x180077b00]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ac5b
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003ac5b
cmp eax, 0xffffffff
je 0x18003ac54
call fcn.18002fd60
xor edx, edx
call fcn.18002fb90
lea rcx, str.MaterialBinLoader
call fcn.180034d00
mov rax, qword [0x180077b00]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ac96
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003ac96
cmp eax, 0xffffffff
je 0x18003ac8c
call fcn.18002fd60
mov edx, 1
call fcn.18002fb90
lea rdx, [0x1800740dd]
lea rcx, [0x180063f50]
call fcn.1800365d0
call fcn.18002e820
call fcn.180010470
cmp byte [0x180077c3f], 0
movaps xmm6, xmmword [rsp + 0x30]
mov rbp, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
je 0x18003ad1f
test r15b, r15b
je 0x18003ace1
mov rax, qword [0x180077b00]
or dword [rax + 0x47a8], 0x20
xor r8d, r8d
lea rdx, [0x180077c3f]
lea rcx, str.BetterRenderDragon___About
call fcn.18000e1e0
test al, al
je 0x18003ad1a
lea rdx, str.v1.3.7
lea rcx, str.BetterRenderDragon__s
call fcn.180034d00
lea rcx, str.https:__github.com_ddf8196_BetterRenderDragon
call fcn.180034d00
call fcn.180010470
cmp byte [0x180077c3d], 0
je 0x18003ad96
test r12b, r12b
je 0x18003ad3b
mov rax, qword [0x180077b00]
or dword [rax + 0x47a8], 0x20
xor r8d, r8d
lea rdx, [0x180077c3d]
lea rcx, str.BetterRenderDragon___Changelog
call fcn.18000e1e0
test al, al
je 0x18003ad91
lea rcx, str.V1.3.3_n_Support_1.20.1
call fcn.180034d00
lea rcx, str.V1.3.4_n_Support_1.20.10_n_No_longer_support_version_below_1.20.10
call fcn.180034d00
lea rcx, str.V1.3.5_n_Support_1.20.32_n_Fixed_ImGui_flickering_on_some_devices_n_Removed_Vanilla2Deferred_option
call fcn.180034d00
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.180034d00
lea rcx, str.V1.3.7_n_Support_1.20.60.23_preview_n
call fcn.180034d00
call fcn.180010470
call fcn.18000aca0
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 0x18003ade4
lea rcx, str.BetterRenderDragon
call fcn.18001a6e0
lea rcx, str.BetterRenderDragon___Module_Manager
call fcn.18001a6e0
lea rcx, str.Dear_ImGui_Demo
add rsp, 0x68
jmp fcn.18001a6e0
add rsp, 0x68
ret