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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x438]
sub rsp, 0x538
mov r12, rdx
mov rbx, rcx
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400c4395
cmp ax, 9
jne 0x1400c439b
add rbx, 2
jmp 0x1400c4386
mov r14d, 0x2c
mov edx, r14d
call fcn.1400e1554
mov rsi, rax
mov r15, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1400c562a
cmp word [rax], 0
je 0x1400c562a
add rsi, 2
mov edx, r14d
mov rcx, rbx
call fcn.1400e1554
xor edi, edi
test rax, rax
je 0x1400c43eb
mov edx, r14d
mov rcx, rbx
call fcn.1400e1554
mov word [rax], di
movzx eax, word [rsi]
test ax, ax
je 0x1400c443b
mov rdx, rsi
cmp ax, 0x20
je 0x1400c4402
cmp ax, 9
jne 0x1400c440b
add rdx, 2
movzx eax, word [rdx]
jmp 0x1400c43f6
mov rax, rdx
sub rax, rsi
cmp rax, 2
jb 0x1400c443b
mov r8, 0xffffffffffffffff
nop
lea r8, [r8 + 1]
cmp word [rdx + r8*2], di
jne 0x1400c4420
lea r8, [r8*2 + 2]
mov rcx, rsi
call fcn.1400e1c80
mov r8, 0xffffffffffffffff
inc r8
cmp word [rbx + r8*2], di
jne 0x1400c4442
lea r9, [rsp + 0x60]
mov rdx, rbx
lea rcx, [0x14014d8e0]
call fcn.14003bb90
test rax, rax
je 0x1400c4474
mov r8, rbx
lea rdx, str.Duplicate_function_definition.
jmp 0x1400c5634
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rbx + r8*2], di
jne 0x1400c4480
mov qword [rsp + 0x28], rdi
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov rdx, rbx
lea rcx, [0x14014d8e0]
call fcn.14003d440
mov qword [rbp - 0x78], rax
test rax, rax
je 0x1400c5640
lea rcx, [0x140072980]
mov qword [rax + 0x10], rcx
mov byte [rax + 0x79], 1
xor ebx, ebx
mov dword [rax + 0x24], ebx
mov rax, rsi
sub rax, r12
sar rax, 1
mov r14d, 0x4001
sub r14, rax
mov qword [rsp + 0x48], r14
lea rdx, str._A_ScriptDir_
mov rcx, rsi
call fcn.1400c1b50
mov r13d, 1
mov dword [rbp + 0x498], r13d
test rax, rax
je 0x1400c454b
mov rcx, qword [0x14014e498]
lea r8, [rbp - 0x70]
sub r8, rcx
movzx eax, word [rcx]
mov word [rcx + r8], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400c4510
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_ScriptDir_
mov rcx, rsi
call fcn.1400c1f90
lea rdx, str._A_AppData_
mov rcx, rsi
call fcn.1400c1b50
test rax, rax
je 0x1400c45e0
mov edx, 2
lea ecx, [rdx + 0x3f]
call fcn.1400e8e20
lea rax, [rbp + 0x1a0]
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 0x1400c4599
mov word [rbp + 0x1a0], bx
mov rcx, rbx
nop dword [rax]
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400c45a0
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AppData_
mov rcx, rsi
call fcn.1400c1f90
lea rdx, str._A_AppDataCommon_
mov rcx, rsi
call fcn.1400c1b50
test rax, rax
je 0x1400c4913
mov edx, 2
lea ecx, [rdx + 0x3f]
call fcn.1400e8e20
lea rax, [rbp + 0x1a0]
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 0x1400c462e
mov word [rbp + 0x1a0], bx
mov rcx, rbx
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400c4631
mov r15d, r13d
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rsi + rbx*2], di
jne 0x1400c4651
xor edx, edx
mov r13d, edx
mov r12d, edx
mov qword [rsp + 0x50], rdx
cmp word [rsi], dx
je 0x1400c48ff
lea rax, [rbp - 0x70]
mov rdi, 0xffffffffffffffff
nop dword [rax + rax]
inc rdi
cmp word [rax + rdi*2], dx
jne 0x1400c4680
lea ecx, [rdi - 0x11]
mov dword [rbp + 0x490], ecx
cmp r14, 0xffffffffffffffff
je 0x1400c46b7
mov eax, r14d
sub eax, ebx
sub eax, r15d
jns 0x1400c46a7
mov r15d, edx
jmp 0x1400c46b7
test ecx, ecx
jle 0x1400c46b9
cdq
idiv ecx
cmp eax, r15d
cmovb r15d, eax
xor edx, edx
test ecx, ecx
je 0x1400c4886
cmp rbx, 0x1388
jb 0x1400c4886
mov dword [rbp + 0x480], edx
mov r14, rsi
mov qword [rsp + 0x58], rsi
test r15d, r15d
je 0x1400c48fa
nop dword [rax]
nop word [rax + rax]
lea rdx, str._A_AppDataCommon_
mov rcx, r14
call fcn.1400c1b50
mov rcx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1400c47ee
mov r10d, dword [rbp + 0x480]
inc r10d
mov dword [rbp + 0x480], r10d
dec r15d
mov r14, rax
mov rax, qword [rsp + 0x58]
sub r14, rax
sar r14, 1
lea rdx, [r14 + r12]
mov qword [rsp + 0x78], rdx
lea r8, [rdx + rdi]
cmp r8, qword [rsp + 0x50]
jb 0x1400c4796
mov rax, rcx
sub rax, rsi
sar rax, 1
movsxd rdx, eax
movsxd rax, r8d
movsxd r9, ebx
movsxd rcx, dword [rbp + 0x490]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
mov r8d, r15d
mov edx, r10d
call fcn.1400c23c0
mov qword [rsp + 0x50], rax
lea rdx, [rax + rax]
mov rcx, r13
call fcn.1400e89f4
test rax, rax
je 0x1400c4829
mov r13, rax
mov rax, qword [rsp + 0x58]
test r14, r14
je 0x1400c47b7
lea rcx, [r12*2]
add rcx, r13
lea r8, [r14 + r14]
mov rdx, rax
call fcn.1400e1c80
mov r12, qword [rsp + 0x78]
test rdi, rdi
je 0x1400c47d7
lea rcx, [r12*2]
add rcx, r13
lea r8, [rdi + rdi]
lea rdx, [rbp - 0x70]
call fcn.1400e1c80
add r12, rdi
mov r14, qword [rsp + 0x68]
add r14, 0x22
mov qword [rsp + 0x58], r14
test r15d, r15d
jne 0x1400c46f0
cmp dword [rbp + 0x480], 0
je 0x1400c48fa
mov rax, r14
sub rax, rsi
sar rax, 1
sub rbx, rax
je 0x1400c485c
lea rdi, [rbx + r12]
cmp rdi, qword [rsp + 0x50]
jb 0x1400c4842
lea rdx, [rdi*2 + 2]
mov rcx, r13
call fcn.1400e89f4
test rax, rax
jne 0x1400c483f
test r13, r13
je 0x1400c48fa
mov rcx, r13
call fcn.1400e89fc
jmp 0x1400c48fa
mov r13, rax
lea rcx, [r12*2]
add rcx, r13
lea r8, [rbx + rbx]
mov rdx, r14
call fcn.1400e1c80
mov r12, rdi
xor ebx, ebx
mov word [r13 + r12*2], bx
lea r8, [r12*2 + 2]
mov rdx, r13
mov rcx, rsi
call fcn.1400e1c80
mov rcx, r13
call fcn.1400e89fc
mov r14, qword [rsp + 0x48]
jmp 0x1400c4901
mov r12, rsi
test r15d, r15d
je 0x1400c48ff
nop
lea rdx, str._A_AppDataCommon_
mov rcx, r12
call fcn.1400c1b50
mov r14, rax
test rax, rax
je 0x1400c48fa
lea r13, [rdi + rdi]
lea r12, [rax + r13]
cmp dword [rbp + 0x490], 0
je 0x1400c48db
mov rcx, rax
sub rcx, rsi
sar rcx, 1
mov r8, rbx
sub r8, rcx
lea r8, [r8*2 - 0x20]
lea rdx, [rax + 0x22]
mov rcx, r12
call fcn.1400e1c80
mov r8, r13
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.1400e1c80
movsxd rax, dword [rbp + 0x490]
add rbx, rax
add r15d, 0xffffffff
jne 0x1400c4890
mov r14, qword [rsp + 0x48]
xor ebx, ebx
mov r13d, 1
mov r12, qword [rbp + 0x488]
mov r15, qword [rsp + 0x40]
lea rdx, str._A_AhkPath_
mov rcx, rsi
call fcn.1400c1b50
test rax, rax
je 0x1400c498b
lea rcx, [rbp - 0x70]
call fcn.140061f40
mov eax, eax
test rax, rax
je 0x1400c4961
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.1400eadcc
xor eax, eax
mov word [rdi + rbx*2], ax
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AhkPath_
mov rcx, rsi
call fcn.1400c1f90
lea rdx, str._A_AhkDir_
mov rcx, rsi
call fcn.1400c1b50
test rax, rax
je 0x1400c49d2
lea rcx, [rbp - 0x70]
call fcn.140061f40
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AhkDir_
mov rcx, rsi
call fcn.1400c1f90
lea rdx, str._A_DllDir_
mov rcx, rsi
call fcn.1400c1b50
mov edi, 0x5c
test rax, rax
je 0x1400c4a86
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, qword [0x14014a480]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400c4a22
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, edi
lea rcx, [rbp + 0x1a0]
call fcn.1400e17e8
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.1400eadcc
xor eax, eax
mov word [rbp + rbx*2 - 0x70], ax
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_DllDir_
mov rcx, rsi
call fcn.1400c1f90
lea rdx, str._A_DllPath_
mov rcx, rsi
call fcn.1400c1b50
test rax, rax
je 0x1400c4b13
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, qword [0x14014a480]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, eax
test rax, rax
jne 0x1400c4ad0
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, rbx
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400c4ad3
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_DllPath_
mov rcx, rsi
call fcn.1400c1f90
mov edx, 0x25
mov rcx, rsi
call fcn.1400e1554
test rax, rax
je 0x1400c4b34
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 0x1400c5634
mov r14d, 0x2c
mov edx, r14d
mov rcx, rsi
call fcn.1400e1554
test rax, rax
je 0x1400c4b58
mov edx, r14d
mov rcx, rsi
call fcn.1400e1554
mov word [rax], bx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
lea r8, [rbp + 0x490]
lea rdx, [rbp + 0x480]
lea rcx, str._s_A_Fa_f0_9__:_A_Fa_f0_9____s_
call fcn.140075c60
mov r14d, 0xffdf
test rax, rax
je 0x1400c4de8
mov r9, 0xffffffffffffffff
inc r9
cmp word [rsi + r9*2], 0
jne 0x1400c4b90
mov dword [rsp + 0x38], SafeArrayAllocDescriptor
lea rcx, [rbp + 0x3b0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
mov r8, rsi
mov rdx, qword [rbp + 0x490]
mov rcx, rax
call fcn.1400ddfd0
test eax, eax
js 0x1400c4de8
movsxd rcx, dword [rbp + 0x3b0]
inc rcx
lea rcx, [r15 + rcx*2]
test rcx, rcx
je 0x1400c4de8
mov qword [rbp + 0x490], 0x780030
mov edx, 0x3a
mov rcx, rsi
call fcn.1400e1554
test rax, rax
je 0x1400c4c16
mov edx, 0x3a
mov rcx, rsi
call fcn.1400e1554
lea rsi, [rax + 2]
mov edx, 0x3a
mov rcx, rsi
call fcn.1400e1554
test rax, rax
je 0x1400c4c40
mov edx, 0x3a
mov rcx, rsi
call fcn.1400e1554
mov rdi, rax
sub rdi, rsi
sar rdi, 1
jmp 0x1400c4c5c
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400c4c50
mov edi, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
movsxd rbx, eax
lea rax, [rbx - 1]
cmp rax, 0xffff
ja 0x1400c4dd9
cmp qword [0x14014c850], 0
jne 0x1400c4c95
call fcn.1400be7e0
mov qword [0x14014c850], rax
test rax, rax
je 0x1400c4dd9
mov rcx, qword [0x14014c848]
cmp rbx, qword [rcx + 0x10]
jbe 0x1400c4cbb
call fcn.1400be7e0
mov rcx, qword [0x14014c848]
mov qword [rcx + 0x18], rax
test rax, rax
je 0x1400c4dd9
mov r15, qword [rcx + 8]
mov qword [rsp + 0x50], r15
mov qword [0x14014c840], r15
mov rax, rbx
and eax, 7
mov rdx, rbx
je 0x1400c4cdd
sub rdx, rax
add rdx, 8
lea rax, [r15 + rdx]
mov qword [rcx + 8], rax
sub qword [rcx + 0x10], rdx
test r15, r15
je 0x1400c4dd9
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x1400c4d1e
mov r8, rsi
lea rdx, str.Could_not_commit_memory_for_DllImport.
jmp 0x1400c5634
xor eax, eax
mov ebx, eax
test edi, edi
jle 0x1400c4d71
mov r14, rsi
nop dword [rax]
mov r8d, 2
mov rdx, r14
lea rcx, [rbp + 0x494]
call fcn.1400eadcc
xor edx, edx
lea r8d, [rdx + 0x10]
lea rcx, [rbp + 0x490]
call fcn.1400ea654
mov ecx, ebx
shr rcx, 1
mov byte [rcx + r15], al
add ebx, 2
add r14, 4
cmp ebx, edi
jl 0x1400c4d30
mov r14d, 0xffdf
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400c4d80
inc rax
lea rbx, [rsi + rax*2]
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call fcn.1400be6b0
mov rsi, rax
mov byte [rbp + 0x480], 0
movzx ecx, word [rax]
test cx, cx
je 0x1400c4f1a
mov rdx, rax
nop dword [rax]
cmp cx, 0x20
je 0x1400c4dd0
cmp cx, 9
jne 0x1400c4ec2
add rdx, 2
movzx ecx, word [rdx]
jmp 0x1400c4dc0
mov r8, rsi
lea rdx, str.Out_of_memory.
jmp 0x1400c5634
mov rcx, rsi
nop dword [rax + rax]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400c4dff
cmp ax, 9
jne 0x1400c4e05
add rcx, 2
jmp 0x1400c4df0
test ax, ax
je 0x1400c4e51
cmp ax, 0x2d
je 0x1400c4e16
cmp ax, 0x2b
jne 0x1400c4e20
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400c4e51
movzx eax, word [rcx + 2]
sub ax, 0x58
test r14w, ax
jne 0x1400c4e51
movzx ecx, word [rcx + 4]
call fcn.1400ea440
test eax, eax
je 0x1400c4e51
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rsi
call fcn.1400ea4ec
jmp 0x1400c4e59
mov rcx, rsi
call fcn.1400e9f38
mov r15, rax
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1400c4d71
mov edx, edi
mov rcx, rsi
call fcn.1400e17e8
mov rbx, rax
test rax, rax
je 0x1400c4e9b
xor eax, eax
mov word [rbx], ax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x1400c4e98
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov word [rbx], di
xor edx, edx
mov rcx, rsi
call fcn.140070ee0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1400c4d71
mov r8, rsi
lea rdx, str.Call_to_nonexistent_function.
jmp 0x1400c5634
test cx, cx
je 0x1400c4f0e
cmp cx, 0x2d
je 0x1400c4ed3
cmp cx, 0x2b
jne 0x1400c4edd
lea rax, [rdx + 2]
mov rdx, rax
movzx ecx, word [rax]
cmp cx, 0x30
jne 0x1400c4f0e
movzx eax, word [rdx + 2]
sub ax, 0x58
test r14w, ax
jne 0x1400c4f0e
movzx ecx, word [rdx + 4]
call fcn.1400ea440
test eax, eax
je 0x1400c4f0e
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rsi
call fcn.1400ea654
jmp 0x1400c4f16
mov rcx, rsi
call fcn.1400e9e88
test eax, eax
je 0x1400c4f1f
xor eax, eax
mov r13d, eax
cmp word [rsi], 0
je 0x1400c4f80
mov edi, 0x2c
mov edx, edi
mov rcx, rbx
call fcn.1400e1554
test rax, rax
je 0x1400c4f68
nop dword [rax]
mov edx, edi
mov rcx, rbx
call fcn.1400e1554
mov rbx, rax
test rax, rax
je 0x1400c4f56
add rbx, 2
inc r13d
mov edx, edi
mov rcx, rbx
call fcn.1400e1554
test rax, rax
jne 0x1400c4f40
cmp word [rsi], 0
je 0x1400c4f80
cmp r13d, 1
jge 0x1400c4f80
lea rdx, str.Parameter_3_required
jmp 0x1400c5631
mov r9, qword [0x14014c850]
test r9, r9
jne 0x1400c4fa4
call fcn.1400be7e0
mov r9, rax
mov qword [0x14014c850], rax
test rax, rax
je 0x1400c51c0
mov r8, qword [0x14014c848]
cmp qword [r8 + 0x10], 0x10
jae 0x1400c4fd2
call fcn.1400be7e0
mov r8, qword [0x14014c848]
mov qword [r8 + 0x18], rax
test rax, rax
je 0x1400c51c0
mov r9, qword [0x14014c850]
mov r15, qword [r8 + 8]
mov qword [0x14014c840], r15
lea rax, [r15 + 0x10]
mov qword [r8 + 8], rax
add qword [r8 + 0x10], 0xfffffffffffffff0
test r15, r15
je 0x1400c51c0
mov qword [r15], 0
mov qword [r15 + 8], 0
test r13b, 1
jne 0x1400c5020
mov dword [r15 + 8], 2
xor r12d, r12d
jmp 0x1400c50b8
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400c502f
cmp ax, 9
jne 0x1400c5035
add rbx, 2
jmp 0x1400c5020
mov qword [rsp + 0x68], rbx
xor r12d, r12d
mov qword [rsp + 0x70], r12
lea r8d, [r12 + 5]
lea rdx, str.CDecl
mov rcx, rbx
call fcn.1400e5e84
test eax, eax
jne 0x1400c5089
add rbx, 0xa
nop
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400c506f
cmp ax, 9
jne 0x1400c5075
add rbx, 2
jmp 0x1400c5060
mov qword [rsp + 0x68], rbx
test ax, ax
jne 0x1400c5089
mov dword [r15 + 8], 2
jmp 0x1400c50a7
mov rdx, r15
lea rcx, [rsp + 0x68]
call fcn.140070790
cmp dword [r15 + 8], r12d
je 0x1400c5623
mov byte [rbp + 0x480], 1
dec r13d
mov r9, qword [0x14014c850]
mov r8, qword [0x14014c848]
mov eax, r13d
cdq
sub eax, edx
sar eax, 1
movsxd rdi, eax
je 0x1400c51d3
mov rbx, rdi
shl rbx, 4
lea rcx, [rbx - 1]
cmp rcx, 0xffff
ja 0x1400c5138
test r9, r9
jne 0x1400c50fd
call fcn.1400be7e0
mov r9, rax
mov qword [0x14014c850], rax
mov r8, qword [0x14014c848]
test rax, rax
je 0x1400c5138
cmp rbx, qword [r8 + 0x10]
jbe 0x1400c511f
call fcn.1400be7e0
mov r8, qword [0x14014c848]
mov qword [r8 + 0x18], rax
mov r9, qword [0x14014c850]
test rax, rax
je 0x1400c5138
mov r14, qword [r8 + 8]
mov qword [0x14014c840], r14
lea rax, [rbx + r14]
mov qword [r8 + 8], rax
sub qword [r8 + 0x10], rbx
jmp 0x1400c513b
mov r14, r12
mov qword [rsp + 0x48], r14
mov rbx, rdi
shl rbx, 4
lea rax, [rbx - 1]
cmp rax, 0xffff
ja 0x1400c51ae
test r9, r9
jne 0x1400c5173
call fcn.1400be7e0
mov r9, rax
mov qword [0x14014c850], rax
mov r8, qword [0x14014c848]
test rax, rax
je 0x1400c51ae
cmp rbx, qword [r8 + 0x10]
jbe 0x1400c5195
call fcn.1400be7e0
mov r8, qword [0x14014c848]
mov qword [r8 + 0x18], rax
mov r9, qword [0x14014c850]
test rax, rax
je 0x1400c51ae
mov rcx, qword [r8 + 8]
mov qword [0x14014c840], rcx
lea rax, [rbx + rcx]
mov qword [r8 + 8], rax
sub qword [r8 + 0x10], rbx
jmp 0x1400c51b1
mov rcx, r12
mov qword [rsp + 0x40], rcx
test r14, r14
je 0x1400c51c0
test rcx, rcx
jne 0x1400c51dd
lea r8, [0x14010d28c]
lea rdx, str.Out_of_memory.
jmp 0x1400c5634
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r12
lea edi, [rdi*8]
movsxd rbx, edi
lea rax, [rbx - 1]
cmp rax, 0xffff
ja 0x1400c5249
test r9, r9
jne 0x1400c5210
call fcn.1400be7e0
mov qword [0x14014c850], rax
test rax, rax
je 0x1400c5249
mov r8, qword [0x14014c848]
cmp rbx, qword [r8 + 0x10]
jbe 0x1400c522b
call fcn.1400be7e0
mov r8, qword [0x14014c848]
mov qword [r8 + 0x18], rax
test rax, rax
je 0x1400c5249
mov r14, qword [r8 + 8]
mov qword [rsp + 0x58], r14
mov qword [0x14014c840], r14
lea rax, [rbx + r14]
mov qword [r8 + 8], rax
sub qword [r8 + 0x10], rbx
jmp 0x1400c5251
mov r14, r12
mov qword [rsp + 0x58], r12
test edi, edi
je 0x1400c526f
test r14, r14
je 0x1400c51c0
test edi, edi
je 0x1400c526f
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.1400e1940
mov ebx, r12d
mov dword [rbp + 0x490], ebx
cmp r13d, 1
jle 0x1400c55d4
mov qword [rbp - 0x80], r12
mov r12, r14
mov r14, qword [rsp + 0x48]
nop
mov edx, 0x2c
mov rcx, rsi
call fcn.1400e1554
mov rdi, rax
xor eax, eax
mov word [rdi], ax
add rdi, 2
mov qword [rsp + 0x78], rsi
mov rdx, r14
lea rcx, [rsp + 0x78]
call fcn.140070790
mov eax, dword [r14 + 8]
mov edx, eax
test eax, eax
je 0x1400c5623
sub edx, 1
je 0x1400c54a4
sub edx, 5
je 0x1400c547e
sub edx, 1
je 0x1400c547e
cmp edx, 1
je 0x1400c53fb
cmp byte [r14 + 0xd], 0
je 0x1400c5383
cmp eax, 5
jne 0x1400c5383
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400c5313
cmp ax, 9
jne 0x1400c5319
add rcx, 2
jmp 0x1400c5304
test ax, ax
je 0x1400c5369
cmp ax, 0x2d
je 0x1400c532a
cmp ax, 0x2b
jne 0x1400c5334
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400c5369
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400c5369
movzx ecx, word [rcx + 4]
call fcn.1400ea440
test eax, eax
je 0x1400c5369
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400ea4ec
jmp 0x1400c5371
mov rcx, rdi
call fcn.1400e9f38
test rax, rax
jne 0x1400c5383
mov rcx, rdi
call fcn.140052660
jmp 0x1400c5586
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400c5395
cmp ax, 9
jne 0x1400c539b
add rcx, 2
jmp 0x1400c5386
test ax, ax
je 0x1400c53ee
cmp ax, 0x2d
je 0x1400c53ac
cmp ax, 0x2b
jne 0x1400c53b6
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400c53ee
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400c53ee
movzx ecx, word [rcx + 4]
call fcn.1400ea440
test eax, eax
je 0x1400c53ee
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400ea4ec
jmp 0x1400c5586
mov rcx, rdi
call fcn.1400e9f38
jmp 0x1400c5586
mov rcx, rdi
nop
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400c540f
cmp ax, 9
jne 0x1400c5415
add rcx, 2
jmp 0x1400c5400
test ax, ax
je 0x1400c5465
cmp ax, 0x2d
je 0x1400c5426
cmp ax, 0x2b
jne 0x1400c5430
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400c5465
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400c5465
movzx ecx, word [rcx + 4]
call fcn.1400ea440
test eax, eax
je 0x1400c5465
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400ea4ec
jmp 0x1400c546d
mov rcx, rdi
call fcn.1400e9f38
test rax, rax
jne 0x1400c5623
mov qword [r14], rdi
jmp 0x1400c5589
mov rcx, rdi
call fcn.140029270
movsd qword [r14], xmm0
cmp dword [r14 + 8], 6
jne 0x1400c5589
cvtsd2ss xmm0, xmm0
movss dword [r14], xmm0
jmp 0x1400c5589
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400c54b6
cmp ax, 9
jne 0x1400c54bc
add rcx, 2
jmp 0x1400c54a7
test ax, ax
je 0x1400c550c
cmp ax, 0x2d
je 0x1400c54cd
cmp ax, 0x2b
jne 0x1400c54d7
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400c550c
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400c550c
movzx ecx, word [rcx + 4]
call fcn.1400ea440
test eax, eax
je 0x1400c550c
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400ea4ec
jmp 0x1400c5514
mov rcx, rdi
call fcn.1400e9f38
test rax, rax
jne 0x1400c5623
lea edx, [rax + 0x2c]
mov rcx, rdi
call fcn.1400e1554
mov rsi, rax
test rax, rax
je 0x1400c5535
xor eax, eax
mov word [rsi], ax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400dfa9c
mov rbx, rax
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rbx + 8], rax
mov byte [rbx + 0x10], al
lea rax, vtable.CStringCharFromWChar.0
mov qword [rbx], rax
mov rdx, rbx
mov rcx, rdi
call fcn.1400be8b0
nop
mov qword [r12], rbx
test rsi, rsi
je 0x1400c5577
mov eax, 0x2c
mov word [rsi], ax
mov rcx, qword [r12]
call fcn.140084420
mov ebx, dword [rbp + 0x490]
mov qword [r14], rax
mov edx, 0x2c
mov rcx, rdi
call fcn.1400e1554
mov rsi, rax
test rax, rax
je 0x1400c55a7
xor eax, eax
mov word [rsi], ax
add rsi, 2
inc ebx
mov dword [rbp + 0x490], ebx
add r14, 0x10
add r12, 8
mov eax, dword [rbp + 0x498]
add eax, 2
mov dword [rbp + 0x498], eax
cmp eax, r13d
jl 0x1400c5290
xor r12d, r12d
jmp 0x1400c55db
mov rdi, qword [rbp + 0x480]
cmp byte [rbp + 0x480], 0
je 0x1400c55ed
test r13d, r13d
je 0x1400c55ed
mov word [rdi], r12w
mov rax, qword [rsp + 0x50]
mov rcx, qword [rbp - 0x78]
mov qword [rcx + 0x28], rax
mov dword [rcx + 0x20], ebx
mov qword [rcx + 0x38], r15
mov rax, qword [rsp + 0x58]
mov qword [rcx + 0x48], rax
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x40]
mov qword [rcx + 0x18], rax
mov eax, 3
jmp 0x1400c5640
mov eax, 4
jmp 0x1400c5640
lea rdx, str.Parameter_2_required
mov r8, r12
lea rcx, [0x14014d8e0]
call fcn.1400508c0
add rsp, 0x538
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret