Function at 0x140060e50
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x420]
sub rsp, 0x520
mov rax, qword [0x14013a040]
xor rax, rsp
mov qword [rbp + 0x410], rax
mov rdi, r8
xor ebx, ebx
mov r8d, 0x104
lea rdx, [rbp + 0x300]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xorps xmm0, xmm0
movups xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], rbx
mov qword [rbp + 0x80], rbx
lea rax, [rbp + 0x300]
mov r13, 0xffffffffffffffff
mov r8, r13
inc r8
cmp byte [rax + r8], bl
jne 0x140060ec5
lea rdx, [rbp + 0x300]
lea rcx, [rbp + 0x68]
call fcn.14006b260
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x88]
call fcn.1400664a0
lea rbx, [rbp + 0x88]
cmp qword [rbp + 0xa0], 0xf
seta r15b
mov r14, qword [rbp + 0x88]
cmova rbx, r14
mov rsi, qword [rbp + 0x98]
test rsi, rsi
je 0x140060f8d
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0xd0]
call fcn.1400fa1b0
lea rcx, [0x140119ef4]
lea rdx, [0x140119ef6]
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rbp + rax + 0xd0], 1
inc rcx
cmp rcx, rdx
jne 0x140060f40
lea rax, [rsi - 1]
mov r8, r13
cmp rax, r13
cmovb r8, rax
add r8, rbx
movzx eax, byte [r8]
cmp byte [rbp + rax + 0xd0], 0
jne 0x140060f88
cmp r8, rbx
je 0x140060f8d
dec r8
movzx eax, byte [r8]
cmp byte [rbp + rax + 0xd0], 0
je 0x140060f72
sub r8, rbx
jmp 0x140060f90
mov r8, r13
xorps xmm0, xmm0
movups xmmword [rbp + 0x48], xmm0
xor ebx, ebx
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x60], rbx
cmp rsi, r8
cmovb r8, rsi
lea rdx, [rbp + 0x88]
test r15b, r15b
cmovne rdx, r14
lea rcx, [rbp + 0x48]
call fcn.14006b260
mov rdx, qword [rbp + 0xa0]
cmp rdx, 0xf
jbe 0x140061002
inc rdx
mov rcx, qword [rbp + 0x88]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140060ffd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140060ffd
call fcn.1400da0ac
int3
call fcn.1400c325c
movups xmm0, xmmword [rbp + 0x48]
movups xmmword [rbp + 0x88], xmm0
movups xmm1, xmmword [rbp + 0x58]
movups xmmword [rbp + 0x98], xmm1
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x60], 0xf
mov byte [rbp + 0x48], bl
lea rcx, [rbp + 0x48]
call fcn.140068040
lea rax, [rbp + 0x88]
cmp qword [rbp + 0xa0], 0xf
cmova rax, qword [rbp + 0x88]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x98]
mov qword [rbp - 8], rax
call fcn.1400c4200
movaps xmm0, xmmword [rbp - 0x10]
movdqa xmmword [rbp - 0x10], xmm0
lea r8, [rbp - 0x10]
mov edx, eax
lea rcx, [rbp + 0x28]
call fcn.14005e3e0
lea rcx, [rbp + 0x28]
cmp qword [rbp + 0x40], 7
cmova rcx, qword [rbp + 0x28]
call fcn.1400c433c
test eax, eax
je 0x140061096
lea r8, [rbp + 0x28]
mov edx, eax
call fcn.14005eab0
int3
lea rcx, [rbp + 0x28]
call fcn.140067fd0
mov qword [rbp - 0x18], rbx
mov qword [rsp + 0x40], rbx
lea rax, [rbp - 0x18]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
lea rdx, str.SoftwareClasses.soda
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
xorps xmm0, xmm0
test eax, eax
jne 0x14006117e
movups xmmword [rbp + 0x48], xmm0
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x60], rbx
lea r8d, [rax + 0x13]
lea rdx, str.Sodalite_Chart_File
lea rcx, [rbp + 0x48]
call fcn.14006b260
lea rcx, [rbp + 0x48]
mov r8, qword [rbp + 0x58]
cmp qword [rbp + 0x60], 0xf
jbe 0x14006111f
mov rdx, qword [rbp + 0x48]
add r8, rdx
jmp 0x140061126
add r8, rcx
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x28]
call fcn.140069df0
mov eax, dword [rbp + 0x38]
add eax, eax
lea rcx, [rbp + 0x28]
cmp qword [rbp + 0x40], 7
cmova rcx, qword [rbp + 0x28]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rbp + 0x28]
call fcn.140067fd0
lea rcx, [rbp + 0x48]
call fcn.140068040
jmp 0x1400611a9
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
mov r8d, 0x25
lea rdx, str._Main__Error_creating_registry_key_1.
lea rcx, [rbp + 0x28]
call fcn.14006b260
lea rcx, [rbp + 0x28]
call fcn.14005ed20
mov qword [rsp + 0x40], rbx
lea rax, [rbp - 0x18]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
lea rdx, str.SoftwareClasses.sodaDefaultIcon
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov esi, 2
test eax, eax
jne 0x1400612b2
lea rcx, [rbp + 0x68]
mov r8, qword [rbp + 0x78]
cmp qword [rbp + 0x80], 0xf
jbe 0x14006120a
mov rdx, qword [rbp + 0x68]
add r8, rdx
jmp 0x140061211
add r8, rcx
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x48]
call fcn.140069df0
mov rdx, qword [rbp + 0x58]
mov r8, qword [rbp + 0x60]
mov rax, r8
sub rax, rdx
lea rcx, [rbp + 0x48]
cmp rax, rsi
jb 0x140061252
lea rax, [rdx + 2]
mov qword [rbp + 0x58], rax
cmp r8, 7
cmova rcx, qword [rbp + 0x48]
mov eax, dword [0x14011a098]
mov dword [rcx + rdx*2], eax
mov word [rcx + rdx*2 + 4], bx
jmp 0x14006126c
mov qword [rsp + 0x20], rsi
lea r9, [0x14011a098]
movzx r8d, byte [rsp + 0x50]
mov rdx, rsi
call fcn.14006abb0
mov eax, dword [rbp + 0x58]
add eax, eax
lea rcx, [rbp + 0x48]
cmp qword [rbp + 0x60], 7
cmova rcx, qword [rbp + 0x48]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rbp + 0x48]
call fcn.140067fd0
jmp 0x1400612e0
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
mov r8d, 0x25
lea rdx, str._Main__Error_creating_registry_key_2.
lea rcx, [rbp + 0x28]
call fcn.14006b260
lea rcx, [rbp + 0x28]
call fcn.14005ed20
mov qword [rsp + 0x40], rbx
lea rax, [rbp - 0x18]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
lea rdx, str.SoftwareClasses.soda_shellOpen_with_Sodalitecommand
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x140061400
lea rcx, [rbp + 0x68]
mov r8, qword [rbp + 0x78]
cmp qword [rbp + 0x80], 0xf
jbe 0x14006133c
mov rdx, qword [rbp + 0x68]
add r8, rdx
jmp 0x140061343
add r8, rcx
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x48]
call fcn.140069df0
mov rsi, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x60]
mov rax, rcx
sub rax, rsi
cmp rax, 5
jb 0x140061396
lea rax, [rsi + 5]
mov qword [rbp + 0x58], rax
lea rbx, [rbp + 0x48]
cmp rcx, 7
cmova rbx, qword [rbp + 0x48]
lea rcx, [rbx + rsi*2]
mov r8d, 0xa
lea rdx, str.___1_
call fcn.1400fa610
xor eax, eax
mov word [rbx + rsi*2 + 0xa], ax
xor ebx, ebx
jmp 0x1400613ba
mov qword [rsp + 0x20], 5
lea r9, str.___1_
movzx r8d, byte [rsp + 0x50]
mov edx, 5
lea rcx, [rbp + 0x48]
call fcn.14006abb0
mov eax, dword [rbp + 0x58]
add eax, eax
lea rcx, [rbp + 0x48]
cmp qword [rbp + 0x60], 7
cmova rcx, qword [rbp + 0x48]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rbp + 0x48]
call fcn.140067fd0
jmp 0x14006142e
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
mov r8d, 0x25
lea rdx, str._Main__Error_creating_registry_key_3.
lea rcx, [rbp + 0x28]
call fcn.14006b260
lea rcx, [rbp + 0x28]
call fcn.14005ed20
xorps xmm0, xmm0
movups xmmword [rbp + 0xa8], xmm0
mov qword [rbp + 0xb8], rbx
mov qword [rbp + 0xc0], rbx
mov r8, r13
nop dword [rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x140061450
mov rdx, rdi
lea rcx, [rbp + 0xa8]
call fcn.14006b260
xorps xmm0, xmm0
movups xmmword [rbp + 0x48], xmm0
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x60], rbx
xor r8d, r8d
lea rdx, [0x140110636]
lea rcx, [rbp + 0x48]
call fcn.14006b260
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
mov r8d, 1
lea rdx, [0x14011a178]
lea rcx, [rsp + 0x58]
call fcn.14006b260
mov rdi, qword [rsp + 0x68]
test rdi, rdi
je 0x140061579
cmp qword [rsp + 0x70], 0xf
seta al
mov byte [rsp + 0x50], al
mov r13, qword [rbp + 0x58]
lea rsi, [rsp + 0x58]
test al, al
cmovne rsi, qword [rsp + 0x58]
lea r12, [rbp + 0xa8]
cmp qword [rbp + 0xc0], 0xf
cmova r12, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xb8]
cmp rdi, rax
ja 0x140061573
sub rax, rdi
cmp rbx, rax
ja 0x140061573
test rdi, rdi
je 0x140061680
lea r14, [r12 + rax]
lea rcx, [r12 + rbx]
movsx r15d, byte [rsi]
lea r8, [r14 + 1]
sub r8, rcx
mov edx, r15d
call fcn.1400fa550
mov rbx, rax
test rax, rax
je 0x140061573
nop word [rax + rax]
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.1400fac90
test eax, eax
je 0x14006167d
inc rbx
lea r8, [r14 + 1]
sub r8, rbx
mov edx, r15d
mov rcx, rbx
call fcn.1400fa550
mov rbx, rax
test rax, rax
jne 0x140061540
xor ebx, ebx
lea r13, [rbx - 1]
lea rcx, [rsp + 0x58]
call fcn.140068040
lea rcx, [rbp + 0x48]
call fcn.140068040
call fcn.14005eb80
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
mov r8d, 0x22
lea rdx, str._Main__Logging_system_initialized.
lea rcx, [rbp + 0x28]
call fcn.14006b260
lea rcx, [rbp + 0x28]
call fcn.14005ed20
call qword [sym.imp.libcurl.dll_curl_easy_init]
mov r12, rax
test rax, rax
je 0x140061d68
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
mov r8d, 0x18
lea rdx, str._Main__Curl_initialized.
lea rcx, [rbp + 0x28]
call fcn.14006b260
lea rcx, [rbp + 0x28]
call fcn.14005ed20
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], rbx
mov edi, 6
mov r8d, edi
lea rdx, str.1.4.10
lea rcx, [rbp - 0x80]
call fcn.14006b260
mov r8, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
sub rax, r8
lea r15d, [rdi + 0x28]
lea r14, str._Main__Checking_for_updates__current_version:
cmp rax, r15
jb 0x140061706
lea rax, [r8 + 0x2e]
mov qword [rbp - 0x70], rax
lea rbx, [rbp - 0x80]
cmp rcx, 0xf
cmova rbx, qword [rbp - 0x80]
lea rax, [0x14011a206]
cmp rax, rbx
jbe 0x1400616c8
lea rax, [rbx + r8]
cmp r14, rax
ja 0x1400616c8
cmp rbx, r14
ja 0x1400616c0
xor eax, eax
mov esi, eax
jmp 0x1400616cb
sub rbx, r12
cmp rbx, 0xffffffffffffffff
je 0x140061573
lea r9, [rbp + 0x48]
cmp qword [rbp + 0x60], 0xf
cmova r9, qword [rbp + 0x48]
mov qword [rsp + 0x20], r13
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp + 0xa8]
call fcn.1400680a0
mov r13, qword [rbp + 0x58]
add rbx, r13
movzx eax, byte [rsp + 0x50]
jmp 0x1400614d3
mov rsi, rbx
sub rsi, r14
jmp 0x1400616cb
mov rsi, r15
inc r8
lea rcx, [rbx + 0x2e]
mov rdx, rbx
call fcn.1400fa610
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.1400fa610
sub r15, rsi
lea rdx, [r14 + 0x2e]
add rdx, rsi
lea rcx, [rbx + rsi]
mov r8, r15
call fcn.1400fa610
lea rax, [rbp - 0x80]
xor ebx, ebx
jmp 0x14006171c
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov rdx, r15
lea rcx, [rbp - 0x80]
call fcn.140070e10
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x38], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 4
lea rdx, str._...
lea rcx, [rbp + 0x28]
call fcn.140068240
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rcx, [rsp + 0x58]
call fcn.14005ed20
lea rcx, [rbp + 0x28]
call fcn.140068040
lea rcx, [rbp - 0x80]
call fcn.140068040
lea rdx, [0x14011a208]
lea rcx, str.update.zip
call fcn.1400d6ba0
mov rsi, rax
mov qword [rbp - 0x10], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rbx
mov r8, rdi
lea rdx, str.1.4.10
lea rcx, [rbp - 0x60]
call fcn.14006b260
mov r8, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x48]
mov rcx, rdx
sub rcx, r8
mov r15d, 0x2a
lea r14, str.https:__thekade.net_sodalite_update.php_v
cmp rcx, r15
jb 0x140061888
lea rax, [r8 + 0x2a]
mov qword [rbp - 0x50], rax
lea rbx, [rbp - 0x60]
cmp rdx, 0xf
cmova rbx, qword [rbp - 0x60]
lea rax, [0x14011a24a]
cmp rax, rbx
jbe 0x140061846
lea rax, [rbx + r8]
cmp r14, rax
ja 0x140061846
cmp rbx, r14
ja 0x14006183e
xor eax, eax
mov esi, eax
jmp 0x140061849
mov rsi, rbx
sub rsi, r14
jmp 0x140061849
mov rsi, r15
inc r8
lea rcx, [rbx + 0x2a]
mov rdx, rbx
call fcn.1400fa610
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call fcn.1400fa610
sub r15, rsi
lea rdx, [r14 + 0x2a]
add rdx, rsi
lea rcx, [rbx + rsi]
mov r8, r15
call fcn.1400fa610
lea rax, [rbp - 0x60]
mov rsi, qword [rbp - 0x10]
xor ebx, ebx
jmp 0x14006189e
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov rdx, r15
lea rcx, [rbp - 0x60]
call fcn.140070e10
xorps xmm0, xmm0
movups xmmword [rbp + 0x48], xmm0
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x60], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x58], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rcx, [rbp - 0x60]
call fcn.140068040
movabs rax, 0x7fffffffffffffff
mov rcx, qword [rbp + 0x58]
sub rax, rcx
cmp rax, 0x13
jae 0x1400618f1
call fcn.14005d550
int3
lea rax, [rbp + 0x48]
cmp qword [rbp + 0x60], 0xf
cmova rax, qword [rbp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x13
lea r9, str._Curl__Update_url:
lea rcx, [rbp + 0x28]
call fcn.14006e110
lea rcx, [rbp + 0x28]
call fcn.14005ed20
lea r8, [rbp + 0x48]
cmp qword [rbp + 0x60], 0xf
cmova r8, qword [rbp + 0x48]
mov edx, 0x2712
mov rcx, r12
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
mov edx, 0x34
lea r8d, [rdx - 0x33]
mov rcx, r12
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
lea r8, [0x140060e40]
mov edx, 0x4e2b
mov rcx, r12
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
mov r8, rsi
mov edx, 0x2711
mov rcx, r12
call qword [sym.imp.libcurl.dll_curl_easy_setopt]
mov rcx, r12
call qword [sym.imp.libcurl.dll_curl_easy_perform]
mov ebx, eax
mov rcx, rsi
call fcn.1400d2b64
test ebx, ebx
je 0x140061acd
mov ecx, ebx
call qword [sym.imp.libcurl.dll_curl_easy_strerror]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
xor r15d, r15d
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], r15
inc r13
cmp byte [rax + r13], r15b
jne 0x1400619b4
mov r8, r13
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.14006b260
mov r8, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
sub rax, r8
mov r14d, 0x23
lea rsi, str._Main__Error_checking_for_updates:
cmp rax, r14
jb 0x140061a64
lea rax, [r8 + 0x23]
mov qword [rbp - 0x30], rax
lea rbx, [rbp - 0x40]
cmp rcx, 0xf
cmova rbx, qword [rbp - 0x40]
lea rax, [0x14011a28b]
cmp rax, rbx
jbe 0x140061a28
lea rax, [rbx + r8]
cmp rsi, rax
ja 0x140061a28
cmp rbx, rsi
ja 0x140061a20
mov rdi, r15
jmp 0x140061a2b
mov rdi, rbx
sub rdi, rsi
jmp 0x140061a2b
mov rdi, r14
inc r8
lea rcx, [rbx + 0x23]
mov rdx, rbx
call fcn.1400fa610
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.1400fa610
sub r14, rdi
lea rdx, [rsi + 0x23]
add rdx, rdi
lea rcx, [rbx + rdi]
mov r8, r14
call fcn.1400fa610
lea rax, [rbp - 0x40]
jmp 0x140061a7a
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rsi
mov rdx, r14
lea rcx, [rbp - 0x40]
call fcn.140070e10
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x40], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x38], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
lea rcx, [rbp + 0x28]
call fcn.14005ed20
lea rcx, [rbp - 0x40]
call fcn.140068040
mov r14d, 2
lea rcx, [rbp + 0x48]
call fcn.140068040
jmp 0x140061d6e
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xor esi, esi
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
lea r8d, [rsi + 0x1f]
lea rdx, str._Main__Update_check_successful_
lea rcx, [rsp + 0x58]
call fcn.14006b260
lea rcx, [rsp + 0x58]
call fcn.14005ed20
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0xd0]
call fcn.1400fa1b0
lea r8d, [rsi + 1]
lea rdx, str.update.zip
lea rcx, [rbp + 0xd0]
call fcn.140064160
mov r14d, 2
mov r8d, r14d
xor edx, edx
lea rcx, [rbp + 0xd0]
call fcn.140064460
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0xd0]
call fcn.140064380
mov rbx, qword [rax + 8]
add rbx, qword [rax]
mov r8b, 0x20
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.140066350
xorps xmm0, xmm0
xor eax, eax
mov qword [rsp + 0x68], rax
movaps xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rsp + 0x68]
movsd qword [rbp], xmm0
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xd0]
call fcn.140064660
lea rdx, [rbp + 0x28]
cmp qword [rbp + 0x40], 0xf
cmova rdx, qword [rbp + 0x28]
mov r8, rbx
lea rcx, [rbp + 0xd0]
call fcn.140064860
lea rcx, [rbp + 0xe0]
call fcn.140067d20
test rax, rax
jne 0x140061c49
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx + 0x118], rsi
cmovne edi, r14d
or edi, dword [rbp + rcx + 0xe0]
and edi, 0x17
mov dword [rbp + rcx + 0xe0], edi
and edi, dword [rbp + rcx + 0xe4]
je 0x140061c49
test dil, 4
je 0x140061c04
lea rbx, str.ios_base::badbit_set
jmp 0x140061c19
test r14b, dil
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp - 0x10]
call fcn.14005d6b0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.14005e140
lea rdx, [0x140137b68]
lea rcx, [rsp + 0x58]
call fcn.1400c7c80
int3
lea rcx, [rbp + 0x28]
cmp qword [rbp + 0x40], 0xf
cmova rcx, qword [rbp + 0x28]
mov r8, qword [rbp + 0x38]
cmp r8, 0xb
jne 0x140061cb0
lea rdx, str.up_to_date.
call fcn.1400fac90
test eax, eax
jne 0x140061cb0
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
lea r8d, [rax + 0x1c]
lea rdx, str._Main__No_updates_available.
lea rcx, [rsp + 0x58]
call fcn.14006b260
lea rcx, [rsp + 0x58]
call fcn.14005ed20
lea rcx, str.update.zip
call fcn.1400d8d04
jmp 0x140061ccc
mov r9d, 0x40
lea r8, str.New_update_
lea rdx, str.Downloaded_the_latest_update_to_update.zip_in_the_folder._Please_manually_install_the_update__thank_you__3
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rcx, [rbp + 0x28]
call fcn.140068040
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xd0], rax
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xcc], edx
lea rcx, [rbp + 0xe0]
call fcn.140065570
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xd0], rax
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0xcc], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x180], rax
lea rcx, [rbp + 0x180]
call fcn.1400c54f4
nop
lea rcx, [rbp + 0x48]
call fcn.140068040
jmp 0x140061d6e
mov r14d, 2
call qword [sym.imp.glfw3.dll_glfwInit]
lea rcx, [rbp + 0x28]
test eax, eax
jne 0x140061d9b
lea rdx, str._GLFW__Failed_to_initialize_GLFW_
call fcn.140066460
mov rcx, rax
call fcn.14005ed20
mov ecx, 1
call fcn.1400d8808
int3
lea rdx, str._GLFW__GLFW_initialized.
call fcn.140066460
mov rcx, rax
call fcn.14005ed20
lea rcx, [0x1400623f0]
call qword [sym.imp.glfw3.dll_glfwSetErrorCallback]
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
jne 0x140061de9
lea rdx, str._Main__Error_retrieving_NTDLL_handle
lea rcx, [rbp + 0x28]
call fcn.140066460
mov rcx, rax
call fcn.14005ed20
lea rdx, str.wine_get_version
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140061e30
call rax
mov rdx, rax
lea rcx, [rbp + 0x28]
call fcn.140066460
mov r8, rax
lea rdx, str._Main__Running_on_wine_version
lea rcx, [rbp + 0x48]
call fcn.140069a20
mov rcx, rax
call fcn.14005ed20
lea rcx, [rbp + 0x28]
call fcn.1400662b0
mov edx, 3
mov ecx, 0x22002
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov edx, r14d
mov ecx, 0x22003
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov edx, 0x32001
mov ecx, 0x22008
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov edx, 1
mov ecx, 0x22006
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov edx, 1
mov ecx, 0x20003
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov edx, 1
mov ecx, 0x21010
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov edx, 4
mov ecx, 0x2100d
call qword [sym.imp.glfw3.dll_glfwWindowHint]
mov ecx, 0x3e0
call fcn.1400c3704
mov rdi, rax
mov rcx, rax
call fcn.140063510
lea rdx, str.1.4.10
lea rcx, [rbp + 0x28]
call fcn.140066460
mov r8, rax
lea rdx, [0x14011a4a0]
lea rcx, [rbp + 0x48]
call fcn.140069a20
mov rbx, rax
lea rdx, str.Sodalite
lea rcx, [rsp + 0x58]
call fcn.140066460
mov r8, rbx
mov rdx, rax
mov rcx, rdi
call fcn.140091340
mov qword [rbp - 0x20], rax
lea rcx, [rbp + 0x28]
call fcn.1400662b0
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwMakeContextCurrent]
mov rcx, qword [sym.imp.glfw3.dll_glfwGetProcAddress]
call fcn.1400031b0
xor ecx, ecx
call qword [sym.imp.glfw3.dll_glfwMakeContextCurrent]
lea rdx, str._GLAD__GLAD_initialized.
lea rcx, [rbp + 0x28]
call fcn.140066460
mov rcx, rax
call fcn.14005ed20
lea rdx, [0x140062400]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwSetKeyCallback]
lea rdx, [0x1400624f0]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwSetMouseButtonCallback]
lea rdx, [0x140062610]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwSetWindowSizeCallback]
lea rdx, [0x140062700]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwSetScrollCallback]
lea rdx, str._Main__Starting_game...
lea rcx, [rbp + 0x28]
call fcn.140066460
mov rcx, rax
call fcn.14005ed20
mov rcx, qword [rbp - 0x20]
call fcn.140091480
mov byte [rbp + 0x20], 0
mov ecx, 0x2f0
call fcn.1400c3704
mov rbx, rax
mov rcx, rax
call fcn.140063780
xor edx, edx
mov r8d, 0x2f0
mov rcx, rbx
call fcn.1400fa1b0
mov rcx, rbx
call fcn.140063520
mov qword [rbp + 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xa8]
lea r8, [rbp + 0x18]
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x28]
call fcn.1400634f0
mov rdx, rax
lea rcx, [rbp + 0x2f0]
call fcn.140069f50
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwWindowShouldClose]
test eax, eax
jne 0x14006205b
nop dword [rax]
call qword [sym.imp.glfw3.dll_glfwPollEvents]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwWindowShouldClose]
test eax, eax
je 0x140062040
mov byte [rbp + 0x20], 1
lea rcx, [rbp + 0x1e0]
call fcn.140060a10
mov r8d, r14d
lea rdx, str.config2.ini
lea rcx, [rbp + 0x1e0]
call fcn.1400656d0
lea rcx, [rbp + 0x1e0]
call fcn.1400656c0
test al, al
je 0x1400621f8
mov rax, qword [rbp - 0x20]
mov rdx, qword [rax + 0x3b0]
mov edx, dword [rdx + 0x98]
lea rcx, [rbp + 0x1e0]
call fcn.140065cf0
mov rcx, rax
call fcn.1400660f0
mov rax, qword [rbp - 0x20]
mov rdx, qword [rax + 0x3b0]
mov edx, dword [rdx + 0x9c]
lea rcx, [rbp + 0x1e0]
call fcn.140065cf0
mov rcx, rax
call fcn.1400660f0
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x10]
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwGetWindowPos]
mov edx, dword [rbp + 0x10]
lea rcx, [rbp + 0x1e0]
call fcn.140065cf0
mov rcx, rax
call fcn.1400660f0
mov edx, dword [rbp - 0x10]
lea rcx, [rbp + 0x1e0]
call fcn.140065cf0
mov rcx, rax
call fcn.1400660f0
movzx edx, byte [0x14013ad92]
lea rcx, [rbp + 0x1e0]
call fcn.140065ef0
movss xmm1, dword [0x14013ad8c]
lea rcx, [rbp + 0x1e0]
call fcn.140065ad0
movzx edx, byte [0x14013fadd]
lea rcx, [rbp + 0x1e0]
call fcn.140065ef0
movss xmm1, dword [0x14013ad84]
lea rcx, [rbp + 0x1e0]
call fcn.140065ad0
movss xmm1, dword [0x14013ad94]
lea rcx, [rbp + 0x1e0]
call fcn.140065ad0
mov rax, qword [rbp + 0x18]
movss xmm1, dword [rax + 0x2e8]
lea rcx, [rbp + 0x1e0]
call fcn.140065ad0
movzx edx, byte [0x14013ad91]
lea rcx, [rbp + 0x1e0]
call fcn.140065ef0
movzx edx, byte [0x14013ad90]
lea rcx, [rbp + 0x1e0]
call fcn.140065ef0
movss xmm1, dword [0x14013ad88]
lea rcx, [rbp + 0x1e0]
call fcn.140065ad0
mov edx, dword [0x14013ad80]
lea rcx, [rbp + 0x1e0]
call fcn.140065cf0
lea rcx, [rbp + 0x1e0]
call fcn.140065620
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx + 0x368]
call qword [sym.imp.glfw3.dll_glfwDestroyWindow]
call qword [sym.imp.glfw3.dll_glfwTerminate]
xor ecx, ecx
call fcn.1400d8808
int3