Function at 0x14002e750
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 0x14002e7e3
movzx edx, word [rdx]
test dx, dx
je 0x14002e7e3
nop word [rax + rax]
lea rcx, [rsp + 0xf8]
mov eax, r15d
nop dword [rax + rax]
cmp dx, ax
je 0x14002e873
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14002e7c0
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x14002e7b0
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.1400b9400
test eax, eax
je 0x14002f7ee
lea rdx, str.IncludeAgain
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
sete r12b
test r12b, r12b
jne 0x14002f7ee
lea rdx, str.NoEnv
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002e8c0
mov edx, 1
mov dword [0x14012ac4c], edx
lea eax, [rdx + 2]
jmp 0x14002f983
mov rbx, rdi
movzx eax, word [rbx]
cmp ax, r15w
je 0x14002e884
cmp ax, si
jne 0x14002e88a
add rbx, 2
jmp 0x14002e876
movzx eax, word [rbx]
test ax, ax
je 0x14002e7f7
cmp ax, r8w
jne 0x14002e7fa
movzx eax, word [rbx + 2]
add rbx, 2
cmp ax, r15w
je 0x14002e8a0
cmp ax, si
je 0x14002e8a0
cmp ax, r13w
cmove rbx, r13
jmp 0x14002e7fa
lea rdx, str.NoTrayIcon
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002e8eb
mov byte [0x14012ac07], 1
mov eax, 3
jmp 0x14002f983
lea rdx, str.Persistent
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002e916
mov byte [0x14012ac06], 1
mov eax, 3
jmp 0x14002f983
lea rdx, str.SingleInstance
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002e9c0
mov edx, 1
mov dword [0x14012ac38], edx
test rbx, rbx
je 0x14002e9b6
lea rdx, str.Force
mov rcx, rbx
call fcn.1400d6a8c
test eax, eax
jne 0x14002e96a
mov esi, 2
mov dword [0x14012ac38], esi
lea eax, [rsi + 1]
jmp 0x14002f983
lea rdx, str.Ignore
mov rcx, rbx
call fcn.1400d6a8c
test eax, eax
jne 0x14002e991
mov dword [0x14012ac38], 3
mov eax, 3
jmp 0x14002f983
lea rdx, [0x1400f5660]
mov rcx, rbx
call fcn.1400d6a8c
mov ecx, dword [0x14012ac38]
mov edx, 4
test eax, eax
cmove ecx, edx
mov dword [0x14012ac38], ecx
mov eax, 3
jmp 0x14002f983
lea rdx, str.InstallKeybdHook
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002e9eb
or byte [0x14012b698], 1
mov eax, 3
jmp 0x14002f983
lea rdx, str.InstallMouseHook
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002ea16
or byte [0x14012b698], 2
mov eax, 3
jmp 0x14002f983
lea rdx, str.UseHook
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002ea5c
test rbx, rbx
je 0x14002ea4b
xor edx, edx
mov rcx, rbx
call fcn.140014c50
mov byte [0x14012b624], r13b
cmp eax, 2
je 0x14002ea52
mov byte [0x14012b624], 1
mov eax, 3
jmp 0x14002f983
lea rdx, [0x1400f3818]
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002eb45
test rbx, rbx
jne 0x14002ea90
mov qword [0x14012ac68], r13
mov eax, 3
jmp 0x14002f983
mov rcx, rbx
call fcn.140015320
mov qword [0x14012ac68], rax
test rax, rax
jne 0x14002f958
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, [0x1400f1514]
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.140030150
test eax, eax
je 0x14002f92a
mov rax, qword [0x1401255c8]
mov byte [r14 + 0x7d], r13b
mov qword [rax + 0xd8], rsi
mov rbx, qword [r14 + 8]
call fcn.140015270
mov r11, rax
mov qword [0x14012ac68], rax
test rax, rax
je 0x14002f92a
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 0x14002f983
lea rdx, str.IfTimeout
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002eb7c
test rbx, rbx
je 0x14002eb72
mov rcx, rbx
call fcn.1400057f0
mov dword [0x1401255b0], eax
mov eax, 3
jmp 0x14002f983
mov r12d, 6
lea rdx, str.IfWin
mov rcx, rbp
mov r8d, r12d
call fcn.1400d7260
test eax, eax
jne 0x14002ed36
lea rcx, [rbp + 0xc]
lea r8d, [r12 - 3]
lea rdx, [0x1400f5810]
call fcn.1400d7260
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.1400d7260
test eax, eax
jne 0x14002ebe8
test dil, dil
setne r12b
inc r12b
jmp 0x14002ec10
lea rdx, str.Exist
mov r8d, 5
mov rcx, rsi
call fcn.1400d7260
test eax, eax
jne 0x14002ed2c
test dil, dil
setne r12b
add r12b, 3
test rbx, rbx
je 0x14002ea7f
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 0x14002ec5d
nop dword [rax]
cmp ax, r8w
je 0x14002ec86
cmp ax, dx
je 0x14002ec86
cmp ax, di
je 0x14002ec86
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14002ec40
lea rdi, [0x1400f1514]
test r9, r9
je 0x14002ecf1
lea rsi, [r9 + 2]
movzx eax, word [rsi]
cmp ax, r15w
je 0x14002ec80
cmp ax, 9
jne 0x14002ecd0
add rsi, 2
jmp 0x14002ec71
movzx eax, word [rcx]
test ax, ax
je 0x14002ec5d
cmp ax, di
je 0x14002ecb9
cmp ax, dx
jne 0x14002eca6
test r9, r9
jne 0x14002ecb9
mov r9, rcx
add rcx, 2
jmp 0x14002ec35
add rcx, 2
cmp word [rcx], r13w
je 0x14002ec5d
add rcx, 2
jmp 0x14002ec35
lea rdx, str.Literal_commas_and_percent_signs_must_be_escaped__e.g.____
mov r8, rbp
mov rcx, r14
call fcn.14004e5e0
jmp 0x14002f983
mov word [r9], r13w
sub r9, rbx
mov rcx, rbx
sar r9, 1
mov rdx, r9
call fcn.140024240
mov dl, 1
mov rcx, rsi
call fcn.1400bbbd0
jmp 0x14002ecf4
mov rsi, rdi
mov dl, 1
mov rcx, rbx
call fcn.1400bbbd0
mov r8, rsi
mov rdx, rbx
movzx ecx, r12b
call fcn.1400150a0
test eax, eax
jne 0x14002f958
lea rdx, str.Out_of_memory.
mov r8, rdi
mov rcx, r14
call fcn.14004e5e0
jmp 0x14002f983
mov eax, 4
jmp 0x14002f983
lea rdx, [0x1400f9288]
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002ee7c
test rbx, rbx
je 0x14002ee72
lea rdx, str.EndChars
mov rcx, rbx
call fcn.1400b9760
test rax, rax
je 0x14002edbf
lea rdx, [0x1400f92a0]
mov rcx, rax
call fcn.140007310
test rax, rax
je 0x14002f958
lea rdx, [rax + 2]
lea rcx, str._____:____.___n__t
mov r8d, WSAAsyncSelect
call fcn.1400da5c4
lea rcx, str._____:____.___n__t
xor edx, edx
mov word [0x140125698], r13w
call fcn.1400bbbd0
mov eax, 3
jmp 0x14002f983
lea rdx, str.NoMouse
mov r8d, 7
mov rcx, rbx
call fcn.1400d7260
test eax, eax
jne 0x14002ede9
mov byte [0x1401255b7], r13b
mov eax, 3
jmp 0x14002f983
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.14001b140
mov eax, 3
jmp 0x14002f983
lea rdx, str.HotkeyModifierTimeout
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002eeb3
test rbx, rbx
je 0x14002eea9
mov rcx, rbx
call fcn.14001ce70
mov dword [0x14012558c], eax
mov eax, 3
jmp 0x14002f983
lea rdx, str.HotkeyInterval
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002eef7
test rbx, rbx
je 0x14002eeed
mov rcx, rbx
call fcn.14001ce70
mov r8d, 0xa
cmp eax, r8d
cmovl eax, r8d
mov dword [0x1401255ac], eax
mov eax, 3
jmp 0x14002f983
lea rdx, str.MaxHotkeysPerInterval
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002ef38
test rbx, rbx
je 0x14002ef2e
mov rcx, rbx
call fcn.14001ce70
mov edx, 1
cmp eax, edx
cmovl eax, edx
mov dword [0x1401255a8], eax
mov eax, 3
jmp 0x14002f983
lea rdx, str.MaxThreadsPerHotkey
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002ef84
test rbx, rbx
je 0x14002ef7a
mov rcx, rbx
call fcn.14001ce70
mov ecx, 0xff
cmp eax, ecx
jg 0x14002ef74
mov edx, 1
mov ecx, eax
cmp eax, edx
cmovl ecx, edx
mov byte [0x140124b23], cl
mov eax, 3
jmp 0x14002f983
lea rdx, str.MaxThreadsBuffer
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002efca
test rbx, rbx
je 0x14002efb9
xor edx, edx
mov rcx, rbx
call fcn.140014c50
mov byte [0x14012ac43], r13b
cmp eax, 2
je 0x14002efc0
mov byte [0x14012ac43], 1
mov eax, 3
jmp 0x14002f983
lea rdx, str.MaxThreads
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f016
test rbx, rbx
je 0x14002f00c
mov rcx, rbx
call fcn.14001ce70
mov ecx, 0xff
cmp eax, ecx
jg 0x14002f006
mov edx, 1
mov ecx, eax
cmp eax, edx
cmovl ecx, edx
mov dword [reloc.WSOCK32.dll_inet_addr], ecx
mov eax, 3
jmp 0x14002f983
lea rdx, str.ClipboardTimeout
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f04d
test rbx, rbx
je 0x14002f043
mov rcx, rbx
call fcn.14001ce70
mov dword [0x140125590], eax
mov eax, 3
jmp 0x14002f983
lea rdx, str.LTrim
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f093
test rbx, rbx
je 0x14002f082
xor edx, edx
mov rcx, rbx
call fcn.140014c50
mov byte [0x14012b623], r13b
cmp eax, 2
je 0x14002f089
mov byte [0x14012b623], 1
mov eax, 3
jmp 0x14002f983
lea rdx, str.WinActivateForce
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f0be
mov byte [0x14012ac05], 1
mov eax, 3
jmp 0x14002f983
lea rdx, str.ErrorStdOut
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f0f9
mov rcx, rbx
mov byte [r14 + 0xbb7], 1
call fcn.140028110
mov dword [r14 + 0xbb8], eax
mov eax, 3
jmp 0x14002f983
lea rdx, str.MaxMem
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f198
test rbx, rbx
je 0x14002f18e
mov rcx, rbx
call fcn.140024340
movapd xmm5, xmm0
movsd xmm0, qword [0x140112838]
comisd xmm5, xmm0
ja 0x14002f144
movsd xmm0, qword [0x140112030]
comisd xmm0, xmm5
jbe 0x14002f148
movapd xmm5, xmm0
mulsd xmm5, qword [0x140112010]
movsd xmm0, qword [0x140112068]
xor ecx, ecx
mulsd xmm5, qword [0x140112010]
comisd xmm5, xmm0
jbe 0x14002f17f
subsd xmm5, xmm0
comisd xmm5, xmm0
jae 0x14002f17f
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm5
add rax, rcx
mov qword [0x1401255a0], rax
mov eax, 3
jmp 0x14002f983
lea rdx, str.KeyHistory
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f1ee
test rbx, rbx
je 0x14002f1e4
mov rcx, rbx
call fcn.14001ce70
test eax, eax
jns 0x14002f1d4
mov dword [0x140125598], r13d
mov eax, 3
jmp 0x14002f983
mov ecx, 0x1f4
cmp eax, ecx
cmovg eax, ecx
mov dword [0x140125598], eax
mov eax, 3
jmp 0x14002f983
lea rdx, str.CommentFlag
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f2e8
test rbx, rbx
je 0x14002f2de
cmp word [rbx + 2], r13w
jne 0x14002f2a4
movzx eax, word [rbx]
cmp ax, 0x23
je 0x14002f5cf
cmp ax, word [0x1401255b8]
je 0x14002f5cf
cmp ax, word [0x1401255bc]
je 0x14002f5cf
cmp ax, word [0x1401255b4]
je 0x14002f5cf
cmp ax, 0x21
je 0x14002f5cf
cmp ax, 0x5e
je 0x14002f5cf
cmp ax, 0x2b
je 0x14002f5cf
cmp ax, 0x24
je 0x14002f5cf
cmp ax, 0x7e
je 0x14002f5cf
cmp ax, 0x2a
je 0x14002f5cf
cmp ax, 0x3c
je 0x14002f5cf
cmp ax, 0x3e
je 0x14002f5cf
lea rcx, [0x140124b28]
mov r8d, reloc.OLEAUT32.dll_SafeArrayDestroy
mov rdx, rbx
call fcn.1400da5c4
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 0x14002f983
lea rdx, str.EscapeChar
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f364
test rbx, rbx
je 0x14002f958
movzx eax, word [rbx]
cmp ax, 0x23
je 0x14002f5cf
cmp ax, word [0x1401255b8]
je 0x14002f5cf
cmp ax, word [0x1401255b4]
je 0x14002f5cf
cmp ax, 0x2e
je 0x14002f5cf
cmp qword [0x140124b48], 1
jne 0x14002f353
cmp ax, word [0x140124b28]
je 0x14002f5cf
mov word [0x1401255bc], ax
mov eax, 3
jmp 0x14002f983
lea rdx, str.DerefChar
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f3d6
test rbx, rbx
je 0x14002f958
movzx eax, word [rbx]
cmp ax, word [0x1401255bc]
je 0x14002f5cf
cmp ax, word [0x1401255b4]
je 0x14002f5cf
cmp ax, 0x2e
je 0x14002f5cf
cmp qword [0x140124b48], 1
jne 0x14002f3c5
cmp ax, word [0x140124b28]
je 0x14002f5cf
mov word [0x1401255b8], ax
mov eax, 3
jmp 0x14002f983
lea rdx, [0x1400f9480]
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f452
test rbx, rbx
je 0x14002f958
movzx eax, word [rbx]
cmp ax, 0x23
je 0x14002f5cf
cmp ax, word [0x1401255bc]
je 0x14002f5cf
cmp ax, word [0x1401255b8]
je 0x14002f5cf
cmp ax, 0x2e
je 0x14002f5cf
cmp qword [0x140124b48], 1
jne 0x14002f441
cmp ax, word [0x140124b28]
je 0x14002f5cf
mov word [0x1401255b4], ax
mov eax, 3
jmp 0x14002f983
lea rdx, str.MenuMaskKey
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f4c7
test rbx, rbx
je 0x14002f49f
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.1400231b0
test al, al
jne 0x14002f958
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.14004e5e0
jmp 0x14002f983
lea rdx, str.InputLevel
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f513
test rbx, rbx
je 0x14002f502
mov rcx, rbx
call fcn.14001ce70
mov r13d, eax
test eax, eax
js 0x14002f5cf
cmp eax, 0x64
jg 0x14002f5cf
mov byte [0x14012ac60], r13b
mov eax, 3
jmp 0x14002f983
lea rdx, str.Warn
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002f6a8
movzx edx, word [0x1401255b4]
lea rdi, [0x1400f1514]
test rbx, rbx
mov rsi, rdi
cmovne rsi, rbx
mov rcx, rsi
call fcn.1400d7d74
test rax, rax
je 0x14002f59d
lea rdi, [rax + 2]
nop word [rax + rax]
movzx ecx, word [rdi]
cmp cx, r15w
je 0x14002f56f
cmp cx, 9
jne 0x14002f575
add rdi, 2
jmp 0x14002f560
add rax, 0xfffffffffffffffe
cmp rax, rsi
jbe 0x14002f598
nop
movzx ecx, word [rax]
cmp cx, r15w
je 0x14002f58f
cmp cx, 9
jne 0x14002f598
sub rax, 2
cmp rax, rsi
ja 0x14002f580
mov word [rax + 2], r13w
cmp word [rsi], r13w
je 0x14002f5e6
mov r12d, r13d
lea rbx, str.UseUnsetLocal
lea r15, [0x1400f9518]
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.1400d6a8c
test eax, eax
je 0x14002f5e6
add rbx, 8
inc r12d
cmp rbx, r15
jne 0x14002f5b4
lea rdx, str.Parameter_1_invalid.
mov r8, rbp
mov rcx, r14
call fcn.14004e5e0
jmp 0x14002f983
mov esi, 2
cmp word [rdi], r13w
je 0x14002f633
mov esi, r13d
lea rbx, [0x1400f9518]
lea rbp, str.Requires
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.1400d6a8c
test eax, eax
je 0x14002f633
add rbx, 8
inc esi
cmp rbx, rbp
jne 0x14002f602
lea rdx, str.Parameter_2_invalid.
mov r8, rdi
mov rcx, r14
call fcn.14004e5e0
jmp 0x14002f983
test r12d, r12d
je 0x14002f63e
cmp r12d, 6
jne 0x14002f644
mov dword [0x14012ac20], esi
cmp r12d, 1
je 0x14002f650
cmp r12d, 6
jne 0x14002f656
mov dword [0x14012ac24], esi
cmp r12d, 3
je 0x14002f662
cmp r12d, 6
jne 0x14002f668
mov dword [0x14012ac28], esi
cmp r12d, 2
je 0x14002f674
cmp r12d, 6
jne 0x14002f67a
mov dword [0x14012ac2c], esi
cmp r12d, 4
je 0x14002f686
cmp r12d, 6
jne 0x14002f68c
mov dword [0x14012ac30], esi
cmp r12d, 5
je 0x14002f698
cmp r12d, 6
jne 0x14002f69e
mov dword [0x14012ac34], esi
mov eax, 3
jmp 0x14002f983
lea rdx, str.Requires
or r9, 0xffffffffffffffff
mov r8, rdi
mov rcx, rbp
call fcn.1400b9400
test eax, eax
jne 0x14002ed2c
test rbx, rbx
jne 0x14002f6e6
lea r8, [0x1400f1514]
lea rdx, str.Parameter_1_required
mov rcx, r14
call fcn.14004e5e0
jmp 0x14002f983
lea rdx, [0x1400f16e0]
mov r8d, 0xa
mov rcx, rbx
call fcn.1400d7260
test eax, eax
jne 0x14002f7de
movzx eax, word [rbx + 0x14]
test ax, ax
je 0x14002f958
cmp ax, r15w
je 0x14002f71f
cmp ax, si
jne 0x14002f7de
lea rsi, [rbx + 0x16]
mov rdx, rsi
movzx eax, word [rdx]
cmp ax, r15w
je 0x14002f735
cmp ax, 9
jne 0x14002f73b
add rdx, 2
jmp 0x14002f726
movzx eax, word [rdx]
test ax, ax
je 0x14002f958
mov rsi, rdx
nop word [rax + rax]
cmp ax, r15w
je 0x14002f769
cmp ax, 9
je 0x14002f769
movzx eax, word [rsi + 2]
add rsi, 2
test ax, ax
jne 0x14002f750
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.1400da5c4
lea rdx, str.Unicode
lea rcx, [rsp + 0x70]
mov word [rsp + rdi*2 + 0x6e], r13w
call fcn.1400d6a8c
test eax, eax
je 0x14002f723
lea rdx, str.64_bit
lea rcx, [rsp + 0x70]
call fcn.1400d6a8c
test eax, eax
je 0x14002f723
lea rdx, [rsp + 0x70]
lea rcx, [0x1400f9570]
xor r8d, r8d
call fcn.1400bc3a0
test eax, eax
jne 0x14002f723
mov rdx, rbx
mov rcx, r14
call fcn.14002f9a0
jmp 0x14002f983
test rbx, rbx
jne 0x14002f80a
lea rdx, str.Parameter_1_required
mov r8, rbp
mov rcx, r14
call fcn.14004e5e0
jmp 0x14002f983
cmp word [rbx], 0x2a
jne 0x14002f850
movzx edi, word [rbx + 2]
test edi, 0xffffff80
jne 0x14002f831
mov esi, 2
mov ecx, edi
mov edx, esi
call fcn.1400d7a04
test eax, eax
je 0x14002f831
and edi, 0xffffffdf
cmp di, 0x49
jne 0x14002f850
movzx eax, word [rbx + 4]
cmp ax, r15w
je 0x14002f847
cmp ax, 9
jne 0x14002f850
mov sil, 1
add rbx, 6
jmp 0x14002f853
xor sil, sil
cmp word [rbx], 0x3c
jne 0x14002f916
mov r15d, 0x3e
mov rcx, rbx
mov edx, r15d
call fcn.1400d7d74
mov rdi, rax
test rax, rax
je 0x14002f916
cmp word [rax + 2], r13w
jne 0x14002f916
add rbx, 2
mov word [rax], r13w
call fcn.140071090
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.140039d80
test r12, r12
je 0x14002f8d9
mov rcx, r12
call qword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryW]
mov rcx, r12
call fcn.1400d6fd8
movzx eax, byte [rsp + 0xf8]
test al, al
jne 0x14002f8f4
cmp byte [rsp + 0x100], r13b
jne 0x14002f958
test sil, sil
jne 0x14002f958
mov word [rdi], r15w
test al, al
jne 0x14002f911
lea rdx, str.Function_library_not_found.
mov r8, rbp
mov rcx, r14
call fcn.14004e5e0
mov r13d, eax
mov eax, r13d
jmp 0x14002f983
lea rcx, [rsp + 0xf8]
mov rdx, rbx
call fcn.14004c0e0
test eax, eax
jne 0x14002f92e
xor eax, eax
jmp 0x14002f983
mov rbx, qword [rsp + 0xf8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002f95f
test al, 0x10
je 0x14002f95f
mov rcx, rbx
call fcn.140070ce0
mov rcx, rbx
call fcn.1400d6fd8
mov eax, 3
jmp 0x14002f983
movzx r9d, sil
movzx r8d, r12b
mov rdx, rbx
mov rcx, r14
call fcn.14002b2c0
mov rcx, rbx
neg eax
sbb edi, edi
and edi, 3
call fcn.1400d6fd8
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