Function at 0x140009200
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov qword [rsp + 0xa8], 0xfffffffffffffffe
mov qword [rsp + 0xf0], rbx
mov eax, dword [0x1400178f0]
test al, 1
jne 0x140009253
or eax, 1
mov dword [0x1400178f0], eax
lea rcx, [0x1400178c8]
call fcn.1400066c0
lea rcx, [0x140011270]
call fcn.14000f010
nop
lea rdx, [rsp + 0x100]
lea rcx, [0x1400178c8]
call fcn.140007a20
nop
lea rax, [rsp + 0x48]
mov qword [rsp + 0x108], rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, str.LanguageID
or r14, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x1400092c6
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.140005fc0
test rax, rax
je 0x1400092e3
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1400060f0
jmp 0x1400092e3
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x48]
call fcn.140006280
nop
mov eax, dword [0x1400178f0]
test al, 1
jne 0x14000930f
or eax, 1
mov dword [0x1400178f0], eax
lea rcx, [0x1400178c8]
call fcn.1400066c0
lea rcx, [0x140011270]
call fcn.14000f010
nop
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0xf8]
lea rcx, [0x1400178c8]
call fcn.140007e40
nop
mov rsi, qword [rsp + 0xf8]
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov rdi, rbx
cmp word [rsi], bx
je 0x1400093ca
movzx ecx, word [rsi]
call qword [0x1400121f0]
test eax, eax
je 0x14000935b
test rdi, rdi
jne 0x14000935e
mov rdi, rsi
jmp 0x14000935e
mov rdi, rbx
add rsi, 2
cmp word [rsi], bx
jne 0x140009344
test rdi, rdi
je 0x1400093ca
mov rax, qword [rsp + 0xf8]
sub rdi, rax
sar rdi, 1
mov edx, 1
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x1400093a2
mov edx, edi
lea rcx, [rsp + 0xf8]
call fcn.140005e00
mov rax, qword [rsp + 0xf8]
test edi, edi
js 0x1400093bf
cmp edi, dword [rax - 0xc]
jg 0x1400093bf
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0xf8]
mov word [rax + rcx*2], bx
jmp 0x1400093ca
mov ecx, 0x80070057
call fcn.140005f70
int3
lea rcx, [rsp + 0xf8]
call fcn.140008c90
mov rcx, qword [rax]
cmp dword [rcx - 0x10], ebx
jne 0x1400094da
lea rcx, [rsp + 0x78]
call fcn.14000afd0
nop
mov rdx, qword [rax]
lea rdi, [rdx - 0x18]
mov rsi, qword [rsp + 0xf8]
add rsi, 0xffffffffffffffe8
cmp rdi, rsi
je 0x1400094b9
cmp dword [rsi + 0x10], 0
jl 0x1400094a7
mov rcx, qword [rdi]
cmp rcx, qword [rsi]
jne 0x1400094a7
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x14000943e
cmp rax, qword [rdi]
jne 0x14000943e
mov rbx, rdi
lock add dword [rdi + 0x10], 1
jmp 0x14000947e
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x14000945a
call fcn.140005f60
int3
mov eax, dword [rdi + 8]
mov dword [rbx + 8], eax
mov eax, dword [rdi + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rdi + 0x18]
add rdx, rdx
lea rcx, [rbx + 0x18]
call qword [0x1400121d0]
mov eax, r14d
lock xadd dword [rsi + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140009499
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0xf8], rax
jmp 0x1400094b9
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xf8]
call fcn.140006280
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400094da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
lea rdi, str.1033
mov rsi, qword [rsp + 0xf8]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x1400094fa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x14000979c
mov rbx, qword [rsp + 0x100]
lea rbp, [rbx - 0x18]
mov rcx, qword [rbp]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbp + 0x10], 0
jl 0x14000953e
cmp rax, qword [rbp]
jne 0x14000953e
mov rdi, rbp
lock add dword [rbp + 0x10], 1
mov rbx, qword [rsp + 0x100]
jmp 0x14000957e
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbp + 8]
call qword [rax]
mov rdi, rax
test rax, rax
jne 0x14000955a
call fcn.140005f60
int3
mov eax, dword [rbp + 8]
mov dword [rdi + 8], eax
mov eax, dword [rbp + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rbp + 0x18]
add rdx, rdx
lea rcx, [rdi + 0x18]
call qword [0x1400121d0]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x108], rax
mov r8, qword [rsp + 0xf8]
lea rdx, str.modulestrings__s.xml
lea rcx, [rsp + 0x108]
call fcn.14000a4a0
mov rsi, qword [rsp + 0x108]
cmp dword [rsi - 8], 1
jle 0x1400095cc
mov edx, dword [rsi - 0x10]
lea rcx, [rsp + 0x108]
call fcn.140005e60
mov rsi, qword [rsp + 0x108]
mov rcx, rsi
call qword [0x140012390]
test eax, eax
je 0x1400096ad
lea rdi, [rsi - 0x18]
cmp rdi, rbp
je 0x14000975b
cmp dword [rbp + 0x10], 0
jl 0x140009694
mov rcx, qword [rdi]
cmp rcx, qword [rbp]
jne 0x140009694
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x14000961f
cmp rax, qword [rdi]
jne 0x14000961f
mov rsi, rdi
lock add dword [rdi + 0x10], 1
jmp 0x14000965f
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rsi, rax
test rax, rax
jne 0x14000963b
call fcn.140005f60
int3
mov eax, dword [rdi + 8]
mov dword [rsi + 8], eax
mov eax, dword [rdi + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rdi + 0x18]
add rdx, rdx
lea rcx, [rsi + 0x18]
call qword [0x1400121d0]
mov eax, r14d
lock xadd dword [rbp + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14000967b
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x100], rax
mov rsi, qword [rsp + 0x108]
jmp 0x14000975b
mov r8d, dword [rsi - 0x10]
mov rdx, rsi
lea rcx, [rsp + 0x100]
call fcn.140006280
jmp 0x14000975b
call fcn.14000e5b0
mov rcx, rax
mov r9, qword [rsp + 0xf8]
lea r8, str.Unable_to_find_modulestrings_file_for_language__s__using_default_EN_US_file.
lea rdx, str.ModuleStrings::Initialize
call fcn.14000e070
xor eax, eax
mov rcx, r14
lea r12, str.modulestrings.xml
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov r13, r12
sub r13, rbx
sar r13, 1
mov r14d, dword [rbx - 0x10]
lea edi, [r14 + rcx - 1]
mov edx, 1
sub edx, dword [rbp + 0x10]
mov eax, dword [rbp + 0xc]
sub eax, edi
or eax, edx
jge 0x140009723
mov edx, edi
lea rcx, [rsp + 0x100]
call fcn.140005e00
mov rbx, qword [rsp + 0x100]
cmp r13, r14
ja 0x14000972c
lea r12, [rbx + r13*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rbx + r14*2]
mov r9, rdx
mov r8, r12
call qword [0x1400121d0]
test edi, edi
js 0x140009791
cmp edi, dword [rbx - 0xc]
jg 0x140009791
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], 0
or r14, 0xffffffffffffffff
lea rdx, [rsi - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140009784
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x100]
jmp 0x140009831
mov rdi, qword [rsp + 0x100]
jmp 0x140009831
mov ecx, 0x80070057
call fcn.140005f70
nop
xor eax, eax
mov rcx, r14
lea r12, str.modulestrings.xml
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r13, [rcx - 1]
mov rbx, r12
mov rdi, qword [rsp + 0x100]
sub rbx, rdi
sar rbx, 1
mov ebp, dword [rdi - 0x10]
lea esi, [rbp + rcx - 1]
mov edx, 1
sub edx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, esi
or eax, edx
jge 0x1400097f5
mov edx, esi
lea rcx, [rsp + 0x100]
call fcn.140005e00
mov rdi, qword [rsp + 0x100]
cmp rbx, rbp
ja 0x1400097fe
lea r12, [rdi + rbx*2]
movsxd rdx, r13d
add rdx, rdx
lea rcx, [rdi + rbp*2]
mov r9, rdx
mov r8, r12
call qword [0x1400121d0]
test esi, esi
js 0x140009f8e
cmp esi, dword [rdi - 0xc]
jg 0x140009f8e
mov dword [rdi - 0x10], esi
movsxd rax, esi
mov word [rdi + rax*2], 0
mov eax, dword [0x1400178f4]
test al, 1
jne 0x1400098e2
or eax, 1
mov dword [0x1400178f4], eax
mov rsi, qword [0x140017828]
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi - 8], 0
jl 0x14000987b
cmp rax, qword [rsi - 0x18]
jne 0x14000987b
lea rbx, [rsi - 0x18]
lock add dword [rsi - 8], 1
mov rdi, qword [rsp + 0x100]
jmp 0x1400098b6
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rsi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x140009897
call fcn.140005f60
int3
mov eax, dword [rsi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rsi - 0x10]