Function at 0x14003f7b0
Capabilities:
Get file size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xb0
mov qword [rbp - 0x11], 0xfffffffffffffffe
mov qword [rsp + 0x108], rbx
mov rax, qword [0x14016ca00]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r15d, r8d
mov rbx, rdx
mov rdi, rcx
mov r12, qword [rcx + 0x18]
mov qword [rbp - 0x51], r12
xor r13b, r13b
mov byte [rbp - 0x49], r13b
test r12, r12
je 0x14003f82e
mov rcx, qword [r12]
test rcx, rcx
je 0x14003f82a
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, 0xffffff7f
je 0x14003f821
xor r13b, r13b
jmp 0x14003f82a
mov byte [r12 + 8], 1
mov r13b, 1
mov byte [rbp - 0x49], r13b
lea rdx, [rbp - 9]
mov rcx, rdi
call fcn.14003b000
nop
cmp qword [rax + 0x10], 0
sete sil
cmp qword [rbp + 0xf], 8
jb 0x14003f854
mov rcx, qword [rbp - 9]
call fcn.1400bd20c
mov qword [rbp + 0xf], 7
xor r14d, r14d
mov qword [rbp + 7], r14
mov word [rbp - 9], r14w
test sil, sil
je 0x14003f989
mov rdx, rbx
lea rcx, [rbp - 9]
call fcn.140060f90
nop
cmp qword [rbp + 7], r14
je 0x14003f8c8
lea rcx, [rdi + 0x38]
lea rax, [rbp - 9]
cmp rcx, rax
je 0x14003f8a2
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 9]
call fcn.140006b90
nop
cmp qword [rbp + 0xf], 8
jb 0x14003f8b2
mov rcx, qword [rbp - 9]
call fcn.1400bd20c
mov qword [rbp + 0xf], 7
mov qword [rbp + 7], r14
mov word [rbp - 9], r14w
jmp 0x14003f989
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rdi, rdi
je 0x14003f953
test rax, rax
je 0x14003f94b
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
lea rax, [0x14012b1d0]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
mov r8, rdi
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
mov rcx, rbx
call fcn.140015100
mov rcx, rdi
call fcn.1400bd2dc
test rbx, rbx
je 0x14003f961
mov rcx, rbx
call fcn.1400bd2dc
nop
cmp qword [rbp + 0xf], 8
jb 0x14003f971
mov rcx, qword [rbp - 9]
call fcn.1400bd20c
mov qword [rbp + 0xf], 7
mov qword [rbp + 7], r14
mov word [rbp - 9], r14w
xor bl, bl
jmp 0x14003ff4f
cmp qword [rdi + 0x20], 0
jne 0x14003ff4d
xor edx, edx
mov rcx, rdi
call fcn.14003ae30
test al, al
jne 0x14003ff4d
mov dl, 1
mov rcx, rdi
call fcn.14003ae30
test al, al
jne 0x14003ff4d
mov ecx, 0x800
call fcn.1400bbc88
mov r14, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
test r14, r14
je 0x14003fa52
test rax, rax
je 0x14003fa4a
xor edx, edx
mov r8d, 0x800
mov rcx, r14
call fcn.1400c2130
lea rax, [0x14012b220]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, r14
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
cmp qword [rbx + 0x18], 8
jb 0x14003fa2f
mov r9, qword [rbx]
jmp 0x14003fa32
mov r9, rbx
mov r8, r14
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
mov rcx, rsi
call fcn.140014e90
mov rcx, r14
call fcn.1400bd2dc
test rsi, rsi
je 0x14003fa5f
mov rcx, rsi
call fcn.1400bd2dc
lea rcx, [rbp - 0x41]
call fcn.14002c490
nop
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.14002d290
test al, al
jne 0x14003fb29
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
test rsi, rsi
je 0x14003fb15
test rax, rax
je 0x14003fb0d
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rax, [0x14012ab98]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
cmp qword [rbx + 0x18], 8
jb 0x14003faf2
mov rbx, qword [rbx]
mov r9, rbx
mov r8, rsi
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
mov rcx, rdi
call fcn.140015100
mov rcx, rsi
call fcn.1400bd2dc
test rdi, rdi
je 0x14003fb22
mov rcx, rdi
call fcn.1400bd2dc
xor bl, bl
jmp 0x14003fefa
lea rcx, [rbp - 0x59]
call fcn.14006d290
nop
mov dword [rsp + 0x20], 3
mov r9d, 1
mov r8d, 0x80000000
mov rdx, rbx
lea rcx, [rbp - 0x59]
call fcn.14006fad0
test al, al
jne 0x14003fc04
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
test rsi, rsi
je 0x14003fbf3
test rax, rax
je 0x14003fbeb
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rax, [0x140127a68]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
cmp qword [rbx + 0x18], 8
jb 0x14003fbd0
mov rbx, qword [rbx]
mov r9, rbx
mov r8, rsi
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
mov rcx, rdi
call fcn.140015100
mov rcx, rsi
call fcn.1400bd2dc
test rdi, rdi
je 0x14003feee
mov rcx, rdi
jmp 0x14003fee9
mov rax, qword [rbp - 0x59]
test rax, rax
je 0x14003feee
mov rcx, qword [rax]
cmp rcx, 0xffffffffffffffff
je 0x14003feee
lea rdx, [rbp + 0x17]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp eax, 0xffffffff
jne 0x14003fc3d
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14003feee
mov r14d, dword [rbp + 0x17]
shl r14, 0x20
add r14, rsi
je 0x14003feee
lea edx, [r15 + r14]
mov rcx, rdi
call fcn.14003aec0
test al, al
jne 0x14003fd57
mov ecx, 0x800
call fcn.1400bbc88
mov r15, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
test r15, r15
je 0x14003fd46
test rax, rax
je 0x14003fd3e
xor edx, edx
mov r8d, 0x800
mov rcx, r15
call fcn.1400c2130
lea rax, [0x14012b1e8]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, r15
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rdx, [rbp - 9]
mov rcx, rdi
call fcn.14003b000
nop
cmp qword [rax + 0x18], 8
jb 0x14003fcec
mov rax, qword [rax]
cmp qword [rbx + 0x18], 8
jb 0x14003fcf6
mov rbx, qword [rbx]
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, r15
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
nop
cmp qword [rbp + 0xf], 8
jb 0x14003fd24
mov rcx, qword [rbp - 9]
call fcn.1400bd20c
mov qword [rbp + 0xf], 7
xor eax, eax
mov qword [rbp + 7], rax
mov word [rbp - 9], ax
mov rcx, rsi
call fcn.140015100
mov rcx, r15
call fcn.1400bd2dc
test rsi, rsi
je 0x14003feee
mov rcx, rsi
jmp 0x14003fee9
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
mov rsi, rax
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x30]
mov r9d, eax
mov r8, rsi
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.14002c840
test al, al
jne 0x14003fe25
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
test rsi, rsi
je 0x14003fbf3
test rax, rax
je 0x14003fbeb
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rax, [0x14012b270]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp qword [rbx + 0x18], 8
jb 0x14003fe09
mov rbx, qword [rbx]
mov dword [rsp + 0x20], eax
mov r9, rbx
mov r8, rsi
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
jmp 0x14003fbe3
lea rcx, [rdi + 0x80]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, rsi
call qword [rax + 0x60]
test al, al
jne 0x14003fee5
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
test rsi, rsi
je 0x14003fed8
test rax, rax
je 0x14003fed0
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rax, [0x14012b240]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCWordLibLoader::LoadWordLibWithExtraLength
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
cmp qword [rbx + 0x18], 8
jb 0x14003feb5
mov rbx, qword [rbx]
mov r9, rbx
mov r8, rsi
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
mov rcx, rdi
call fcn.140015100
mov rcx, rsi
call fcn.1400bd2dc
test rdi, rdi
je 0x14003fee5
mov rcx, rdi
call fcn.1400bd2dc
mov bl, 1
jmp 0x14003fef0
call fcn.1400bd2dc
xor bl, bl
lea rcx, [rbp - 0x59]
call fcn.14006fa80
nop
lea rax, vtable.RC::RCWordLibFileUtil.0
mov qword [rbp - 0x41], rax
lea rcx, [rbp - 0x21]
call fcn.140064c30
nop
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x14003ff3d
mov eax, dword [rbp - 0x25]
cmp eax, 1
jne 0x14003ff27
call fcn.1400bb270
jmp 0x14003ff30
test eax, eax
jne 0x14003ff30
call fcn.1400bd2dc
xor r14d, r14d
mov qword [rbp - 0x31], r14
mov dword [rbp - 0x29], r14d
jmp 0x14003ff40
xor r14d, r14d
lea rax, vtable.RC::IWordLibFileUtil.0
mov qword [rbp - 0x41], rax
jmp 0x14003ff4f
mov bl, 1
test r12, r12
je 0x14003ff6e
test r13b, r13b
je 0x14003ff6e
mov rcx, qword [r12]
test rcx, rcx
je 0x14003ff68
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [r12 + 8], 0
mov qword [rbp - 0x51], r14
movzx eax, bl
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.1400bcae0
mov rbx, qword [rsp + 0x108]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret