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

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x560
mov qword [rax - 0x440], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x550], rax
mov dword [rsp + 0x90], r8d
mov rbx, rdx
mov qword [rsp + 0x50], rdx
mov rsi, rcx
mov qword [rsp + 0x78], rcx
xor eax, eax
mov dword [rsp + 0x40], eax
cmp dword [rcx + 0xc4], eax
je 0x14021fd97
mov rcx, rdx
call fcn.140224100
mov rdx, qword [rbx]
cmp dword [rdx - 0x10], 0
je 0x14021ef4f
mov rax, qword [rbx + 8]
cmp dword [rax - 0x10], 0
jne 0x14021ef5a
lea rcx, [rsp + 0x130]
call fcn.14021e580
nop
cmp byte [rbx + 0x10], 0
je 0x14021eefa
cmp byte [rsi + 8], 0
je 0x14021eef4
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x130]
call fcn.14022ea50
nop
mov rdx, rax
lea rcx, [rbx + 8]
call fcn.140020620
nop
mov rdx, qword [rsp + 0xd8]
jmp 0x14021ef28
or rdi, 0xffffffffffffffff
jmp 0x14021ef40
lea r8, [rsp + 0x130]
lea rdx, [rsp + 0xe0]
mov rcx, rsi
call fcn.140224cf0
nop
mov rdx, rax
lea rcx, [rbx + 8]
call fcn.140020620
nop
mov rdx, qword [rsp + 0xe0]
or rdi, 0xffffffffffffffff
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], edi
jg 0x14021ef40
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x130]
call fcn.14022e9b0
jmp 0x14021ef5e
cmp qword [rbx + 0x28], 0
je 0x14021f955
or rdi, 0xffffffffffffffff
cmp dword [rsi + 0x128], 0
jne 0x14021ef6d
xor eax, eax
mov ecx, eax
jmp 0x14021ef7e
mov ecx, edi
mov eax, 1
cmp byte [rsi + 0x174], 0
cmovne ecx, eax
mov eax, dword [rsi + 0x128]
imul eax, ecx
test eax, eax
setne byte [rsp + 0x31]
lea rax, [rbx + 0x1c]
mov qword [rsp + 0x68], rax
mov r8, qword [rbx + 8]
mov rdx, rax
mov rcx, rsi
call fcn.140224e20
test al, al
je 0x14021f955
cmp dword [rbx + 0x1c], 0
setge byte [rsp + 0x34]
cmp qword [rbx + 0x28], 0
je 0x14021efc9
call fcn.140226fa0
mov dword [rsp + 0x5c], eax
jmp 0x14021eff2
lea rdx, [rsp + 0x5c]
mov rcx, qword [rbx]
call fcn.140227190
test al, al
je 0x14021f955
lea rdx, [rsp + 0x98]
mov rcx, qword [rbx]
call fcn.1402271f0
test al, al
jne 0x14021f001
xor ecx, ecx
call fcn.1401fd1c4
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x160]
call fcn.14021d6a0
nop
mov rdx, qword [rbx + 8]
lea rcx, [rsp + 0x160]
call fcn.14021de60
call fcn.1400027c0
cmp eax, 3
je 0x14021f04c
call fcn.1400027c0
mov edx, eax
mov r8d, 3
mov ecx, dword [rsp + 0x5c]
call fcn.140226cd0
mov edx, dword [rsp + 0x5c]
or edx, eax
mov dword [rsp + 0x5c], edx
jmp 0x14021f050
mov edx, dword [rsp + 0x5c]
mov eax, dword [rsi + 0x278]
movzx ecx, word [rsp + 0x16c]
mov r8d, 0xff
and cx, r8w
shl ax, 8
or cx, ax
mov word [rsp + 0x16c], cx
lea rcx, [rsp + 0x160]
call fcn.14021de80
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x160]
call fcn.14021dec0
test dword [rbx + 0x18], 0xf000
setne al
mov byte [rsp + 0x44], al
xor ecx, ecx
mov ebx, ecx
mov qword [rsp + 0x70], rcx
test al, al
jne 0x14021f0e3
lea rcx, [rsi + 0x10]
lea edx, [rbx + 1]
call fcn.140221930
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14021f0e3
mov r9, qword [rax]
mov rax, qword [rsp + 0x50]
mov r8, qword [rax]
mov rdx, qword [rax + 8]
mov rcx, rbx
call qword [r9 + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rsp + 0x160]
call fcn.14021daa0
test al, al
je 0x14021f1fb
test rbx, rbx
je 0x14021f108
mov rax, qword [rbx]
xor edx, edx
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
call fcn.14006f434
mov rdx, rax
xor eax, eax
mov ecx, eax
test rdx, rdx
setne cl
test ecx, ecx
jne 0x14021f129
mov ecx, 0x80004005
call fcn.140024c70
int3
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x50]
test byte [rax + 0x18], 1
je 0x14021f159
mov rdx, rsi
lea rcx, [rsp + 0xc0]
call fcn.14021fe90
cmp byte [rsp + 0x34], 0
je 0x14021f175
mov rax, qword [rsp + 0x68]
mov r8d, dword [rax]
shl r8d, 0x10
bts r8d, 8
xor eax, eax
jmp 0x14021f17a
xor eax, eax
mov r8d, eax
mov dword [rsp + 0x20], eax
xor r9d, r9d
lea rdx, [rsp + 0x160]
mov rcx, rsi
call fcn.140223050
mov byte [rsp + 0x31], al
xor edx, edx
mov rcx, rsi
call fcn.140220290
test rbx, rbx
je 0x14021f1ae
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x18]
nop
mov rbx, qword [rsp + 0xc0]
cmp dword [rbx - 0x10], 0
je 0x14021f1cd
mov rdx, rbx
mov rcx, qword [rsp + 0xc8]
call fcn.140224670
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
dec edi
jg 0x14021f1e4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x160]
call fcn.14021d700
movzx eax, byte [rsp + 0x31]
jmp 0x14021fd97
call fcn.14006f434
mov rdx, rax
xor eax, eax
mov ecx, eax
test rdx, rdx
setne cl
test ecx, ecx
jne 0x14021f21c
mov ecx, 0x80004005
call fcn.140024c70
int3
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x80], rax
mov rbx, qword [rsp + 0x50]
cmp dword [rbx + 0x14], 0
setne cl
mov byte [rsp + 0x33], cl
mov eax, dword [rbx + 0x18]
test al, 8
je 0x14021f251
test cl, cl
mov byte [rsp + 0x32], 1
jne 0x14021f256
mov byte [rsp + 0x32], 0
test al, 2
je 0x14021f280
lea rdx, [rsp + 0xd0]
mov rcx, rsi
call fcn.140222630
mov dword [rsp + 0x40], 1
mov rax, qword [rax]
cmp dword [rax - 0x10], 0
mov byte [rsp + 0x30], 1
jne 0x14021f285
mov byte [rsp + 0x30], 0
test byte [rsp + 0x40], 1
je 0x14021f2b1
and dword [rsp + 0x40], 0xfffffffe
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021f2b1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
movzx eax, byte [rsp + 0x33]
test byte [rbx + 0x18], 4
je 0x14021f2c4
test al, al
je 0x14021f2c4
mov cl, 1
jmp 0x14021f2c6
xor cl, cl
mov byte [rsp + 0x33], cl
mov dword [rsp + 0x38], 0xffffffff
cmp byte [rsp + 0x32], 0
je 0x14021f2e0
cmp byte [rsp + 0x31], 0
jne 0x14021f2eb
cmp byte [rsp + 0x34], 0
je 0x14021f2ef
test al, al
je 0x14021f2ef
mov al, 1
jmp 0x14021f2f1
xor al, al
mov byte [rsp + 0x31], al
test cl, cl
jne 0x14021f303
cmp byte [rsp + 0x30], cl
jne 0x14021f303
test al, al
je 0x14021f367
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14021f318
mov rax, qword [rcx]
call qword [rax + 0x28]
mov dword [rsp + 0x38], eax
jmp 0x14021f332
lea rdx, [rsp + 0x38]
mov rcx, qword [rbx]
call fcn.140227250
test al, al
mov eax, dword [rsp + 0x38]
jne 0x14021f332
mov byte [rsp + 0x32], 0
cmp eax, 0xffffffff
je 0x14021f367
cmp byte [rsp + 0x30], 0
je 0x14021f356
test eax, eax
jne 0x14021f356
mov rdx, rsi
lea rcx, [rsp + 0x80]
call fcn.14021fe90
mov eax, dword [rsp + 0x38]
cmp byte [rsp + 0x33], 0
je 0x14021f367
cmp eax, 5
jae 0x14021f367
xor eax, eax
mov dword [rbx + 0x14], eax
cmp byte [rsp + 0x32], 0
je 0x14021f379
test byte [rbx + 0x18], 0x10
mov byte [rsp + 0x30], 1
jne 0x14021f37e
mov byte [rsp + 0x30], 0
call fcn.14006f434
mov rdx, rax
xor eax, eax
mov ecx, eax
test rdx, rdx
setne cl
test ecx, ecx
jne 0x14021f39f
mov ecx, 0x80004005
call fcn.140024c70
int3
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
cmp byte [rsp + 0x31], 0
je 0x14021f466
cmp byte [rsp + 0x30], 0
jne 0x14021f45f
mov rdx, qword [rsi + 0x270]
cmp dword [rdx - 0x10], 0
mov eax, 0
cmove rdx, rax
mov r8d, dword [rsp + 0x38]
lea rcx, [rsp + 0xf0]
call fcn.1402272f0
nop
or dword [rsp + 0x40], 2
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
lea rax, [rbx - 0x18]
cmp rcx, rax
je 0x14021f459
mov rbx, rax
cmp dword [rax + 0x10], 0
jl 0x14021f446
mov rax, qword [rax]
cmp qword [rcx], rax
jne 0x14021f446
call fcn.140025c70
mov qword [rsp + 0x48], rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
dec ecx
jg 0x14021f43b
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, qword [rsp + 0x48]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
jmp 0x14021f459
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.14003ef00
mov rbx, qword [rsp + 0x60]
cmp dword [rbx - 0x10], 0
je 0x14021f466
mov byte [rsp + 0x31], 1
jmp 0x14021f46b
mov byte [rsp + 0x31], 0
test byte [rsp + 0x40], 2
je 0x14021f497
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021f492
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x60]
cmp byte [rsp + 0x31], 0
je 0x14021f88a
xor eax, eax
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x260]
call fcn.14021e320
nop
cmp byte [rsp + 0x30], 0
je 0x14021f550
mov ecx, 0x38
call fcn.14006df5c
mov rdx, rax
test rax, rax
je 0x14021f4fe
lea rax, vtable.CZipMemFile.0
mov qword [rdx], rax
xor eax, eax
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x20], rax
mov qword [rdx + 0x18], rax
mov qword [rdx + 0x28], rax
mov qword [rdx + 8], 0x400
mov byte [rdx + 0x30], 1
jmp 0x14021f501
mov rdx, rax
mov qword [rsp + 0x48], rdx
cmp dword [rsp + 0x3d8], 0xffffffff
jne 0x14021f5ac
mov r8d, 2
lea rcx, [rsp + 0x340]
call fcn.1402263f0
lea rcx, [rsp + 0x520]
call fcn.140225470
mov byte [rsp + 0x4c0], 0
lea rcx, [rsp + 0x3e0]
call fcn.14022cf10
call fcn.1400027c0
jmp 0x14021f598
cmp dword [rsp + 0x3d8], 0xffffffff
jne 0x14021f5ac
xor r9d, r9d
lea r8d, [r9 + 2]
mov rdx, rbx
lea rcx, [rsp + 0x340]
call fcn.140226480
lea rcx, [rsp + 0x520]
call fcn.140225470
mov byte [rsp + 0x4c0], 0
lea rcx, [rsp + 0x3e0]
call fcn.14022cf10
call fcn.1400027c0
mov dword [rsp + 0x4d8], eax
lea rcx, [rsp + 0x4c8]
call fcn.14002b350
mov rdx, qword [rsi + 0x268]
xor eax, eax
cmp dword [rsp + 0x3d8], 0xffffffff
je 0x14021f606
cmp byte [rsp + 0x4c0], al
jne 0x14021f606
test rdx, rdx
je 0x14021f5f9
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14021f5d0
mov r8d, eax
lea rcx, [rsp + 0x4c8]
call fcn.14003ef00
lea rcx, [rsp + 0x4c8]
call fcn.140224100
jmp 0x14021f606
lea rcx, [rsp + 0x4c8]
call fcn.14002b350
lea rdx, [rsp + 0xb8]
mov rcx, rsi
call fcn.140222630
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x260]
call fcn.140224670
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021f648
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rsi + 0x278]
cmp dword [rsp + 0x3d8], 0xffffffff
je 0x14021f67c
cmp byte [rsp + 0x4c0], 1
je 0x14021f67c
mov ecx, ebx
call fcn.140226de0
mov ecx, dword [rsp + 0x4d8]
test al, al
cmovne ecx, ebx
mov dword [rsp + 0x4d8], ecx
mov r8d, 1
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x260]
call fcn.1402245a0
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx]
mov dword [rsp + 0x68], eax
mov rbx, qword [rsp + 0x50]
xor eax, eax
mov dword [rbx + 0x18], eax
mov dword [rcx], edi
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x260]
call fcn.14021ee30
test al, al
jne 0x14021f6d7
mov byte [rsp + 0x45], al
lea rdx, [0x14031c078]
lea rcx, [rsp + 0x45]
call fcn.1401fd714
mov eax, dword [rsp + 0x68]
mov dword [rbx + 0x1c], eax
cmp byte [rsp + 0x32], 0
je 0x14021f7b7
lea rcx, [rsp + 0x1e0]
call fcn.14021d6a0
nop
xor edx, edx
cmp dword [rsp + 0x3d8], 0xffffffff
je 0x14021f759
lea rcx, [rsp + 0x3e0]
call fcn.14022d140
test al, al
je 0x14021f757
cmp qword [rsp + 0x448], 0
jle 0x14021f752
mov rax, qword [rsp + 0x440]
mov rdx, qword [rax]
lea rcx, [rsp + 0x1e0]
call fcn.14021e9a0
cmp byte [rsp + 0x460], 0
jne 0x14021f757
mov dl, 1
lea rcx, [rsp + 0x1e0]
call fcn.140226d30
jmp 0x14021f757
call fcn.14006dfd4
xor edx, edx
movzx eax, byte [rsp + 0x1f0]
and al, 1
neg al
sbb ecx, ecx
and ecx, 0xc
mov eax, dword [rsp + 0x1fc]
sub eax, ecx
cmp eax, dword [rsp + 0x200]
jbe 0x14021f7aa
mov dword [rbx + 0x14], edx
mov dword [rbx + 0x18], 0xf000
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.14021ee30
mov byte [rsp + 0x46], al
lea rdx, [0x14031c078]
lea rcx, [rsp + 0x46]
call fcn.1401fd714
nop
lea rcx, [rsp + 0x1e0]
call fcn.14021d700
lea rcx, [rsi + 0xc8]
xor r8d, r8d
mov edx, dword [rsi + 0xc4]
call fcn.1402253d0
lea rcx, [rsi + 0x10]
mov edx, 2
call fcn.140221930
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov r9d, dword [rbx + 0x1c]
lea rdx, [rsp + 0x260]
mov rcx, rsi
call fcn.140221d50
mov byte [rsp + 0x3c], al
lea rdx, [0x14031c078]
lea rcx, [rsp + 0x3c]
call fcn.1401fd714
nop
lea rcx, [rsp + 0x260]
call fcn.14021e770
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
or rax, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021f83f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rsp + 0x80]
cmp dword [rbx - 0x10], 0
je 0x14021f85e
mov rdx, rbx
mov rcx, qword [rsp + 0x88]
call fcn.140224670
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14021f873
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x160]
call fcn.14021d700
movzx eax, byte [rsp + 0x47]
jmp 0x14021fd97
lea rcx, [rsp + 0xf8]
call fcn.14022bac0
nop
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x28]
mov qword [rsp + 0x48], rcx
test rcx, rcx
je 0x14021f8bb
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rcx, qword [rsp + 0x48]
jmp 0x14021f969
xor r9d, r9d
lea r8d, [r9 + 0x40]
mov rdx, qword [rax]
lea rcx, [rsp + 0xf8]
call fcn.140222c70
test al, al
jne 0x14021f95c
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14021f8eb
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
lea rcx, [rsp + 0xf8]
call fcn.14022bb20
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021f912
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rsp + 0x80]
cmp dword [rbx - 0x10], 0
je 0x14021f931
mov rdx, rbx
mov rcx, qword [rsp + 0x88]
call fcn.140224670
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
dec edi
jg 0x14021f948
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x160]
call fcn.14021d700
xor al, al
jmp 0x14021fd97
lea rcx, [rsp + 0xf8]
mov qword [rsp + 0x48], rcx
mov rax, qword [rcx]
call qword [rax + 0x28]
mov dword [rsp + 0x38], eax
xor r9d, r9d
lea rdx, [rsp + 0x160]
cmp byte [rsp + 0x34], r9b
je 0x14021f99c
mov rcx, qword [rsp + 0x68]
mov r8d, dword [rcx]
shl r8d, 0x10
bts r8d, 8
mov dword [rsp + 0x20], eax
jmp 0x14021f9ab
xor eax, eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x50]
mov r8d, dword [rax + 0x14]
mov rcx, rsi
call fcn.140223050
test al, al
jne 0x14021fa3d
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14021f9cc
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
lea rcx, [rsp + 0xf8]
call fcn.14022bb20
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021f9f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rsp + 0x80]
cmp dword [rbx - 0x10], 0
je 0x14021fa12
mov rdx, rbx
mov rcx, qword [rsp + 0x88]
call fcn.140224670
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
dec edi
jg 0x14021fa29
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x160]
call fcn.14021d700
xor al, al
jmp 0x14021fd97
cmp byte [rsp + 0x44], 0
je 0x14021fa71
lea rcx, [rsi + 0x10]
mov edx, 4
call fcn.140221930
mov rcx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14021fa85
mov rax, qword [rax]
mov rdx, qword [rsp + 0x50]
mov r8, qword [rdx]
mov rdx, qword [rdx + 8]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14021fa85
mov rax, qword [rcx]
mov edx, dword [rsp + 0x38]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor r8d, r8d
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0x20]
lea rcx, [rsp + 0xa0]
call fcn.140225250
nop
xor ecx, ecx
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x68], ecx
nop dword [rax + rax]
mov r9, qword [rsp + 0x48]
mov rax, qword [r9]
mov rcx, qword [rsp + 0x50]
mov r8d, dword [rcx + 0x20]
mov rdx, qword [rsp + 0xa8]
mov rcx, r9
call qword [rax + 0x50]
mov dword [rsp + 0x58], eax
test eax, eax
je 0x14021fb30
mov r8d, eax
mov rdx, qword [rsp + 0xa8]
mov rcx, rsi
call fcn.140224f50
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14021fb06
mov r8, qword [rax]
mov edx, dword [rsp + 0x58]
mov rcx, rax
call qword [r8 + 0x20]
test al, al
je 0x14021fb42
mov eax, dword [rsp + 0x68]
inc eax
mov dword [rsp + 0x68], eax
mov ecx, dword [rsp + 0x90]
test ecx, ecx
je 0x14021fb2c
xor edx, edx
div ecx
test edx, edx
jne 0x14021fb2c
lea ecx, [rdx + 0xa]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [rsp + 0x58]
cmp eax, dword [rsp + 0xb0]
jne 0x14021fbf7
jmp 0x14021fab0
mov eax, dword [rsp + 0x58]
cmp eax, dword [rsp + 0xb0]
jne 0x14021fbef
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov r8d, 1
mov rdx, qword [rsp + 0xa8]
call qword [rax + 0x50]
test eax, eax
je 0x14021fbef
cmp dword [rsi + 0x128], 0
je 0x14021fb8e
mov eax, edi
cmp byte [rsi + 0x174], 0
mov ecx, 1
cmovne eax, ecx
test eax, eax
jne 0x14021fbe5
cmp byte [rsp + 0x34], 0
jne 0x14021fbe5
mov r8, qword [rsi + 0x1e8]
dec r8d
js 0x14021fbd1
movsxd rdx, r8d
test r8d, r8d
js 0x14021fbcb
cmp rdx, qword [rsi + 0x1e8]
jge 0x14021fbcb
mov rax, qword [rsi + 0x1e0]
lea rcx, [rsi + 0x180]
mov rdx, qword [rax + rdx*8]
call fcn.140223d80
jmp 0x14021fbd1
call fcn.14006dfd4
int3
mov dl, 1
mov rcx, rsi
call fcn.140220290
mov dword [rsp + 0x78], 0x6a
jmp 0x14021fc01
mov dword [rsp + 0x78], 0x69
jmp 0x14021fc01
mov dword [rsp + 0x78], 0x6a
xor edx, edx
mov rcx, rsi
call fcn.140220290
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14021fc11
mov rax, qword [rcx]
call qword [rax + 0x18]
mov eax, dword [rsp + 0x78]
test eax, eax
je 0x14021fc23
xor edx, edx
mov ecx, eax
call fcn.140224af0
int3
cmp byte [rsp + 0x32], 0
je 0x14021fd1d
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x28], 0
jne 0x14021fc5e
lea rcx, [rsp + 0xf8]
mov rax, qword [rsp + 0xf8]
call qword [rax + 0x60]
test al, al
jne 0x14021fc5e
lea rcx, [rsp + 0x100]
call fcn.14009e1b4
lea rcx, [rsp + 0xa0]
call fcn.140225470
xor edx, edx
mov rcx, rsi
call fcn.140223d00
test al, al
je 0x14021fd1d
mov rax, qword [rsp + 0x50]
xor ecx, ecx
mov dword [rax + 0x14], ecx
mov dword [rax + 0x18], 0xf000
xor r8d, r8d
mov rdx, rax
mov rcx, rsi
call fcn.14021ee30
movzx esi, al
lea rcx, [rsp + 0xa0]
call fcn.1402252a0
nop
lea rcx, [rsp + 0xf8]
call fcn.14022bb20
nop
lea rdx, [rbx - 0x18]
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
dec ecx
jg 0x14021fcd4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rsp + 0x80]
cmp dword [rbx - 0x10], 0
je 0x14021fcf3
mov rdx, rbx
mov rcx, qword [rsp + 0x88]
call fcn.140224670
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
dec edi
jg 0x14021fd0a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x160]
call fcn.14021d700
movzx eax, sil
jmp 0x14021fd97
lea rcx, [rsp + 0xa0]
call fcn.1402252a0
nop
lea rcx, [rsp + 0xf8]
call fcn.14022bb20
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14021fd52
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rsp + 0x80]
cmp dword [rbx - 0x10], 0
je 0x14021fd71
mov rdx, rbx
mov rcx, qword [rsp + 0x88]
call fcn.140224670
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
dec edi
jg 0x14021fd88
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x160]
call fcn.14021d700
mov al, 1
mov rcx, qword [rsp + 0x550]
xor rcx, rsp
call fcn.1401fe250
lea r11, [rsp + 0x560]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret