Function at 0x1401aae30
Capabilities:
Get file version info
Read .ini file

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
mov rax, qword [0x1402fa010]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r14, rcx
mov qword [rbp - 1], rcx
xor r13d, r13d
mov dword [rbp - 0x29], r13d
xor eax, eax
mov qword [rcx], rax
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x1401ab270
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [r14], rax
mov edi, 1
mov dword [rbp - 0x29], edi
mov qword [rbp + 0x17], r13
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x1401ab270
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x17], rbx
mov qword [rbp + 0xf], r13
lea rdx, str._04d_02d_02d
lea rcx, [rbp + 0xf]
call fcn.1400223e0
nop
mov ecx, edi
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x400
or eax, ecx
jge 0x1401aaf04
mov edx, 0x400
lea rcx, [rbp + 0x17]
call fcn.140018ec0
mov rbx, qword [rbp + 0x17]
mov r8d, 0x400
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401fa6e8
test eax, eax
js 0x1401ab265
cmp eax, dword [rbx - 0xc]
jg 0x1401ab265
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r13w
mov r15d, r13d
mov r12d, r13d
mov qword [rbp + 7], r13
mov dword [rbp + 0x1f], r13d
lea rdx, [rbp + 0x1f]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
test eax, eax
je 0x1401aafb1
mov dword [rbp + 0x23], r13d
mov ecx, esi
call fcn.140203268
mov rdi, rax
test rax, rax
je 0x1401aafb1
mov r9, rax
mov r8d, esi
xor edx, edx
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
lea r9, [rbp + 0x23]
lea r8, [rbp + 7]
lea rdx, [0x1402624f4]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1401aafa9
mov rax, qword [rbp + 7]
mov r15d, dword [rax + 8]
mov r12d, dword [rax + 0xc]
mov rcx, rdi
call fcn.140203254
lea rcx, [rbp - 9]
call fcn.140022bf0
mov r13, rax
xor eax, eax
mov qword [rbp - 0x19], rax
mov rax, qword [r13]
mov rcx, qword [rax - 0x18]
test rcx, rcx
je 0x1401aafe5
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
jne 0x1401ab006
call fcn.1400195b0
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov rcx, rax
test rax, rax
je 0x1401ab27b
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
mov r8, rax
lea rbx, [rax + 0x18]
mov qword [rbp - 0x19], rbx
mov dword [rbp - 0x29], 3
lea rax, str.config.ini
mov rsi, 0xffffffffffffffff
mov rdi, rsi
inc rdi
cmp word [rax + rdi*2], 0
jne 0x1401ab036
mov rcx, qword [r13]
mov qword [rbp - 0x11], rcx
mov eax, dword [rcx - 0x10]
mov dword [rbp - 0x21], eax
lea r13d, [rax + rdi]
test r13d, r13d
js 0x1401ab286
mov edx, 1
sub edx, dword [r8 + 0x10]
mov eax, dword [r8 + 0xc]
sub eax, r13d
or eax, edx
jge 0x1401ab083
mov edx, r13d
lea rcx, [rbp - 0x19]
call fcn.140018ec0
mov rbx, qword [rbp - 0x19]
mov rcx, qword [rbp - 0x11]
movsxd rax, dword [rbp - 0x21]
add rax, rax
mov qword [rbp - 0x21], rax
je 0x1401ab0c8
test rbx, rbx
je 0x1401ab0b4
mov r8, rax
test rcx, rcx
je 0x1401ab0aa
mov rdx, rcx
mov rcx, rbx
call fcn.1401f61a0
jmp 0x1401ab0c4
xor edx, edx
mov rcx, rbx
call fcn.1401f6840
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
mov rax, qword [rbp - 0x21]
movsxd r8, edi
add r8, r8
lea rcx, [rax + rbx]
je 0x1401ab0f7
test rcx, rcx
jne 0x1401ab0eb
call fcn.1401fae4c
mov dword [rax], 0x16
call fcn.1401facac
jmp 0x1401ab0f7
lea rdx, str.config.ini
call fcn.1401f61a0
cmp r13d, dword [rbx - 0xc]
jg 0x1401ab286
mov dword [rbx - 0x10], r13d
movsxd rax, r13d
xor ecx, ecx
mov word [rbx + rax*2], cx
mov r9, rbx
xor r8d, r8d
lea rdx, str.beta_version
lea rcx, str.SETTING
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
mov eax, 3
and eax, 0xfffffffd
mov dword [rbp - 0x29], eax
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1401ab156
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1401ab17a
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
movzx ecx, r12w
shr r12d, 0x10
movzx r9d, r15w
shr r15d, 0x10
mov rax, qword [rbp + 0xf]
mov r8d, r15d
test edi, edi
jne 0x1401ab1c0
mov qword [rsp + 0x38], rax
lea rax, [0x14029fde0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], r12d
lea rdx, str._u._u._u._u_s__s_
mov rcx, r14
call fcn.14001c3d0
jmp 0x1401ab1ee
mov qword [rsp + 0x40], rax
lea rax, [0x14029fde0]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], r12d
lea rdx, str._u._u._u._ub_d_s__s_
mov rcx, r14
call fcn.14001c3d0
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1401ab213
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x1401ab235
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x140038716.0]
mov rax, r14
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1401f3bf0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80070057
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
int3
mov ecx, 0x80070057
call fcn.140019320
int3