Function at 0x1400510b0
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 [0x14035d8c0]
xor rax, rsp
mov qword [rbp + 0xb20], rax
mov r12, rcx
mov byte [rbp - 0x10], 0
lea rcx, [rbp - 8]
call fcn.140015830
nop
lea rax, [0x1402f8eb8]
lea rdx, [0x1402f06c8]
cmp byte [rbp - 0x10], 0
cmovne rdx, rax
mov r15, 0xffffffffffffffff
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051123
mov r8d, eax
lea rcx, [rbp - 8]
call fcn.140002a7c
mov rbx, qword [rbp - 8]
mov r9, rbx
xor r8d, r8d
mov edx, 0x1175e
mov rcx, qword [r12]
call fcn.14001fd40
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 0x1400511a8
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140052732
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052732
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.140011f18
mov rcx, rax
test rax, rax
je 0x14005273a
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140052745
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rdx, [0x1402f4188]
cmp rdx, 0x10000
jae 0x140051203
movzx edx, dx
lea rcx, [rsp + 0x78]
call fcn.140012700
jmp 0x14005121e
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051206
mov r8d, eax
lea rcx, [rsp + 0x78]
call fcn.140002a7c
nop
lea rcx, [rbp - 0x80]
call fcn.140015830
nop
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x80]
call fcn.140002b88
mov edx, 0x2c
lea rcx, [rbp - 0x80]
call fcn.14007cc70
mov r9, qword [rbp - 0x80]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, qword [r12]
call fcn.14001fd40
nop
lea rcx, [rsp + 0x78]
call fcn.14004b020
call fcn.140011f18
mov rcx, rax
test rax, rax
je 0x14005274c
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140052757
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x70], rax
call fcn.140011f18
mov rcx, rax
test rax, rax
je 0x14005275e
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140052769
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 0x1400512e7
movzx edx, dx
lea rcx, [rsp + 0x68]
call fcn.140012700
jmp 0x140051308
mov rax, r15
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400512f0
mov r8d, eax
lea rcx, [rsp + 0x68]
call fcn.140002a7c
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 0x14005132b
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400518ce
mov rcx, rdi
call fcn.140237e90
mov r13, rax
test rax, rax
je 0x1400518ce
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 0x1400518c9
lea r9, [rbp]
lea r8, [rbp + 8]
lea rdx, [0x1402f4264]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
mov rcx, r13
test eax, eax
je 0x1400518c9
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.1402351a0
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.14004d730
lea rax, [rbp - 0x60]
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x70]
lea rcx, [rdi - 0x18]
call fcn.140002c94
add rax, 0x18
mov qword [rbp - 0x60], rax
lea rcx, [rbp - 0x58]
call fcn.140015830
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x58]
call fcn.140002b88
mov edx, 0x2c
lea rcx, [rbp - 0x58]
call fcn.14007cc70
mov r9, qword [rbp - 0x58]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, qword [r12]
call fcn.14001fd40
nop
lea rcx, [rbp - 0x60]
call fcn.14004b020
mov byte [rbp - 0x40], 1
lea rcx, [rbp - 0x38]
call fcn.140015830
nop
cmp byte [rbp - 0x40], 0
lea rcx, [0x1402f06c8]
lea rax, [0x1402f8eb8]
cmovne rcx, rax
mov rax, r15
inc rax
cmp word [rcx + rax*2], 0
jne 0x140051444
mov r8d, eax
mov rdx, rcx
lea rcx, [rbp - 0x38]
call fcn.140002a7c
mov rbx, qword [rbp - 0x38]
mov r9, rbx
xor r8d, r8d
mov edx, 0x1175e
mov rcx, qword [r12]
call fcn.14001fd40
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
lea r14, vtable.ATL::CAtlStringMgr.0
jg 0x1400514cd
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052778
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x140052770
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400514d4
lea rsi, vtable.ATL::CWin32Heap.0
call fcn.140011f18
mov rcx, rax
test rax, rax
je 0x140052780
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, r14
jne 0x14005278b
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 0x140051523
movzx edx, dx
lea rcx, [rbp - 0x70]
call fcn.140012700
jmp 0x14005153d
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051526
mov r8d, eax
lea rcx, [rbp - 0x70]
call fcn.140002a7c
nop
mov rbx, qword [rbp - 0x70]
mov r9, rbx
mov r8d, dword [0x14036cb90]
mov edx, 0x116b9
mov rcx, qword [r12]
call fcn.14001fd40
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400515a1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052792
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140052792
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.140002c94
add rax, 0x18
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x48]
call fcn.140015830
nop
mov ebx, dword [0x14036cb90]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x48]
call fcn.140002b88
mov edx, 0x2c
lea rcx, [rbp - 0x48]
call fcn.14007cc70
mov r9, qword [rbp - 0x48]
mov r8d, ebx
mov edx, 0x116b8
mov rcx, qword [r12]
call fcn.14001fd40
nop
lea rcx, [rbp - 0x50]
call fcn.14004b020
mov byte [rbp + 0x10], 0
lea rcx, [rbp + 0x18]
call fcn.140015830
nop
lea r9, [rbp + 0x10]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177b
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051678
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005279a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x14005279a
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.140015830
nop
lea r9, [rbp + 0x20]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177e
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400516eb
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400527a2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400527a2
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.140015830
nop
lea r9, [rbp + 0x30]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177c
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005175e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400527aa
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400527aa
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.140015830
nop
lea r9, [rbp + 0x40]
mov r8d, dword [0x14036cb90]
mov edx, 0x11780
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400517d1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400527b2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400527b2
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.140015830
nop
lea r9, [rbp + 0x50]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177f
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051844
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400527ba
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400527ba
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.140015830
nop
lea r9, [rbp + 0x60]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177d
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400518b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400527c2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400527c2
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
inc dword [0x14036cb90]
lea rdi, vtable.ATL::CWin32Heap.0
jmp 0x14005269e
call fcn.1402351a0
lea rdx, [rbp + 0xf0]
lea rcx, str.windows_systemappsmicrosoft.microsoftedge_
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
jne 0x1400519af
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051934
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400527ca
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400527ca
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 0x14005197f
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400528de
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
cmp rax, r14
mov r8, qword [rax + 8]
jne 0x1400528de
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.14022aa20
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.140011f18
nop
mov rcx, rax
test rax, rax
je 0x1400527d2
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x1400527dd
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 0x140051a01
movzx edx, dx
lea rcx, [rsp + 0x48]
call fcn.140012700
jmp 0x140051a1c
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051a04
mov r8d, eax
lea rcx, [rsp + 0x48]
call fcn.140002a7c
nop
lea rcx, [rbp + 0x11c]
mov rax, r15
inc rax
cmp word [rcx + rax*2], 0
jne 0x140051a26
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 0x1400527e4
movsxd rdx, eax
lea rcx, [rbp + 0x11c]
call fcn.140234fb0
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r13d
jl 0x1400527ef
lea edi, [rax + r13]
test edi, edi
js 0x1400527fa
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140051aaa
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.140002a1c
mov rbx, qword [rsp + 0x48]
cmp rsi, r13
ja 0x140051ab8
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.140002c18
cmp edi, dword [rbx - 0xc]
jg 0x140052727
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 0x140051af0
mov r14, rdi
sub r14, rbx
sar r14, 1
mov esi, dword [rbx - 0x10]
mov dword [rsp + 0x50], esi
test eax, eax
js 0x140052805
movsxd rdx, eax
mov rcx, rdi
call fcn.140234fb0
mov r13, rax
mov eax, 0x7fffffff
sub eax, r13d
cmp eax, esi
jl 0x140052810
add esi, r13d
js 0x14005281b
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x140051b5a
mov edx, esi
lea rcx, [rsp + 0x48]
call fcn.140002a1c
mov rbx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x50]
cmp r14, rax
ja 0x140051b67
lea rdi, [rbx + r14*2]
movsxd rdx, r13d
lea rcx, [rbx + rax*2]
mov r9d, r13d
mov r8, rdi
call fcn.140002c18
cmp esi, dword [rbx - 0xc]
jg 0x14005271c
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 0x140051cab
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
lea rbx, vtable.ATL::CAtlStringMgr.0
jg 0x140051c1c
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x14005282e
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x140052826
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140051c23
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 0x140051c70
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x140052836
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140052836
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 0x14005197f
mov rcx, qword [rdx]
mov rax, qword [rcx]
cmp rax, rbx
mov r8, qword [rax + 8]
jne 0x1400528de
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
cmp rax, rdi
jmp 0x140051966
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 0x14005263e
mov eax, dword [rsp + 0x60]
cmp rax, 0x7d2
jae 0x1400528c8
mov byte [rbp + rax + 0x340], dil
call fcn.140011f18
mov rcx, rax
test rax, rax
je 0x14005283e
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea r14, vtable.ATL::CAtlStringMgr.0
cmp rax, r14
jne 0x140052849
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 0x140051d4d
lea rax, [rbp + 0x340]
movzx edx, ax
call fcn.140012700
jmp 0x140051d5a
lea rdx, [rbp + 0x340]
call fcn.1400156c0
nop
mov rbx, qword [rsp + 0x58]
cmp dword [rbx - 0x10], 0
jl 0x1400525e5
lea rdx, str.Version
mov rcx, rbx
call fcn.14022ee58
mov rdi, rax
test rax, rax
je 0x1400525e5
sub rdi, rbx
sar rdi, 1
test edi, edi
js 0x1400525e5
cmp dword [rbx - 0x10], 0
jle 0x1400525e5
mov edx, 0x22
mov rcx, rbx
call fcn.14022f308
test rax, rax
je 0x1400525e5
sub rax, rbx
sar rax, 1
test eax, eax
js 0x1400525e5
lea r8d, [rdi + 9]
mov r9d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.140015540
nop
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax - 0x10]
test ecx, ecx
jle 0x140052586
js 0x140051e2f
lea rdx, str.20.10240
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140051e2f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140051e2f
lea rdx, str.12.10240
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051e20
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.25.10586
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140051e7f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140051e7f
lea rdx, str.13.10586
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051e70
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.38.14393
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140051ecf
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140051ecf
lea rdx, str.14.14393
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051ec0
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.40.15063
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140051f1f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140051f1f
lea rdx, str.15.15063
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051f10
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.41.16299
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140051f6f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140051f6f
lea rdx, str.16.16299
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051f60
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.42.17134
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x140051fbf
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x140051fbf
lea rdx, str.17.17134
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051fb0
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.44.17763
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005200f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005200f
lea rdx, str.18.17763
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140052000
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.44.18362
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005205c
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005205c
lea rdx, str.18.18363
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140052050
jmp 0x14005209c
cmp dword [rax - 0x10], 0
jl 0x1400520ae
lea rdx, str.44.19041
mov rcx, rax
call fcn.14022ee58
mov rcx, rax
test rax, rax
je 0x1400520a9
mov rax, qword [rsp + 0x40]
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x1400520ae
lea rdx, str.18.19041
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140052092
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.140002a7c
mov rax, qword [rsp + 0x40]
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x50], rcx
lea rcx, [rax - 0x18]
call fcn.140002c94
add rax, 0x18
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x28]
call fcn.140015830
nop
lea r9, [rbp - 0x30]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, r12
call fcn.140084ef0
nop
lea rcx, [rbp - 0x30]
call fcn.14004b020
mov byte [rbp + 0x70], 1
lea rcx, [rbp + 0x78]
call fcn.140015830
nop
lea r9, [rbp + 0x70]
xor r8d, r8d
mov edx, 0x1175e
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052167
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052858
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x140052850
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14005216e
lea rdi, vtable.ATL::CWin32Heap.0
call fcn.140011f18
mov rcx, rax
test rax, rax
je 0x140052860
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, r14
jne 0x14005286b
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 0x1400521bd
movzx edx, dx
lea rcx, [rbp - 0x68]
call fcn.140012700
jmp 0x1400521d7
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400521c0
mov r8d, eax
lea rcx, [rbp - 0x68]
call fcn.140002a7c
nop
mov rbx, qword [rbp - 0x68]
mov r9, rbx
mov r8d, dword [0x14036cb90]
mov edx, 0x116b9
mov rcx, qword [r12]
call fcn.14001fd40
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005223b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052872
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140052872
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.140002c94
add rax, 0x18
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x18]
call fcn.140015830
nop
lea r9, [rbp - 0x20]
mov r8d, dword [0x14036cb90]
mov edx, 0x116b8
mov rcx, r12
call fcn.140084ef0
nop
lea rcx, [rbp - 0x20]
call fcn.14004b020
mov byte [rbp + 0x80], 0
lea rcx, [rbp + 0x88]
call fcn.140015830
nop
lea r9, [rbp + 0x80]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177b
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052305
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005287a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x14005287a
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.140015830
nop
lea r9, [rbp + 0x90]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177e
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052384
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052882
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140052882
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.140015830
nop
lea r9, [rbp + 0xa0]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177c
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052403
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005288a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x14005288a
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.140015830
nop
lea r9, [rbp + 0xb0]
mov r8d, dword [0x14036cb90]
mov edx, 0x11780
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052482
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140052892
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140052892
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.140015830
nop
lea r9, [rbp + 0xc0]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177f
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052501
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005289a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x14005289a
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.140015830
nop
lea r9, [rbp + 0xd0]
mov r8d, dword [0x14036cb90]
mov edx, 0x1177d
mov rcx, r12
call fcn.140084e70
nop
mov rdx, qword [rbp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052580
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400528a2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400528a2
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
inc dword [0x14036cb90]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400525e0
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400528b7
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x1400528aa
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x58]
jmp 0x1400525ec
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 0x140052712
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400528bf
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400528bf
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x48]
jmp 0x14005264c
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 0x14005269e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400528ce
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400528ce
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 0x1400526eb
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400528d6
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400528d6
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 0x14005197f
mov rcx, qword [rdx]
mov rax, qword [rcx]
cmp rax, r14
jmp 0x140051c92
mov rbx, qword [rsp + 0x48]
jmp 0x14005264c
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
nop
call r8
jmp 0x1400511a8
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400511db
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x14005128d
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400512bf
call r8
jmp 0x1400514d4
call r8
jmp 0x1400514cd
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400514fd
call r8
jmp 0x1400515a1
call r8
jmp 0x140051678
call r8
jmp 0x1400516eb
call r8
jmp 0x14005175e
call r8
jmp 0x1400517d1
call r8
jmp 0x140051844
call r8
jmp 0x1400518b7
call r8
jmp 0x140051934
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400519d9
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
nop
call r8
jmp 0x140051c23
call r8
jmp 0x140051c1c
call r8
jmp 0x140051c70
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x140051d1f
call r8
jmp 0x14005216e
call r8
jmp 0x140052167
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x140052197
call r8
jmp 0x14005223b
call r8
jmp 0x140052305
call r8
jmp 0x140052384
call r8
jmp 0x140052403
call r8
jmp 0x140052482
call r8
jmp 0x140052501
call r8
jmp 0x140052580
call r8
mov rbx, qword [rsp + 0x58]
jmp 0x1400525ec
call r8
jmp 0x1400525e0
call r8
nop
jmp 0x140052712
call fcn.14022ae2c
nop
call r8
jmp 0x14005269e
call r8
jmp 0x1400526eb
call r8
jmp 0x14005197f