Function at 0x14002e720
Capabilities:
Check if file exists
Get file attributes
Get keyboard layout
Set current directory

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
movzx r8d, word [0x1401255b4]
xor r13d, r13d
mov r15d, SafeArrayAllocDescriptor
mov rbp, rdx
mov r14, rcx
mov dword [rax + 0x10], 0x90020
mov word [rax + 0x14], r8w
lea esi, [r15 - 0x17]
mov word [rax + 0x16], r13w
mov rdi, rdx
test rdx, rdx
je 0x14002e7b3
movzx edx, word [rdx]
test dx, dx
je 0x14002e7b3
nop word [rax + rax]
lea rcx, [rsp + 0xf8]
mov eax, r15d
nop dword [rax + rax]
cmp dx, ax
je 0x14002e843
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14002e790
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x14002e780
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbp
repne scasw ax, word [rdi]
not rcx
lea rdi, [rbp + rcx*2 - 2]
mov rbx, r13
sub rdi, rbp
lea rdx, str.Include
or r9, 0xffffffffffffffff
sar rdi, 1
mov rcx, rbp
xor r12b, r12b
mov r8, rdi
call fcn.1400b93f0
test eax, eax
je 0x14002f7be
lea rdx, str.IncludeAgain
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
sete r12b
test r12b, r12b
jne 0x14002f7be
lea rdx, str.NoEnv
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002e890
mov edx, 1
mov dword [0x14012ac4c], edx
lea eax, [rdx + 2]
jmp 0x14002f953
mov rbx, rdi
movzx eax, word [rbx]
cmp ax, r15w
je 0x14002e854
cmp ax, si
jne 0x14002e85a
add rbx, 2
jmp 0x14002e846
movzx eax, word [rbx]
test ax, ax
je 0x14002e7c7
cmp ax, r8w
jne 0x14002e7ca
movzx eax, word [rbx + 2]
add rbx, 2
cmp ax, r15w
je 0x14002e870
cmp ax, si
je 0x14002e870
cmp ax, r13w
cmove rbx, r13
jmp 0x14002e7ca
lea rdx, str.NoTrayIcon
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002e8bb
mov byte [0x14012ac07], 1
mov eax, 3
jmp 0x14002f953
lea rdx, str.Persistent
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002e8e6
mov byte [0x14012ac06], 1
mov eax, 3
jmp 0x14002f953
lea rdx, str.SingleInstance
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002e990
mov edx, 1
mov dword [0x14012ac38], edx
test rbx, rbx
je 0x14002e986
lea rdx, str.Force
mov rcx, rbx
call fcn.1400d6a7c
test eax, eax
jne 0x14002e93a
mov esi, 2
mov dword [0x14012ac38], esi
lea eax, [rsi + 1]
jmp 0x14002f953
lea rdx, str.Ignore
mov rcx, rbx
call fcn.1400d6a7c
test eax, eax
jne 0x14002e961
mov dword [0x14012ac38], 3
mov eax, 3
jmp 0x14002f953
lea rdx, [0x1400f5670]
mov rcx, rbx
call fcn.1400d6a7c
mov ecx, dword [0x14012ac38]
mov edx, 4
test eax, eax
cmove ecx, edx
mov dword [0x14012ac38], ecx
mov eax, 3
jmp 0x14002f953
lea rdx, str.InstallKeybdHook
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002e9bb
or byte [0x14012b698], 1
mov eax, 3
jmp 0x14002f953
lea rdx, str.InstallMouseHook
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002e9e6
or byte [0x14012b698], 2
mov eax, 3
jmp 0x14002f953
lea rdx, str.UseHook
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ea2c
test rbx, rbx
je 0x14002ea1b
xor edx, edx
mov rcx, rbx
call fcn.140014c40
mov byte [0x14012b624], r13b
cmp eax, 2
je 0x14002ea22
mov byte [0x14012b624], 1
mov eax, 3
jmp 0x14002f953
lea rdx, [0x1400f3828]
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002eb15
test rbx, rbx
jne 0x14002ea60
mov qword [0x14012ac68], r13
mov eax, 3
jmp 0x14002f953
mov rcx, rbx
call fcn.140015310
mov qword [0x14012ac68], rax
test rax, rax
jne 0x14002f928
mov rax, qword [0x1401255c8]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov rsi, qword [rax + 0xd8]
mov qword [rax + 0xd8], r13
lea rdi, [0x1400f1524]
xor r9d, r9d
mov r8b, 0xe3
mov rdx, rbx
mov rcx, r14
mov qword [rsp + 0x28], r13
mov byte [r14 + 0x7d], 1
mov qword [rsp + 0x20], rdi
call fcn.140030120
test eax, eax
je 0x14002f8fa
mov rax, qword [0x1401255c8]
mov byte [r14 + 0x7d], r13b
mov qword [rax + 0xd8], rsi
mov rbx, qword [r14 + 8]
call fcn.140015260
mov r11, rax
mov qword [0x14012ac68], rax
test rax, rax
je 0x14002f8fa
mov byte [rax], 5
mov qword [rax + 0x18], rbx
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
mov qword [r11 + 0x10], rdi
mov eax, 3
mov qword [r11 + 8], rcx
jmp 0x14002f953
lea rdx, str.IfTimeout
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002eb4c
test rbx, rbx
je 0x14002eb42
mov rcx, rbx
call fcn.140005830
mov dword [0x1401255b0], eax
mov eax, 3
jmp 0x14002f953
mov r12d, 6
lea rdx, str.IfWin
mov rcx, rbp
mov r8d, r12d
call fcn.1400d7250
test eax, eax
jne 0x14002ed06
lea rcx, [rbp + 0xc]
lea r8d, [r12 - 3]
lea rdx, [0x1400f5820]
call fcn.1400d7250
lea rdx, str.Active
mov r8d, r12d
test eax, eax
mov eax, r12d
sete dil
test dil, dil
cmovne rax, rsi
lea rsi, [rbp + rax*2]
mov rcx, rsi
call fcn.1400d7250
test eax, eax
jne 0x14002ebb8
test dil, dil
setne r12b
inc r12b
jmp 0x14002ebe0
lea rdx, str.Exist
mov r8d, 5
mov rcx, rsi
call fcn.1400d7250
test eax, eax
jne 0x14002ecfc
test dil, dil
setne r12b
add r12b, 3
test rbx, rbx
je 0x14002ea4f
movzx edx, word [0x1401255b4]
movzx r8d, word [0x1401255bc]
movzx edi, word [0x1401255b8]
mov r9, r13
mov rcx, rbx
movzx eax, word [rcx]
test ax, ax
je 0x14002ec2d
nop dword [rax]
cmp ax, r8w
je 0x14002ec56
cmp ax, dx
je 0x14002ec56
cmp ax, di
je 0x14002ec56
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14002ec10
lea rdi, [0x1400f1524]
test r9, r9
je 0x14002ecc1
lea rsi, [r9 + 2]
movzx eax, word [rsi]
cmp ax, r15w
je 0x14002ec50
cmp ax, 9
jne 0x14002eca0
add rsi, 2
jmp 0x14002ec41
movzx eax, word [rcx]
test ax, ax
je 0x14002ec2d
cmp ax, di
je 0x14002ec89
cmp ax, dx
jne 0x14002ec76
test r9, r9
jne 0x14002ec89
mov r9, rcx
add rcx, 2
jmp 0x14002ec05
add rcx, 2
cmp word [rcx], r13w
je 0x14002ec2d
add rcx, 2
jmp 0x14002ec05
lea rdx, str.Literal_commas_and_percent_signs_must_be_escaped__e.g.____
mov r8, rbp
mov rcx, r14
call fcn.14004e590
jmp 0x14002f953
mov word [r9], r13w
sub r9, rbx
mov rcx, rbx
sar r9, 1
mov rdx, r9
call fcn.140024290
mov dl, 1
mov rcx, rsi
call fcn.1400bbbc0
jmp 0x14002ecc4
mov rsi, rdi
mov dl, 1
mov rcx, rbx
call fcn.1400bbbc0
mov r8, rsi
mov rdx, rbx
movzx ecx, r12b
call fcn.140015090
test eax, eax
jne 0x14002f928
lea rdx, str.Out_of_memory.
mov r8, rdi
mov rcx, r14
call fcn.14004e590
jmp 0x14002f953
mov eax, 4
jmp 0x14002f953
lea rdx, [0x1400f9278]
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ee4c
test rbx, rbx
je 0x14002ee42
lea rdx, str.EndChars
mov rcx, rbx
call fcn.1400b9750
test rax, rax
je 0x14002ed8f
lea rdx, [0x1400f9290]
mov rcx, rax
call fcn.140007390
test rax, rax
je 0x14002f928
lea rdx, [rax + 2]
lea rcx, str._____:____.___n__t
mov r8d, WSAAsyncSelect
call fcn.1400da5b4
lea rcx, str._____:____.___n__t
xor edx, edx
mov word [0x140125698], r13w
call fcn.1400bbbc0
mov eax, 3
jmp 0x14002f953
lea rdx, str.NoMouse
mov r8d, 7
mov rcx, rbx
call fcn.1400d7250
test eax, eax
jne 0x14002edb9
mov byte [0x1401255b7], r13b
mov eax, 3
jmp 0x14002f953
lea rax, [0x14012b622]
lea r9, [0x1401255c0]
lea r8, [0x14012b57c]
mov qword [rsp + 0x60], rax
lea rax, [0x14012b621]
lea rdx, [0x14012b578]
mov qword [rsp + 0x58], rax
lea rax, [0x14012b620]
mov rcx, rbx
mov qword [rsp + 0x50], rax
lea rax, [0x1401255b6]
mov qword [rsp + 0x48], rax
lea rax, [0x14012ac61]
mov qword [rsp + 0x40], rax
lea rax, [0x14012ac63]
mov qword [rsp + 0x38], rax
lea rax, [0x14012558b]
mov qword [rsp + 0x30], rax
lea rax, [0x14012558a]
mov qword [rsp + 0x28], rax
lea rax, [0x14012ac62]
mov qword [rsp + 0x20], rax
call fcn.14001b130
mov eax, 3
jmp 0x14002f953
lea rdx, str.HotkeyModifierTimeout
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ee83
test rbx, rbx
je 0x14002ee79
mov rcx, rbx
call fcn.14001ce60
mov dword [0x14012558c], eax
mov eax, 3
jmp 0x14002f953
lea rdx, str.HotkeyInterval
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002eec7
test rbx, rbx
je 0x14002eebd
mov rcx, rbx
call fcn.14001ce60
mov r8d, 0xa
cmp eax, r8d
cmovl eax, r8d
mov dword [0x1401255ac], eax
mov eax, 3
jmp 0x14002f953
lea rdx, str.MaxHotkeysPerInterval
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ef08
test rbx, rbx
je 0x14002eefe
mov rcx, rbx
call fcn.14001ce60
mov edx, 1
cmp eax, edx
cmovl eax, edx
mov dword [0x1401255a8], eax
mov eax, 3
jmp 0x14002f953
lea rdx, str.MaxThreadsPerHotkey
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ef54
test rbx, rbx
je 0x14002ef4a
mov rcx, rbx
call fcn.14001ce60
mov ecx, 0xff
cmp eax, ecx
jg 0x14002ef44
mov edx, 1
mov ecx, eax
cmp eax, edx
cmovl ecx, edx
mov byte [0x140124b23], cl
mov eax, 3
jmp 0x14002f953
lea rdx, str.MaxThreadsBuffer
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ef9a
test rbx, rbx
je 0x14002ef89
xor edx, edx
mov rcx, rbx
call fcn.140014c40
mov byte [0x14012ac43], r13b
cmp eax, 2
je 0x14002ef90
mov byte [0x14012ac43], 1
mov eax, 3
jmp 0x14002f953
lea rdx, str.MaxThreads
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002efe6
test rbx, rbx
je 0x14002efdc
mov rcx, rbx
call fcn.14001ce60
mov ecx, 0xff
cmp eax, ecx
jg 0x14002efd6
mov edx, 1
mov ecx, eax
cmp eax, edx
cmovl ecx, edx
mov dword [reloc.WSOCK32.dll_inet_addr], ecx
mov eax, 3
jmp 0x14002f953
lea rdx, str.ClipboardTimeout
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f01d
test rbx, rbx
je 0x14002f013
mov rcx, rbx
call fcn.14001ce60
mov dword [0x140125590], eax
mov eax, 3
jmp 0x14002f953
lea rdx, str.LTrim
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f063
test rbx, rbx
je 0x14002f052
xor edx, edx
mov rcx, rbx
call fcn.140014c40
mov byte [0x14012b623], r13b
cmp eax, 2
je 0x14002f059
mov byte [0x14012b623], 1
mov eax, 3
jmp 0x14002f953
lea rdx, str.WinActivateForce
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f08e
mov byte [0x14012ac05], 1
mov eax, 3
jmp 0x14002f953
lea rdx, str.ErrorStdOut
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f0c9
mov rcx, rbx
mov byte [r14 + 0xbb7], 1
call fcn.140028160
mov dword [r14 + 0xbb8], eax
mov eax, 3
jmp 0x14002f953
lea rdx, str.MaxMem
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f168
test rbx, rbx
je 0x14002f15e
mov rcx, rbx
call fcn.140024390
movapd xmm5, xmm0
movsd xmm0, qword [0x140112818]
comisd xmm5, xmm0
ja 0x14002f114
movsd xmm0, qword [0x140112010]
comisd xmm0, xmm5
jbe 0x14002f118
movapd xmm5, xmm0
mulsd xmm5, qword [0x140111ff0]
movsd xmm0, qword [0x140112048]
xor ecx, ecx
mulsd xmm5, qword [0x140111ff0]
comisd xmm5, xmm0
jbe 0x14002f14f
subsd xmm5, xmm0
comisd xmm5, xmm0
jae 0x14002f14f
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm5
add rax, rcx
mov qword [0x1401255a0], rax
mov eax, 3
jmp 0x14002f953
lea rdx, str.KeyHistory
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f1be
test rbx, rbx
je 0x14002f1b4
mov rcx, rbx
call fcn.14001ce60
test eax, eax
jns 0x14002f1a4
mov dword [0x140125598], r13d
mov eax, 3
jmp 0x14002f953
mov ecx, 0x1f4
cmp eax, ecx
cmovg eax, ecx
mov dword [0x140125598], eax
mov eax, 3
jmp 0x14002f953
lea rdx, str.CommentFlag
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f2b8
test rbx, rbx
je 0x14002f2ae
cmp word [rbx + 2], r13w
jne 0x14002f274
movzx eax, word [rbx]
cmp ax, 0x23
je 0x14002f59f
cmp ax, word [0x1401255b8]
je 0x14002f59f
cmp ax, word [0x1401255bc]
je 0x14002f59f
cmp ax, word [0x1401255b4]
je 0x14002f59f
cmp ax, 0x21
je 0x14002f59f
cmp ax, 0x5e
je 0x14002f59f
cmp ax, 0x2b
je 0x14002f59f
cmp ax, 0x24
je 0x14002f59f
cmp ax, 0x7e
je 0x14002f59f
cmp ax, 0x2a
je 0x14002f59f
cmp ax, 0x3c
je 0x14002f59f
cmp ax, 0x3e
je 0x14002f59f
lea rcx, [0x140124b28]
mov r8d, reloc.OLEAUT32.dll_SafeArrayDestroy
mov rdx, rbx
call fcn.1400da5b4
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [0x140124b28]
mov word [0x140124b46], r13w
repne scasw ax, word [rdi]
not rcx
dec rcx
mov qword [0x140124b48], rcx
mov eax, 3
jmp 0x14002f953
lea rdx, str.EscapeChar
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f334
test rbx, rbx
je 0x14002f928
movzx eax, word [rbx]
cmp ax, 0x23
je 0x14002f59f
cmp ax, word [0x1401255b8]
je 0x14002f59f
cmp ax, word [0x1401255b4]
je 0x14002f59f
cmp ax, 0x2e
je 0x14002f59f
cmp qword [0x140124b48], 1
jne 0x14002f323
cmp ax, word [0x140124b28]
je 0x14002f59f
mov word [0x1401255bc], ax
mov eax, 3
jmp 0x14002f953
lea rdx, str.DerefChar
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f3a6
test rbx, rbx
je 0x14002f928
movzx eax, word [rbx]
cmp ax, word [0x1401255bc]
je 0x14002f59f
cmp ax, word [0x1401255b4]
je 0x14002f59f
cmp ax, 0x2e
je 0x14002f59f
cmp qword [0x140124b48], 1
jne 0x14002f395
cmp ax, word [0x140124b28]
je 0x14002f59f
mov word [0x1401255b8], ax
mov eax, 3
jmp 0x14002f953
lea rdx, [0x1400f9470]
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f422
test rbx, rbx
je 0x14002f928
movzx eax, word [rbx]
cmp ax, 0x23
je 0x14002f59f
cmp ax, word [0x1401255bc]
je 0x14002f59f
cmp ax, word [0x1401255b8]
je 0x14002f59f
cmp ax, 0x2e
je 0x14002f59f
cmp qword [0x140124b48], 1
jne 0x14002f411
cmp ax, word [0x140124b28]
je 0x14002f59f
mov word [0x1401255b4], ax
mov eax, 3
jmp 0x14002f953
lea rdx, str.MenuMaskKey
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f497
test rbx, rbx
je 0x14002f46f
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
lea r8, [0x140125588]
lea rdx, [0x140124b21]
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140023200
test al, al
jne 0x14002f928
lea rdx, str.Parameter_1_invalid.
test rbx, rbx
lea rax, str.Parameter_1_required
cmovne rax, rdx
mov r8, rbp
mov rcx, r14
mov rdx, rax
call fcn.14004e590
jmp 0x14002f953
lea rdx, str.InputLevel
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f4e3
test rbx, rbx
je 0x14002f4d2
mov rcx, rbx
call fcn.14001ce60
mov r13d, eax
test eax, eax
js 0x14002f59f
cmp eax, 0x64
jg 0x14002f59f
mov byte [0x14012ac60], r13b
mov eax, 3
jmp 0x14002f953
lea rdx, str.Warn
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002f678
movzx edx, word [0x1401255b4]
lea rdi, [0x1400f1524]
test rbx, rbx
mov rsi, rdi
cmovne rsi, rbx
mov rcx, rsi
call fcn.1400d7d64
test rax, rax
je 0x14002f56d
lea rdi, [rax + 2]
nop word [rax + rax]
movzx ecx, word [rdi]
cmp cx, r15w
je 0x14002f53f
cmp cx, 9
jne 0x14002f545
add rdi, 2
jmp 0x14002f530
add rax, 0xfffffffffffffffe
cmp rax, rsi
jbe 0x14002f568
nop
movzx ecx, word [rax]
cmp cx, r15w
je 0x14002f55f
cmp cx, 9
jne 0x14002f568
sub rax, 2
cmp rax, rsi
ja 0x14002f550
mov word [rax + 2], r13w
cmp word [rsi], r13w
je 0x14002f5b6
mov r12d, r13d
lea rbx, str.UseUnsetLocal
lea r15, [0x1400f9508]
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.1400d6a7c
test eax, eax
je 0x14002f5b6
add rbx, 8
inc r12d
cmp rbx, r15
jne 0x14002f584
lea rdx, str.Parameter_1_invalid.
mov r8, rbp
mov rcx, r14
call fcn.14004e590
jmp 0x14002f953
mov esi, 2
cmp word [rdi], r13w
je 0x14002f603
mov esi, r13d
lea rbx, [0x1400f9508]
lea rbp, str.Requires
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.1400d6a7c
test eax, eax
je 0x14002f603
add rbx, 8
inc esi
cmp rbx, rbp
jne 0x14002f5d2
lea rdx, str.Parameter_2_invalid.
mov r8, rdi
mov rcx, r14
call fcn.14004e590
jmp 0x14002f953
test r12d, r12d
je 0x14002f60e
cmp r12d, 6
jne 0x14002f614
mov dword [0x14012ac20], esi
cmp r12d, 1
je 0x14002f620
cmp r12d, 6
jne 0x14002f626
mov dword [0x14012ac24], esi
cmp r12d, 3
je 0x14002f632
cmp r12d, 6
jne 0x14002f638
mov dword [0x14012ac28], esi
cmp r12d, 2
je 0x14002f644
cmp r12d, 6
jne 0x14002f64a
mov dword [0x14012ac2c], esi
cmp r12d, 4
je 0x14002f656
cmp r12d, 6
jne 0x14002f65c
mov dword [0x14012ac30], esi
cmp r12d, 5
je 0x14002f668
cmp r12d, 6
jne 0x14002f66e
mov dword [0x14012ac34], esi
mov eax, 3
jmp 0x14002f953
lea rdx, str.Requires
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b93f0
test eax, eax
jne 0x14002ecfc
test rbx, rbx
jne 0x14002f6b6
lea r8, [0x1400f1524]
lea rdx, str.Parameter_1_required
mov rcx, r14
call fcn.14004e590
jmp 0x14002f953
lea rdx, [0x1400f16f0]
mov r8d, 0xa
mov rcx, rbx
call fcn.1400d7250
test eax, eax
jne 0x14002f7ae
movzx eax, word [rbx + 0x14]
test ax, ax
je 0x14002f928
cmp ax, r15w
je 0x14002f6ef
cmp ax, si
jne 0x14002f7ae
lea rsi, [rbx + 0x16]
mov rdx, rsi
movzx eax, word [rdx]
cmp ax, r15w
je 0x14002f705
cmp ax, 9
jne 0x14002f70b
add rdx, 2
jmp 0x14002f6f6
movzx eax, word [rdx]
test ax, ax
je 0x14002f928
mov rsi, rdx
nop word [rax + rax]
cmp ax, r15w
je 0x14002f739
cmp ax, 9
je 0x14002f739
movzx eax, word [rsi + 2]
add rsi, 2
test ax, ax
jne 0x14002f720
mov rdi, rsi
lea rcx, [rsp + 0x70]
sub rdi, rdx
sar rdi, 1
inc rdi
cmp rdi, r15
cmova rdi, r15
lea r8, [rdi - 1]
call fcn.1400da5b4
lea rdx, str.Unicode
lea rcx, [rsp + 0x70]
mov word [rsp + rdi*2 + 0x6e], r13w
call fcn.1400d6a7c
test eax, eax
je 0x14002f6f3
lea rdx, str.64_bit
lea rcx, [rsp + 0x70]
call fcn.1400d6a7c
test eax, eax
je 0x14002f6f3
lea rdx, [rsp + 0x70]
lea rcx, [0x1400f9560]
xor r8d, r8d
call fcn.1400bc390
test eax, eax
jne 0x14002f6f3
mov rdx, rbx
mov rcx, r14
call fcn.14002f970
jmp 0x14002f953
test rbx, rbx
jne 0x14002f7da
lea rdx, str.Parameter_1_required
mov r8, rbp
mov rcx, r14
call fcn.14004e590
jmp 0x14002f953
cmp word [rbx], 0x2a
jne 0x14002f820
movzx edi, word [rbx + 2]
test edi, 0xffffff80
jne 0x14002f801
mov esi, 2
mov ecx, edi
mov edx, esi
call fcn.1400d79f4
test eax, eax
je 0x14002f801
and edi, 0xffffffdf
cmp di, 0x49
jne 0x14002f820
movzx eax, word [rbx + 4]
cmp ax, r15w
je 0x14002f817
cmp ax, 9
jne 0x14002f820
mov sil, 1
add rbx, 6
jmp 0x14002f823
xor sil, sil
cmp word [rbx], 0x3c
jne 0x14002f8e6
mov r15d, 0x3e
mov rcx, rbx
mov edx, r15d
call fcn.1400d7d64
mov rdi, rax
test rax, rax
je 0x14002f8e6
cmp word [rax + 2], r13w
jne 0x14002f8e6
add rbx, 2
mov word [rax], r13w
call fcn.140071040
mov r12, rax
lea rax, [rsp + 0x100]
mov r8, rdi
sub r8, rbx
lea r9, [rsp + 0xf8]
mov rdx, rbx
mov rcx, r14
sar r8, 1
mov byte [rsp + 0x28], r13b
mov qword [rsp + 0x20], rax
call fcn.140039d50
test r12, r12
je 0x14002f8a9
mov rcx, r12
call qword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryW]
mov rcx, r12
call fcn.1400d6fc8
movzx eax, byte [rsp + 0xf8]
test al, al
jne 0x14002f8c4
cmp byte [rsp + 0x100], r13b
jne 0x14002f928
test sil, sil
jne 0x14002f928
mov word [rdi], r15w
test al, al
jne 0x14002f8e1
lea rdx, str.Function_library_not_found.
mov r8, rbp
mov rcx, r14
call fcn.14004e590
mov r13d, eax
mov eax, r13d
jmp 0x14002f953
lea rcx, [rsp + 0xf8]
mov rdx, rbx
call fcn.14004c090
test eax, eax
jne 0x14002f8fe
xor eax, eax
jmp 0x14002f953
mov rbx, qword [rsp + 0xf8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002f92f
test al, 0x10
je 0x14002f92f
mov rcx, rbx
call fcn.140070c90
mov rcx, rbx
call fcn.1400d6fc8
mov eax, 3
jmp 0x14002f953
movzx r9d, sil
movzx r8d, r12b
mov rdx, rbx
mov rcx, r14
call fcn.14002b290
mov rcx, rbx
neg eax
sbb edi, edi
and edi, 3
call fcn.1400d6fc8
mov eax, edi
mov rbx, qword [rsp + 0xf0]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret