Function at 0x1400bc900
Capabilities:
Allocate or change rwx memory
Get common file path

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 rdi, rcx
movzx eax, word [rdi]
cmp ax, 0x20
je 0x1400bc940
cmp ax, 9
jne 0x1400bc946
add rdi, 2
jmp 0x1400bc931
mov r15d, 0x2c
mov edx, r15d
call fcn.1400d7a50
mov rbx, rax
test rax, rax
je 0x1400bd40c
cmp word [rax], 0
je 0x1400bd40c
add rbx, 2
mov edx, r15d
mov rcx, rdi
call fcn.1400d7a50
xor r13d, r13d
test rax, rax
je 0x1400bc990
mov edx, r15d
mov rcx, rdi
call fcn.1400d7a50
mov word [rax], r13w
movzx eax, word [rbx]
test ax, ax
je 0x1400bc9eb
mov rdx, rbx
nop dword [rax + rax]
cmp ax, 0x20
je 0x1400bc9ac
cmp ax, 9
jne 0x1400bc9b5
add rdx, 2
movzx eax, word [rdx]
jmp 0x1400bc9a0
mov rax, rdx
sub rax, rbx
cmp rax, 2
jb 0x1400bc9eb
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
lea r8, [r8 + 1]
cmp word [rdx + r8*2], r13w
jne 0x1400bc9d0
lea r8, [r8*2 + 2]
mov rcx, rbx
call fcn.1400d8380
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdi + r8*2], r13w
jne 0x1400bc9f2
lea r9, [rbp + 0x3f0]
mov rdx, rdi
lea rcx, [0x140145c90]
call fcn.140045fd0
test rax, rax
je 0x1400bca26
mov r8, rdi
lea rdx, str.Duplicate_function_definition.
jmp 0x1400bd416
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rdi + r8*2], r13w
jne 0x1400bca30
mov qword [rsp + 0x28], r13
mov eax, dword [rbp + 0x3f0]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov rdx, rdi
lea rcx, [0x140145c90]
call fcn.140047880
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400bd422
lea rcx, [0x1400744c0]
mov qword [rax + 0x10], rcx
mov byte [rax + 0x79], 1
mov dword [rax + 0x24], r13d
mov rax, rbx
sub rax, r12
sar rax, 1
mov esi, 0x4001
sub rsi, rax
lea rdx, str._A_ScriptDir_
mov rcx, rbx
call fcn.1400b9ee0
mov r14d, 1
mov dword [rbp + 0x400], r14d
test rax, rax
je 0x1400bcafd
mov rcx, qword [0x140146848]
lea rdi, [rbp + 0x1a0]
sub rdi, rcx
nop
movzx eax, word [rcx]
mov word [rdi + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400bcac0
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_ScriptDir_
mov rcx, rbx
call fcn.1400ba320
lea rdx, str._A_AppData_
mov rcx, rbx
call fcn.1400b9ee0
test rax, rax
je 0x1400bcb93
mov edx, 2
lea ecx, [rdx + 0x3f]
call fcn.1400df2dc
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x1400bcb46
mov word [rbp - 0x70], r13w
mov rcx, r13
nop dword [rax]
movzx eax, word [rbp + rcx - 0x70]
mov word [rbp + rcx + 0x1a0], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400bcb50
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_AppData_
mov rcx, rbx
call fcn.1400ba320
lea rdx, str._A_AppDataCommon_
mov rcx, rbx
call fcn.1400b9ee0
test rax, rax
je 0x1400bcc23
mov edx, 2
lea ecx, [rdx + 0x3f]
call fcn.1400df2dc
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x23]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x1400bcbd8
mov word [rbp - 0x70], r13w
mov rcx, r13
nop dword [rax + rax]
movzx eax, word [rbp + rcx - 0x70]
mov word [rbp + rcx + 0x1a0], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400bcbe0
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_AppDataCommon_
mov rcx, rbx
call fcn.1400ba320
lea rdx, str._A_AhkPath_
mov rcx, rbx
call fcn.1400b9ee0
test rax, rax
je 0x1400bcc93
mov r8d, 0x104
lea rdx, [rbp - 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, r13
nop dword [rax]
movzx eax, word [rbp + rcx - 0x70]
mov word [rbp + rcx + 0x1a0], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400bcc50
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_AhkPath_
mov rcx, rbx
call fcn.1400ba320
lea rdx, str._A_AhkDir_
mov rcx, rbx
call fcn.1400b9ee0
mov edi, 0x5c
test rax, rax
je 0x1400bcd24
mov r8d, 0x104
lea rdx, [rbp - 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, edi
lea rcx, [rbp - 0x70]
call fcn.1400d796c
mov rdi, rax
lea rax, [rbp - 0x70]
sub rdi, rax
sar rdi, 1
mov r8, rdi
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x1a0]
call fcn.1400e4f88
mov word [rbp + rdi*2 + 0x1a0], r13w
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_AhkDir_
mov rcx, rbx
call fcn.1400ba320
mov edi, 0x5c
lea rdx, str._A_DllDir_
mov rcx, rbx
call fcn.1400b9ee0
test rax, rax
je 0x1400bcdca
mov r8d, 0x104
lea rdx, [rbp - 0x70]
mov rcx, qword [0x1401427d8]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400bcd69
mov r8d, 0x104
lea rdx, [rbp - 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, edi
lea rcx, [rbp - 0x70]
call fcn.1400d796c
mov rdi, rax
lea rax, [rbp - 0x70]
sub rdi, rax
sar rdi, 1
mov r8, rdi
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x1a0]
call fcn.1400e4f88
mov word [rbp + rdi*2 + 0x1a0], r13w
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_DllDir_
mov rcx, rbx
call fcn.1400ba320
lea rdx, str._A_DllPath_
mov rcx, rbx
call fcn.1400b9ee0
test rax, rax
je 0x1400bce54
mov r8d, 0x104
lea rdx, [rbp - 0x70]
mov rcx, qword [0x1401427d8]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, eax
test rax, rax
jne 0x1400bce0e
mov r8d, 0x104
lea rdx, [rbp - 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, r13
movzx eax, word [rbp + rcx - 0x70]
mov word [rbp + rcx + 0x1a0], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400bce11
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0x1a0]
lea rdx, str._A_DllPath_
mov rcx, rbx
call fcn.1400ba320
mov edx, 0x25
mov rcx, rbx
call fcn.1400d7a50
test rax, rax
je 0x1400bce75
mov r8, rbx
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 0x1400bd416
mov edx, r15d
mov rcx, rbx
call fcn.1400d7a50
test rax, rax
je 0x1400bce94
mov edx, r15d
mov rcx, rbx
call fcn.1400d7a50
mov word [rax], r13w
lea rdx, str._s_A_Fa_f0_9__:_A_Fa_f0_9____s_
mov rcx, rbx
call fcn.140077c00
mov rcx, rbx
test rax, rax
je 0x1400bcfc3
mov qword [rbp + 0x408], 0x780030
mov edx, 0x3a
call fcn.1400d7a50
test rax, rax
je 0x1400bceda
mov edx, 0x3a
mov rcx, rbx
call fcn.1400d7a50
lea rbx, [rax + 2]
mov edx, 0x3a
mov rcx, rbx
call fcn.1400d7a50
test rax, rax
je 0x1400bcf04
mov edx, 0x3a
mov rcx, rbx
call fcn.1400d7a50
mov rsi, rax
sub rsi, rbx
sar rsi, 1
jmp 0x1400bcf1c
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], r13w
jne 0x1400bcf10
mov esi, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
movsxd rdi, eax
mov rcx, rdi
call fcn.1400b6a80
mov r15, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1400bcf4a
mov r8, rbx
lea rdx, str.Out_of_memory.
jmp 0x1400bd416
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, rdi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x1400bcf76
mov r8, rbx
lea rdx, str.Could_not_commit_memory_for_DllImport.
jmp 0x1400bd416
mov edi, r13d
test esi, esi
jle 0x1400bcfd0
mov r14, rbx
mov r8d, 2
mov rdx, r14
lea rcx, [rbp + 0x40c]
call fcn.1400e4f88
xor edx, edx
lea r8d, [rdx + 0x10]
lea rcx, [rbp + 0x408]
call fcn.1400dc0a8
mov ecx, edi
shr rcx, 1
mov byte [rcx + r15], al
add edi, 2
add r14, 4
cmp edi, esi
jl 0x1400bcf80
mov r14d, 1
jmp 0x1400bcfd0
call fcn.140005700
mov r15, rax
mov qword [rsp + 0x40], rax
test r15, r15
jne 0x1400bd02d
mov esi, 0x5c
mov edx, esi
mov rcx, rbx
call fcn.1400d796c
mov rdi, rax
test rax, rax
je 0x1400bd00a
mov word [rax], r13w
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x1400bd007
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov word [rdi], si
xor edx, edx
mov rcx, rbx
call fcn.1400729f0
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1400bd02d
mov r8, rbx
lea rdx, str.Call_to_nonexistent_function.
jmp 0x1400bd416
mov rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], r13w
jne 0x1400bd034
inc rax
lea rdi, [rbx + rax*2]
mov rdx, 0xffffffffffffffff
mov rcx, rdi
call fcn.1400b69d0
mov rsi, rax
mov byte [rbp + 0x3f0], r13b
cmp word [rax], r13w
je 0x1400bd073
mov rcx, rax
call fcn.14001c020
test eax, eax
mov r15d, r14d
je 0x1400bd076
mov r15d, r13d
cmp word [rsi], r13w
je 0x1400bd0d0
mov ebx, 0x2c
mov edx, ebx
mov rcx, rdi
call fcn.1400d7a50
test rax, rax
je 0x1400bd0b8
mov edx, ebx
mov rcx, rdi
call fcn.1400d7a50
mov rdi, rax
test rax, rax
je 0x1400bd0a6
add rdi, 2
inc r15d
mov edx, ebx
mov rcx, rdi
call fcn.1400d7a50
test rax, rax
jne 0x1400bd090
cmp word [rsi], r13w
je 0x1400bd0d0
cmp r15d, 1
jge 0x1400bd0d0
lea rdx, str.Parameter_3_required
jmp 0x1400bd413
mov ecx, reloc.WSOCK32.dll_recv
call fcn.1400b6a80
mov r14, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400bd1cd
mov qword [rax], r13
mov qword [rax + 8], r13
test r15b, 1
jne 0x1400bd104
mov dword [rax + 8], 2
jmp 0x1400bd190
movzx eax, word [rdi]
cmp ax, 0x20
je 0x1400bd113
cmp ax, 9
jne 0x1400bd119
add rdi, 2
jmp 0x1400bd104
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r13
mov r8d, 5
lea rdx, str.CDecl
mov rcx, rdi
call fcn.1400dc1dc
test eax, eax
jne 0x1400bd169
add rdi, 0xa
movzx eax, word [rdi]
cmp ax, 0x20
je 0x1400bd14f
cmp ax, 9
jne 0x1400bd155
add rdi, 2
jmp 0x1400bd140
mov qword [rsp + 0x50], rdi
test ax, ax
jne 0x1400bd169
mov dword [r14 + 8], 2
jmp 0x1400bd18d
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.1400722c0
cmp dword [r14 + 8], r13d
jne 0x1400bd186
mov eax, 4
jmp 0x1400bd422
mov byte [rbp + 0x3f0], 1
dec r15d
mov eax, r15d
cdq
sub eax, edx
sar eax, 1
movsxd rbx, eax
je 0x1400bd1e0
mov rdi, rbx
shl rdi, 4
mov rcx, rdi
call fcn.1400b6a80
mov r12, rax
mov qword [rbp + 0x408], rax
mov rcx, rdi
call fcn.1400b6a80
mov qword [rsp + 0x48], rax
test r12, r12
je 0x1400bd1cd
test rax, rax
jne 0x1400bd1ec
lea r8, [0x140103554]
lea rdx, str.Out_of_memory.
jmp 0x1400bd416
mov qword [rbp + 0x408], r13
mov qword [rsp + 0x48], r13
lea edi, [rbx*8]
movsxd rbx, edi
mov rcx, rbx
call fcn.1400b6a80
mov rdx, rax
mov qword [rsp + 0x68], rax
test edi, edi
je 0x1400bd21d
test rax, rax
je 0x1400bd1cd
test edi, edi
je 0x1400bd21d
mov rdi, rax
xor eax, eax
mov rcx, rbx
rep stosb byte [rdi], al
cmp r15d, 1
jle 0x1400bd3bd
xor r14d, r14d
mov qword [rbp - 0x80], r14
mov r12, rdx
mov rbx, qword [rbp + 0x408]
nop dword [rax + rax]
mov edx, 0x2c
mov rcx, rsi
call fcn.1400d7a50
mov word [rax], r14w
lea rdi, [rax + 2]
mov qword [rsp + 0x78], rsi
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1400722c0
mov eax, dword [rbx + 8]
test eax, eax
je 0x1400bd17c
cmp eax, 1
je 0x1400bd2fb
cmp eax, 5
jle 0x1400bd2c6
cmp eax, 7
jle 0x1400bd2a3
cmp eax, 8
jne 0x1400bd2c6
mov rcx, rdi
call fcn.140005700
test rax, rax
jne 0x1400bd17c
mov qword [rbx], rdi
jmp 0x1400bd371
mov rcx, rdi
call fcn.14002f830
movsd qword [rbx], xmm0
cmp dword [rbx + 8], 6
jne 0x1400bd371
cvtsd2ss xmm0, xmm0
movss dword [rbx], xmm0
jmp 0x1400bd371
cmp byte [rbx + 0xd], 0
je 0x1400bd2ee
cmp eax, 5
jne 0x1400bd2ee
mov rcx, rdi
call fcn.140005700
test rax, rax
jne 0x1400bd2ee
mov rcx, rdi
call fcn.140058f20
mov qword [rbx], rax
jmp 0x1400bd371
mov rcx, rdi
call fcn.140005700
mov qword [rbx], rax
jmp 0x1400bd371
mov rcx, rdi
call fcn.140005700
test rax, rax
jne 0x1400bd17c
lea edx, [rax + 0x2c]
mov rcx, rdi
call fcn.1400d7a50
mov r14, rax
test rax, rax
je 0x1400bd325
xor eax, eax
mov word [r14], ax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d6324
mov qword [rsp + 0x50], rax
mov rdx, rdi
mov rcx, rax
call fcn.140084ba0
mov rsi, rax
mov qword [r12], rax
test r14, r14
je 0x1400bd358
mov eax, 0x2c
mov word [r14], ax
mov rsi, qword [r12]
mov rcx, rsi
call fcn.14000e380
mov byte [rsi + 0x10], 1
mov rax, qword [rsi + 8]
mov rcx, qword [rax]
mov qword [rbx], rcx
xor r14d, r14d
mov edx, 0x2c
mov rcx, rdi
call fcn.1400d7a50
mov rsi, rax
test rax, rax
je 0x1400bd38e
mov word [rax], r14w
add rsi, 2
inc r13d
add rbx, 0x10
add r12, 8
mov eax, dword [rbp + 0x400]
add eax, 2
mov dword [rbp + 0x400], eax
cmp eax, r15d
jl 0x1400bd240
mov r14, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
jmp 0x1400bd3c4
mov rdi, qword [rbp + 0x3f0]
cmp byte [rbp + 0x3f0], 0
je 0x1400bd3d7
test r15d, r15d
je 0x1400bd3d7
xor eax, eax
mov word [rdi], ax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 0x28], rax
mov dword [rcx + 0x20], r13d
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x48], rdx
mov rax, qword [rbp + 0x408]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x18], rax
mov eax, 3
jmp 0x1400bd422
lea rdx, str.Parameter_2_required
mov r8, r12
lea rcx, [0x140145c90]
call fcn.1400570c0
mov rbx, qword [rsp + 0x4f8]
add rsp, 0x4b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret