Function at 0x14002e250
Capabilities:
Check if file exists
Get file attributes
Get graphical window text

Disassembly:
push rbp
push rsi
sub rsp, 0x248
mov rax, qword [0x1400db800]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rsi, rcx
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbp, rax
cmp qword [rax + 0x40], 0
je 0x14002e28b
xor eax, eax
jmp 0x14002e4fa
mov qword [rsp + 0x268], rbx
mov edx, 0x3ea
mov qword [rsp + 0x270], rdi
mov rcx, rsi
mov qword [rsp + 0x240], r14
call qword [sym.imp.USER32.dll_GetDlgItem]
xor r14d, r14d
test rax, rax
je 0x14002e4c7
lea rdi, [rbp + 0x74]
mov ebx, 0x104
mov r8d, ebx
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowTextW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14002d0a0
mov ecx, eax
test eax, eax
jne 0x14002e41b
mov rcx, rdi
test rdi, rdi
je 0x14002e37b
cmp word [rdi], r14w
je 0x14002e37b
cmp word [str.Warcraft_III.exe], r14w
je 0x14002e368
lea rax, [rsp + 0x20]
mov r8, rdi
sub r8, rax
lea rcx, [rsp + 0x20]
mov edx, ebx
nop dword [rax]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14002e343
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14002e343
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14002e320
test rdx, rdx
lea rax, [rcx - 2]
lea rdx, str.Warcraft_III.exe
cmovne rax, rcx
lea rcx, [rsp + 0x20]
mov word [rax], r14w
call fcn.140093580
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002e37b
test al, 0x10
je 0x14002e452
mov rcx, rdi
test rdi, rdi
je 0x14002e410
cmp word [rdi], r14w
je 0x14002e410
cmp word [str.Frozen_Throne.exe], r14w
je 0x14002e3f8
lea rax, [rsp + 0x20]
mov r8, rdi
sub r8, rax
lea rcx, [rsp + 0x20]
mov rdx, rbx
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14002e3d3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14002e3d3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14002e3b0
test rdx, rdx
lea rax, [rcx - 2]
lea rdx, str.Frozen_Throne.exe
cmovne rax, rcx
lea rcx, [rsp + 0x20]
mov word [rax], r14w
call fcn.140093580
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002e410
and al, 0x10
neg al
sbb eax, eax
and eax, 0x10b
jmp 0x14002e415
mov eax, 2
mov ecx, eax
test eax, eax
je 0x14002e452
cmp ecx, 0x10b
mov r9, rdi
mov rcx, rsi
mov edx, 1
je 0x14002e440
mov r8d, 0x455
call fcn.140091bf0
xor eax, eax
jmp 0x14002e4e2
mov r8d, 0xcb
call fcn.140091bf0
xor eax, eax
jmp 0x14002e4e2
mov edx, 0x492
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetDlgItem]
test rax, rax
je 0x14002e4c7
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf0
mov rcx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 1
jne 0x14002e4c7
lea rcx, [0x1400e29c0]
mov rdx, rbp
sub rdx, rcx
nop dword [rax + rax]
lea rax, [rbx + 0x7ffffefa]
test rax, rax
je 0x14002e4b3
movzx eax, word [rdx + rcx + 0x74]
test ax, ax
je 0x14002e4b3
mov word [rcx], ax
add rcx, 2
sub rbx, 1
jne 0x14002e490
test rbx, rbx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], r14w
call fcn.1400015d0
mov rdx, qword [rbp + 0x20]
test rdx, rdx
je 0x14002e4d9
mov rcx, rsi
call qword [sym.imp.USER32.dll_KillTimer]
mov qword [rbp + 0x20], r14
mov eax, 1
mov rdi, qword [rsp + 0x270]
mov rbx, qword [rsp + 0x268]
mov r14, qword [rsp + 0x240]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.140094850
add rsp, 0x248
pop rsi
pop rbp
ret