Function at 0x140175930
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x178
mov r14, qword [rcx]
lea rax, [rcx + 0x158]
mov r11, rcx
movsxd r10, edx
imul r9, r10, 0x58
xor ebp, ebp
mov qword [rsp + 0xb8], rax
mov rax, qword [r14]
lea r12, [rcx + 0x340]
mov rdi, qword [r11 + 8]
add r12, r9
mov rsi, qword [r14 + 0x10]
add rdi, 8
mov qword [rsp + 0xb0], rax
lea r15d, [rbp + 1]
mov rbx, r8
mov qword [rsp + 0xc8], r14
movzx eax, byte [r12 + 0x2c]
mov edx, ebp
movsxd r8, dword [r11 + 0x54]
mov r13, qword [r12 + 0x48]
imul rcx, rax, 0x78
mov qword [rsp + 0xe0], rsi
add rdi, rcx
mov qword [rsp + 0x60], r12
mov qword [rsp + 0xc0], r13
mov r9d, dword [rdi + 0x48]
mov dword [rsp + 0x40], r9d
test r8, r8
jle 0x1401759f7
mov ecx, ebp
lea rax, [r11 + 0x58]
cmp dword [rax], r9d
je 0x140175add
inc edx
inc rcx
add rax, 4
cmp rcx, r8
jl 0x1401759e0
mov rax, rbp
not rax
mov ecx, r10d
and rax, rbx
mov qword [r12 + 0x50], rax
mov r15, qword [r11 + 0x28]
shr r15, cl
and r15d, 1
test byte [r13 + 0x28], 0x40
mov qword [rsp + 0x78], r15
je 0x140175a2e
test byte [r11 + 0x32], 0x20
mov dword [rsp + 0x5c], 1
je 0x140175a32
mov dword [rsp + 0x5c], ebp
mov rcx, rsi
call fcn.1401704c0
mov rcx, rsi
mov dword [rsp + 0x48], eax
mov ebx, eax
mov dword [r12 + 0x10], eax
mov dword [r12 + 0xc], eax
call fcn.1401704c0
mov dword [rsp + 0x98], eax
mov dword [r12 + 0x18], eax
cmp byte [r12 + 0x2c], bpl
jbe 0x140175a8d
test byte [rdi + 0x3c], 8
je 0x140175a8d
mov r9d, dword [r14 + 0x54]
xor r8d, r8d
inc r9d
mov dword [rsp + 0x20], ebp
mov dword [r14 + 0x54], r9d
mov rcx, rsi
mov dword [r12], r9d
lea edx, [r8 + 0x17]
call fcn.140167a30
mov r8d, dword [rdi + 0x40]
mov r9d, 0x200
test r8b, 4
je 0x140175aea
mov ebx, dword [rdi + 0x34]
xor r9d, r9d
mov eax, dword [rdi + 0x30]
mov r8d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [r9 + 0x11]
call fcn.140167a30
mov r9d, dword [rsp + 0x48]
mov r8d, ebx
mov edx, SafeArrayUnaccessData
mov dword [rsp + 0x20], ebp
mov rcx, rsi
call fcn.140167a30
mov byte [r12 + 0x2d], SafeArrayGetDim
jmp 0x140177079
mov ecx, edx
mov rax, r15
shl rax, cl
jmp 0x1401759fa
mov edx, dword [r13 + 0x28]
mov eax, 0x400
test eax, edx
je 0x140175cce
movzx r15d, word [r13 + 0x2c]
inc dword [r14 + 0x70]
mov ecx, dword [r14 + 0x44]
mov r8d, dword [r14 + 0x48]
lea edx, [r15 + 2]
mov dword [rsp + 0x1c8], r8d
mov dword [rsp + 0x70], edx
cmp edx, ecx
jg 0x140175b30
lea eax, [r8 + rdx]
sub ecx, edx
mov dword [r14 + 0x48], eax
mov dword [r14 + 0x44], ecx
jmp 0x140175b46
mov eax, dword [r14 + 0x54]
lea r8d, [rax + 1]
add eax, edx
mov dword [r14 + 0x54], eax
mov dword [rsp + 0x1c8], r8d
mov eax, dword [r12 + 0xc]
mov ebx, ebp
mov dword [rsp + 0x54], eax
test r15d, r15d
je 0x140175bcf
mov rsi, qword [rsp + 0x78]
lea ecx, [r8 + 2]
mov dword [rsp + 0x1d8], ecx
mov rdi, rbp
nop dword [rax]
mov rax, qword [r13 + 0x38]
mov rdx, qword [rdi + rax]
test rdx, rdx
je 0x140175bbc
test byte [rdx + 0x1a], 1
lea r8d, [rcx + rbx]
mov rcx, r14
je 0x140175ba9
mov dword [rsp + 0x28], r8d
mov r9d, ebx
mov r8, r12
mov dword [rsp + 0x20], esi
call fcn.14011bd70
mov ecx, dword [r12 + 0x10]
mov dword [rsp + 0x54], ecx
jmp 0x140175bb5
mov rdx, qword [rdx]
mov rdx, qword [rdx + 0x18]
call fcn.1401461e0
mov ecx, dword [rsp + 0x1d8]
inc ebx
add rdi, 8
cmp ebx, r15d
jl 0x140175b70
mov rsi, qword [rsp + 0xe0]
mov ebx, dword [rsp + 0x1c8]
mov edx, reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov r8d, dword [r13 + 0x18]
mov r9d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.140167a30
lea r9d, [rbx + 1]
mov dword [rsp + 0x20], ebp
mov r8d, r15d
mov edx, reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov rcx, rsi
call fcn.140167a30
cmp byte [r13 + 0x1c], bpl
mov eax, 0xfffffff5
mov r9d, dword [rsp + 0x54]
mov edi, 0xfffffffe
mov r8d, dword [rsp + 0x40]
cmovne edi, eax
mov eax, dword [rsp + 0x1c8]
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov rbx, qword [r13 + 0x20]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140167a30
mov r9d, edi
mov r8, rbx
mov edx, eax
mov rcx, rsi
call fcn.140167d80
mov byte [r13 + 0x1c], bpl
mov ebx, ebp
test r15d, r15d
je 0x140175c86
cmp ebx, 0x10
jge 0x140175c86
movzx eax, word [r13 + 0x1e]
movzx ecx, bx
shr ax, cl
test al, 1
je 0x140175c7f
mov rdx, qword [r13 + 0x38]
mov rcx, r12
movsxd rax, ebx
mov rdx, qword [rdx + rax*8]
call fcn.14011f5b0
inc ebx
cmp ebx, r15d
jl 0x140175c58
mov eax, dword [rsp + 0x40]
mov rcx, r14
mov r11d, dword [rsp + 0x70]
mov r8d, r11d
mov ebx, dword [rsp + 0x1c8]
mov edx, ebx
mov dword [r12 + 0x30], eax
mov byte [r12 + 0x2d], 0x9a
mov eax, dword [rsi + 0x3c]
mov dword [r12 + 0x34], eax
call fcn.140145c80
cmp r11d, dword [r14 + 0x44]
jle 0x140175cc4
mov dword [r14 + 0x44], r11d
mov dword [r14 + 0x48], ebx
call fcn.140145a00
jmp 0x14017707e
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x140175d7b
mov rax, qword [r13 + 0x38]
xor r9d, r9d
mov r8, r12
mov rcx, r14
mov rdx, qword [rax]
inc dword [r14 + 0x54]
mov ebx, dword [r14 + 0x54]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r15d
call fcn.14011bd70
mov edi, eax
cmp eax, ebx
je 0x140175d19
mov edx, ebx
mov rcx, r14
call fcn.14015cda0
mov ebx, dword [r12 + 0x10]
mov r8d, edi
mov r9d, ebx
mov dword [rsp + 0x20], ebp
mov edx, 0x26
mov rcx, rsi
call fcn.140167a30
mov r8d, dword [rsp + 0x40]
mov r9d, ebx
mov edx, 0x49
mov dword [rsp + 0x20], edi
mov rcx, rsi
call fcn.140167a30
mov r8d, 1
mov edx, edi
mov rcx, r14
call fcn.140145c80
mov edx, dword [rsp + 0x40]
mov r9d, edi
mov r8d, 0xffffffff
call fcn.140145ed0
mov byte [r12 + 0x2d], 0x9f
jmp 0x14017707e
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x140175f70
mov dword [rsp + 0x1d8], 0x9f
mov r15, rbp
mov rcx, rbp
test dl, 0x20
je 0x140175db2
mov rax, qword [r13 + 0x38]
mov r8d, 8
mov rcx, qword [rax]
jmp 0x140175db5
mov r8, rbp
test dl, 0x10
je 0x140175dc2
mov rax, qword [r13 + 0x38]
mov r15, qword [r8 + rax]
mov rdi, qword [rsp + 0x78]
mov r12, rcx
test edi, edi
cmove r12, r15
cmove r15, rcx
test r15, r15
je 0x140175e4b
mov rbx, qword [r15]
lea r8, [rsp + 0x70]
mov rcx, r14
mov dword [rsp + 0x1c8], 0x413f4042
mov rdx, qword [rbx + 0x18]
call fcn.140147f70
movzx ecx, byte [rbx]
mov edi, eax
mov r9d, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
movzx edx, byte [rsp + rcx + 0x178]
mov rcx, rsi
call fcn.140167a30
mov r8d, 1
mov edx, edi
mov rcx, r14
call fcn.140145c80
mov edx, dword [rsp + 0x70]
call fcn.14015cda0
mov r13, qword [rsp + 0x60]
mov rdx, r15
mov rcx, r13
call fcn.14011f5b0
mov rdi, qword [rsp + 0x78]
jmp 0x140175e73
mov r8d, dword [rsp + 0x40]
test edi, edi
mov edx, 0x6d
mov dword [rsp + 0x20], ebp
mov eax, 0x6a
mov r9d, ebx
cmovne edx, eax
mov rcx, rsi
call fcn.140167a30
mov r13, qword [rsp + 0x60]
test r12, r12
je 0x140175ed7
mov rbx, qword [r12]
mov rcx, r14
inc dword [r14 + 0x54]
mov r15d, dword [r14 + 0x54]
mov r8d, r15d
mov rdx, qword [rbx + 0x18]
call fcn.1401461e0
movzx eax, byte [rbx]
sub al, 0x50
test al, 0xfd
je 0x140175eb7
lea ebx, [rdi*2 + 0x50]
mov rdx, r12
mov rcx, r13
mov dword [rsp + 0x1d8], ebx
call fcn.14011f5b0
jmp 0x140175eda
mov eax, edi
mov rdx, r12
xor eax, 1
mov rcx, r13
lea eax, [rax*2 + 0x51]
mov dword [rsp + 0x1d8], eax
call fcn.14011f5b0
jmp 0x140175eda
mov r15d, ebp
mov ecx, dword [rsi + 0x3c]
test edi, edi
mov edi, dword [rsp + 0x1d8]
mov r12d, dword [rsp + 0x40]
sete al
add al, 7
mov dword [r13 + 0x30], r12d
mov byte [r13 + 0x2d], al
mov dword [r13 + 0x34], ecx
cmp edi, 0x9f
je 0x140177081
inc dword [r14 + 0x54]
mov r8d, r12d
mov ebx, dword [r14 + 0x54]
mov edx, 0x68
mov r9d, ebx
mov dword [rsp + 0x20], ebp
mov rcx, rsi
call fcn.140167a30
mov r9d, ebx
mov r8d, 0xffffffff
mov edx, r12d
mov rcx, r14
call fcn.140145ed0
mov r9d, dword [rsp + 0x48]
mov r8d, r15d
mov edx, edi
mov dword [rsp + 0x20], ebx
mov rcx, rsi
call fcn.140167a30
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140177081
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x53
jmp 0x140177081
test r9d, edx
je 0x140176720
mov eax, dword [r12 + 8]
mov r15d, ebp
mov r10, qword [r13 + 0x20]
movzx edi, word [r13 + 0x18]
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x88], rbp
mov byte [rsp + 0x1c8], bpl
test byte [rax + 0x32], 1
mov byte [rsp + 0x44], bpl
mov byte [rsp + 0x1d8], bpl
mov qword [rsp + 0x90], r10
je 0x140175fe6
cmp byte [rax + 0x34], bpl
jle 0x140175fe6
mov r9d, 1
cmp word [r10 + 0x56], di
jbe 0x140175fec
mov byte [rsp + 0x44], r9b
mov r15d, r9d
jmp 0x140175fec
mov r9d, 1
movzx ebx, di
mov dword [rsp + 0x74], ebx
mov r8d, ebx
test dl, 0x20
je 0x140176011
mov rax, qword [r13 + 0x38]
inc r8d
mov r15d, r9d
mov rax, qword [rax + rbx*8]
mov qword [rsp + 0x80], rax
test dl, 0x10
je 0x1401760ca
mov rax, qword [r13 + 0x38]
mov edx, 0x100
mov ecx, r8d
mov r15d, r9d
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x88], rax
movzx ecx, di
test word [rax + 0x1c], dx
je 0x14017608c
mov r9d, dword [r14 + 0x54]
mov r8d, ebp
inc r9d
mov dword [rsp + 0x20], ebp
mov dword [r14 + 0x54], r9d
mov edx, reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov dword [r12 + 0x24], r9d
mov rax, qword [r10 + 0x38]
cmp byte [rcx + rax], 1
mov rcx, rsi
sete r8b
xor r8d, dword [rsp + 0x78]
call fcn.140167a30
mov eax, dword [rsi + 0x3c]
mov r9d, 1
mov r10, qword [rsp + 0x90]
mov dword [r12 + 0x28], eax
movzx ecx, di
cmp qword [rsp + 0x80], rbp
jne 0x1401760ca
mov rax, qword [r10 + 8]
movzx ecx, word [rax + rcx*2]
test cx, cx
js 0x1401760ca
mov rax, qword [r10 + 0x18]
movsx rcx, cx
mov rdx, qword [rax + 8]
lea rax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x44]
add rax, rax
movzx ecx, cl
cmp byte [rdx + rax*8 + 0x28], bpl
cmove ecx, r9d
mov dword [rsp + 0x44], ecx
mov r9d, r15d
lea rax, [rsp + 0x68]
mov r15, qword [rsp + 0x78]
mov rdx, r12
mov r8d, r15d
mov qword [rsp + 0x20], rax
mov rcx, r14
call fcn.14011b460
mov r11, qword [rsp + 0x68]
mov r9d, eax
movzx r8d, di
mov dword [rsp + 0x50], eax
mov qword [rsp + 0xa8], r8
test r11, r11
je 0x140176113
movzx ecx, byte [r8 + r11]
mov byte [rsp + 0x1c8], cl
mov eax, dword [r12 + 0x10]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x90]
movzx edx, word [rax + 0x56]
cmp di, dx
jae 0x14017613f
mov rax, qword [rax + 0x38]
mov ecx, ebp
cmp byte [r8 + rax], bpl
sete cl
cmp r15d, ecx
je 0x140176149
test r15d, r15d
je 0x14017617a
cmp dx, di
jne 0x14017617a
mov rax, qword [rsp + 0x88]
xor r15b, r15b
mov rcx, qword [rsp + 0x80]
movzx edx, byte [rsp + 0x44]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x1d8], dl
jmp 0x14017618f
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x80]
mov r15d, dword [rsp + 0x44]
test rax, rax
je 0x1401761a5
test byte [rax + 0x1a], 0x28
jne 0x1401761a5
mov dword [rsp + 0x58], ebp
mov edx, 1
jmp 0x1401761ae
mov edx, 1
mov dword [rsp + 0x58], edx
test rcx, rcx
je 0x1401761bd
test byte [rcx + 0x1a], 0x28
mov dword [rsp + 0x54], ebp
je 0x1401761c1
mov dword [rsp + 0x54], edx
test rax, rax
jne 0x1401763a6
test di, di
jne 0x1401763a6
mov dword [rsp + 0x44], ebp
mov edi, ebx
test r15b, r15b
je 0x140176208
xor r8d, r8d
mov dword [rsp + 0x20], ebp
add r9d, ebx
mov rcx, rsi
lea edx, [r8 + 0x1a]
call fcn.140167a30
mov r11, qword [rsp + 0x68]
lea edi, [rbx + 1]
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x44], 1
mov edx, dword [rsp + 0x50]
mov r8d, edi
movzx eax, r15b
mov r9, r11
sub r8d, eax
mov rcx, r14
call fcn.14011b820
mov edx, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x44]
mov r15, qword [rsp + 0x78]
mov r9d, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x4c]
lea eax, [rdx + rcx*2]
mov dword [rsp + 0x28], edi
lea eax, [r15 + rax*2]
lea rcx, [0x140000000]
movzx edx, byte [rax + rcx + 0x2bb828]
mov rcx, rsi
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
call fcn.140167b10
mov rdi, qword [rsp + 0x88]
test rdi, rdi
je 0x14017647b
mov rax, qword [rdi]
mov r8d, 1
mov r15d, dword [rsp + 0x50]
mov rcx, r14
add r15d, ebx
mov edx, r15d
mov rdi, qword [rax + 0x18]
call fcn.140145c80
mov r8d, r15d
mov rdx, rdi
call fcn.1401461e0
mov r8, qword [rsp + 0x88]
mov rdx, r12
mov rcx, rsi
call fcn.140181c40
mov rcx, rdi
call fcn.140146170
test eax, eax
je 0x1401762d6
mov r9d, dword [rsp + 0x48]
mov r8d, r15d
mov edx, 0x4c
mov dword [rsp + 0x20], ebp
mov rcx, rsi
call fcn.140167a30
movzx edx, byte [rsp + 0x1c8]
mov rcx, rdi
call fcn.1401404a0
cmp al, 0x41
je 0x140176394
movzx edx, byte [rsp + 0x1c8]
mov rcx, rdi
call fcn.1401495c0
test eax, eax
jne 0x140176394
mov rcx, qword [r14 + 0x10]
lea rdi, [rsp + 0x1c8]
mov qword [rsp + 0x1d8], rcx
lea ebx, [rax + 1]
nop dword [rax]
cmp byte [rdi], 0x41
jne 0x140176331
dec ebx
inc r15d
inc rdi
test ebx, ebx
jg 0x140176320
movsxd rax, ebx
cmp rax, 1
jle 0x140176352
nop word [rax + rax]
cmp byte [rdi + rax - 1], 0x41
jne 0x140176352
dec ebx
dec rax
cmp rax, 1
jg 0x140176340
test ebx, ebx
jle 0x140176390
mov r9d, ebx
mov dword [rsp + 0x20], ebp
mov r8d, r15d
mov edx, PathResolve
call fcn.140167a30
mov rcx, qword [rsp + 0x1d8]
mov r9d, ebx
mov r8, rdi
mov edx, 0xffffffff
call fcn.140167d80
mov r8d, ebx
mov edx, r15d
mov rcx, r14
call fcn.140145c80
mov ebx, dword [rsp + 0x74]
mov r15, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x88]
jmp 0x1401764a4
mov dword [rsp + 0x44], edx
mov edi, ebx
test rax, rax
je 0x1401761d7
mov rax, qword [rax]
lea r8d, [rbx + r9]
mov rcx, r14
mov rax, qword [rax + 0x18]
mov rdx, rax
mov qword [rsp + 0xa0], rax
call fcn.1401461e0
mov r8, qword [rsp + 0x80]
mov rdx, r12
mov rcx, rsi
call fcn.140181c40
mov r8, qword [rsp + 0xa0]
mov rcx, r8
call fcn.140146170
test eax, eax
je 0x140176420
mov r8d, dword [rsp + 0x50]
mov edx, 0x4c
mov r9d, dword [rsp + 0x48]
add r8d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.140167a30
mov r8, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x68]
test r11, r11
je 0x140176474
mov rax, qword [rsp + 0xa8]
mov rcx, r8
movzx edx, byte [rax + r11]
call fcn.1401404a0
mov r10, qword [rsp + 0xa8]
mov r11, qword [rsp + 0x68]
cmp al, 0x41
jne 0x140176459
mov byte [r10 + r11], al
movzx edx, al
jmp 0x14017645e
movzx edx, byte [r10 + r11]
mov rcx, qword [rsp + 0xa0]
call fcn.1401495c0
test eax, eax
je 0x140176474
mov byte [r10 + r11], 0x41
inc edi
jmp 0x140176208
cmp byte [rsp + 0x1d8], bpl
je 0x1401764a6
mov r9d, dword [rsp + 0x50]
xor r8d, r8d
add r9d, ebx
mov dword [rsp + 0x20], ebp
mov rcx, rsi
lea edx, [r8 + 0x1a]
call fcn.140167a30
mov dword [rsp + 0x54], ebp
inc ebx
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xb0]
call fcn.140141ef0
mov eax, dword [rsi + 0x3c]
mov dword [r12 + 0x34], eax
test ebx, ebx
je 0x1401764f9
mov eax, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x4c]
mov dword [rsp + 0x28], ebx
lea ecx, [rax + r15*2]
lea rax, [0x140000000]
movzx edx, byte [rcx + rax + 0x2bb10c]
mov rcx, rsi
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
call fcn.140167b10
mov rdx, qword [rsp + 0x80]
mov rcx, r12
call fcn.14011f5b0
mov rdx, rdi
mov rcx, r12
call fcn.14011f5b0
cmp dword [rsp + 0x5c], ebp
jne 0x1401766c3
mov rbx, qword [rsp + 0x90]
mov rbx, qword [rbx + 0x18]
test byte [rbx + 0x46], 0x20
jne 0x140176584
inc dword [r14 + 0x54]
mov edx, WSACleanup
mov ebx, dword [r14 + 0x54]
mov rcx, rsi
mov r8d, dword [rsp + 0x4c]
mov r9d, ebx
mov dword [rsp + 0x20], ebp
call fcn.140167a30
mov edx, dword [rsp + 0x40]
mov r9d, ebx
mov r8d, 0xffffffff
mov rcx, r14
call fcn.140145ed0
mov r8d, dword [rsp + 0x40]
mov r9d, ebx
mov edx, 0x43
mov dword [rsp + 0x20], ebp
mov rcx, rsi
call fcn.140167a30
jmp 0x1401766c3
mov ecx, dword [rsp + 0x4c]
cmp dword [rsp + 0x40], ecx
je 0x1401766c7
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x1401765b2
nop dword [rax + rax]
mov eax, dword [rbx + 0x5c]
and al, 3
cmp al, 2
je 0x1401765b2
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x1401765a0
movzx ecx, word [rbx + 0x56]
mov edx, dword [r14 + 0x44]
mov r8d, dword [r14 + 0x48]
mov dword [rsp + 0x1d8], r8d
cmp ecx, edx
jg 0x1401765da
lea eax, [r8 + rcx]
sub edx, ecx
mov dword [r14 + 0x48], eax
mov dword [r14 + 0x44], edx
jmp 0x1401765f0
mov eax, dword [r14 + 0x54]
lea r8d, [rax + 1]
add eax, ecx
mov dword [r14 + 0x54], eax
mov dword [rsp + 0x1d8], r8d
movzx eax, word [rbx + 0x56]
mov edi, ebp
cmp bp, ax
jae 0x14017669d
mov r15d, dword [rsp + 0x1d8]
mov r14d, 0xffffffff
mov r12, qword [rsp + 0x90]
mov r13d, dword [rsp + 0x4c]
nop word [rax + rax]
movzx r8d, word [r12 + 0x58]
mov edx, ebp
test r8d, r8d
je 0x140176651
mov rax, qword [rbx + 8]
mov r9, qword [r12 + 8]
movsxd rcx, edi
movzx r10d, word [rax + rcx*2]
nop
movsxd rax, edx
cmp r10w, word [r9 + rax*2]
je 0x140176655
inc edx
cmp edx, r8d
jl 0x140176640
movzx edx, r14w
lea eax, [r15 + rdi]
movsx r9d, dx
mov edx, PathResolve
mov dword [rsp + 0x20], eax
mov r8d, r13d
mov rcx, rsi
call fcn.140167a30
movzx eax, word [rbx + 0x56]
inc edi
cmp edi, eax
jl 0x140176620
mov r14, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xc0]
mov r12, qword [rsp + 0x60]
mov r15, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x1d8]
mov r9d, dword [rsp + 0x98]
mov edx, 0x45
movzx eax, ax
mov rcx, rsi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r8d
mov r8d, dword [rsp + 0x40]
call fcn.140167b10
mov ecx, dword [rsp + 0x4c]
test dword [r13 + 0x28], 0x1000
je 0x1401766d9
mov byte [r12 + 0x2d], 0x9f
jmp 0x1401766e6
test r15d, r15d
sete al
add al, 7
mov byte [r12 + 0x2d], al
mov r15, qword [rsp + 0x1c0]
mov r9d, 0x200
mov dword [r12 + 0x30], ecx
movzx eax, byte [r13 + 0x2a]
and al, 1
mov byte [r12 + 0x2e], al
test byte [r13 + 0x28], 0xf
mov r13, qword [rsp + 0x60]
jne 0x14017708f
mov byte [r12 + 0x2f], 1
jmp 0x14017708f
bt edx, 0xd
jae 0x14017701f
mov eax, dword [r14 + 0x50]
mov rcx, rsi
inc dword [r14 + 0x54]
mov ebx, dword [r14 + 0x54]
mov dword [rsp + 0x4c], eax
inc eax
mov dword [r14 + 0x50], eax
mov qword [rsp + 0xa8], rbp
mov dword [rsp + 0x74], ebx
mov dword [rsp + 0x1d8], ebp
mov dword [rsp + 0x48], ebp
call fcn.1401704c0
mov rcx, qword [r13 + 0x38]
mov r15, qword [rsp + 0x1c0]
mov dword [rsp + 0x70], eax
mov rax, qword [rdi + 0x20]
mov rcx, qword [rcx]
mov qword [rsp + 0xc8], rcx
mov dword [rsp + 0x44], ebp
mov qword [rsp + 0x68], rbp
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0xc0], rcx
mov byte [r12 + 0x2d], reloc.OLEAUT32.dll_SafeArrayGetDim
mov dword [r12 + 0x30], ebx
movzx ecx, byte [r15 + 0x39]
mov qword [rsp + 0x90], rax
cmp cl, 1
jbe 0x140176928
mov r15, qword [rsp + 0xb0]
movzx ebx, cl
mov rcx, r15
sub ebx, dword [rsp + 0x1c8]
dec ebx
movsxd rax, ebx
imul rdx, rax, 0x78
sub rdx, 0xffffffffffffff80
call fcn.140141f40
mov qword [rsp + 0xa0], rax
mov r13, rax
test rax, rax
jne 0x1401767f8
mov rax, qword [rsp + 0x1d0]
jmp 0x14017742e
mov r11, qword [rsp + 0x1c0]
lea eax, [rbx + 1]
movzx ecx, al
mov dword [r13 + 4], ecx
mov dword [r13], ecx
movups xmm0, xmmword [rdi]
movups xmmword [r13 + 8], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [r13 + 0x18], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [r13 + 0x28], xmm0
movups xmm1, xmmword [rdi + 0x30]
movups xmmword [r13 + 0x38], xmm1
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [r13 + 0x48], xmm0
movups xmm1, xmmword [rdi + 0x50]
movups xmmword [r13 + 0x58], xmm1
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [r13 + 0x68], xmm0
movsd xmm1, qword [rdi + 0x70]
movsd qword [r13 + 0x78], xmm1
mov r10, qword [r11 + 8]
cmp ebx, 1
jl 0x1401768e8
lea rdx, [r13 + 0x80]
mov r9d, ebx
lea r8, [r12 + 0x84]
nop word [rax + rax]
movzx eax, byte [r8]
lea rdx, [rdx + 0x78]
imul rcx, rax, 0x78
lea r8, [r8 + 0x58]
movups xmm0, xmmword [rcx + r10 + 8]
movups xmmword [rdx - 0x78], xmm0
movups xmm1, xmmword [rcx + r10 + 0x18]
movups xmmword [rdx - 0x68], xmm1
movups xmm0, xmmword [rcx + r10 + 0x28]
movups xmmword [rdx - 0x58], xmm0
movups xmm1, xmmword [rcx + r10 + 0x38]
movups xmmword [rdx - 0x48], xmm1
movups xmm0, xmmword [rcx + r10 + 0x48]
movups xmmword [rdx - 0x38], xmm0
movups xmm1, xmmword [rcx + r10 + 0x58]
movups xmmword [rdx - 0x28], xmm1
movups xmm0, xmmword [rcx + r10 + 0x68]
movups xmmword [rdx - 0x18], xmm0
movsd xmm1, qword [rcx + r10 + 0x78]
movsd qword [rdx - 8], xmm1
sub r9, 1
jne 0x140176880
mov rax, qword [rsp + 0x90]
test byte [r11 + 0x32], 8
jne 0x1401769a4
test byte [rax + 0x46], 0x20
jne 0x140176946
inc dword [r14 + 0x54]
xor r8d, r8d
mov eax, dword [r14 + 0x54]
mov rcx, rsi
mov r9d, eax
mov dword [rsp + 0x1d8], eax
mov dword [rsp + 0x20], ebp
lea edx, [r8 + 0x1a]
call fcn.140167a30
jmp 0x140176998
mov r13, qword [r15 + 8]
mov r15, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x1c0]
mov qword [rsp + 0xa0], r13
jmp 0x1401768f0
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140176962
nop
mov eax, dword [rbx + 0x5c]
and al, 3
cmp al, 2
je 0x140176962
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140176950
mov edi, dword [r14 + 0x50]
mov edx, 0x39
mov r8d, edi
mov dword [rsp + 0x1d8], edi
mov rcx, rsi
mov dword [rsp + 0x20], ebp
lea eax, [rdi + 1]
mov dword [r14 + 0x50], eax
movzx r9d, word [rbx + 0x56]
call fcn.140167a30
mov rdx, rbx
mov rcx, r14
call fcn.140172940
inc dword [r14 + 0x54]
mov eax, dword [r14 + 0x54]
mov dword [rsp + 0x48], eax
mov r9d, dword [rsp + 0x74]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], ebp
lea edx, [r8 + 0x17]
call fcn.140167a30
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0xb8]
mov ecx, dword [rax + 0x14]
cmp ecx, 1
jle 0x140176b39
mov ebx, ebp
test ecx, ecx
jle 0x140176b39
mov r13, qword [rsp + 0xc8]
mov rdi, rbp
mov r9d, 0x1fff
mov r12, rbp
mov rsi, rax
nop dword [rax + rax]
mov r8, qword [rsi + 0x20]
movsxd rax, ebx
imul rcx, rax, 0x38
add rcx, r8
cmp rcx, r13
je 0x140176a52
mov rdx, qword [r8 + rdi]
test byte [rdx + 4], 1
jne 0x140176a52
test byte [r8 + rdi + 0x1c], 2
jne 0x140176a52
test word [r8 + rdi + 0x1a], r9w
je 0x140176a52
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call fcn.140121dc0
mov r8, rax
mov rdx, r12
mov rcx, r15
call fcn.1401453e0
mov r12, rax
mov r9d, 0x1fff
inc ebx
add rdi, 0x38
cmp ebx, dword [rsi + 0x14]
jl 0x140176a00
mov rsi, qword [rsp + 0xe0]
test r12, r12
mov r13, qword [rsp + 0xa0]
mov qword [rsp + 0x68], r12
mov r12, qword [rsp + 0x60]
je 0x140176b3e
mov rcx, qword [r14]
mov edx, 0x48
call fcn.140141f40
mov rbx, rax
test rax, rax
je 0x140176ace
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
mov eax, 0xffffffff
mov word [rbx + 0x32], ax
mov eax, 1
mov dword [rbx + 0x28], eax
mov byte [rbx], 0x48
mov rdi, qword [r14]
test rbx, rbx
jne 0x140176af7
xor edx, edx
mov rcx, rdi
call fcn.140148420
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call fcn.140148420
mov rcx, rbx
mov qword [rsp + 0x68], rbx
jmp 0x140176b43
mov rdx, qword [rsp + 0x68]
mov rcx, rbx
mov qword [rbx + 0x18], rdx
mov eax, dword [rdx + 4]
and eax, 0x200100
or dword [rbx + 4], eax
call fcn.140122380
mov rax, qword [r14]
mov r8d, dword [rax + 0x74]
cmp dword [rbx + 0x28], r8d
jle 0x140176b2f
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r14
call fcn.140144b90
mov rcx, rbx
mov qword [rsp + 0x68], rbx
jmp 0x140176b43
mov rcx, rbp
jmp 0x140176b43
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0xc0]
mov r9d, 0xf0
mov dword [rsp + 0x50], r9d
mov edi, ebp
mov dword [rsp + 0x58], ebp
cmp dword [rax + 0x14], ebp
jle 0x140176f07
mov r8d, dword [rsp + 0x40]
mov rdx, rbp
mov qword [rsp + 0xd8], rdx
mov rax, qword [rax + 0x20]
cmp dword [rdx + rax + 0xc], r8d
je 0x140176b92
mov r10d, 0x400
test word [rdx + rax + 0x1a], r10w
je 0x140176edf
mov r8, qword [rdx + rax]
mov r15d, ebp
test rcx, rcx
je 0x140176bac
test byte [r8 + 4], 1
jne 0x140176bac
mov qword [rcx + 0x10], r8
mov r8, rcx
mov eax, dword [rsp + 0x4c]
mov rdx, r13
mov dword [rsp + 0x30], eax
mov rcx, r14
mov word [rsp + 0x28], r9w
xor r9d, r9d
mov qword [rsp + 0x20], rbp
call fcn.140174d50
mov qword [rsp + 0xd0], rax
mov rbx, rax
test rax, rax
je 0x140176ecd
movzx ecx, byte [r12 + 0x2c]
lea r8, [rax + 0x340]
mov r9d, dword [rsp + 0x1c8]
mov rdx, r13
mov word [rsp + 0x28], bp
mov dword [rsp + 0x20], ecx
mov rcx, r14
call fcn.140177c90
mov rax, qword [rsp + 0x1c0]
test byte [rax + 0x32], 8
jne 0x140176e0e
mov rcx, qword [rsp + 0xc0]
mov ebx, edi
mov eax, dword [rcx + 0x14]
mov ecx, 0xffffffff
dec eax
cmp edi, eax
mov rax, qword [rsp + 0x90]
cmove ebx, ecx
mov dword [rsp + 0x5c], ebx
test byte [rax + 0x46], 0x20
jne 0x140176c8f
mov edx, dword [rsp + 0x48]
mov r8d, ecx
mov r9d, dword [rsp + 0x40]
mov rcx, r14
mov byte [rsp + 0x28], bpl
mov dword [rsp + 0x20], edx
mov rdx, rax
call fcn.140146420
mov r8d, dword [rsp + 0x1d8]
xor r9d, r9d
mov edx, 0x83
mov dword [rsp + 0x28], ebx
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140167b10
mov r15d, eax
jmp 0x140176e06
mov rcx, rax
call fcn.14015b940
mov edx, dword [r14 + 0x44]
mov r8d, dword [r14 + 0x48]
mov qword [rsp + 0xe8], rax
movzx r13d, word [rax + 0x56]
mov dword [rsp + 0x54], r8d
cmp r13d, edx
jg 0x140176cc7
lea ecx, [r8 + r13]
sub edx, r13d
mov dword [r14 + 0x48], ecx
mov dword [r14 + 0x44], edx
jmp 0x140176cdb
mov eax, dword [r14 + 0x54]
lea r8d, [rax + 1]
add eax, r13d
mov dword [r14 + 0x54], eax
mov dword [rsp + 0x54], r8d
mov rdi, rbp
mov r15, r13
test r13d, r13d
je 0x140176d54
mov r12, qword [rsp + 0xe8]
mov ebx, r8d
mov r13, qword [rsp + 0x90]
nop dword [rax]
mov rax, qword [r12 + 8]
mov rdx, r13
mov r9d, dword [rsp + 0x40]
mov rcx, r14
mov byte [rsp + 0x28], bpl
mov dword [rsp + 0x20], ebx
movsx r8d, word [rax + rdi*2]
call fcn.140146420
cmp eax, ebx
je 0x140176d3e
mov r9d, ebx
mov dword [rsp + 0x20], ebp
mov r8d, eax
mov edx, 0x20
mov rcx, rsi
call fcn.140167a30
inc ebx
inc rdi
cmp rdi, r15
jl 0x140176d00
mov r12, qword [rsp + 0x60]
mov r13d, r15d
mov ebx, dword [rsp + 0x5c]
test ebx, ebx
mov ebx, dword [rsp + 0x54]
je 0x140176d81
mov r8d, dword [rsp + 0x1d8]
xor r9d, r9d
mov dword [rsp + 0x28], r13d
mov rcx, rsi
mov dword [rsp + 0x20], ebx
lea edx, [r9 + 0x46]
call fcn.140167b10
mov r15d, eax
jmp 0x140176d84
mov r15d, ebp
mov edi, dword [rsp + 0x5c]
test edi, edi
js 0x140176ddf
mov eax, dword [rsp + 0x48]
mov r9d, r13d
mov r8d, ebx
mov dword [rsp + 0x20], eax
mov edx, PathResolve
mov rcx, rsi
call fcn.140167a30
mov r9d, dword [rsp + 0x48]
mov edx, WSAStartup
mov r8d, dword [rsp + 0x1d8]
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.140167a30
test edi, edi
je 0x140176ddf
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140176ddf
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
mov r8d, r13d
mov edx, ebx
mov rcx, r14
call fcn.140145c80
mov edi, dword [rsp + 0x58]
cmp r13d, dword [r14 + 0x44]
jle 0x140176dfe
mov dword [r14 + 0x44], r13d
mov dword [r14 + 0x48], ebx
mov r13, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xd0]
mov r9d, dword [rsp + 0x70]
mov edx, SafeArrayGetDim
mov r8d, dword [rsp + 0x74]
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.140167a30
test r15d, r15d
je 0x140176e52
mov edx, dword [rsi + 0x3c]
cmp edx, r15d
jbe 0x140176e48
mov eax, r15d
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
lea ecx, [rdx - 1]
mov dword [rax + 0x64], ecx
cmp byte [rbx + 0x37], bpl
mov ecx, 1
mov eax, dword [rsp + 0x44]
mov rdx, qword [rbx + 0x388]
cmovne eax, ecx
mov dword [rsp + 0x44], eax
test dword [rdx + 0x28], 0x200
je 0x140176ebd
test edi, edi
je 0x140176e88
mov rax, qword [rsp + 0xa8]
cmp qword [rdx + 0x20], rax
jne 0x140176ebd
mov rax, qword [rsp + 0x90]
test byte [rax + 0x46], 0x20
je 0x140176ea5
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 0x5c]
and cl, 3
cmp cl, 2
je 0x140176ebd
mov r15, qword [rdx + 0x20]
mov eax, 0x1000
or word [rsp + 0x50], ax
mov qword [rsp + 0xa8], r15
jmp 0x140176ec5
mov qword [rsp + 0xa8], rbp
mov rcx, rbx
call fcn.140177450
mov r8d, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xc0]
inc edi
mov rcx, qword [rsp + 0x68]
add rdx, 0x38
mov dword [rsp + 0x58], edi
mov qword [rsp + 0xd8], rdx
cmp edi, dword [rax + 0x14]
jl 0x140176b75
mov rax, qword [rsp + 0xa8]
mov qword [r12 + 0x38], rax
test rax, rax
je 0x140176f22
mov eax, dword [rsp + 0x4c]
mov dword [r12 + 8], eax
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xb0]
test rdx, rdx
je 0x140176f40
mov rcx, rbx
mov qword [rdx + 0x10], rbp
call fcn.140148420
mov eax, dword [rsp + 0x88]
mov edx, dword [rsi + 0x3c]
cmp edx, eax
jbe 0x140176f5a
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 4], edx
mov r9d, dword [r12 + 0xc]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], ebp
lea edx, [r8 + 0xe]
call fcn.140167a30
mov r8, qword [rsi + 0x30]
mov eax, 0xffffffff
sub eax, dword [rsp + 0x70]
js 0x140176f96
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140176f96
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rsi + 0x3c]
mov r15, qword [rsp + 0x1c0]
dec eax
mov dword [r8 + 0x64], eax
cmp byte [r15 + 0x39], 1
jbe 0x140177002
test r13, r13
je 0x140177002
test rbx, rbx
je 0x140176ffa
cmp qword [rbx + 0x328], rbp
je 0x140176fce
mov rdx, r13
mov rcx, rbx
call fcn.14012a3b0
jmp 0x140177002
cmp r13, qword [rbx + 0x170]
jb 0x140176ffa
cmp r13, qword [rbx + 0x178]
jae 0x140176ffa
mov rax, qword [rbx + 0x168]
mov qword [r13], rax
dec dword [rbx + 0x154]
mov qword [rbx + 0x168], r13
jmp 0x140177002
mov rcx, r13
call fcn.140108630
cmp dword [rsp + 0x44], ebp
jne 0x140177018
mov rdx, qword [rsp + 0xc8]
mov rcx, r12
call fcn.14011f5b0
mov r13, qword [rsp + 0x60]
jmp 0x140177089
test r8b, 8
je 0x140177038
mov r15, qword [rsp + 0x1c0]
mov r13, r12
mov byte [r12 + 0x2d], 0x9f
jmp 0x14017708f
lea rdx, [0x140000000]
mov dword [rsp + 0x20], ebp
movzx eax, byte [r15 + rdx + 0x2bb134]
mov r9d, ebx
movzx edx, byte [r15 + rdx + 0x2bb6e4]
mov rcx, rsi
mov byte [r12 + 0x2d], al
mov eax, dword [rsp + 0x40]
mov r8d, eax
mov dword [r12 + 0x30], eax
call fcn.140167a30
inc eax
mov byte [r12 + 0x2f], 1
mov dword [r12 + 0x34], eax
mov r13, r12
mov r15, qword [rsp + 0x1c0]
mov r9d, 0x200
lea rdx, [r15 + 0x158]
mov r12d, dword [rdx + 0x14]
mov rdi, qword [rdx + 0x20]
test r12d, r12d
jle 0x14017737c
nop word [rax + rax]
movzx ecx, word [rdi + 0x1c]
mov ebx, ebp
test cl, 6
jne 0x140177184
mov rax, qword [rdi + 0x30]
test qword [r13 + 0x50], rax
je 0x1401770d3
mov byte [r15 + 0x37], 1
jmp 0x140177184
mov r15, qword [rdi]
cmp dword [r13], ebx
je 0x1401770e7
test byte [r15 + 4], 1
je 0x140177184
test r9w, cx
je 0x140177140
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
mov r13d, dword [r13 + 0x24]
cmp dword [rax + 0x60], ebx
jg 0x140177116
mov edx, 1
mov rcx, rsi
call fcn.140127a10
test eax, eax
je 0x140177116
mov ebx, 1
jmp 0x14017713b
mov rax, qword [rsi + 8]
lea rcx, [rbx + rbx*2]
inc dword [rsi + 0x3c]
mov word [rax + rcx*8], PathResolve
mov byte [rax + rcx*8 + 3], bpl
mov dword [rax + rcx*8 + 4], r13d
mov qword [rax + rcx*8 + 8], rbp
mov qword [rax + rcx*8 + 0x10], rbp
mov r13, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x98]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rdx, r15
mov rcx, r14
call fcn.1401485a0
test ebx, ebx
je 0x14017717f
mov edx, dword [rsi + 0x3c]
cmp edx, ebx
jbe 0x140177175
mov eax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
lea ecx, [rdx - 1]
mov dword [rax + 0x64], ecx
or word [rdi + 0x1c], 4
mov r15, qword [rsp + 0x1c0]
dec r12d
add rdi, 0x38
mov r9d, 0x200
test r12d, r12d
jg 0x1401770b0
mov rdx, qword [rsp + 0xb8]
mov r12d, dword [rdx + 0x14]
mov rdi, qword [rdx + 0x20]
test r12d, r12d
jle 0x14017737c
mov rsi, qword [rsp + 0xb0]
lea r15, [rdi + 0x1a]
mov r8d, SafeArrayGetDim
nop dword [rax]
test byte [r15 + 2], 6
jne 0x14017735c
movzx eax, word [r15]
test al, 0x82
setne cl
bt ax, r8w
setb al
test al, cl
je 0x14017735c
mov ecx, dword [rsp + 0x40]
cmp dword [r15 - 0xe], ecx
jne 0x14017735c
cmp dword [r13], ebp
jne 0x14017735c
mov rax, qword [r15 - 0x1a]
mov r8d, ecx
mov r9d, dword [r15 - 0xa]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x28], rbp
mov rdi, rbp
mov qword [rsp + 0x1c0], rax
mov dword [rsp + 0x20], 0x83
call fcn.1401853d0
mov rbx, rax
test rax, rax
je 0x140177285
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx + 0x28]
test qword [rsp + 0x1d0], rax
jne 0x140177270
test rax, rax
jne 0x140177269
test byte [rbx + 0x1a], 0x82
jne 0x140177288
test rdi, rdi
cmove rdi, rbx
lea rcx, [rsp + 0xf0]
call fcn.140185790
mov rbx, rax
test rax, rax
jne 0x140177250
mov rbx, rdi
test rbx, rbx
je 0x140177356
test byte [rbx + 0x1c], 4
jne 0x140177356
mov edx, 0x48
mov rcx, rsi
call fcn.140141f40
mov rdi, rax
test rax, rax
je 0x140177356
mov rcx, qword [rbx]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov r8d, dword [rsp + 0x98]
mov rdx, rdi
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movsd xmm0, qword [rcx + 0x40]
mov rcx, r14
movsd qword [rax + 0x40], xmm0
mov rax, qword [rsp + 0x1c0]
mov rax, qword [rax + 0x10]
mov qword [rdi + 0x10], rax
call fcn.1401485a0
test rsi, rsi
je 0x14017734e
cmp qword [rsi + 0x328], rbp
je 0x140177323
mov rdx, rdi
mov rcx, rsi
call fcn.14012a3b0
jmp 0x140177356
cmp rdi, qword [rsi + 0x170]
jb 0x14017734e
cmp rdi, qword [rsi + 0x178]
jae 0x14017734e
mov rax, qword [rsi + 0x168]
mov qword [rdi], rax
dec dword [rsi + 0x154]
mov qword [rsi + 0x168], rdi
jmp 0x140177356
mov rcx, rdi
call fcn.140108630
mov r8d, SafeArrayGetDim
mov rdx, qword [rsp + 0xb8]
dec r12d
add r15, 0x38
test r12d, r12d
jg 0x1401771d0
mov rsi, qword [rsp + 0xe0]
mov ebx, dword [r13]
test ebx, ebx
je 0x14017742a
mov eax, dword [rsi + 0x3c]
mov dword [r13 + 0x1c], eax
mov rax, qword [rsi + 0x30]
movsxd rdi, dword [rsi + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x1401773ad
mov edx, 1
mov rcx, rsi
call fcn.140127a10
test eax, eax
jne 0x1401773d8
mov rax, qword [rsi + 8]
lea rcx, [rdi + rdi*2]
inc dword [rsi + 0x3c]
mov word [rax + rcx*8], reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov byte [rax + rcx*8 + 3], bpl
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov rcx, r14
call fcn.1401457f0
mov rdi, qword [rsp + 0xb8]
mov rbx, qword [rdi + 0x20]
cmp dword [rdi + 0x14], ebp
jle 0x14017742a
test byte [rbx + 0x1c], 6
jne 0x14017741f
mov rax, qword [rbx + 0x30]
test qword [r13 + 0x50], rax
jne 0x14017741f
mov r8d, dword [rsp + 0x98]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rdx, qword [rbx]
mov rcx, r14
call fcn.1401485a0
or word [rbx + 0x1c], 4
inc ebp
add rbx, 0x38
cmp ebp, dword [rdi + 0x14]
jl 0x1401773f1
mov rax, qword [r13 + 0x50]
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret