Function at 0x18003a3e0
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 - 0x28], r15
mov ecx, 0x241
xor r15b, r15b
xor r12b, r12b
xor dil, dil
call fcn.180011860
test al, al
je 0x18003a43e
cmp byte [0x180073b19], dil
jne 0x18003a43e
cmp byte [0x180073c30], dil
movzx eax, sil
jne 0x18003a446
cmp byte [0x1800700d1], dil
sete byte [0x1800700d1]
jmp 0x18003a446
xor al, al
mov byte [0x180073b19], al
mov r9, qword [0x180073b20]
mov edx, 0x20f
mov rcx, r9
mov byte [0x180073c30], al
call fcn.180011150
cmp byte [rax], dil
je 0x18003a4a6
cmp byte [r9 + 0x4034], dil
jne 0x18003a4a6
mov edx, 0x24d
mov rcx, r9
call fcn.180011150
cmp byte [rax], dil
je 0x18003a4a6
cmp byte [r9 + 0x431c], dil
jne 0x18003a4a6
cmp byte [0x180073c2d], dil
movzx eax, sil
jne 0x18003a4a8
cmp byte [0x180073b1d], dil
sete byte [0x180073b1d]
jmp 0x18003a4a8
xor al, al
mov byte [0x180073c2d], al
call fcn.18003a000
call fcn.180008fd0
cmp byte [0x1800700d1], dil
je 0x18003af9e
mov qword [rsp + 0x78], rbx
lea rdx, [0x1800700d1]
mov rbx, qword [0x180073b20]
lea rcx, str.BetterRenderDragon
mov qword [rsp + 0x50], r13
mov r8d, 0x400
xor r13d, r13d
or dword [rbx + 0x47a8], 3
mov dword [rbx + 0x47b8], 0x41200000
mov qword [rbx + 0x47bc], 0x41200000
mov dword [rbx + 0x47c4], r13d
mov dword [rbx + 0x47ac], 4
mov dword [rbx + 0x47c8], 0x43960000
mov dword [rbx + 0x47cc], 0x438c0000
mov dword [rbx + 0x47b0], 4
call fcn.18000e200
test al, al
je 0x18003aa4f
call fcn.180038830
test al, al
je 0x18003a696
movzx r8d, sil
lea rcx, str.View
xor edx, edx
call fcn.180038d20
test al, al
je 0x18003a590
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Open_Module_Manager
call fcn.180039a50
test al, al
je 0x18003a58b
mov byte [0x180073c2c], sil
movzx edi, sil
call fcn.180039950
movzx r8d, sil
lea rcx, str.Windows
xor edx, edx
call fcn.180038d20
test al, al
je 0x18003a653
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Reset_window_position_and_size
call fcn.180039a50
movzx edx, byte [0x180073c2c]
movzx r12d, al
test dl, dl
jne 0x18003a5d6
cmp byte [0x180073c2f], r13b
je 0x18003a64e
mov rcx, qword [0x180073b20]
mov rcx, qword [rcx + 0x3ed0]
cmp byte [rcx + 0xbb], r13b
jne 0x18003a606
mov ecx, dword [rcx + 0x1b4]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.180036da0
movzx edx, byte [0x180073c2c]
test dl, dl
je 0x18003a627
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.Module_Manager
call fcn.180039a50
test al, al
movzx edi, dil
cmovne edi, esi
cmp byte [0x180073c2f], r13b
je 0x18003a64e
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.About
call fcn.180039a50
test al, al
movzx r15d, r15b
cmovne r15d, esi
call fcn.180039950
movzx r8d, sil
lea rcx, str.Help
xor edx, edx
call fcn.180038d20
test al, al
je 0x18003a691
xor r9d, r9d
mov byte [rsp + 0x20], sil
lea rcx, str.About
call fcn.180039a50
test al, al
je 0x18003a68c
mov byte [0x180073c2f], sil
movzx r15d, sil
call fcn.180039950
call fcn.180038a80
lea rdx, str.v1.3.4
lea rcx, str.BetterRenderDragon__s
call fcn.180034d20
call fcn.180036c90
cmp byte [0x1800700d3], r13b
je 0x18003a79e
lea rcx, str.Performance
call fcn.180037c20
test al, al
je 0x18003a79e
mov rcx, qword [0x180073b20]
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.180034d20
movss xmm0, dword [rbx + 0x18]
lea rcx, str.Frame_Time:__.01fms
mulss xmm0, dword [0x180063a4c]
cvtps2pd xmm1, xmm0
movq rdx, xmm1
call fcn.180034d20
mov rcx, qword [0x180073b20]
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 [0x1800700d2], r13b
je 0x18003a8d8
lea rcx, str.Vanilla2Deferred
call fcn.180037c20
test al, al
je 0x18003a8d8
cmp byte [0x1800700d5], r13b
jne 0x18003a7cd
call fcn.180010c90
mov rcx, qword [0x180073b20]
lea rdx, [0x180073b1d]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], sil
mov rax, qword [rcx + 0x3ed0]
movss xmm0, dword [rcx + 0x383c]
lea rcx, str.Enable_Deferred_Rendering
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.1800365f0
lea rdx, [0x180073b1e]
lea rcx, str.Disable_RTX__Requires_restart_
call fcn.1800365f0
cmp byte [0x1800700d5], r13b
mov rdx, qword [0x180073b20]
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 0x18003a8d8
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 0x18003a8d8
test r8b, 4
jne 0x18003a8d8
mov eax, dword [rdx + 0x5b74]
mov dword [rdx + 0x37d0], eax
cmp byte [0x1800700d6], r13b
je 0x18003a99e
lea rcx, str.MaterialBinLoader
call fcn.180037c20
test al, al
je 0x18003a99e
mov rcx, qword [0x180073b20]
lea rdx, [0x1800700d4]
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.1800365f0
mov rcx, qword [0x180073b20]
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 [0x180073b1c], r13b
je 0x18003aa4a
lea rcx, str.CustomUniforms
call fcn.180037c20
test al, al
je 0x18003aa4a
mov rcx, qword [0x180073b20]
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.180036c90
call fcn.180010490
cmp byte [0x180073c2c], r13b
je 0x18003af3a
mov rax, qword [0x180073b20]
test dil, dil
je 0x18003aa74
or dword [rax + 0x47a8], 0x20
or dword [rax + 0x47a8], 2
lea rdx, [0x180073c2c]
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.18000e200
test al, al
je 0x18003af35
movaps xmmword [rsp + 0x30], xmm6
xorps xmm6, xmm6
mov qword [rsp + 0x70], r13
call fcn.1800110e0
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.18002c4f0
test al, al
je 0x18003af30
mov rax, qword [0x180073b20]
mov qword [rsp + 0x80], rbp
mov ebp, 0xffffffff
mov qword [rsp + 0x48], r14
lea r14, str.Module
mov rdi, qword [rax + 0x4b10]
lea esi, [rbp + 9]
movsx rcx, word [rdi + 0x1f6]
cmp ecx, dword [rdi + 0x6c]
jge 0x18003ac54
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.18002d2b0
mov eax, dword [rbx]
mov dword [rbx + 0x30], r13d
mov dword [rbx + 0x1c], r13d
cmp byte [rdi + 0x224], r13b
je 0x18003abb3
comiss xmm6, dword [rbx + 0x10]
jbe 0x18003ab81
comiss xmm6, dword [rbx + 0x18]
jbe 0x18003ab81
test sil, al
je 0x18003ab81
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x18003ab90
test byte [rdi + 0x60], 4
jne 0x18003ab90
mov word [rbx + 0x63], r13w
test al, 4
je 0x18003abb3
test byte [rdi + 0x60], sil
jne 0x18003abb3
bt eax, 0xf
mov word [rbx + 0x5a], r13w
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
mov word [rbx + 0x50], bp
add rdi, 0x188
lea rbp, [0x180060f2f]
mov eax, dword [rdi]
test eax, eax
lea ecx, [rax - 1]
cmove cx, r13w
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 0x18003ac00
add edx, edx
mov rcx, rdi
cmp ebx, edx
cmovg edx, ebx
call fcn.18001c2d0
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18003ac27
test ecx, ecx
je 0x18003ac16
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18003ac18
mov eax, esi
cmp eax, ebx
mov edx, ebx
mov rcx, rdi
cmovg edx, eax
call fcn.18001c2d0
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]
mov ebp, 0xffffffff
movsxd rcx, ebx
mov byte [rcx + rax - 1], r13b
mov rax, qword [0x180073b20]
lea r14, str.Enabled
mov rdi, qword [rax + 0x4b10]
movsx rcx, word [rdi + 0x1f6]
cmp ecx, dword [rdi + 0x6c]
jge 0x18003ad90
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.18002d2b0
mov eax, dword [rbx]
mov dword [rbx + 0x30], r13d
mov dword [rbx + 0x1c], r13d
cmp byte [rdi + 0x224], r13b
je 0x18003acf7
comiss xmm6, dword [rbx + 0x10]
jbe 0x18003acc5
comiss xmm6, dword [rbx + 0x18]
jbe 0x18003acc5
test sil, al
je 0x18003acc5
mov dword [rbx + 0x18], 0xbf800000
test al, 2
je 0x18003acd4
test byte [rdi + 0x60], 4
jne 0x18003acd4
mov word [rbx + 0x63], r13w
test al, 4
je 0x18003acf7
test byte [rdi + 0x60], sil
jne 0x18003acf7
bt eax, 0xf
mov word [rbx + 0x5a], r13w
movzx eax, byte [rbx + 0x6d]
setb cl
and al, 0xfc
inc cl
or cl, al
mov byte [rbx + 0x6d], cl
mov word [rbx + 0x50], bp
add rdi, 0x188
lea rbp, str.true
mov eax, dword [rdi]
test eax, eax
lea ecx, [rax - 1]
cmove cx, r13w
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 0x18003ad44
add edx, edx
mov rcx, rdi
cmp ebx, edx
cmovg edx, ebx
call fcn.18001c2d0
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18003ad68
test ecx, ecx
je 0x18003ad59
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.18001c2d0
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], r13b
call fcn.1800317b0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f1a0
mov rax, qword [0x180073b20]
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x80]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003add7
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003add7
cmp eax, 0xffffffff
je 0x18003add0
call fcn.18002fd80
xor edx, edx
call fcn.18002fbb0
lea rcx, str.Performance
call fcn.180034d20
mov rax, qword [0x180073b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ae12
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003ae12
cmp eax, 0xffffffff
je 0x18003ae08
call fcn.18002fd80
mov edx, 1
call fcn.18002fbb0
lea rdx, [0x1800700d3]
lea rcx, [0x180060f30]
call fcn.1800365f0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f1a0
mov rax, qword [0x180073b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ae5a
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003ae5a
cmp eax, 0xffffffff
je 0x18003ae53
call fcn.18002fd80
xor edx, edx
call fcn.18002fbb0
lea rcx, str.Vanilla2Deferred
call fcn.180034d20
mov rax, qword [0x180073b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003ae95
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003ae95
cmp eax, 0xffffffff
je 0x18003ae8b
call fcn.18002fd80
mov edx, 1
call fcn.18002fbb0
lea rdx, [0x1800700d2]
lea rcx, [0x180060f34]
call fcn.1800365f0
xorps xmm1, xmm1
xor ecx, ecx
call fcn.18002f1a0
mov rax, qword [0x180073b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003aedd
mov eax, dword [rcx + 0x74]
test eax, eax
je 0x18003aedd
cmp eax, 0xffffffff
je 0x18003aed6
call fcn.18002fd80
xor edx, edx
call fcn.18002fbb0
lea rcx, str.MaterialBinLoader
call fcn.180034d20
mov rax, qword [0x180073b20]
mov rcx, qword [rax + 0x4b10]
test rcx, rcx
je 0x18003af18
mov eax, dword [rcx + 0x74]
cmp eax, 1
je 0x18003af18
cmp eax, 0xffffffff
je 0x18003af0e
call fcn.18002fd80
mov edx, 1
call fcn.18002fbb0
lea rdx, [0x1800700d6]
lea rcx, [0x180060f38]
call fcn.1800365f0
call fcn.18002e840
movaps xmm6, xmmword [rsp + 0x30]
call fcn.180010490
cmp byte [0x180073c2f], 0
mov r13, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x78]
je 0x18003af9e
test r15b, r15b
je 0x18003af60
mov rax, qword [0x180073b20]
or dword [rax + 0x47a8], 0x20
xor r8d, r8d
lea rdx, [0x180073c2f]
lea rcx, str.BetterRenderDragon___About
call fcn.18000e200
test al, al
je 0x18003af99
lea rdx, str.v1.3.4
lea rcx, str.BetterRenderDragon__s
call fcn.180034d20
lea rcx, str.https:__github.com_ddf8196_BetterRenderDragon
call fcn.180034d20
call fcn.180010490
call fcn.18000acc0
mov r15, qword [rsp + 0x40]
test r12b, r12b
mov r12, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x88]
je 0x18003afdb
lea rcx, str.BetterRenderDragon
call fcn.18001a700
lea rcx, str.Dear_ImGui_Demo
add rsp, 0x68
jmp fcn.18001a700
add rsp, 0x68
ret