Function at 0x14003dbb0
Capabilities:
Enumerate files on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x3fa0
call fcn.1400ea040
sub rsp, rax
mov qword [rsp + 0x178], 0xfffffffffffffffe
mov qword [rsp + 0x3ff0], rbx
mov rax, qword [0x14012df80]
xor rax, rsp
mov qword [rsp + 0x3f90], rax
mov r12d, edx
mov dword [rsp + 0x54], edx
mov r14, rcx
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x20], edx
lea r9, str.dwType_d
lea r8, str.SetProgman
lea rdx, str.CPrinter
mov rcx, qword [rcx]
call fcn.140080c70
xor r15d, r15d
mov r13d, r15d
mov dword [rsp + 0x50], r15d
lea rcx, [rsp + 0xf8]
call fcn.1400aa430
nop
lea rdi, method.CPtrArray.virtual_0
mov qword [rsp + 0xf8], rdi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x20], r12d
lea r9, [rsp + 0xf8]
movzx r8d, word [r14 + 0x24]
mov rdx, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x18]
call fcn.140072680
test eax, eax
je 0x14003eea3
lea rcx, [rsp + 0x90]
call fcn.1400aa430
nop
mov qword [rsp + 0x90], rdi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov qword [rsp + 0xb8], rax
mov r8d, r15d
mov dword [rsp + 0x60], r15d
mov rdx, r15
mov qword [rsp + 0xe0], rdx
mov rcx, qword [rsp + 0x108]
test rcx, rcx
jle 0x14003edd3
test rdx, rdx
js 0x14003edcd
cmp rdx, rcx
jge 0x14003edcd
mov rax, qword [rsp + 0x100]
mov rbp, qword [rax + rdx*8]
mov qword [rsp + 0x80], rbp
mov dword [rsp + 0x70], r15d
mov rsi, r15
mov qword [rsp + 0xd0], r15
mov rax, qword [rbp + 0x18]
cmp qword [rax + 0x10], 0
jle 0x14003ed68
mov edi, r15d
call fcn.14009d5e8
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
je 0x14003edb9
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
mov rax, qword [rbp + 0x18]
test rsi, rsi
js 0x14003edb3
cmp rsi, qword [rax + 0x10]
jge 0x14003edb3
mov rax, qword [rax + 8]
mov rsi, qword [rax + rsi*8]
mov qword [rsp + 0x78], rsi
test rsi, rsi
je 0x14003ecf7
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x14003ecf7
cmp qword [rsi + 0x10], 0
je 0x14003ecf7
mov dword [rsp + 0x28], r15d
mov word [rsp + 0x20], 0x22
mov r9w, 0x20
lea r8, [rsp + 0x58]
mov rcx, qword [r14 + 8]
call fcn.140010a90
mov rbx, qword [rsp + 0x58]
cmp dword [rbx - 8], 1
jle 0x14003ddc3
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.140003570
mov rbx, qword [rsp + 0x58]
mov r13, r15
mov rdx, qword [rsi]
test rdx, rdx
je 0x14003ddda
mov rcx, qword [r14 + 0x10]
call fcn.14000e810
mov r13, rax
cmp r12d, 2
jne 0x14003de48
test r13, r13
je 0x14003eceb
mov r8, qword [rsi + 8]
mov edx, 0x104
lea rcx, [rsp + 0xa50]
lea rax, [rsp + 0xa50]
sub r8, rax
nop
nop
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003de35
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003de35
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003de10
jmp 0x14003de3a
test rdx, rdx
jne 0x14003de3e
sub rcx, 2
mov word [rcx], 0
jmp 0x14003e163
test r13, r13
je 0x14003e0b3
mov r14d, r15d
mov r12, r15
mov rcx, r13
call fcn.14002f8a0
test rax, rax
jle 0x14003ecdf
test edi, edi
jne 0x14003e156
mov rax, qword [r13 + 0x78]
test rax, rax
je 0x14003dea8
test r12, r12
js 0x14003dea3
mov rcx, qword [rax + 0x10]
cmp r12, rcx
jge 0x14003dea3
test r12, r12
js 0x14003ed8a
cmp r12, rcx
jge 0x14003ed8a
mov rax, qword [rax + 8]
mov rbp, qword [rax + r12*8]
jmp 0x14003deab
mov rbp, r15
jmp 0x14003deab
mov rbp, r15
mov qword [rsp + 0x40], 0x104
lea rax, [rsp + 0x1ef0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0x104
lea rax, [rsp + 0x1ad0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.1400cddd0
test eax, eax
jne 0x14003e082
lea rax, [rsp + 0x1ef0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1ad0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x104
lea rcx, [rsp + 0xc60]
call fcn.1400ce8f0
test eax, eax
jne 0x14003e082
lea rax, [rsp + 0xc60]
lea r8, [rsp + 0xc62]
cmp word [rsp + 0xc60], 0x5c
cmovne r8, rax
mov edx, 0x104
lea rcx, [rsp + 0xe70]
mov r9d, r15d
lea rax, [rsp + 0xe70]
sub r8, rax
nop
nop
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003df95
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003df95
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003df70
jmp 0x14003df9a
test rdx, rdx
jne 0x14003dfa4
sub rcx, 2
mov r9d, 0x8007007a
mov word [rcx], 0
mov eax, r15d
test r9d, r9d
sete al
test eax, eax
je 0x14003e082
mov rdx, rbx
lea rcx, [rsp + 0xe70]
call fcn.1400cdd20
test eax, eax
jne 0x14003e082
mov edi, r15d
lea rdx, [rsp + 0x3e0]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14003e031
mov r15d, 1
nop
nop
nop
test byte [rsp + 0x3e0], 0x10
cmove edi, r15d
lea rdx, [rsp + 0x3e0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x14003e025
test edi, edi
je 0x14003e000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
xor r15d, r15d
test edi, edi
je 0x14003e082
mov edx, 0x104
lea rcx, [rsp + 0xa50]
lea rax, [rsp + 0xa50]
sub rbp, rax
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003e074
movzx eax, word [rcx + rbp]
test ax, ax
je 0x14003e074
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e050
jmp 0x14003e079
test rdx, rdx
jne 0x14003e07d
sub rcx, 2
mov word [rcx], 0
add r14d, 1
add r12, 1
mov rcx, r13
call fcn.14002f8a0
mov r11, rax
movsxd rax, r14d
cmp rax, r11
jl 0x14003de68
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x80]
jmp 0x14003e147
mov rax, qword [r14 + 0x10]
mov r8, qword [rax + 0x118]
cmp dword [r8 - 0x10], 0
cmove r8, r15
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea rdx, [rsp + 0xa50]
mov rcx, qword [r14 + 8]
call fcn.140013060
test eax, eax
je 0x14003ecd8
mov edi, r15d
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0xa50]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14003e147
mov ebp, 1
test byte [rsp + 0x190], 0x10
cmove edi, ebp
lea rdx, [rsp + 0x190]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x14003e136
test edi, edi
je 0x14003e112
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rbp, qword [rsp + 0x80]
test edi, edi
je 0x14003ecf2
mov rsi, qword [rsp + 0x78]
jmp 0x14003e163
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
mov r10, qword [rbp]
test r10, r10
je 0x14003e255
mov r8, qword [rbp + 8]
mov edx, 0x410
lea rcx, [rsp + 0x2f50]
mov r9d, r15d
lea rax, [rsp + 0x2f50]
sub r8, rax
nop
lea rax, [rdx + 0x7ffffbee]
test rax, rax
je 0x14003e1b5
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e1b5
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e190
jmp 0x14003e1ba
test rdx, rdx
jne 0x14003e1c4
sub rcx, 2
mov r9d, 0x8007007a
mov word [rcx], 0
test r9d, r9d
jne 0x14003e2ab
mov r9d, 0x410
mov r8, r10
lea rdx, [rsp + 0x2f50]
mov r14, qword [rsp + 0x68]
mov rcx, qword [r14 + 8]
call fcn.140012f30
test eax, eax
je 0x14003e2b0
mov edx, 0x104
lea rcx, [rsp + 0x630]
lea r8, [rsp + 0x2f50]
lea rax, [rsp + 0x630]
sub r8, rax
nop
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003e245
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e245
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e220
jmp 0x14003e24a
test rdx, rdx
jne 0x14003e24e
sub rcx, 2
mov word [rcx], 0
jmp 0x14003e2b0
mov r8, qword [rbp + 8]
mov edx, 0x104
lea rcx, [rsp + 0x630]
lea rax, [rsp + 0x630]
sub r8, rax
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003e296
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e296
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e271
jmp 0x14003e29b
test rdx, rdx
jne 0x14003e29f
sub rcx, 2
mov word [rcx], 0
mov r14, qword [rsp + 0x68]
jmp 0x14003e2b0
mov r14, qword [rsp + 0x68]
mov r13, r15
test rbx, rbx
je 0x14003e304
mov ecx, 0x7fffffff
mov rax, rbx
mov r8d, r15d
cmp word [rax], 0
je 0x14003e2d5
add rax, 2
sub rcx, 1
jne 0x14003e2c3
jmp 0x14003e2da
test rcx, rcx
jne 0x14003e2ed
mov r8d, 0x80070057
mov rdx, r15
mov qword [rsp + 0xd8], rdx
jmp 0x14003e2fd
mov edx, 0x7fffffff
sub rdx, rcx
mov qword [rsp + 0xd8], rdx
test r8d, r8d
jns 0x14003e31c
jmp 0x14003e30a
mov r8d, 0x80070057
mov rdx, r15
test r8d, r8d
cmovs rdx, r15
mov qword [rsp + 0xd8], rdx
mov r9, qword [rsi + 8]
test r9, r9
je 0x14003e371
mov ecx, 0x7fffffff
mov rax, r9
mov r8d, r15d
cmp word [rax], 0
je 0x14003e342
add rax, 2
sub rcx, 1
jne 0x14003e330
jmp 0x14003e347
test rcx, rcx
jne 0x14003e35a
mov r8d, 0x80070057
mov rax, r15
mov qword [rsp + 0xf0], rax
jmp 0x14003e36a
mov eax, 0x7fffffff
sub rax, rcx
mov qword [rsp + 0xf0], rax
test r8d, r8d
jns 0x14003e389
jmp 0x14003e377
mov r8d, 0x80070057
mov rax, r15
test r8d, r8d
cmovs rax, r15
mov qword [rsp + 0xf0], rax
cmp edx, eax
jge 0x14003e3fc
test rbx, rbx
je 0x14003e3df
mov ecx, 0x7fffffff
mov rax, rbx
mov edx, r15d
nop
cmp word [rax], 0
je 0x14003e3b2
add rax, 2
sub rcx, 1
jne 0x14003e3a0
jmp 0x14003e3b7
test rcx, rcx
jne 0x14003e3c9
mov edx, 0x80070057
mov rax, r15
mov qword [rsp + 0xe8], rax
jmp 0x14003e3d9
mov eax, 0x7fffffff
sub rax, rcx
mov qword [rsp + 0xe8], rax
test edx, edx
jns 0x14003e3f5
jmp 0x14003e3e4
mov edx, 0x80070057
mov rax, r15
test edx, edx
cmovs rax, r15
mov qword [rsp + 0xe8], rax
cdqe
lea r13, [r9 + rax*2 + 2]
lea rcx, [rsp + 0x128]
call fcn.1400aa430
nop
lea r12, method.CPtrArray.virtual_0
mov qword [rsp + 0x128], r12
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov qword [rsp + 0x150], rax
lea r8, [rsp + 0x128]
lea rdx, [rsp + 0x630]
mov rcx, qword [r14 + 8]
call fcn.1400121d0
mov ebp, r15d
mov rdi, r15
mov rcx, qword [rsp + 0x138]
test rcx, rcx
jle 0x14003e4f7
nop
test rdi, rdi
js 0x14003e481
cmp rdi, rcx
jge 0x14003e481
test rdi, rdi
js 0x14003ed90
mov rax, qword [rsp + 0x130]
mov rsi, qword [rax + rdi*8]
jmp 0x14003e484
mov rsi, r15
call fcn.1400a02a0
mov rcx, qword [rax + 8]
mov qword [rsp + 0x158], rcx
mov rax, qword [rcx + 0x140]
mov qword [rsp + 0x160], rax
mov rax, qword [rcx + 0x148]
mov qword [rsp + 0x168], rax
mov rax, qword [r14 + 0x10]
mov r8, qword [rax + 0x158]
cmp dword [r8 - 0x10], 0
cmove r8, r15
mov rdx, rsi
lea rcx, [rsp + 0x158]
call fcn.1400662c0
add ebp, 1
add rdi, 1
movsxd rax, ebp
mov rcx, qword [rsp + 0x138]
cmp rax, rcx
jl 0x14003e460
mov rsi, qword [rsp + 0x78]
mov edx, 0x410
lea rcx, [rsp + 0x2730]
mov r9d, r15d
lea r8, [rsp + 0x630]
lea rax, [rsp + 0x2730]
sub r8, rax
nop
nop
lea rax, [rdx + 0x7ffffbee]
test rax, rax
je 0x14003e545
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e545
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e520
jmp 0x14003e54a
test rdx, rdx
jne 0x14003e554
sub rcx, 2
mov r9d, 0x8007007a
mov word [rcx], 0
test r9d, r9d
jne 0x14003e6b3
mov edx, 0x410
lea rcx, [rsp + 0x3770]
mov r9d, r15d
lea r8, [rsp + 0x2730]
lea rax, [rsp + 0x3770]
sub r8, rax
nop
nop
nop
lea rax, [rdx + 0x7ffffbee]
test rax, rax
je 0x14003e5b5
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e5b5
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e590
jmp 0x14003e5ba
test rdx, rdx
jne 0x14003e5c4
sub rcx, 2
mov r9d, 0x8007007a
mov word [rcx], 0
test r9d, r9d
jne 0x14003e6b3
mov rdx, qword [rsi + 0x10]
lea rcx, [rsp + 0x3770]
call fcn.14002ae40
mov r11d, 0x410
lea rcx, [rsp + 0x2730]
mov r8d, r15d
lea rdx, [rsp + 0x3770]
lea rax, [rsp + 0x2730]
sub rdx, rax
nop
nop
nop
lea rax, [r11 + 0x7ffffbee]
test rax, rax
je 0x14003e634
movzx eax, word [rdx + rcx]
test ax, ax
je 0x14003e634
mov word [rcx], ax
add rcx, 2
sub r11, 1
jne 0x14003e610
jmp 0x14003e639
test r11, r11
jne 0x14003e643
sub rcx, 2
mov r8d, 0x8007007a
mov word [rcx], 0
mov eax, r15d
test r8d, r8d
sete al
test eax, eax
je 0x14003e6b3
mov edx, 0x104
lea rcx, [rsp + 0x840]
lea r8, [rsp + 0x2730]
lea rax, [rsp + 0x840]
sub r8, rax
nop
nop
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003e6a5
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e6a5
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e680
jmp 0x14003e6aa
test rdx, rdx
jne 0x14003e6ae
sub rcx, 2
mov word [rcx], 0
cmp dword [rsp + 0x54], 2
jne 0x14003e872
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], 0x104
lea rax, [rsp + 0x1080]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x104
lea r9, [rsp + 0x14a0]
mov r8d, 0x104
lea rdx, [rsp + 0x2100]
lea rcx, [rsp + 0x840]
call fcn.1400cddd0
test eax, eax
jne 0x14003e7a4
lea rax, str..url
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1080]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x14a0]
lea r8, [rsp + 0x2100]
mov edx, 0x104
lea rcx, [rsp + 0x18c0]
call fcn.1400ce8f0
test eax, eax
jne 0x14003e7a4
mov edx, 0x104
lea rcx, [rsp + 0x840]
lea r8, [rsp + 0x18c0]
lea rax, [rsp + 0x840]
sub r8, rax
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003e796
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14003e796
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e771
jmp 0x14003e79b
test rdx, rdx
jne 0x14003e79f
sub rcx, 2
mov word [rcx], 0
mov dword [rsp + 0x50], r15d
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x14003e868
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [0x1400fa080]
mov edi, 1
mov r8d, edi
xor edx, edx
lea rcx, [0x1400fa070]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x14003e862
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
lea r8, [rsp + 0xc0]
lea rdx, [0x1400fa0b0]
call qword [rax]
test eax, eax
jne 0x14003e854
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rsp + 0xa50]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rcx]
mov r8d, edi
lea rdx, [rsp + 0x840]
call qword [rax + 0x30]
mov ecx, r15d
test eax, eax
sete cl
mov dword [rsp + 0x50], ecx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov r13d, dword [rsp + 0x50]
jmp 0x14003e9cb
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], 0x104
lea rax, [rsp + 0x2520]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x104
lea r9, [rsp + 0x1ce0]
mov r8d, 0x104
lea rdx, [rsp + 0x2310]
lea rcx, [rsp + 0x840]
call fcn.1400cddd0
test eax, eax
jne 0x14003e963
lea rax, str..lnk
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2520]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1ce0]
lea r8, [rsp + 0x2310]
mov edx, 0x104
lea rcx, [rsp + 0x1290]
call fcn.1400ce8f0
test eax, eax
jne 0x14003e963
mov edx, 0x104
lea rcx, [rsp + 0x840]
lea r8, [rsp + 0x1290]
lea rax, [rsp + 0x840]
sub r8, rax
nop
nop
nop
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x14003e955
movzx eax, word [rcx + r8]
test ax, ax
je 0x14003e955
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003e930
jmp 0x14003e95a
test rdx, rdx
jne 0x14003e95e
sub rcx, 2
mov word [rcx], 0
mov edi, dword [rsi + 0x28]
mov rsi, qword [rsi + 0x20]
mov rbp, qword [rsp + 0x78]
mov rbp, qword [rbp + 0x18]
mov r12, qword [r14 + 8]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x14003e9bc
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbp
mov r9, r13
lea r8, [rsp + 0xa50]
lea rdx, [rsp + 0x840]
mov rcx, r12
call fcn.140013840
mov r13d, eax
mov dword [rsp + 0x50], eax
lea r12, method.CPtrArray.virtual_0
jmp 0x14003e9cb
mov r13d, r15d
mov dword [rsp + 0x50], r15d
lea r12, method.CPtrArray.virtual_0
mov rax, qword [r14 + 0x10]
bt qword [rax], 0xd
jb 0x14003ec4b
test r13d, r13d
je 0x14003ec4b
mov esi, r15d
mov rdi, r15
mov rax, qword [rsp + 0xa0]
test rax, rax
jle 0x14003ea58
mov ebp, 1
nop
nop
test esi, esi
jne 0x14003ec4b
test rdi, rdi
js 0x14003ea29
cmp rdi, rax
jge 0x14003ea29
test rdi, rdi
js 0x14003ed96
mov rax, qword [rsp + 0x98]
mov rcx, qword [rax + rdi*8]
jmp 0x14003ea2c
mov rcx, r15
lea rdx, [rsp + 0x630]
call fcn.1400cdd20
test eax, eax
cmove esi, ebp
add rdi, rbp
mov rax, qword [rsp + 0xa0]
cmp rdi, rax
jl 0x14003ea00
test esi, esi
jne 0x14003ec4b
jmp 0x14003ea5d
mov ebp, 1
mov edi, r15d
mov rbx, r15
test rax, rax
jle 0x14003eabf
test edi, edi
jne 0x14003eb75
test rbx, rbx
js 0x14003ea91
cmp rbx, rax
jge 0x14003ea91
test rbx, rbx
js 0x14003ed9c
mov rax, qword [rsp + 0x98]
mov rcx, qword [rax + rbx*8]
jmp 0x14003ea94
mov rcx, r15
lea rdx, [rsp + 0x630]
call fcn.1400cdd20
test eax, eax
cmove edi, ebp
add rbx, 1
mov rax, qword [rsp + 0xa0]
cmp rbx, rax
jl 0x14003ea68
test edi, edi
jne 0x14003eb75
mov ecx, 0x3fffffff
lea rax, [rsp + 0x630]
nop
cmp word [rax], 0
je 0x14003eae5
add rax, 2
sub rcx, 1
jne 0x14003ead0
jmp 0x14003eb75
test rcx, rcx
je 0x14003eb75
mov eax, 0x3fffffff
sub rax, rcx
mov qword [rsp + 0x170], rax
lea rbx, [rax + rax + 2]
mov qword [rsp + 0x180], rbx
test rbx, rbx
jle 0x14003eb75
mov r8, rbx
mov edx, 8
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
je 0x14003eb75
mov r9, rbx
lea r8, [rsp + 0x630]
mov rdx, rbx
mov rcx, rax
call fcn.1400cd500
test eax, eax
jne 0x14003eb62
mov r8, rdi
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0x90]
call fcn.1400aa678
jmp 0x14003eb75
mov r8, rdi
xor edx, edx
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
call fcn.14009d5e8
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
je 0x14003eda2
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xc8], rax
lea r8, [rsp + 0x630]
lea rdx, [0x140100888]
lea rcx, [rsp + 0xc8]
call fcn.14000a800
mov r11, qword [r14 + 0x10]
mov r8, qword [r11 + 0x108]
cmp dword [r8 - 0x10], 0
cmove r8, r15
mov dword [rsp + 0x20], 0x104
lea r9, str.explorer.exe
lea rdx, [rsp + 0x16b0]
mov rcx, qword [r14 + 8]
call fcn.140013060
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov rbx, qword [rsp + 0xc8]
mov r8, rbx
lea rdx, [rsp + 0x16b0]
mov rcx, qword [r14 + 8]
call fcn.140014b80
test rax, rax
je 0x14003ec23
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003ec46
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x58]
jmp 0x14003ec4b
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x128], r12
mov rcx, qword [rsp + 0x138]
test rcx, rcx
jle 0x14003ecba
mov rdi, r15
test rdi, rdi
js 0x14003edad
cmp rdi, rcx
jge 0x14003edad
mov rax, qword [rsp + 0x130]
mov r8, qword [rax + rdi*8]
test r8, r8
je 0x14003ec9e
xor edx, edx
mov rcx, qword [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0x138]
add rdi, 1
cmp rdi, rcx
jl 0x14003ec63
or r8, 0xffffffffffffffff
xor edx, edx
lea rcx, [rsp + 0x128]
call fcn.1400aa464
mov rcx, qword [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
nop
lea rcx, [rsp + 0x128]
call fcn.1400aa450
jmp 0x14003ecf7
mov r13d, dword [rsp + 0x50]
jmp 0x14003ecf7
mov r13d, dword [rsp + 0x50]
mov r14, qword [rsp + 0x68]
jmp 0x14003ecf7
mov r13d, dword [rsp + 0x50]
jmp 0x14003ecf7
mov r13d, dword [rsp + 0x50]
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003ed13
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rsp + 0x70]
add ebx, 1
mov dword [rsp + 0x70], ebx
mov rsi, qword [rsp + 0xd0]
add rsi, 1
mov qword [rsp + 0xd0], rsi
mov rbp, qword [rsp + 0x80]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax + 0x10]
movsxd rax, ebx
cmp rax, rcx
mov r12d, dword [rsp + 0x54]
jl 0x14003dd17
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rsp + 0xe0]
mov r8d, dword [rsp + 0x60]
add r8d, 1
mov dword [rsp + 0x60], r8d
add rdx, 1
mov qword [rsp + 0xe0], rdx
movsxd rax, r8d
cmp rax, rcx
jge 0x14003edc4
jmp 0x14003dcd2
call fcn.1400a0610
nop
call fcn.1400a0610
int3
call fcn.1400a0610
int3
call fcn.1400a0610
int3
mov ecx, 0x80004005
call fcn.1400034f0
nop
call fcn.1400a0610
nop
call fcn.1400a0610
nop
mov ecx, 0x80004005
call fcn.1400034f0
int3
lea rdi, method.CPtrArray.virtual_0
jmp 0x14003edd3
call fcn.1400a0610
int3
mov rbx, r15
test rcx, rcx
jle 0x14003ee18
nop
nop
test rbx, rbx
js 0x14003ee12
cmp rbx, rcx
jge 0x14003ee12
mov rax, qword [rsp + 0x100]
mov rdx, qword [rax + rbx*8]
mov rcx, qword [r14 + 0x10]
call fcn.14000ed50
add rbx, 1
mov rcx, qword [rsp + 0x108]
cmp rbx, rcx
jl 0x14003ede0
jmp 0x14003ee18
call fcn.1400a0610
nop
mov qword [rsp + 0x90], rdi
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
jle 0x14003ee87
mov rbx, r15
test rbx, rbx
js 0x14003ee81
cmp rbx, rcx
jge 0x14003ee81
mov rax, qword [rsp + 0x98]
mov r8, qword [rax + rbx*8]
test r8, r8
je 0x14003ee63
xor edx, edx
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0xa0]
add rbx, 1
cmp rbx, rcx
jl 0x14003ee30
or r8, 0xffffffffffffffff
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.1400aa464
jmp 0x14003ee87
call fcn.1400a0610
int3
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
nop
lea rcx, [rsp + 0x90]
call fcn.1400aa450
mov dword [rsp + 0x20], r13d
lea r9, [0x1400fb428]
lea r8, str.SetProgman
lea rdx, str.CPrinter
mov rcx, qword [r14]
call fcn.140080e70
nop
mov qword [rsp + 0xf8], rdi
mov rcx, qword [rsp + 0x108]
test rcx, rcx
jle 0x14003ef37
nop
nop
test r15, r15
js 0x14003ef31
cmp r15, rcx
jge 0x14003ef31
mov rax, qword [rsp + 0x100]
mov r8, qword [rax + r15*8]
test r8, r8
je 0x14003ef13
xor edx, edx
mov rcx, qword [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0x108]
add r15, 1
cmp r15, rcx
jl 0x14003eee0
or r8, 0xffffffffffffffff
xor edx, edx
lea rcx, [rsp + 0xf8]
call fcn.1400aa464
jmp 0x14003ef37
call fcn.1400a0610
int3
mov rcx, qword [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
nop
lea rcx, [rsp + 0xf8]
call fcn.1400aa450
mov eax, r13d
mov rcx, qword [rsp + 0x3f90]
xor rcx, rsp
call fcn.1400cd6e0
mov rbx, qword [rsp + 0x3ff0]
add rsp, 0x3fa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret