Function at 0x14001a420
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 [0x140084060]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov rdi, rcx
mov qword [rsp + 0x30], rcx
mov qword [0x140087d50], rcx
lea r14, str.zips
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], 4
call fcn.14003706c
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp + 0x48]
call fcn.140016520
lea rcx, [rbp + 0x48]
call fcn.140016e80
test al, al
sete bl
mov rdx, qword [rbp + 0x60]
cmp rdx, 8
jb 0x14001a4e7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a4e2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001ae15
call fcn.140038024
xor esi, esi
test bl, bl
je 0x14001a581
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], 4
call fcn.14003706c
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp + 0x48]
call fcn.140016520
mov qword [rbp + 0x30], rsi
lea rax, str.H_a_
mov qword [rbp + 0x38], rax
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x48]
call fcn.140016f90
cmp dword [rbp + 0x30], esi
jne 0x14001ae1b
mov rdx, qword [rbp + 0x60]
cmp rdx, 8
jb 0x14001a581
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a57c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001ae30
call fcn.140038024
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 0x14001a609
mov ecx, ebx
call fcn.140038614
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 0x14001a5fc
lea r9, [rbp + 0x44]
lea r8, [rbp + 0x20]
lea rdx, [0x140076908]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x14001a5fc
cmp dword [rbp + 0x44], esi
je 0x14001a5fc
mov rax, qword [rbp + 0x20]
cmp dword [rax], 0xfeef04bd
jne 0x14001a5fc
mov eax, dword [rax + 0xc]
mov dword [0x140087d48], eax
mov rcx, rdi
call fcn.140038024
mov rdi, qword [rsp + 0x30]
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0xb0]
call fcn.14003a680
mov r8d, 1
lea rdx, str.data_textureeffect_version.txt
lea rcx, [rbp + 0xb0]
call fcn.14001f920
lea rcx, [rbp + 0xb0]
call fcn.140026330
lea rcx, [rbp + 0xc0]
call fcn.1400235d0
mov edx, 2
test rax, rax
jne 0x14001a691
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 0x14001ae36
mov qword [rsp + 0x20], rsi
lea r9, [0x1400182a0]
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 0x14001a6c0
mov rbx, 0xffffffffffffffff
jmp 0x14001ad41
movsxd r15, eax
lea rdx, [r15 - 1]
lea rcx, [0x140087d68]
call fcn.14001e3d0
lea rdx, str.name
mov rcx, rax
call fcn.140026010
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 0x14001ae86
mov rdx, qword [rax + 8]
lea rax, [rbp + 0x68]
cmp rax, rdx
je 0x14001a735
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14001a721
mov rdx, qword [rdx]
lea rcx, [rbp + 0x68]
call fcn.140023940
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 0x14001a7a1
lea r14, [rdi + rsi]
mov r8, r14
sub r8, rdi
lea edx, [rbx + 0x2f]
mov rcx, rdi
call fcn.14003ab00
test rax, rax
je 0x14001a7a1
cmp byte [rax], 0x2e
jne 0x14001a779
xor ecx, ecx
jmp 0x14001a77e
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x14001a932
inc rax
mov r8, r14
sub r8, rax
mov edx, 0x2e
mov rcx, rax
call fcn.14003ab00
test rax, rax
jne 0x14001a770
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 0x14001aed1
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.140007320
call fcn.14003f84c
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.14003f4a0
mov esi, eax
cmp rbx, qword [rbp + 0x90]
je 0x14001aed7
cmp dword [rdi], 0x22
je 0x14001aee4
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14001a869
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a864
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001aef1
call fcn.140038024
cmp esi, dword [0x140087d48]
je 0x14001acc9
lea rdx, [r15 - 1]
lea rcx, [0x140087d68]
call fcn.14001e3d0
mov r14, rax
lea rdx, str.name
mov rcx, rax
call fcn.140026010
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 0x14001aef7
mov rdx, qword [rax + 8]
lea rax, [rbp - 0x80]
cmp rax, rdx
je 0x14001a8e7
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14001a8d6
mov rdx, qword [rdx]
lea rcx, [rbp - 0x80]
call fcn.140023940
mov rcx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x70]
mov rax, rcx
sub rax, r8
lea rsi, str.zips_
cmp rax, 5
jb 0x14001a983
lea rax, [r8 + 5]
mov qword [rbp - 0x70], rax
lea rbx, [rbp - 0x80]
cmp rcx, 0x10
cmovae rbx, qword [rbp - 0x80]
lea rax, [0x1400767c1]
cmp rax, rbx
jbe 0x14001a942
lea rax, [rbx + r8]
cmp rsi, rax
ja 0x14001a942
cmp rbx, rsi
ja 0x14001a93a
mov rdi, r12
jmp 0x14001a947
sub rax, rdi
jmp 0x14001a7a4
mov rdi, rbx
sub rdi, rsi
jmp 0x14001a947
mov edi, 5
inc r8
lea rcx, [rbx + 5]
mov rdx, rbx
call fcn.140039fd0
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.140039fd0
mov r8d, 5
sub r8, rdi
lea rdx, [rsi + 5]
add rdx, rdi
lea rcx, [rbx + rdi]
call fcn.140039fd0
lea rax, [rbp - 0x80]
jmp 0x14001a99f
mov qword [rsp + 0x28], 5
mov qword [rsp + 0x20], rsi
mov edx, 5
lea rcx, [rbp - 0x80]
call fcn.14002f360
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.1400068d0
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 0x14001aa52
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001aa4d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001af43
call fcn.140038024
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], r12b
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x14001aaa0
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001aa9b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001af43
call fcn.140038024
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.14003706c
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp - 0x40]
call fcn.140016520
lea rcx, [rbp - 0x40]
call fcn.140016e80
test al, al
sete bl
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x14001ab30
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ab2b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001af49
call fcn.140038024
test bl, bl
je 0x14001abef
mov qword [rsp + 0x40], r14
lea rax, [rbp + 0x48]
mov qword [rsp + 0x48], rax
mov ecx, 0x10
call fcn.140037fe0
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, [0x1400309c0]
xor edx, edx
xor ecx, ecx
call fcn.14004437c
mov qword [rbp + 0x90], rax
test rax, rax
je 0x14001af65
mov qword [rsp + 0x20], r12
lea r9, [0x14001a3c0]
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 0x14001af4f
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rbp + 0x98], eax
je 0x14001af5a
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rsp + 0x40], xmm0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.1400379f4
test eax, eax
jne 0x14001ae0a
jmp 0x14001abf4
mov rbx, qword [rsp + 0x30]
mov ecx, 8
call fcn.140037fe0
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, [0x1400309f0]
xor edx, edx
xor ecx, ecx
call fcn.14004437c
mov qword [rbp + 0x30], rax
test rax, rax
je 0x14001adfb
mov qword [rsp + 0x20], r12
lea r9, [0x14001a3f0]
xor r8d, r8d
mov edx, 0x83
mov rcx, rbx
call qword [sym.imp.USER32.dll_DialogBoxParamA]
cmp dword [rbp + 0x38], r12d
je 0x14001af77
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rbp + 0x38], eax
je 0x14001af82
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.1400379f4
test eax, eax
jne 0x14001af8d
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x30], xmm0
mov rdx, qword [rbp + 0x60]
cmp rdx, 0x10
jb 0x14001acc9
inc rdx
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001acc4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001af98
call fcn.140038024
mov dword [rsp + 0x28], 0xa
mov qword [rsp + 0x20], r12
lea r9, [0x1400741ff]
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 0x14001ad2f
inc rdx
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001ad2a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001af9e
call fcn.140038024
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.14001f870
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.14003682c
nop
mov eax, ebx
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.140037fc0
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.140037694
int3
mov ecx, 2
call fcn.140037694
int3
call fcn.14003fc24
int3
lea r8, [rbp + 0x48]
lea rdx, [rbp + 0x30]
lea rcx, str.create_directories
call fcn.140016e20
int3
call fcn.14003fc24
int3
test al, 4
je 0x14001ae43
lea rbx, str.ios_base::badbit_set
jmp 0x14001ae57
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.1400014e0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140002260
lea rdx, [0x140082828]
lea rcx, [rbp - 0x40]
call fcn.140039ee4
int3
mov rcx, rax
call fcn.140023190
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1400063b0
mov r8, rax
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp + 0x48]
call fcn.140025a70
mov r8, rax
mov edx, 0x12e
lea rcx, [rsp + 0x40]
call fcn.140026a10
lea rdx, [0x140082c28]
lea rcx, [rsp + 0x40]
call fcn.140039ee4
int3
call fcn.140025540
int3
lea rcx, str.invalid_stoi_argument
call fcn.140035004
int3
lea rcx, str.stoi_argument_out_of_range
call fcn.14003504c
int3
call fcn.14003fc24
int3
mov rcx, rax
call fcn.140023190
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1400063b0
mov r8, rax
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp + 0x90]
call fcn.140025a70
mov r8, rax
mov edx, 0x12e
lea rcx, [rbp - 0x18]
call fcn.140026a10
lea rdx, [0x140082c28]
lea rcx, [rbp - 0x18]
call fcn.140039ee4
int3
call fcn.14003fc24
int3
call fcn.14003fc24
int3
mov ecx, 1
call fcn.140037694
int3
mov ecx, 5
call fcn.140037694
int3
mov dword [rbp + 0x98], r12d
mov ecx, 6
call fcn.140037694
int3
mov ecx, 1
call fcn.140037694
int3
mov ecx, 5
call fcn.140037694
int3
mov ecx, 2
call fcn.140037694
int3
call fcn.14003fc24
int3
call fcn.14003fc24
int3