Function at 0x14003fc50
Capabilities:
Get file version info

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2e8
mov rax, qword [0x14016bb40]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov r14, rcx
mov rbx, r9
mov rcx, r8
mov r15, rdx
mov rbp, r8
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x70], rbx
call fcn.14006210c
mov rcx, rbx
mov rdi, rax
call fcn.14006210c
xor r12d, r12d
mov r13, rax
mov esi, r12d
test rdi, rdi
je 0x14003fcfa
test rax, rax
je 0x14003fcfa
mov eax, dword [rsp + 0x358]
mov r9, r13
mov r8, rdi
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x350]
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x20], rax
call qword [r14 + 0x60]
test rax, rax
jne 0x14003fcff
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x14003fcff
mov esi, 8
mov rax, qword [r14]
test rax, rax
je 0x14003fe93
test rdi, rdi
je 0x14003fea0
test byte [rax + 0x28], 8
je 0x14003fda8
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov qword [rsp + 0x50], r12
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov ebp, eax
test eax, eax
je 0x14003fda3
mov ecx, ebp
call fcn.14006194c
mov rbx, rax
test rax, rax
je 0x14003fda3
mov edx, dword [rsp + 0x58]
mov r9, rax
mov r8d, ebp
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x14003fd9b
lea r9, [rsp + 0x6c]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x68]
mov rcx, rbx
mov dword [rsp + 0x68], 0x5c
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
jne 0x14003fd88
mov qword [rsp + 0x50], r12
jmp 0x14003fd9b
mov rax, qword [rsp + 0x50]
mov r12d, dword [rax + 8]
mov eax, dword [rax + 0xc]
shl r12, 0x20
add r12, rax
mov rcx, rbx
call fcn.14006190c
mov rbp, qword [rsp + 0x60]
cmp qword [r14 + 0x40], 0
lea rbx, str._unknown_
jne 0x14003fdc6
mov ecx, 0x45a
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp case.0x14003fe03.7
mov r8, qword [rsp + 0x350]
lea r9, [rsp + 0x80]
mov rdx, r15
mov rcx, r14
call fcn.14003ff00
test eax, eax
je case.0x14003fe03.7
movsxd rax, dword [rsp + 0xa0]
cmp eax, 9
ja case.0x14003fe03.7
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x3fed4]
add rcx, rdx
jmp rcx
lea rbx, str._nosymbols_
jmp case.0x14003fe03.7
lea rbx, str.COFF
jmp case.0x14003fe03.7
lea rbx, [0x14012e9b4]
jmp case.0x14003fe03.7
lea rbx, [0x14012e9b8]
jmp case.0x14003fe03.7
lea rbx, str._exported_
jmp case.0x14003fe03.7
lea rbx, str._deferred_
jmp case.0x14003fe03.7
lea rbx, [0x14012e9dc]
jmp case.0x14003fe03.7
lea rbx, str.Virtual
jmp case.0x14003fe03.7
lea rbx, [0x14012e9e8]
mov rcx, qword [r14]
mov r9, qword [rsp + 0x350]
mov r8, qword [rsp + 0x70]
mov rax, qword [rcx]
mov qword [rsp + 0x40], r12
lea rdx, [rsp + 0x1c4]
mov qword [rsp + 0x38], rdx
mov edx, dword [rsp + 0x358]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edx
mov rdx, rbp
call qword [rax + 0x10]
test rdi, rdi
je 0x14003fea0
mov rcx, rdi
call fcn.14006190c
test r13, r13
je 0x14003fead
mov rcx, r13
call fcn.14006190c
mov eax, esi
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.14005e0b0
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret