Function at 0x1400d3740
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 r15, rdx
mov rbx, rcx
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400d3775
cmp ax, 9
jne 0x1400d377b
add rbx, 2
jmp 0x1400d3766
mov r14d, 0x2c
mov edx, r14d
call fcn.1400f0a4c
mov rdi, rax
mov rsi, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1400d4a4e
cmp word [rax], 0
je 0x1400d4a4e
add rdi, 2
mov edx, r14d
mov rcx, rbx
call fcn.1400f0a4c
xor r12d, r12d
test rax, rax
je 0x1400d37cd
mov edx, r14d
mov rcx, rbx
call fcn.1400f0a4c
mov word [rax], r12w
movzx eax, word [rdi]
test ax, ax
je 0x1400d381b
mov rdx, rdi
cmp ax, 0x20
je 0x1400d37e4
cmp ax, 9
jne 0x1400d37ed
add rdx, 2
movzx eax, word [rdx]
jmp 0x1400d37d8
mov rax, rdx
sub rax, rdi
cmp rax, 2
jb 0x1400d381b
mov r8, 0xffffffffffffffff
lea r8, [r8 + 1]
cmp word [rdx + r8*2], r12w
jne 0x1400d3800
lea r8, [r8*2 + 2]
mov rcx, rdi
call fcn.1400f1320
mov r8, 0xffffffffffffffff
inc r8
cmp word [rbx + r8*2], r12w
jne 0x1400d3822
lea r9, [rsp + 0x60]
mov rdx, rbx
lea rcx, [0x140163cc0]
call fcn.14004e340
test rax, rax
je 0x1400d3854
mov r8, rbx
lea rdx, str.Duplicate_function_definition.
jmp 0x1400d4a58
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rbx + r8*2], r12w
jne 0x1400d3860
mov qword [rsp + 0x28], r12
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov rdx, rbx
lea rcx, [0x140163cc0]
call fcn.14004fbf0
mov qword [rbp - 0x78], rax
test rax, rax
je 0x1400d4a64
lea rcx, [0x140083790]
mov qword [rax + 0x10], rcx
mov byte [rax + 0x79], 1
mov dword [rax + 0x24], r12d
mov rax, rdi
sub rax, r15
sar rax, 1
mov r14d, 0x4001
sub r14, rax
mov qword [rsp + 0x48], r14
lea rdx, str._A_ScriptDir_
mov rcx, rdi
call fcn.1400d0d80
mov r13d, 1
mov dword [rbp + 0x498], r13d
test rax, rax
je 0x1400d392b
mov rcx, qword [0x140164878]
lea r8, [rbp - 0x70]
sub r8, rcx
nop
movzx eax, word [rcx]
mov word [rcx + r8], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400d38f0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_ScriptDir_
mov rcx, rdi
call fcn.1400d11c0
lea rdx, str._A_AppData_
mov rcx, rdi
call fcn.1400d0d80
test rax, rax
je 0x1400d3979
lea rdx, str.A_AppData
lea rcx, [rbp - 0x70]
call fcn.14007f030
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AppData_
mov rcx, rdi
call fcn.1400d11c0
lea rdx, str._A_AppDataCommon_
mov rcx, rdi
call fcn.1400d0d80
test rax, rax
je 0x1400d3bf8
mov edx, 2
lea ecx, [rdx + 0x3f]
call fcn.1400fc354
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 0x1400d39c8
mov word [rbp + 0x1a0], r12w
mov rcx, r12
nop dword [rax + rax]
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400d39d0
mov r15d, r13d
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rdi + rbx*2], r12w
jne 0x1400d39f0
mov r13, r12
xor edx, edx
mov qword [rsp + 0x50], rdx
cmp word [rdi], dx
je 0x1400d3beb
lea rax, [rbp - 0x70]
mov rsi, 0xffffffffffffffff
nop dword [rax + rax]
inc rsi
cmp word [rax + rsi*2], dx
jne 0x1400d3a20
lea ecx, [rsi - 0x11]
mov dword [rbp + 0x490], ecx
cmp r14, 0xffffffffffffffff
je 0x1400d3a57
mov eax, r14d
sub eax, ebx
sub eax, r15d
jns 0x1400d3a47
mov r15d, edx
jmp 0x1400d3a57
test ecx, ecx
jle 0x1400d3a59
cdq
idiv ecx
cmp eax, r15d
cmovb r15d, eax
xor edx, edx
test ecx, ecx
je 0x1400d3ea3
cmp rbx, 0x1388
jb 0x1400d3ea3
mov dword [rbp + 0x480], edx
mov r14, rdi
mov qword [rsp + 0x58], rdi
test r15d, r15d
je 0x1400d3f23
nop dword [rax]
nop word [rax + rax]
lea rdx, str._A_AppDataCommon_
mov rcx, r14
call fcn.1400d0d80
mov rcx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1400d3b8e
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 + rsi]
cmp r8, qword [rsp + 0x50]
jb 0x1400d3b36
mov rax, rcx
sub rax, rdi
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.1400d15f0
mov qword [rsp + 0x50], rax
lea rdx, [rax + rax]
mov rcx, r13
call fcn.1400f75dc
test rax, rax
je 0x1400d3bd1
mov r13, rax
mov rax, qword [rsp + 0x58]
test r14, r14
je 0x1400d3b57
lea rcx, [r12*2]
add rcx, r13
lea r8, [r14 + r14]
mov rdx, rax
call fcn.1400f1320
mov r12, qword [rsp + 0x78]
test rsi, rsi
je 0x1400d3b77
lea rcx, [r12*2]
add rcx, r13
lea r8, [rsi + rsi]
lea rdx, [rbp - 0x70]
call fcn.1400f1320
add r12, rsi
mov r14, qword [rsp + 0x68]
add r14, 0x22
mov qword [rsp + 0x58], r14
test r15d, r15d
jne 0x1400d3a90
cmp dword [rbp + 0x480], 0
je 0x1400d3bde
mov rax, r14
sub rax, rdi
sar rax, 1
sub rbx, rax
je 0x1400d3e83
lea rsi, [rbx + r12]
cmp rsi, qword [rsp + 0x50]
jb 0x1400d3e69
lea rdx, [rsi*2 + 2]
mov rcx, r13
call fcn.1400f75dc
test rax, rax
jne 0x1400d3e66
test r13, r13
je 0x1400d3bde
mov rcx, r13
call fcn.1400f75c8
mov r14, qword [rsp + 0x48]
xor r12d, r12d
mov rsi, qword [rsp + 0x40]
mov r13d, 1
mov r15, qword [rbp + 0x488]
lea rdx, str._A_AhkPath_
mov rcx, rdi
call fcn.1400d0d80
test rax, rax
je 0x1400d3c70
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, r12
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400d3c30
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AhkPath_
mov rcx, rdi
call fcn.1400d11c0
lea rdx, str._A_AhkDir_
mov rcx, rdi
call fcn.1400d0d80
mov ebx, 0x5c
test rax, rax
je 0x1400d3d04
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.1400f0974
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.1401020c4
mov word [rbp + rbx*2 - 0x70], r12w
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_AhkDir_
mov rcx, rdi
call fcn.1400d11c0
mov ebx, 0x5c
lea rdx, str._A_DllDir_
mov rcx, rdi
call fcn.1400d0d80
test rax, rax
je 0x1400d3db0
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, qword [0x140160808]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400d3d4f
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.1400f0974
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.1401020c4
mov word [rbp + rbx*2 - 0x70], r12w
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_DllDir_
mov rcx, rdi
call fcn.1400d11c0
lea rdx, str._A_DllPath_
mov rcx, rdi
call fcn.1400d0d80
test rax, rax
je 0x1400d3e41
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, qword [0x140160808]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, eax
test rax, rax
jne 0x1400d3dfe
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, r12
movzx eax, word [rbp + rcx + 0x1a0]
mov word [rbp + rcx - 0x70], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400d3e01
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str._A_DllPath_
mov rcx, rdi
call fcn.1400d11c0
mov edx, 0x25
mov rcx, rdi
call fcn.1400f0a4c
test rax, rax
je 0x1400d3f2d
mov r8, rdi
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 0x1400d4a58
mov r13, rax
lea rcx, [r12*2]
add rcx, r13
lea r8, [rbx + rbx]
mov rdx, r14
call fcn.1400f1320
mov r12, rsi
xor eax, eax
mov word [r13 + r12*2], ax
lea r8, [r12*2 + 2]
mov rdx, r13
mov rcx, rdi
call fcn.1400f1320
jmp 0x1400d3bd6
mov r12, rdi
test r15d, r15d
je 0x1400d3be3
nop
lea rdx, str._A_AppDataCommon_
mov rcx, r12
call fcn.1400d0d80
mov r14, rax
test rax, rax
je 0x1400d3bde
lea r13, [rsi + rsi]
lea r12, [rax + r13]
cmp dword [rbp + 0x490], 0
je 0x1400d3eff
mov rcx, rax
sub rcx, rdi
sar rcx, 1
mov r8, rbx
sub r8, rcx
lea r8, [r8*2 - 0x20]
lea rdx, [rax + 0x22]
mov rcx, r12
call fcn.1400f1320
mov r8, r13
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.1400f1320
movsxd rax, dword [rbp + 0x490]
add rbx, rax
add r15d, 0xffffffff
jne 0x1400d3eb0
jmp 0x1400d3bde
mov r14, qword [rsp + 0x48]
jmp 0x1400d3be6
mov ebx, 0x2c
mov edx, ebx
mov rcx, rdi
call fcn.1400f0a4c
test rax, rax
je 0x1400d3f4f
mov edx, ebx
mov rcx, rdi
call fcn.1400f0a4c
mov word [rax], r12w
mov qword [rsp + 0x20], r12
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.140086c00
mov r14d, 0xffdf
test rax, rax
je 0x1400d41e8
mov r9, 0xffffffffffffffff
nop word [rax + rax]
inc r9
cmp word [rdi + r9*2], 0
jne 0x1400d3f90
mov dword [rsp + 0x38], SafeArrayAllocDescriptor
lea rcx, [rbp + 0x3b0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
mov r8, rdi
mov rdx, qword [rbp + 0x490]
mov rcx, rax
call fcn.1400ed3f0
test eax, eax
js 0x1400d41e8
movsxd rcx, dword [rbp + 0x3b0]
inc rcx
lea rcx, [rsi + rcx*2]
test rcx, rcx
je 0x1400d41e8
mov qword [rbp + 0x490], 0x780030
mov edx, 0x3a
mov rcx, rdi
call fcn.1400f0a4c
test rax, rax
je 0x1400d4018
mov edx, 0x3a
mov rcx, rdi
call fcn.1400f0a4c
lea rdi, [rax + 2]
mov edx, 0x3a
mov rcx, rdi
call fcn.1400f0a4c
test rax, rax
je 0x1400d4042
mov edx, 0x3a
mov rcx, rdi
call fcn.1400f0a4c
mov rsi, rax
sub rsi, rdi
sar rsi, 1
jmp 0x1400d405c
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x1400d4050
mov esi, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
movsxd rbx, eax
lea rax, [rbx - 1]
cmp rax, 0xffff
ja 0x1400d41d9
cmp qword [0x140162c28], 0
jne 0x1400d4095
call fcn.1400cd7d0
mov qword [0x140162c28], rax
test rax, rax
je 0x1400d41d9
mov rcx, qword [0x140162c20]
cmp rbx, qword [rcx + 0x10]
jbe 0x1400d40bb
call fcn.1400cd7d0
mov rcx, qword [0x140162c20]
mov qword [rcx + 0x18], rax
test rax, rax
je 0x1400d41d9
mov r12, qword [rcx + 8]
mov qword [rsp + 0x50], r12
mov qword [0x140162c18], r12
mov rax, rbx
and eax, 7
mov rdx, rbx
je 0x1400d40dd
sub rdx, rax
add rdx, 8
lea rax, [r12 + rdx]
mov qword [rcx + 8], rax
sub qword [rcx + 0x10], rdx
test r12, r12
je 0x1400d41d9
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x1400d411e
mov r8, rdi
lea rdx, str.Could_not_commit_memory_for_DllImport.
jmp 0x1400d4a58
xor eax, eax
mov ebx, eax
test esi, esi
jle 0x1400d4171
mov r14, rdi
nop dword [rax]
mov r8d, 2
mov rdx, r14
lea rcx, [rbp + 0x494]
call fcn.1401020c4
xor edx, edx
lea r8d, [rdx + 0x10]
lea rcx, [rbp + 0x490]
call fcn.1400f7190
mov ecx, ebx
shr rcx, 1
mov byte [rcx + r12], al
add ebx, 2
add r14, 4
cmp ebx, esi
jl 0x1400d4130
mov r14d, 0xffdf
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x1400d4180
inc rax
lea rbx, [rdi + rax*2]
mov rdx, 0xffffffffffffffff
mov rcx, rbx
call fcn.1400cd6a0
mov rsi, rax
mov byte [rbp + 0x480], 0
movzx ecx, word [rax]
test cx, cx
je 0x1400d4324
mov rdx, rax
nop dword [rax]
cmp cx, 0x20
je 0x1400d41d0
cmp cx, 9
jne 0x1400d42c7
add rdx, 2
movzx ecx, word [rdx]
jmp 0x1400d41c0
mov r8, rdi
lea rdx, str.Out_of_memory.
jmp 0x1400d4a58
mov rcx, rdi
nop dword [rax + rax]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400d41ff
cmp ax, 9
jne 0x1400d4205
add rcx, 2
jmp 0x1400d41f0
test ax, ax
je 0x1400d4251
cmp ax, 0x2d
je 0x1400d4216
cmp ax, 0x2b
jne 0x1400d4220
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400d4251
movzx eax, word [rcx + 2]
sub ax, 0x58
test r14w, ax
jne 0x1400d4251
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x1400d4251
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400f6ec0
jmp 0x1400d4259
mov rcx, rdi
call fcn.1400f745c
mov r12, rax
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1400d4171
mov esi, 0x5c
mov edx, esi
mov rcx, rdi
call fcn.1400f0974
mov rbx, rax
test rax, rax
je 0x1400d42a0
xor eax, eax
mov word [rbx], ax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x1400d429d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov word [rbx], si
xor edx, edx
mov rcx, rdi
call fcn.140081cd0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1400d4171
mov r8, rdi
lea rdx, str.Call_to_nonexistent_function.
jmp 0x1400d4a58
test cx, cx
je 0x1400d4313
cmp cx, 0x2d
je 0x1400d42d8
cmp cx, 0x2b
jne 0x1400d42e2
lea rax, [rdx + 2]
mov rdx, rax
movzx ecx, word [rax]
cmp cx, 0x30
jne 0x1400d4313
movzx eax, word [rdx + 2]
sub ax, 0x58
test r14w, ax
jne 0x1400d4313
movzx ecx, word [rdx + 4]
call fcn.1400f57c0
test eax, eax
je 0x1400d4313
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rsi
call fcn.1400f7190
jmp 0x1400d431b
mov rcx, rsi
call fcn.1400f73ac
test eax, eax
jne 0x1400d4324
xor r12d, r12d
jmp 0x1400d432a
xor r12d, r12d
mov r13d, r12d
cmp word [rsi], 0
je 0x1400d4384
mov edi, 0x2c
mov edx, edi
mov rcx, rbx
call fcn.1400f0a4c
test rax, rax
je 0x1400d436c
mov edx, edi
mov rcx, rbx
call fcn.1400f0a4c
mov rbx, rax
test rax, rax
je 0x1400d435a
add rbx, 2
inc r13d
mov edx, edi
mov rcx, rbx
call fcn.1400f0a4c
test rax, rax
jne 0x1400d4344
cmp word [rsi], 0
je 0x1400d4384
cmp r13d, 1
jge 0x1400d4384
lea rdx, str.Parameter_3_required
jmp 0x1400d4a55
mov r9, qword [0x140162c28]
test r9, r9
jne 0x1400d43a8
call fcn.1400cd7d0
mov r9, rax
mov qword [0x140162c28], rax
test rax, rax
je 0x1400d45c1
mov r8, qword [0x140162c20]
cmp qword [r8 + 0x10], 0x10
jae 0x1400d43d6
call fcn.1400cd7d0
mov r8, qword [0x140162c20]
mov qword [r8 + 0x18], rax
test rax, rax
je 0x1400d45c1
mov r9, qword [0x140162c28]
mov r15, qword [r8 + 8]
mov qword [0x140162c18], r15
lea rax, [r15 + 0x10]
mov qword [r8 + 8], rax
add qword [r8 + 0x10], 0xfffffffffffffff0
test r15, r15
je 0x1400d45c1
mov qword [r15], 0
mov qword [r15 + 8], 0
test r13b, 1
jne 0x1400d4420
mov dword [r15 + 8], 2
jmp 0x1400d44b9
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400d442f
cmp ax, 9
jne 0x1400d4435
add rbx, 2
jmp 0x1400d4420
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], r12
mov r8d, 5
lea rdx, str.CDecl
mov rcx, rbx
call fcn.1400f7630
test eax, eax
jne 0x1400d4489
add rbx, 0xa
nop dword [rax]
movzx eax, word [rbx]
cmp ax, 0x20
je 0x1400d446f
cmp ax, 9
jne 0x1400d4475
add rbx, 2
jmp 0x1400d4460
mov qword [rsp + 0x68], rbx
test ax, ax
jne 0x1400d4489
mov dword [r15 + 8], 2
jmp 0x1400d44a8
mov rdx, r15
lea rcx, [rsp + 0x68]
call fcn.140081580
cmp dword [r15 + 8], 0
je 0x1400d4a47
mov byte [rbp + 0x480], 1
dec r13d
mov r9, qword [0x140162c28]
mov r8, qword [0x140162c20]
mov eax, r13d
cdq
sub eax, edx
sar eax, 1
movsxd rdi, eax
je 0x1400d45d4
mov rbx, rdi
shl rbx, 4
lea rcx, [rbx - 1]
cmp rcx, 0xffff
ja 0x1400d4539
test r9, r9
jne 0x1400d44fe
call fcn.1400cd7d0
mov r9, rax
mov qword [0x140162c28], rax
mov r8, qword [0x140162c20]
test rax, rax
je 0x1400d4539
cmp rbx, qword [r8 + 0x10]
jbe 0x1400d4520
call fcn.1400cd7d0
mov r8, qword [0x140162c20]
mov qword [r8 + 0x18], rax
mov r9, qword [0x140162c28]
test rax, rax
je 0x1400d4539
mov r14, qword [r8 + 8]
mov qword [0x140162c18], r14
lea rax, [rbx + r14]
mov qword [r8 + 8], rax
sub qword [r8 + 0x10], rbx
jmp 0x1400d453c
mov r14, r12
mov qword [rsp + 0x48], r14
mov rbx, rdi
shl rbx, 4
lea rax, [rbx - 1]
cmp rax, 0xffff
ja 0x1400d45af
test r9, r9
jne 0x1400d4574
call fcn.1400cd7d0
mov r9, rax
mov qword [0x140162c28], rax
mov r8, qword [0x140162c20]
test rax, rax
je 0x1400d45af
cmp rbx, qword [r8 + 0x10]
jbe 0x1400d4596
call fcn.1400cd7d0
mov r8, qword [0x140162c20]
mov qword [r8 + 0x18], rax
mov r9, qword [0x140162c28]
test rax, rax
je 0x1400d45af
mov rcx, qword [r8 + 8]
mov qword [0x140162c18], rcx
lea rax, [rbx + rcx]
mov qword [r8 + 8], rax
sub qword [r8 + 0x10], rbx
jmp 0x1400d45b2
mov rcx, r12
mov qword [rsp + 0x40], rcx
test r14, r14
je 0x1400d45c1
test rcx, rcx
jne 0x1400d45de
lea r8, [0x14012046c]
lea rdx, str.Out_of_memory.
jmp 0x1400d4a58
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 0x1400d464a
test r9, r9
jne 0x1400d4611
call fcn.1400cd7d0
mov qword [0x140162c28], rax
test rax, rax
je 0x1400d464a
mov r8, qword [0x140162c20]
cmp rbx, qword [r8 + 0x10]
jbe 0x1400d462c
call fcn.1400cd7d0
mov r8, qword [0x140162c20]
mov qword [r8 + 0x18], rax
test rax, rax
je 0x1400d464a
mov r14, qword [r8 + 8]
mov qword [rsp + 0x58], r14
mov qword [0x140162c18], r14
lea rax, [rbx + r14]
mov qword [r8 + 8], rax
sub qword [r8 + 0x10], rbx
jmp 0x1400d4652
mov r14, r12
mov qword [rsp + 0x58], r12
test edi, edi
je 0x1400d4670
test r14, r14
je 0x1400d45c1
test edi, edi
je 0x1400d4670
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.1400f1130
mov ebx, r12d
mov dword [rbp + 0x490], ebx
cmp r13d, 1
jle 0x1400d49f8
mov qword [rbp - 0x80], r12
mov r12, r14
mov r14, qword [rsp + 0x48]
nop
mov edx, 0x2c
mov rcx, rsi
call fcn.1400f0a4c
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.140081580
mov eax, dword [r14 + 8]
mov edx, eax
test eax, eax
je 0x1400d4a47
sub edx, 1
je 0x1400d48b4
sub edx, 5
je 0x1400d488e
sub edx, 1
je 0x1400d488e
cmp edx, 1
je 0x1400d480b
cmp byte [r14 + 0xd], 0
je 0x1400d4786
cmp eax, 5
jne 0x1400d4786
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400d4713
cmp ax, 9
jne 0x1400d4719
add rcx, 2
jmp 0x1400d4704
test ax, ax
je 0x1400d4769
cmp ax, 0x2d
je 0x1400d472a
cmp ax, 0x2b
jne 0x1400d4734
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400d4769
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400d4769
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x1400d4769
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400f6ec0
jmp 0x1400d4771
mov rcx, rdi
call fcn.1400f745c
test rax, rax
jne 0x1400d4786
mov rcx, rdi
call fcn.1400652b0
mov qword [r14], rax
jmp 0x1400d49ad
mov rcx, rdi
nop dword [rax]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400d479f
cmp ax, 9
jne 0x1400d47a5
add rcx, 2
jmp 0x1400d4790
test ax, ax
je 0x1400d47fb
cmp ax, 0x2d
je 0x1400d47b6
cmp ax, 0x2b
jne 0x1400d47c0
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400d47fb
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400d47fb
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x1400d47fb
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400f6ec0
mov qword [r14], rax
jmp 0x1400d49ad
mov rcx, rdi
call fcn.1400f745c
mov qword [r14], rax
jmp 0x1400d49ad
mov rcx, rdi
nop
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400d481f
cmp ax, 9
jne 0x1400d4825
add rcx, 2
jmp 0x1400d4810
test ax, ax
je 0x1400d4875
cmp ax, 0x2d
je 0x1400d4836
cmp ax, 0x2b
jne 0x1400d4840
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400d4875
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400d4875
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x1400d4875
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400f6ec0
jmp 0x1400d487d
mov rcx, rdi
call fcn.1400f745c
test rax, rax
jne 0x1400d4a47
mov qword [r14], rdi
jmp 0x1400d49ad
mov rcx, rdi
call fcn.1400320e0
movsd qword [r14], xmm0
cmp dword [r14 + 8], 6
jne 0x1400d49ad
cvtsd2ss xmm0, xmm0
movss dword [r14], xmm0
jmp 0x1400d49ad
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x1400d48c6
cmp ax, 9
jne 0x1400d48cc
add rcx, 2
jmp 0x1400d48b7
test ax, ax
je 0x1400d491c
cmp ax, 0x2d
je 0x1400d48dd
cmp ax, 0x2b
jne 0x1400d48e7
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x1400d491c
movzx eax, word [rcx + 2]
sub ax, 0x58
mov edx, 0xffdf
test dx, ax
jne 0x1400d491c
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x1400d491c
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rdi
call fcn.1400f6ec0
jmp 0x1400d4924
mov rcx, rdi
call fcn.1400f745c
test rax, rax
jne 0x1400d4a47
lea edx, [rax + 0x2c]
mov rcx, rdi
call fcn.1400f0a4c
mov rsi, rax
test rax, rax
je 0x1400d4945
xor eax, eax
mov word [rsi], ax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400eec64
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 r8d, 0xffffffff
mov rdx, rbx
mov rcx, rdi
call fcn.1400cdb30
nop
mov qword [r12], rbx
test rsi, rsi
je 0x1400d498d
mov eax, 0x2c
mov word [rsi], ax
mov rbx, qword [r12]
mov rcx, rbx
call fcn.14000eb30
mov byte [rbx + 0x10], 1
mov rax, qword [rbx + 8]
mov rcx, qword [rax]
mov qword [r14], rcx
mov ebx, dword [rbp + 0x490]
mov edx, 0x2c
mov rcx, rdi
call fcn.1400f0a4c
mov rsi, rax
test rax, rax
je 0x1400d49cb
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 0x1400d4690
xor r12d, r12d
jmp 0x1400d49ff
mov rdi, qword [rbp + 0x480]
cmp byte [rbp + 0x480], 0
je 0x1400d4a11
test r13d, r13d
je 0x1400d4a11
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 0x1400d4a64
mov eax, 4
jmp 0x1400d4a64
lea rdx, str.Parameter_2_required
mov r8, r15
lea rcx, [0x140163cc0]
call fcn.140063260
add rsp, 0x538
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret