Function at 0x1400501a0
Capabilities:
Get file version info
Read file on windows

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xb58]
sub rsp, 0xc30
mov qword [rbp + 0xe0], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14035b8c0]
xor rax, rsp
mov qword [rbp + 0xb20], rax
mov r12, rcx
mov byte [rbp - 0x10], 0
lea rcx, [rbp - 8]
call fcn.1400152d0
nop
lea rax, [0x1402f6aa8]
lea rdx, [0x1402ec748]
cmp byte [rbp - 0x10], 0
cmovne rdx, rax
mov r15, 0xffffffffffffffff
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050213
mov r8d, eax
lea rcx, [rbp - 8]
call fcn.1400029fc
mov rbx, qword [rbp - 8]
mov r9, rbx
xor r8d, r8d
mov edx, 0x1175e
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
lea rsi, vtable.ATL::CAtlStringMgr.0
lea r14, vtable.ATL::CWin32Heap.0
sub eax, 1
jg 0x140050298
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140051822
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051822
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
lea rax, [rsp + 0x78]
mov qword [rsp + 0x50], rax
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x14005182a
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140051835
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rdx, [0x1402f1e28]
cmp rdx, 0x10000
jae 0x1400502f3
movzx edx, dx
lea rcx, [rsp + 0x78]
call fcn.140012160
jmp 0x14005030e
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400502f6
mov r8d, eax
lea rcx, [rsp + 0x78]
call fcn.1400029fc
nop
lea rcx, [rbp - 0x80]
call fcn.1400152d0
nop
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x80]
call fcn.140002b08
mov edx, 0x2c
lea rcx, [rbp - 0x80]
call fcn.14007c820
mov r9, qword [rbp - 0x80]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rcx, [rsp + 0x78]
call fcn.14004a110
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x14005183c
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140051847
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x70], rax
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x14005184e
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140051859
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rdx, str.C:Program_Files__x86_MicrosoftEdgeApplicationmsedge.exe
cmp rdx, 0x10000
jae 0x1400503d7
movzx edx, dx
lea rcx, [rsp + 0x68]
call fcn.140012160
jmp 0x1400503f8
mov rax, r15
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400503e0
mov r8d, eax
lea rcx, [rsp + 0x68]
call fcn.1400029fc
nop
lea rdx, [rbp - 0x78]
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov edi, eax
test eax, eax
jne 0x14005041b
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400509be
mov rcx, rdi
call fcn.140236bc0
mov r13, rax
test rax, rax
je 0x1400509be
mov r9, rax
mov r8d, edi
mov edx, dword [rbp - 0x78]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov rcx, r13
test eax, eax
je 0x1400509b9
lea r9, [rbp]
lea r8, [rbp + 8]
lea rdx, [0x1402f1f04]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
mov rcx, r13
test eax, eax
je 0x1400509b9
mov rax, qword [rbp + 8]
mov esi, dword [rax + 8]
mov r14d, esi
shr r14d, 0x10
mov ebx, dword [rax + 0xc]
mov edi, ebx
shr edi, 0x10
call fcn.140233ed0
movzx eax, bx
movzx r9d, si
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edi
mov r8d, r14d
lea rdx, str._d._d._d._d
lea rcx, [rsp + 0x70]
call fcn.14004c820
lea rax, [rbp - 0x60]
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x70]
lea rcx, [rdi - 0x18]
call fcn.140002c14
add rax, 0x18
mov qword [rbp - 0x60], rax
lea rcx, [rbp - 0x58]
call fcn.1400152d0
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x58]
call fcn.140002b08
mov edx, 0x2c
lea rcx, [rbp - 0x58]
call fcn.14007c820
mov r9, qword [rbp - 0x58]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rcx, [rbp - 0x60]
call fcn.14004a110
mov byte [rbp - 0x40], 1
lea rcx, [rbp - 0x38]
call fcn.1400152d0
nop
cmp byte [rbp - 0x40], 0
lea rcx, [0x1402ec748]
lea rax, [0x1402f6aa8]
cmovne rcx, rax
mov rax, r15
inc rax
cmp word [rcx + rax*2], 0
jne 0x140050534
mov r8d, eax
mov rdx, rcx
lea rcx, [rbp - 0x38]
call fcn.1400029fc
mov rbx, qword [rbp - 0x38]
mov r9, rbx
xor r8d, r8d
mov edx, 0x1175e
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
lea r14, vtable.ATL::CAtlStringMgr.0
jg 0x1400505bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051868
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x140051860
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400505c4
lea rsi, vtable.ATL::CWin32Heap.0
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x140051870
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, r14
jne 0x14005187b
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rbp - 0x70], rax
lea rdx, str.Edge
cmp rdx, 0x10000
jae 0x140050613
movzx edx, dx
lea rcx, [rbp - 0x70]
call fcn.140012160
jmp 0x14005062d
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050616
mov r8d, eax
lea rcx, [rbp - 0x70]
call fcn.1400029fc
nop
mov rbx, qword [rbp - 0x70]
mov r9, rbx
mov r8d, dword [0x14036ab60]
mov edx, 0x116b9
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050691
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051882
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140051882
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x50], rax
lea rcx, [rdi - 0x18]
call fcn.140002c14
add rax, 0x18
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x48]
call fcn.1400152d0
nop
mov ebx, dword [0x14036ab60]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x48]
call fcn.140002b08
mov edx, 0x2c
lea rcx, [rbp - 0x48]
call fcn.14007c820
mov r9, qword [rbp - 0x48]
mov r8d, ebx
mov edx, 0x116b8
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rcx, [rbp - 0x50]
call fcn.14004a110
mov byte [rbp + 0x10], 0
lea rcx, [rbp + 0x18]
call fcn.1400152d0
nop
lea r9, [rbp + 0x10]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177b
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050768
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005188a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x14005188a
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0x20], 0
lea rcx, [rbp + 0x28]
call fcn.1400152d0
nop
lea r9, [rbp + 0x20]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177e
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400507db
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051892
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140051892
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0x30], 0
lea rcx, [rbp + 0x38]
call fcn.1400152d0
nop
lea r9, [rbp + 0x30]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177c
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005084e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005189a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x14005189a
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0x40], 0
lea rcx, [rbp + 0x48]
call fcn.1400152d0
nop
lea r9, [rbp + 0x40]
mov r8d, dword [0x14036ab60]
mov edx, 0x11780
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400508c1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518a2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518a2
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0x50], 1
lea rcx, [rbp + 0x58]
call fcn.1400152d0
nop
lea r9, [rbp + 0x50]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177f
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050934
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518aa
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518aa
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0x60], 0
lea rcx, [rbp + 0x68]
call fcn.1400152d0
nop
lea r9, [rbp + 0x60]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177d
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400509a7
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518b2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518b2
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
inc dword [0x14036ab60]
lea rdi, vtable.ATL::CWin32Heap.0
jmp 0x14005178e
call fcn.140233ed0
lea rdx, [rbp + 0xf0]
lea rcx, str.windows_systemappsmicrosoft.microsoftedge_
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
jne 0x140050a9f
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050a24
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518ba
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518ba
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140050a6f
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400519ce
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
cmp rax, r14
mov r8, qword [rax + 8]
jne 0x1400519ce
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rbp + 0xb20]
xor rcx, rsp
call fcn.140229750
lea r11, [rsp + 0xc30]
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
call fcn.140011978
nop
mov rcx, rax
test rax, rax
je 0x1400518c2
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x1400518cd
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, str.windows_systemapps_
cmp rdx, 0x10000
jae 0x140050af1
movzx edx, dx
lea rcx, [rsp + 0x48]
call fcn.140012160
jmp 0x140050b0c
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050af4
mov r8d, eax
lea rcx, [rsp + 0x48]
call fcn.1400029fc
nop
lea rcx, [rbp + 0x11c]
mov rax, r15
inc rax
cmp word [rcx + rax*2], 0
jne 0x140050b16
lea rcx, [rbp + 0x11c]
mov qword [rsp + 0x50], rcx
lea rsi, [rbp + 0x11c]
mov rbx, qword [rsp + 0x48]
sub rsi, rbx
sar rsi, 1
mov r13d, dword [rbx - 0x10]
test eax, eax
js 0x1400518d4
movsxd rdx, eax
lea rcx, [rbp + 0x11c]
call fcn.140233ce0
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r13d
jl 0x1400518df
lea edi, [rax + r13]
test edi, edi
js 0x1400518ea
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140050b9a
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.14000299c
mov rbx, qword [rsp + 0x48]
cmp rsi, r13
ja 0x140050ba8
lea rcx, [rbx + rsi*2]
mov qword [rsp + 0x50], rcx
movsxd rdx, r14d
lea rcx, [rbx + r13*2]
mov r9d, r14d
mov r8, qword [rsp + 0x50]
call fcn.140002b98
cmp edi, dword [rbx - 0xc]
jg 0x140051817
mov dword [rbx - 0x10], edi
movsxd rax, edi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdi, str._appxmanifest.xml
mov rax, r15
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], cx
jne 0x140050be0
mov r14, rdi
sub r14, rbx
sar r14, 1
mov esi, dword [rbx - 0x10]
mov dword [rsp + 0x50], esi
test eax, eax
js 0x1400518f5
movsxd rdx, eax
mov rcx, rdi
call fcn.140233ce0
mov r13, rax
mov eax, 0x7fffffff
sub eax, r13d
cmp eax, esi
jl 0x140051900
add esi, r13d
js 0x14005190b
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x140050c4a
mov edx, esi
lea rcx, [rsp + 0x48]
call fcn.14000299c
mov rbx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x50]
cmp r14, rax
ja 0x140050c57
lea rdi, [rbx + r14*2]
movsxd rdx, r13d
lea rcx, [rbx + rax*2]
mov r9d, r13d
mov r8, rdi
call fcn.140002b98
cmp esi, dword [rbx - 0xc]
jg 0x14005180c
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor edi, edi
mov word [rbx + rax*2], di
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rdi + 1]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140050d9b
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
lea rbx, vtable.ATL::CAtlStringMgr.0
jg 0x140050d0c
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x14005191e
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x140051916
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140050d13
lea rdi, vtable.ATL::CWin32Heap.0
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050d60
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x140051926
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051926
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140050a6f
mov rcx, qword [rdx]
mov rax, qword [rcx]
cmp rax, rbx
mov r8, qword [rax + 8]
jne 0x1400519ce
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
cmp rax, rdi
jmp 0x140050a56
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x60]
mov r8d, 0x7d0
lea rdx, [rbp + 0x340]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14005172e
mov eax, dword [rsp + 0x60]
cmp rax, 0x7d2
jae 0x1400519b8
mov byte [rbp + rax + 0x340], dil
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x14005192e
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea r14, vtable.ATL::CAtlStringMgr.0
cmp rax, r14
jne 0x140051939
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rax, [rbp + 0x340]
lea rcx, [rsp + 0x58]
cmp rax, 0x10000
jae 0x140050e3d
lea rax, [rbp + 0x340]
movzx edx, ax
call fcn.140012160
jmp 0x140050e4a
lea rdx, [rbp + 0x340]
call fcn.140015160
nop
mov rbx, qword [rsp + 0x58]
cmp dword [rbx - 0x10], 0
jl 0x1400516d5
lea rdx, str.Version
mov rcx, rbx
call fcn.14022dc40
mov rdi, rax
test rax, rax
je 0x1400516d5
sub rdi, rbx
sar rdi, 1
test edi, edi
js 0x1400516d5
cmp dword [rbx - 0x10], 0
jle 0x1400516d5
mov edx, 0x22
mov rcx, rbx
call fcn.14022e038
test rax, rax
je 0x1400516d5
sub rax, rbx
sar rax, 1
test eax, eax
js 0x1400516d5
lea r8d, [rdi + 9]
mov r9d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.140014fe0
nop
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax - 0x10]
test ecx, ecx
jle 0x140051676
js 0x140050f1f
lea rdx, str.20.10240
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140050f1f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140050f1f
lea rdx, str.12.10240
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050f10
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.25.10586
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140050f6f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140050f6f
lea rdx, str.13.10586
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050f60
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.38.14393
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140050fbf
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140050fbf
lea rdx, str.14.14393
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050fb0
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.40.15063
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005100f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005100f
lea rdx, str.15.15063
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051000
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.41.16299
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005105f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005105f
lea rdx, str.16.16299
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051050
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.42.17134
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x1400510af
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x1400510af
lea rdx, str.17.17134
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400510a0
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.44.17763
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x1400510ff
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x1400510ff
lea rdx, str.18.17763
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400510f0
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.44.18362
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005114c
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005114c
lea rdx, str.18.18363
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051140
jmp 0x14005118c
cmp dword [rax - 0x10], 0
jl 0x14005119e
lea rdx, str.44.19041
mov rcx, rax
call fcn.14022dc40
mov rcx, rax
test rax, rax
je 0x140051199
mov rax, qword [rsp + 0x40]
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005119e
lea rdx, str.18.19041
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051182
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.1400029fc
mov rax, qword [rsp + 0x40]
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x50], rcx
lea rcx, [rax - 0x18]
call fcn.140002c14
add rax, 0x18
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x28]
call fcn.1400152d0
nop
lea r9, [rbp - 0x30]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, r12
call fcn.1400859e0
nop
lea rcx, [rbp - 0x30]
call fcn.14004a110
mov byte [rbp + 0x70], 1
lea rcx, [rbp + 0x78]
call fcn.1400152d0
nop
lea r9, [rbp + 0x70]
xor r8d, r8d
mov edx, 0x1175e
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051257
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051948
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x140051940
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14005125e
lea rdi, vtable.ATL::CWin32Heap.0
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x140051950
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, r14
jne 0x14005195b
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rbp - 0x68], rax
lea rdx, str.Edge
cmp rdx, 0x10000
jae 0x1400512ad
movzx edx, dx
lea rcx, [rbp - 0x68]
call fcn.140012160
jmp 0x1400512c7
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400512b0
mov r8d, eax
lea rcx, [rbp - 0x68]
call fcn.1400029fc
nop
mov rbx, qword [rbp - 0x68]
mov r9, rbx
mov r8d, dword [0x14036ab60]
mov edx, 0x116b9
mov rcx, qword [r12]
call fcn.14001f800
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005132b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051962
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051962
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rax, [rbp - 0x20]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x40]
add rcx, 0xffffffffffffffe8
call fcn.140002c14
add rax, 0x18
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x18]
call fcn.1400152d0
nop
lea r9, [rbp - 0x20]
mov r8d, dword [0x14036ab60]
mov edx, 0x116b8
mov rcx, r12
call fcn.1400859e0
nop
lea rcx, [rbp - 0x20]
call fcn.14004a110
mov byte [rbp + 0x80], 0
lea rcx, [rbp + 0x88]
call fcn.1400152d0
nop
lea r9, [rbp + 0x80]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177b
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400513f5
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005196a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x14005196a
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0x90], 0
lea rcx, [rbp + 0x98]
call fcn.1400152d0
nop
lea r9, [rbp + 0x90]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177e
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051474
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051972
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051972
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0xa0], 0
lea rcx, [rbp + 0xa8]
call fcn.1400152d0
nop
lea r9, [rbp + 0xa0]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177c
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400514f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005197a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x14005197a
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0xb0], 0
lea rcx, [rbp + 0xb8]
call fcn.1400152d0
nop
lea r9, [rbp + 0xb0]
mov r8d, dword [0x14036ab60]
mov edx, 0x11780
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051572
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051982
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051982
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0xc0], 1
lea rcx, [rbp + 0xc8]
call fcn.1400152d0
nop
lea r9, [rbp + 0xc0]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177f
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400515f1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005198a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x14005198a
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov byte [rbp + 0xd0], 0
lea rcx, [rbp + 0xd8]
call fcn.1400152d0
nop
lea r9, [rbp + 0xd0]
mov r8d, dword [0x14036ab60]
mov edx, 0x1177d
mov rcx, r12
call fcn.140085960
nop
mov rdx, qword [rbp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051670
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051992
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051992
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
inc dword [0x14036ab60]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400516d0
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519a7
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x14005199a
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x58]
jmp 0x1400516dc
mov rbx, qword [rsp + 0x58]
lea rdi, vtable.ATL::CWin32Heap.0
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051802
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519af
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519af
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x48]
jmp 0x14005173c
lea r14, vtable.ATL::CAtlStringMgr.0
lea rdi, vtable.ATL::CWin32Heap.0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005178e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519be
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519be
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400517db
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519c6
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519c6
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140050a6f
mov rcx, qword [rdx]
mov rax, qword [rcx]
cmp rax, r14
jmp 0x140050d82
mov rbx, qword [rsp + 0x48]
jmp 0x14005173c
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
nop
call r8
jmp 0x140050298
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x1400502cb
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x14005037d
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x1400503af
call r8
jmp 0x1400505c4
call r8
jmp 0x1400505bd
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x1400505ed
call r8
jmp 0x140050691
call r8
jmp 0x140050768
call r8
jmp 0x1400507db
call r8
jmp 0x14005084e
call r8
jmp 0x1400508c1
call r8
jmp 0x140050934
call r8
jmp 0x1400509a7
call r8
jmp 0x140050a24
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x140050ac9
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
nop
call r8
jmp 0x140050d13
call r8
jmp 0x140050d0c
call r8
jmp 0x140050d60
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x140050e0f
call r8
jmp 0x14005125e
call r8
jmp 0x140051257
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x140051287
call r8
jmp 0x14005132b
call r8
jmp 0x1400513f5
call r8
jmp 0x140051474
call r8
jmp 0x1400514f3
call r8
jmp 0x140051572
call r8
jmp 0x1400515f1
call r8
jmp 0x140051670
call r8
mov rbx, qword [rsp + 0x58]
jmp 0x1400516dc
call r8
jmp 0x1400516d0
call r8
nop
jmp 0x140051802
call fcn.140229ea4
nop
call r8
jmp 0x14005178e
call r8
jmp 0x1400517db
call r8
jmp 0x140050a6f