Function at 0x1400501f0
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 [0x14035c8c0]
xor rax, rsp
mov qword [rbp + 0xb20], rax
mov r12, rcx
mov byte [rbp - 0x10], 0
lea rcx, [rbp - 8]
call fcn.1400154a0
nop
lea rax, [0x1402f7e88]
lea rdx, [0x1402ef4b8]
cmp byte [rbp - 0x10], 0
cmovne rdx, rax
mov r15, 0xffffffffffffffff
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050263
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.14001fa50
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 0x1400502e8
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140051872
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051872
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.140011b88
mov rcx, rax
test rax, rax
je 0x14005187a
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140051885
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rdx, [0x1402f2f48]
cmp rdx, 0x10000
jae 0x140050343
movzx edx, dx
lea rcx, [rsp + 0x78]
call fcn.140012370
jmp 0x14005035e
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050346
mov r8d, eax
lea rcx, [rsp + 0x78]
call fcn.140002a7c
nop
lea rcx, [rbp - 0x80]
call fcn.1400154a0
nop
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x80]
call fcn.140002b88
mov edx, 0x2c
lea rcx, [rbp - 0x80]
call fcn.14007bed0
mov r9, qword [rbp - 0x80]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, qword [r12]
call fcn.14001fa50
nop
lea rcx, [rsp + 0x78]
call fcn.14004a160
call fcn.140011b88
mov rcx, rax
test rax, rax
je 0x14005188c
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x140051897
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x70], rax
call fcn.140011b88
mov rcx, rax
test rax, rax
je 0x14005189e
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x1400518a9
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 0x140050427
movzx edx, dx
lea rcx, [rsp + 0x68]
call fcn.140012370
jmp 0x140050448
mov rax, r15
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050430
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 0x14005046b
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x140050a0e
mov rcx, rdi
call fcn.140237210
mov r13, rax
test rax, rax
je 0x140050a0e
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 0x140050a09
lea r9, [rbp]
lea r8, [rbp + 8]
lea rdx, [0x1402f3024]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
mov rcx, r13
test eax, eax
je 0x140050a09
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.140234520
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.14004c870
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.1400154a0
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x58]
call fcn.140002b88
mov edx, 0x2c
lea rcx, [rbp - 0x58]
call fcn.14007bed0
mov r9, qword [rbp - 0x58]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, qword [r12]
call fcn.14001fa50
nop
lea rcx, [rbp - 0x60]
call fcn.14004a160
mov byte [rbp - 0x40], 1
lea rcx, [rbp - 0x38]
call fcn.1400154a0
nop
cmp byte [rbp - 0x40], 0
lea rcx, [0x1402ef4b8]
lea rax, [0x1402f7e88]
cmovne rcx, rax
mov rax, r15
inc rax
cmp word [rcx + rax*2], 0
jne 0x140050584
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.14001fa50
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
lea r14, vtable.ATL::CAtlStringMgr.0
jg 0x14005060d
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518b8
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x1400518b0
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140050614
lea rsi, vtable.ATL::CWin32Heap.0
call fcn.140011b88
mov rcx, rax
test rax, rax
je 0x1400518c0
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, r14
jne 0x1400518cb
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 0x140050663
movzx edx, dx
lea rcx, [rbp - 0x70]
call fcn.140012370
jmp 0x14005067d
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050666
mov r8d, eax
lea rcx, [rbp - 0x70]
call fcn.140002a7c
nop
mov rbx, qword [rbp - 0x70]
mov r9, rbx
mov r8d, dword [0x14036bb90]
mov edx, 0x116b9
mov rcx, qword [r12]
call fcn.14001fa50
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400506e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518d2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518d2
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.1400154a0
nop
mov ebx, dword [0x14036bb90]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x48]
call fcn.140002b88
mov edx, 0x2c
lea rcx, [rbp - 0x48]
call fcn.14007bed0
mov r9, qword [rbp - 0x48]
mov r8d, ebx
mov edx, 0x116b8
mov rcx, qword [r12]
call fcn.14001fa50
nop
lea rcx, [rbp - 0x50]
call fcn.14004a160
mov byte [rbp + 0x10], 0
lea rcx, [rbp + 0x18]
call fcn.1400154a0
nop
lea r9, [rbp + 0x10]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177b
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400507b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518da
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518da
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.1400154a0
nop
lea r9, [rbp + 0x20]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177e
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005082b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518e2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518e2
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.1400154a0
nop
lea r9, [rbp + 0x30]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177c
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005089e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518ea
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518ea
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.1400154a0
nop
lea r9, [rbp + 0x40]
mov r8d, dword [0x14036bb90]
mov edx, 0x11780
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050911
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518f2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518f2
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.1400154a0
nop
lea r9, [rbp + 0x50]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177f
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050984
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400518fa
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x1400518fa
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.1400154a0
nop
lea r9, [rbp + 0x60]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177d
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400509f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051902
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140051902
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
inc dword [0x14036bb90]
lea rdi, vtable.ATL::CWin32Heap.0
jmp 0x1400517de
call fcn.140234520
lea rdx, [rbp + 0xf0]
lea rcx, str.windows_systemappsmicrosoft.microsoftedge_
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
jne 0x140050aef
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140050a74
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x14005190a
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x14005190a
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 0x140050abf
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140051a1e
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
cmp rax, r14
mov r8, qword [rax + 8]
jne 0x140051a1e
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.140229da0
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.140011b88
nop
mov rcx, rax
test rax, rax
je 0x140051912
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, rsi
jne 0x14005191d
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 0x140050b41
movzx edx, dx
lea rcx, [rsp + 0x48]
call fcn.140012370
jmp 0x140050b5c
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050b44
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 0x140050b66
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 0x140051924
movsxd rdx, eax
lea rcx, [rbp + 0x11c]
call fcn.140234330
mov r14, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r13d
jl 0x14005192f
lea edi, [rax + r13]
test edi, edi
js 0x14005193a
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140050bea
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.140002a1c
mov rbx, qword [rsp + 0x48]
cmp rsi, r13
ja 0x140050bf8
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 0x140051867
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 0x140050c30
mov r14, rdi
sub r14, rbx
sar r14, 1
mov esi, dword [rbx - 0x10]
mov dword [rsp + 0x50], esi
test eax, eax
js 0x140051945
movsxd rdx, eax
mov rcx, rdi
call fcn.140234330
mov r13, rax
mov eax, 0x7fffffff
sub eax, r13d
cmp eax, esi
jl 0x140051950
add esi, r13d
js 0x14005195b
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x140050c9a
mov edx, esi
lea rcx, [rsp + 0x48]
call fcn.140002a1c
mov rbx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x50]
cmp r14, rax
ja 0x140050ca7
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 0x14005185c
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 0x140050deb
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
lea rbx, vtable.ATL::CAtlStringMgr.0
jg 0x140050d5c
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x14005196e
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x140051966
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140050d63
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 0x140050db0
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x140051976
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051976
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 0x140050abf
mov rcx, qword [rdx]
mov rax, qword [rcx]
cmp rax, rbx
mov r8, qword [rax + 8]
jne 0x140051a1e
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
cmp rax, rdi
jmp 0x140050aa6
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 0x14005177e
mov eax, dword [rsp + 0x60]
cmp rax, 0x7d2
jae 0x140051a08
mov byte [rbp + rax + 0x340], dil
call fcn.140011b88
mov rcx, rax
test rax, rax
je 0x14005197e
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea r14, vtable.ATL::CAtlStringMgr.0
cmp rax, r14
jne 0x140051989
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 0x140050e8d
lea rax, [rbp + 0x340]
movzx edx, ax
call fcn.140012370
jmp 0x140050e9a
lea rdx, [rbp + 0x340]
call fcn.140015330
nop
mov rbx, qword [rsp + 0x58]
cmp dword [rbx - 0x10], 0
jl 0x140051725
lea rdx, str.Version
mov rcx, rbx
call fcn.14022e1d8
mov rdi, rax
test rax, rax
je 0x140051725
sub rdi, rbx
sar rdi, 1
test edi, edi
js 0x140051725
cmp dword [rbx - 0x10], 0
jle 0x140051725
mov edx, 0x22
mov rcx, rbx
call fcn.14022e688
test rax, rax
je 0x140051725
sub rax, rbx
sar rax, 1
test eax, eax
js 0x140051725
lea r8d, [rdi + 9]
mov r9d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.1400151b0
nop
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax - 0x10]
test ecx, ecx
jle 0x1400516c6
js 0x140050f6f
lea rdx, str.20.10240
mov rcx, rax
call fcn.14022e1d8
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.12.10240
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050f60
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.25.10586
mov rcx, rax
call fcn.14022e1d8
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.13.10586
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050fb0
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.38.14393
mov rcx, rax
call fcn.14022e1d8
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.14.14393
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051000
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.40.15063
mov rcx, rax
call fcn.14022e1d8
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.15.15063
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051050
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.41.16299
mov rcx, rax
call fcn.14022e1d8
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.16.16299
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400510a0
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.42.17134
mov rcx, rax
call fcn.14022e1d8
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.17.17134
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400510f0
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.44.17763
mov rcx, rax
call fcn.14022e1d8
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005114f
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005114f
lea rdx, str.18.17763
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051140
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.44.18362
mov rcx, rax
call fcn.14022e1d8
mov rcx, rax
test rax, rax
mov rax, qword [rsp + 0x40]
je 0x14005119c
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x14005119c
lea rdx, str.18.18363
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051190
jmp 0x1400511dc
cmp dword [rax - 0x10], 0
jl 0x1400511ee
lea rdx, str.44.19041
mov rcx, rax
call fcn.14022e1d8
mov rcx, rax
test rax, rax
je 0x1400511e9
mov rax, qword [rsp + 0x40]
sub rcx, rax
sar rcx, 1
test ecx, ecx
js 0x1400511ee
lea rdx, str.18.19041
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400511d2
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.1400154a0
nop
lea r9, [rbp - 0x30]
xor r8d, r8d
mov edx, 0x1175f
mov rcx, r12
call fcn.140086060
nop
lea rcx, [rbp - 0x30]
call fcn.14004a160
mov byte [rbp + 0x70], 1
lea rcx, [rbp + 0x78]
call fcn.1400154a0
nop
lea r9, [rbp + 0x70]
xor r8d, r8d
mov edx, 0x1175e
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400512a7
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051998
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x140051990
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400512ae
lea rdi, vtable.ATL::CWin32Heap.0
call fcn.140011b88
mov rcx, rax
test rax, rax
je 0x1400519a0
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
cmp rax, r14
jne 0x1400519ab
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 0x1400512fd
movzx edx, dx
lea rcx, [rbp - 0x68]
call fcn.140012370
jmp 0x140051317
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140051300
mov r8d, eax
lea rcx, [rbp - 0x68]
call fcn.140002a7c
nop
mov rbx, qword [rbp - 0x68]
mov r9, rbx
mov r8d, dword [0x14036bb90]
mov edx, 0x116b9
mov rcx, qword [r12]
call fcn.14001fa50
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005137b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519b2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519b2
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.1400154a0
nop
lea r9, [rbp - 0x20]
mov r8d, dword [0x14036bb90]
mov edx, 0x116b8
mov rcx, r12
call fcn.140086060
nop
lea rcx, [rbp - 0x20]
call fcn.14004a160
mov byte [rbp + 0x80], 0
lea rcx, [rbp + 0x88]
call fcn.1400154a0
nop
lea r9, [rbp + 0x80]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177b
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051445
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519ba
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519ba
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.1400154a0
nop
lea r9, [rbp + 0x90]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177e
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400514c4
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519c2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519c2
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.1400154a0
nop
lea r9, [rbp + 0xa0]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177c
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051543
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519ca
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519ca
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.1400154a0
nop
lea r9, [rbp + 0xb0]
mov r8d, dword [0x14036bb90]
mov edx, 0x11780
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400515c2
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519d2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519d2
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.1400154a0
nop
lea r9, [rbp + 0xc0]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177f
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051641
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519da
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519da
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.1400154a0
nop
lea r9, [rbp + 0xd0]
mov r8d, dword [0x14036bb90]
mov edx, 0x1177d
mov rcx, r12
call fcn.140085fe0
nop
mov rdx, qword [rbp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400516c0
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519e2
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519e2
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
inc dword [0x14036bb90]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140051720
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519f7
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rdi, vtable.ATL::CWin32Heap.0
cmp rax, rdi
jne 0x1400519ea
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x58]
jmp 0x14005172c
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 0x140051852
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400519ff
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x1400519ff
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x48]
jmp 0x14005178c
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 0x1400517de
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051a0e
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051a0e
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 0x14005182b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140051a16
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rdi
jne 0x140051a16
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 0x140050abf
mov rcx, qword [rdx]
mov rax, qword [rcx]
cmp rax, r14
jmp 0x140050dd2
mov rbx, qword [rsp + 0x48]
jmp 0x14005178c
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
nop
call r8
jmp 0x1400502e8
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x14005031b
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400503cd
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400503ff
call r8
jmp 0x140050614
call r8
jmp 0x14005060d
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x14005063d
call r8
jmp 0x1400506e1
call r8
jmp 0x1400507b8
call r8
jmp 0x14005082b
call r8
jmp 0x14005089e
call r8
jmp 0x140050911
call r8
jmp 0x140050984
call r8
jmp 0x1400509f7
call r8
jmp 0x140050a74
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x140050b19
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 0x140050d63
call r8
jmp 0x140050d5c
call r8
jmp 0x140050db0
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x140050e5f
call r8
jmp 0x1400512ae
call r8
jmp 0x1400512a7
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x1400512d7
call r8
jmp 0x14005137b
call r8
jmp 0x140051445
call r8
jmp 0x1400514c4
call r8
jmp 0x140051543
call r8
jmp 0x1400515c2
call r8
jmp 0x140051641
call r8
jmp 0x1400516c0
call r8
mov rbx, qword [rsp + 0x58]
jmp 0x14005172c
call r8
jmp 0x140051720
call r8
nop
jmp 0x140051852
call fcn.14022a1ac
nop
call r8
jmp 0x1400517de
call r8
jmp 0x14005182b
call r8
jmp 0x140050abf