Function at 0x14001a5a0
Capabilities:
Create process on windows
Get file version info

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 - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x14007f080]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov rdi, rcx
mov qword [rsp + 0x30], rcx
mov qword [0x140082d60], rcx
lea r14, str.zips
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], 4
call fcn.14003713c
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp + 0x48]
call fcn.140016670
lea rcx, [rbp + 0x48]
call fcn.140017060
movzx ebx, al
mov rdx, qword [rbp + 0x60]
cmp rdx, 8
jb 0x14001a665
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a660
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001af93
call fcn.1400380e4
xor esi, esi
test bl, bl
jne 0x14001a6ff
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], 4
call fcn.14003713c
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp + 0x48]
call fcn.140016670
mov qword [rbp + 0x30], rsi
lea rax, str.X_a_
mov qword [rbp + 0x38], rax
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x48]
call fcn.140017170
cmp dword [rbp + 0x30], esi
jne 0x14001af99
mov rdx, qword [rbp + 0x60]
cmp rdx, 8
jb 0x14001a6ff
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a6fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001afae
call fcn.1400380e4
mov dword [rbp + 0x40], esi
mov dword [rbp + 0x44], esi
mov qword [rbp + 0x20], rsi
lea rdx, [rbp + 0x40]
lea rcx, str..BrowEdit3.exe
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov ebx, eax
test eax, eax
je 0x14001a787
mov ecx, ebx
call fcn.1400386d4
mov rdi, rax
mov r9, rax
mov r8d, ebx
mov edx, dword [rbp + 0x40]
lea rcx, str..BrowEdit3.exe
call qword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x14001a77a
lea r9, [rbp + 0x44]
lea r8, [rbp + 0x20]
lea rdx, [0x140070178]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x14001a77a
cmp dword [rbp + 0x44], esi
je 0x14001a77a
mov rax, qword [rbp + 0x20]
cmp dword [rax], 0xfeef04bd
jne 0x14001a77a
mov eax, dword [rax + 0xc]
mov dword [0x140082d58], eax
mov rcx, rdi
call fcn.1400380e4
mov rdi, qword [rsp + 0x30]
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0xb0]
call fcn.14003a830
mov r8d, 1
lea rdx, str.data_textureeffect_version.txt
lea rcx, [rbp + 0xb0]
call fcn.14001fa80
lea rcx, [rbp + 0xb0]
call fcn.140026600
lea rcx, [rbp + 0xc0]
call fcn.1400237d0
mov edx, 2
test rax, rax
jne 0x14001a80f
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
mov eax, 6
cmp qword [rbp + rcx + 0xf8], rsi
cmovne eax, edx
or eax, dword [rbp + rcx + 0xc0]
and eax, 0x17
mov dword [rbp + rcx + 0xc0], eax
and eax, dword [rbp + rcx + 0xc4]
jne 0x14001afb4
mov qword [rsp + 0x20], rsi
lea r9, [0x140018490]
xor r8d, r8d
lea edx, [r8 + 0x67]
mov rcx, rdi
call qword [sym.imp.USER32.dll_DialogBoxParamA]
lea ecx, [rax - 1]
test ecx, ecx
jns 0x14001a83e
mov rbx, 0xffffffffffffffff
jmp 0x14001aebf
movsxd r15, eax
lea rdx, [r15 - 1]
lea rcx, [0x140082d78]
call fcn.14001e3f0
lea rdx, str.name
mov rcx, rax
call fcn.1400262e0
xorps xmm0, xmm0
movups xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], rsi
mov ecx, 0xf
mov qword [rbp + 0x80], rcx
mov byte [rbp + 0x68], sil
cmp byte [rax], 3
jne 0x14001b004
mov rdx, qword [rax + 8]
lea rax, [rbp + 0x68]
cmp rax, rdx
je 0x14001a8b3
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14001a89f
mov rdx, qword [rdx]
lea rcx, [rbp + 0x68]
call fcn.140023ba0
mov rcx, qword [rbp + 0x80]
mov rsi, qword [rbp + 0x78]
lea rdi, [rbp + 0x68]
cmp rcx, 0x10
setae r13b
mov r12, qword [rbp + 0x68]
cmovae rdi, r12
mov rbx, 0xffffffffffffffff
cmp rsi, 1
jb 0x14001a921
lea r14, [rdi + rsi]
mov r8, r14
sub r8, rdi
lea edx, [rbx + 0x2f]
mov rcx, rdi
call fcn.14003abd0
test rax, rax
je 0x14001a921
nop
cmp byte [rax], 0x2e
jne 0x14001a8f9
xor ecx, ecx
jmp 0x14001a8fe
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x14001aab2
inc rax
mov r8, r14
sub r8, rax
mov edx, 0x2e
mov rcx, rax
call fcn.14003abd0
test rax, rax
jne 0x14001a8f0
mov rax, rbx
lea rcx, [rax + 1]
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
cmp rsi, rcx
jb 0x14001b04f
sub rsi, rcx
cmp rsi, rbx
cmovb rbx, rsi
lea rdx, [rbp + 0x68]
test r13b, r13b
cmovne rdx, r12
add rdx, rcx
mov r8, rbx
lea rcx, [rbp - 0x60]
call fcn.140007400
call fcn.14003f8fc
mov rdi, rax
lea rbx, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae rbx, qword [rbp - 0x60]
xor r12d, r12d
mov dword [rax], r12d
lea r8d, [r12 + 0xa]
lea rdx, [rbp + 0x90]
mov rcx, rbx
call fcn.14003f550
mov esi, eax
cmp rbx, qword [rbp + 0x90]
je 0x14001b055
cmp dword [rdi], 0x22
je 0x14001b062
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14001a9e9
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a9e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b06f
call fcn.1400380e4
cmp esi, dword [0x140082d58]
je 0x14001ae47
lea rdx, [r15 - 1]
lea rcx, [0x140082d78]
call fcn.14001e3f0
mov r14, rax
lea rdx, str.name
mov rcx, rax
call fcn.1400262e0
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov r8, r12
mov qword [rbp - 0x70], r12
mov ecx, 0xf
mov qword [rbp - 0x68], rcx
mov byte [rbp - 0x80], r8b
cmp byte [rax], 3
jne 0x14001b075
mov rdx, qword [rax + 8]
lea rax, [rbp - 0x80]
cmp rax, rdx
je 0x14001aa67
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14001aa56
mov rdx, qword [rdx]
lea rcx, [rbp - 0x80]
call fcn.140023ba0
mov rcx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x70]
mov rax, rcx
sub rax, r8
lea rsi, str.zips_
cmp rax, 5
jb 0x14001ab03
lea rax, [r8 + 5]
mov qword [rbp - 0x70], rax
lea rbx, [rbp - 0x80]
cmp rcx, 0x10
cmovae rbx, qword [rbp - 0x80]
lea rax, [0x140070031]
cmp rax, rbx
jbe 0x14001aac2
lea rax, [rbx + r8]
cmp rsi, rax
ja 0x14001aac2
cmp rbx, rsi
ja 0x14001aaba
mov rdi, r12
jmp 0x14001aac7
sub rax, rdi
jmp 0x14001a924
mov rdi, rbx
sub rdi, rsi
jmp 0x14001aac7
mov edi, 5
inc r8
lea rcx, [rbx + 5]
mov rdx, rbx
call fcn.14003a0b0
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14003a0b0
mov r8d, 5
sub r8, rdi
lea rdx, [rsi + 5]
add rdx, rdi
lea rcx, [rbx + rdi]
call fcn.14003a0b0
lea rax, [rbp - 0x80]
jmp 0x14001ab1f
mov qword [rsp + 0x28], 5
mov qword [rsp + 0x20], rsi
mov edx, 5
lea rcx, [rbp - 0x80]
call fcn.14002f680
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r12
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 0xf
mov byte [rax], r12b
mov r8d, 4
lea rdx, str..zip
lea rcx, [rsp + 0x40]
call fcn.1400069d0
xorps xmm0, xmm0
movups xmmword [rbp + 0x48], xmm0
mov qword [rbp + 0x58], r12
mov qword [rbp + 0x60], r12
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x58], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 0xf
mov byte [rax], r12b
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14001abd2
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001abcd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b0c1
call fcn.1400380e4
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], r12b
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x14001ac20
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ac1b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b0c1
call fcn.1400380e4
lea rax, [rbp + 0x48]
cmp qword [rbp + 0x60], 0x10
cmovae rax, qword [rbp + 0x48]
mov qword [rbp + 0x90], rax
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x98], rax
call fcn.14003713c
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp - 0x40]
call fcn.140016670
lea rcx, [rbp - 0x40]
call fcn.140017060
movzx ebx, al
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x14001acae
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001aca9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b0c7
call fcn.1400380e4
test bl, bl
jne 0x14001ad6d
mov qword [rsp + 0x40], r14
lea rax, [rbp + 0x48]
mov qword [rsp + 0x48], rax
mov ecx, 0x10
call fcn.1400380a0
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rax], xmm0
lea rcx, [rbp + 0x98]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x140030a20]
xor edx, edx
xor ecx, ecx
call fcn.14004442c
mov qword [rbp + 0x90], rax
test rax, rax
je 0x14001b0e3
mov qword [rsp + 0x20], r12
lea r9, [0x14001a540]
xor r8d, r8d
mov edx, 0x82
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.USER32.dll_DialogBoxParamA]
cmp dword [rbp + 0x98], r12d
je 0x14001b0cd
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rbp + 0x98], eax
je 0x14001b0d8
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rsp + 0x40], xmm0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.140037ab4
test eax, eax
jne 0x14001af88
jmp 0x14001ad72
mov rbx, qword [rsp + 0x30]
mov ecx, 8
call fcn.1400380a0
lea rcx, [rbp + 0x48]
mov qword [rax], rcx
lea rcx, [rbp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x140030a50]
xor edx, edx
xor ecx, ecx
call fcn.14004442c
mov qword [rbp + 0x30], rax
test rax, rax
je 0x14001af79
mov qword [rsp + 0x20], r12
lea r9, [0x14001a570]
xor r8d, r8d
mov edx, 0x83
mov rcx, rbx
call qword [sym.imp.USER32.dll_DialogBoxParamA]
cmp dword [rbp + 0x38], r12d
je 0x14001b0f5
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rbp + 0x38], eax
je 0x14001b100
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.140037ab4
test eax, eax
jne 0x14001b10b
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
mov rdx, qword [rbp + 0x60]
cmp rdx, 0x10
jb 0x14001ae47
inc rdx
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ae42
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b116
call fcn.1400380e4
mov dword [rsp + 0x28], 0xa
mov qword [rsp + 0x20], r12
lea r9, [0x14006efa0]
lea r8, str.BrowEdit3.exe
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
mov ebx, r12d
mov rdx, qword [rbp + 0x80]
cmp rdx, 0x10
jb 0x14001aead
inc rdx
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001aea8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001b11c
call fcn.1400380e4
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x80], 0xf
mov byte [rbp + 0x68], bl
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xb0], rax
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xac], edx
lea rcx, [rbp + 0xc0]
call fcn.14001f9d0
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xb0], rax
mov rax, qword [rbp + 0xb0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0xac], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x160], rax
lea rcx, [rbp + 0x160]
call fcn.1400368f0
nop
mov eax, ebx
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.140038080
lea r11, [rsp + 0x2d0]
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 dword [rbp + 0x38], r12d
mov ecx, 6
call fcn.1400377a0
int3
mov ecx, 2
call fcn.1400377a0
int3
call fcn.14003fcd4
int3
lea r8, [rbp + 0x48]
lea rdx, [rbp + 0x30]
lea rcx, str.create_directories
call fcn.140017000
int3
call fcn.14003fcd4
int3
test al, 4
je 0x14001afc1
lea rbx, str.ios_base::badbit_set
jmp 0x14001afd5
test dl, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x40]
call fcn.140001550
mov r8, rax
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140002280
lea rdx, [0x14007d550]
lea rcx, [rbp - 0x40]
call fcn.140039fb4
int3
mov rcx, rax
call fcn.140023390
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1400064b0
mov r8, rax
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp + 0x48]
call fcn.140025d40
mov r8, rax
mov edx, 0x12e
lea rcx, [rsp + 0x40]
call fcn.140026cd0
lea rdx, [0x14007d9d8]
lea rcx, [rsp + 0x40]
call fcn.140039fb4
int3
call fcn.140025810
int3
lea rcx, str.invalid_stoi_argument
call fcn.140035158
int3
lea rcx, str.stoi_argument_out_of_range
call fcn.1400351a0
int3
call fcn.14003fcd4
int3
mov rcx, rax
call fcn.140023390
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1400064b0
mov r8, rax
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp + 0x90]
call fcn.140025d40
mov r8, rax
mov edx, 0x12e
lea rcx, [rbp - 0x18]
call fcn.140026cd0
lea rdx, [0x14007d9d8]
lea rcx, [rbp - 0x18]
call fcn.140039fb4
int3
call fcn.14003fcd4
int3
call fcn.14003fcd4
int3
mov ecx, 1
call fcn.1400377a0
int3
mov ecx, 5
call fcn.1400377a0
int3
mov dword [rbp + 0x98], r12d
mov ecx, 6
call fcn.1400377a0
int3
mov ecx, 1
call fcn.1400377a0
int3
mov ecx, 5
call fcn.1400377a0
int3
mov ecx, 2
call fcn.1400377a0
int3
call fcn.14003fcd4
int3
call fcn.14003fcd4
int3