Function at 0x14003c560
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x110
mov qword [rsp + 0x100], 0xfffffffffffffffe
mov rbp, rdx
mov rbx, rcx
call fcn.14002e130
nop
xor r12d, r12d
mov dword [rsp + 0x158], r12d
lea rdx, [rsp + 0x158]
mov rcx, rbp
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
test eax, eax
jne 0x14003c639
lea rax, vtable.Exception.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x88]
call fcn.14002e130
nop
lea rdx, [0x1400d1b20]
lea rcx, [rsp + 0x88]
mov rax, qword [rsp + 0x88]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
lea rax, vtable.SystemException.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0xc0]
call fcn.14002e130
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0xf8], eax
mov r8d, eax
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.140041da0
nop
lea rdx, [0x140101da8]
lea rcx, [rsp + 0x80]
call fcn.14007c4b0
int3
mov ecx, 8
call fcn.1400797fc
test rax, rax
je 0x14003c652
lea rcx, [rsp + 0x50]
mov qword [rax], rcx
jmp 0x14003c655
mov rax, r12
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x150], 0
mov rdx, rsi
lea r8, [rsp + 0x150]
lea rcx, [rsp + 0x50]
call fcn.14003c900
nop
mov rdi, qword [rsp + 0x68]
cmp rdi, qword [rsp + 0x70]
jbe 0x14003c689
call fcn.1400796a8
mov rax, qword [rsp + 0x50]
test rax, rax
jne 0x14003c69d
call fcn.1400796a8
mov r11, r12
jmp 0x14003c6a0
mov r11, qword [rax]
cmp rdi, qword [r11 + 0x20]
jb 0x14003c6ab
call fcn.1400796a8
mov r9, rdi
mov r8d, esi
mov edx, dword [rsp + 0x158]
mov rcx, rbp
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x14003c752
lea rax, vtable.Exception.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x88]
call fcn.14002e130
nop
lea rdx, [0x1400d1b20]
lea rcx, [rsp + 0x88]
mov rax, qword [rsp + 0x88]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
lea rax, vtable.SystemException.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0xc0]
call fcn.14002e130
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0xf8], eax
mov r8d, eax
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.140041da0
nop
lea rdx, [0x140101da8]
lea rcx, [rsp + 0x80]
call fcn.14007c4b0
int3
mov dword [rsp + 0x40], r12d
mov qword [rsp + 0x48], r12
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x48]
lea rdx, [0x1400d26a4]
mov rcx, rdi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x14003c807
lea rax, vtable.Exception.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x88]
call fcn.14002e130
nop
lea rdx, [0x1400d1b20]
lea rcx, [rsp + 0x88]
mov rax, qword [rsp + 0x88]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
lea rax, vtable.SystemException.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0xc0]
call fcn.14002e130
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0xf8], eax
mov r8d, eax
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.140041da0
nop
lea rdx, [0x140101da8]
lea rcx, [rsp + 0x80]
call fcn.14007c4b0
int3
mov rax, qword [rsp + 0x48]
movzx r8d, word [rax + 0x12]
mov dx, word [rax + 0x10]
movzx ecx, word [rax + 0x16]
movzx r9d, word [rax + 0x14]
lea r10, [0x1400d4728]
cmp cx, 0x64
jbe 0x14003c84a
lea r10, str.beta
mov eax, 0xff9c
add cx, ax
inc dx
cmp dx, 0x64
jb 0x14003c84a
mov edx, r12d
inc r8w
test cx, cx
jne 0x14003c86e
test r9w, r9w
jne 0x14003c899
movzx r9d, dx
movzx r8d, r8w
lea rdx, str._d._d
mov rcx, rbx
call fcn.14002ecb0
jmp 0x14003c8c5
test r9w, r9w
jne 0x14003c899
movzx eax, cx
movzx r9d, dx
movzx r8d, r8w
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r10
lea rdx, str._d._d_s_d
mov rcx, rbx
call fcn.14002ecb0
jmp 0x14003c8c5
movzx eax, r9w
movzx ecx, cx
movzx r9d, dx
movzx r8d, r8w
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], r10
lea rdx, str._d._d_s_d._d
mov rcx, rbx
call fcn.14002ecb0
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14003c8d4
call fcn.140078e60
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
mov rcx, qword [rsp + 0x50]
call fcn.140078e60
nop
mov rax, rbx
add rsp, 0x110
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret