Function at 0x1400a92d0
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3b0]
sub rsp, 0x4b0
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x4f8], rbx
mov r12, rdx
mov rbx, rcx
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400a9310
cmp ax, 9
jne 0x1400a9316
add rbx, 2
jmp 0x1400a9301
mov r13d, 0x2c
mov edx, r13d
call fcn.1400c6908
mov rsi, rax
test rax, rax
je 0x1400a9d05
cmp word [rax], 0
je 0x1400a9d05
add rsi, 2
mov edx, r13d
mov rcx, rbx
call fcn.1400c6908
xor edi, edi
test rax, rax
je 0x1400a935e
mov edx, r13d
mov rcx, rbx
call fcn.1400c6908
mov word [rax], di
cmp word [rsi], di
je 0x1400a93ab
mov rdx, rsi
movzx eax, word [rdx]
cmp ax, 0x20
je 0x1400a9375
cmp ax, 9
jne 0x1400a937b
add rdx, 2
jmp 0x1400a9366
mov rax, rdx
sub rax, rsi
sar rax, 1
je 0x1400a93ab
or r8, 0xffffffffffffffff
nop word [rax + rax]
lea r8, [r8 + 1]
cmp word [rdx + r8*2], di
jne 0x1400a9390
lea r8, [r8*2 + 2]
mov rcx, rsi
call fcn.1400c64d0
or r8, 0xffffffffffffffff
nop
inc r8
cmp word [rbx + r8*2], di
jne 0x1400a93b0
lea r9, [rbp + 0x3f0]
mov rdx, rbx
lea rcx, [0x1401395c0]
call fcn.14002e970
test rax, rax
je 0x1400a93e4
mov r8, rbx
lea rdx, str.Duplicate_function_definition.
jmp 0x1400a9d0f
or r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rbx + r8*2], di
jne 0x1400a93f0
mov qword [rsp + 0x28], rdi
mov eax, dword [rbp + 0x3f0]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov rdx, rbx
lea rcx, [0x1401395c0]
call fcn.1400300a0
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400a9d1b
lea rcx, [0x14005f880]
mov qword [rax + 0x10], rcx
mov byte [rax + 0x79], 1
mov dword [rax + 0x24], edi
mov rax, rsi
sub rax, r12
sar rax, 1
mov r14d, 0x4001
sub r14, rax
lea rdx, str._A_ScriptDir_
mov rcx, rsi
call fcn.1400a6ae0
mov r15d, 1
mov dword [rbp + 0x400], r15d
test rax, rax
je 0x1400a94bb
mov rcx, qword [0x14013a158]
lea r8, [rbp - 0x70]
sub r8, rcx
nop dword [rax]
movzx eax, word [rcx]
mov word [rcx + r8], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400a9480
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_ScriptDir_
mov rcx, rsi
call fcn.1400a6f30
lea rdx, str._A_AppData_
mov rcx, rsi
call fcn.1400a6ae0
test rax, rax
je 0x1400a9509
lea rdx, str.A_AppData
lea rcx, [rbp - 0x70]
call fcn.14005b780
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AppData_
mov rcx, rsi
call fcn.1400a6f30
lea rdx, str._A_AppDataCommon_
mov rcx, rsi
call fcn.1400a6ae0
test rax, rax
je 0x1400a9557
lea rdx, str.A_AppDataCommon
lea rcx, [rbp - 0x70]
call fcn.14005b780
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AppDataCommon_
mov rcx, rsi
call fcn.1400a6f30
lea rdx, str._A_AhkPath_
mov rcx, rsi
call fcn.1400a6ae0
test rax, rax
je 0x1400a95cf
lea rcx, [rbp - 0x70]
call fcn.1400505f0
mov eax, eax
test rax, rax
je 0x1400a95a5
lea rdi, [rbp - 0x70]
lea rdi, [rdi + rax*2]
mov ebx, 0x103
sub rbx, rax
mov r8, rbx
lea rdx, str.AutoHotkey.exe
mov rcx, rdi
call fcn.1400cc9b8
xor eax, eax
mov word [rdi + rbx*2], ax
xor edi, edi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AhkPath_
mov rcx, rsi
call fcn.1400a6f30
lea rdx, str._A_AhkDir_
mov rcx, rsi
call fcn.1400a6ae0
test rax, rax
je 0x1400a9616
lea rcx, [rbp - 0x70]
call fcn.1400505f0
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AhkDir_
mov rcx, rsi
call fcn.1400a6f30
lea rdx, str._A_DllDir_
mov rcx, rsi
call fcn.1400a6ae0
mov ebx, 0x5c
test rax, rax
je 0x1400a96c6
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, qword [0x1401344b8]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400a9666
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, ebx
lea rcx, [rbp + 0x1a0]
call fcn.1400c6d90
mov rbx, rax
lea rax, [rbp + 0x1a0]
sub rbx, rax
sar rbx, 1
mov r8, rbx
lea rdx, [rbp + 0x1a0]
lea rcx, [rbp - 0x70]
call fcn.1400cc9b8
mov word [rbp + rbx*2 - 0x70], di
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_DllDir_
mov rcx, rsi
call fcn.1400a6f30
lea rdx, str._A_DllPath_
mov rcx, rsi
call fcn.1400a6ae0
test rax, rax
je 0x1400a9753
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, qword [0x1401344b8]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, eax
test rax, rax
jne 0x1400a9710
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, rdi
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400a9713
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_DllPath_
mov rcx, rsi
call fcn.1400a6f30
mov edx, 0x25
mov rcx, rsi
call fcn.1400c6908
test rax, rax
je 0x1400a9774
mov r8, rsi
lea rdx, str.Reference_not_allowed_here__use__where_possible._Only__A_AhkPath___A_AhkDir___A_DllPath___A_DllDir___A_ScriptDir___A_AppData_Common___can_be_used_here.
jmp 0x1400a9d0f
mov edx, r13d
mov rcx, rsi
call fcn.1400c6908
test rax, rax
je 0x1400a9792
mov edx, r13d
mov rcx, rsi
call fcn.1400c6908
mov word [rax], di
lea rdx, str._s_A_Fa_f0_9__:_A_Fa_f0_9____s_
mov rcx, rsi
call fcn.140062f80
mov rcx, rsi
test rax, rax
je 0x1400a98bf
mov qword [rbp + 0x408], 0x780030
mov edx, 0x3a
call fcn.1400c6908
test rax, rax
je 0x1400a97d8
mov edx, 0x3a
mov rcx, rsi
call fcn.1400c6908
lea rsi, [rax + 2]
mov edx, 0x3a
mov rcx, rsi
call fcn.1400c6908
test rax, rax
je 0x1400a9802
mov edx, 0x3a
mov rcx, rsi
call fcn.1400c6908
mov rbx, rax
sub rbx, rsi
sar rbx, 1
jmp 0x1400a9812
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400a9806
mov ebx, eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
movsxd rdi, eax
mov rcx, rdi
call fcn.1400a3760
mov r13, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1400a9840
mov r8, rsi
lea rdx, str.Out_of_memory.
jmp 0x1400a9d0f
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x1400a986c
mov r8, rsi
lea rdx, str.Could_not_commit_memory_for_DllImport.
jmp 0x1400a9d0f
xor eax, eax
mov edi, eax
test ebx, ebx
jle 0x1400a98cc
mov r14, rsi
nop word [rax + rax]
mov r8d, 2
mov rdx, r14
lea rcx, [rbp + 0x40c]
call fcn.1400cc9b8
xor edx, edx
lea r8d, [rdx + 0x10]
lea rcx, [rbp + 0x408]
call fcn.1400cc5c8
mov ecx, edi
shr rcx, 1
mov byte [rcx + r13], al
add edi, 2
add r14, 4
cmp edi, ebx
jl 0x1400a9880
xor edi, edi
jmp 0x1400a98cc
call fcn.14001cf30
mov r13, rax
mov qword [rsp + 0x40], rax
test r13, r13
jne 0x1400a992b
mov r14d, 0x5c
mov edx, r14d
mov rcx, rsi
call fcn.1400c6d90
mov rbx, rax
test rax, rax
je 0x1400a9908
mov word [rax], di
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x1400a9904
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov word [rbx], r14w
xor edx, edx
mov rcx, rsi
call fcn.14005dde0
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1400a992b
mov r8, rsi
lea rdx, str.Call_to_nonexistent_function.
jmp 0x1400a9d0f
or rax, 0xffffffffffffffff
nop
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400a9930
inc rax
lea rbx, [rsi + rax*2]
or rdx, 0xffffffffffffffff
mov rcx, rbx
call fcn.1400a36a0
mov r14, rax
mov byte [rbp + 0x3f0], 0
cmp word [rax], 0
je 0x1400a9969
mov rcx, rax
call fcn.14000f080
test eax, eax
je 0x1400a996c
mov r15d, edi
cmp word [r14], 0
je 0x1400a99d1
mov esi, 0x2c
mov edx, esi
mov rcx, rbx
call fcn.1400c6908
test rax, rax
je 0x1400a99b8
nop word [rax + rax]
mov edx, esi
mov rcx, rbx
call fcn.1400c6908
mov rbx, rax
test rax, rax
je 0x1400a99a6
add rbx, 2
inc r15d
mov edx, esi
mov rcx, rbx
call fcn.1400c6908
test rax, rax
jne 0x1400a9990
cmp word [r14], 0
je 0x1400a99d1
cmp r15d, 1
jge 0x1400a99d1
lea rdx, str.Parameter_3_required
jmp 0x1400a9d0c
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call fcn.1400a3760
mov rsi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400a9ad0
xor eax, eax
mov qword [rsi], rax
mov qword [rsi + 8], rax
test r15b, 1
jne 0x1400a9a07
mov dword [rsi + 8], 2
jmp 0x1400a9a93
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400a9a16
cmp ax, 9
jne 0x1400a9a1c
add rbx, 2
jmp 0x1400a9a07
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdi
mov r8d, 5
lea rdx, str.CDecl
mov rcx, rbx
call fcn.1400cab68
test eax, eax
jne 0x1400a9a6c
add rbx, 0xa
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400a9a52
cmp ax, 9
jne 0x1400a9a58
add rbx, 2
jmp 0x1400a9a43
mov qword [rsp + 0x50], rbx
cmp word [rbx], 0
jne 0x1400a9a6c
mov dword [rsi + 8], 2
jmp 0x1400a9a90
mov rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.14005d6d0
cmp dword [rsi + 8], 0
jne 0x1400a9a89
mov eax, 4
jmp 0x1400a9d1b
mov byte [rbp + 0x3f0], 1
dec r15d
mov eax, r15d
cdq
sub eax, edx
sar eax, 1
movsxd rdi, eax
je 0x1400a9ae3
mov rbx, rdi
shl rbx, 4
mov rcx, rbx
call fcn.1400a3760
mov r13, rax
mov qword [rbp + 0x408], rax
mov rcx, rbx
call fcn.1400a3760
mov qword [rsp + 0x48], rax
test r13, r13
je 0x1400a9ad0
test rax, rax
jne 0x1400a9af1
lea r8, [0x140117ad8]
lea rdx, str.Out_of_memory.
jmp 0x1400a9d0f
xor eax, eax
mov qword [rbp + 0x408], rax
mov qword [rsp + 0x48], rax
lea ebx, [rdi*8]
movsxd rdi, ebx
mov rcx, rdi
call fcn.1400a3760
mov r12, rax
mov qword [rsp + 0x68], rax
test ebx, ebx
je 0x1400a9b14
test rax, rax
je 0x1400a9ad0
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1400c7510
xor ebx, ebx
mov r13d, ebx
cmp r15d, 1
jle 0x1400a9cb8
mov qword [rbp - 0x80], rbx
mov rsi, qword [rbp + 0x408]
nop dword [rax + rax]
mov edx, 0x2c
mov rcx, r14
call fcn.1400c6908
mov word [rax], bx
lea rdi, [rax + 2]
mov qword [rsp + 0x78], r14
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.14005d6d0
mov eax, dword [rsi + 8]
test eax, eax
je 0x1400a9a7f
cmp eax, 1
je 0x1400a9bfa
cmp eax, 5
jle 0x1400a9bc5
cmp eax, 7
jle 0x1400a9ba2
cmp eax, 8
jne 0x1400a9bc5
mov rcx, rdi
call fcn.14001cf30
test rax, rax
jne 0x1400a9a7f
mov qword [rsi], rdi
jmp 0x1400a9c6d
mov rcx, rdi
call fcn.14001f720
movsd qword [rsi], xmm0
cmp dword [rsi + 8], 6
jne 0x1400a9c6d
cvtsd2ss xmm0, xmm0
movss dword [rsi], xmm0
jmp 0x1400a9c6d
cmp byte [rsi + 0xd], 0
je 0x1400a9bed
cmp eax, 5
jne 0x1400a9bed
mov rcx, rdi
call fcn.14001cf30
test rax, rax
jne 0x1400a9bed
mov rcx, rdi
call fcn.140042e50
mov qword [rsi], rax
jmp 0x1400a9c6d
mov rcx, rdi
call fcn.14001cf30
mov qword [rsi], rax
jmp 0x1400a9c6d
mov rcx, rdi
call fcn.14001cf30
test rax, rax
jne 0x1400a9a7f
mov r14d, 0x2c
mov edx, r14d
mov rcx, rdi
call fcn.1400c6908
mov rbx, rax
test rax, rax
je 0x1400a9c29
xor eax, eax
mov word [rbx], ax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400c44c8
mov qword [rsp + 0x50], rax
mov rdx, rdi
mov rcx, rax
call fcn.14006fd80
nop
mov qword [r12], rax
test rbx, rbx
je 0x1400a9c51
mov word [rbx], r14w
mov rbx, qword [r12]
mov rcx, rbx
call fcn.14006f590
mov byte [rbx + 0x10], 1
mov rax, qword [rbx + 8]
mov rcx, qword [rax]
mov qword [rsi], rcx
xor ebx, ebx
mov edx, 0x2c
mov rcx, rdi
call fcn.1400c6908
mov r14, rax
test rax, rax
je 0x1400a9c89
mov word [rax], bx
add r14, 2
inc r13d
add rsi, 0x10
add r12, 8
mov eax, dword [rbp + 0x400]
add eax, 2
mov dword [rbp + 0x400], eax
cmp eax, r15d
jl 0x1400a9b40
mov rsi, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
jmp 0x1400a9cbf
mov rdi, qword [rbp + 0x3f0]
cmp byte [rbp + 0x3f0], 0
je 0x1400a9cd0
test r15d, r15d
je 0x1400a9cd0
mov word [rdi], bx
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 0x28], rax
mov dword [rcx + 0x20], r13d
mov qword [rcx + 0x38], rsi
mov qword [rcx + 0x48], r12
mov rax, qword [rbp + 0x408]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x18], rax
mov eax, 3
jmp 0x1400a9d1b
lea rdx, str.Parameter_2_required
mov r8, r12
lea rcx, [0x1401395c0]
call fcn.1400410d0
mov rbx, qword [rsp + 0x4f8]
add rsp, 0x4b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret