Function at 0x180021340
Capabilities:
Get file attributes

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xdd0
mov qword [rsp + 0x368], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1800ac2b8]
xor rax, rsp
mov qword [rsp + 0xdc0], rax
mov ebx, r8d
mov dword [rsp + 0x28], ebx
mov r13d, edx
mov rbp, rcx
xor r12d, r12d
or rsi, 0xffffffffffffffff
movabs r14, 0x6666666666666667
test dl, 1
je 0x1800214e8
mov eax, ebx
shr eax, 4
and eax, 1
jne 0x1800213fd
add rcx, 0x60
mov rdx, qword [rcx + 0x20]
sub rdx, qword [rcx + 0x18]
mov rax, r14
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jne 0x1800214e8
xor edx, edx
call fcn.180022c00
cmp qword [rax + 0x20], 8
jb 0x1800213ec
mov rcx, qword [rax + 8]
jmp 0x1800213f0
lea rcx, [rax + 8]
call fcn.18001c680
test eax, eax
je 0x1800214e8
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x98], rax
lea r8, [rsp + 0x98]
mov edx, 0x1f41
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x160], 7
mov qword [rsp + 0x158], r12
mov word [rsp + 0x148], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x98]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x140]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x140]
call fcn.180024850
nop
cmp qword [rsp + 0x160], 8
jb 0x1800214a5
mov rcx, qword [rsp + 0x148]
call fcn.18005eeb4
mov qword [rsp + 0x118], 1
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0x118]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800214e8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov r15d, ebx
and r15d, 2
je 0x180021bde
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0xb0], rax
test r13b, 2
je 0x1800215fb
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea r8, [rsp + 0x68]
mov edx, 0x1f46
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x228], 7
mov qword [rsp + 0x220], r12
mov word [rsp + 0x210], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x208]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x208]
call fcn.180024850
nop
cmp qword [rsp + 0x228], 8
jb 0x1800215bb
mov rcx, qword [rsp + 0x210]
call fcn.18005eeb4
mov qword [rsp + 0xd8], 2
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0xd8]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800215fb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
test r13b, 4
je 0x1800216e4
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea r8, [rsp + 0x58]
mov edx, 0x1f47
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x2c8], 7
mov qword [rsp + 0x2c0], r12
mov word [rsp + 0x2b0], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x58]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x2a8]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x2a8]
call fcn.180024850
nop
cmp qword [rsp + 0x2c8], 8
jb 0x1800216a4
mov rcx, qword [rsp + 0x2b0]
call fcn.18005eeb4
mov qword [rsp + 0x108], 4
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0x108]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800216e4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
bt r13d, 0xc
jae 0x1800217ce
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea r8, [rsp + 0x78]
mov edx, 0x1f5a
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x278], 7
mov qword [rsp + 0x270], r12
mov word [rsp + 0x260], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x258]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x258]
call fcn.180024850
nop
cmp qword [rsp + 0x278], 8
jb 0x18002178e
mov rcx, qword [rsp + 0x260]
call fcn.18005eeb4
mov qword [rsp + 0xe8], 0x1000
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0xe8]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800217ce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
test r13b, 8
je 0x180021a7a
lea rcx, [rbp + 0x60]
mov rdx, qword [rcx + 0x20]
sub rdx, qword [rcx + 0x18]
mov rax, r14
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jne 0x180021a7a
xor edx, edx
call fcn.180022c00
cmp qword [rax + 0x20], 8
jb 0x180021816
mov rcx, qword [rax + 8]
jmp 0x18002181a
lea rcx, [rax + 8]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov rdx, rax
lea rcx, [rsp + 0x370]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x370]
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov word [rax], r12w
lea rcx, [rsp + 0x370]
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov rdi, rax
lea rdx, str..tar
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x18002186c
mov word [rdi], r12w
lea rcx, [rsp + 0x370]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
dec eax
movsxd rcx, eax
cmp word [rsp + rcx*2 + 0x370], 0x20
jne 0x1800218b7
cmp word [rsp + rcx*2 + 0x370], 0x20
jne 0x1800218b7
nop word [rax + rax]
mov word [rsp + rcx*2 + 0x370], r12w
dec rcx
cmp word [rsp + rcx*2 + 0x370], 0x20
je 0x1800218a0
mov edx, reloc.WLDAP32.dll_Ordinal_46
lea rcx, [rsp + 0x370]
call fcn.180061e2c
mov rdi, rax
test rax, rax
je 0x1800218f0
lea rcx, [rax + 2]
mov r8d, 4
lea rdx, str.part
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x1800218f0
mov word [rdi], r12w
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x38]
mov edx, 0x1f48
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov edx, 0x104
lea rcx, [rsp + 0x370]
call fcn.18001c180
mov rdx, qword [rsp + 0x38]
cmp dword [rdx - 8], 1
jle 0x18002194f
mov edx, dword [rdx - 0x10]
lea rcx, [rsp + 0x38]
call fcn.1800040a0
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x370]
lea rcx, [rsp + 0x9a0]
call qword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x370]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rsp + 0x370]
lea rcx, [rbp + 0x338]
call fcn.180003c80
lea rcx, [rsp + 0x9a0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x360], rax
test rax, rax
jne 0x1800219b9
mov ecx, 0x8007000e
call fcn.180002fb0
nop
mov qword [rsp + 0x1d8], 7
mov qword [rsp + 0x1d0], r12
mov word [rsp + 0x1c0], r12w
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x1b8]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x1b8]
call fcn.180024850
nop
cmp qword [rsp + 0x1d8], 8
jb 0x180021a26
mov rcx, qword [rsp + 0x1c0]
call fcn.18005eeb4
mov qword [rsp + 0x128], 8
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0x128]
call fcn.180024160
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180021a76
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov ebx, dword [rsp + 0x28]
jmp 0x180021a7a
mov ebx, dword [rsp + 0x28]
test r13b, 0x10
je 0x180021bbc
lea r8, str.SmartExtr
lea rdx, [0x18008c424]
lea rcx, [rsp + 0xb0]
call fcn.180011550
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x80]
sub rcx, qword [rbp + 0x78]
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jne 0x180021af6
lea r8, [rsp + 0x50]
mov edx, 0x1f49
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
jmp 0x180021b0c
lea r8, [rsp + 0x50]
mov edx, 0x1f4a
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x200], 7
mov qword [rsp + 0x1f8], r12
mov word [rsp + 0x1e8], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x50]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x1e0]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x1e0]
call fcn.180024850
nop
cmp qword [rsp + 0x200], 8
jb 0x180021b7b
mov rcx, qword [rsp + 0x1e8]
call fcn.18005eeb4
mov qword [rsp + 0xf8], reloc.WS2_32.dll_recv
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0xf8]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180021bbc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180021bde
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
test bl, 1
je 0x1800223ba
test r13b, 0x20
je 0x180021cdc
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0xa8], rax
lea r8, [rsp + 0xa8]
mov edx, 0x1f45
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x250], 7
mov qword [rsp + 0x248], r12
mov word [rsp + 0x238], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0xa8]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x230]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x230]
call fcn.180024850
nop
cmp qword [rsp + 0x250], 8
jb 0x180021c99
mov rcx, qword [rsp + 0x238]
call fcn.18005eeb4
mov qword [rsp + 0xc8], reloc.WLDAP32.dll_Ordinal_32
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0xc8]
call fcn.180024160
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180021cdc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov edx, r13d
shr edx, 0xb
and edx, 1
mov rcx, rbp
call fcn.1800212c0
bt r13d, 8
jae 0x180021de3
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x88], rax
lea r8, [rsp + 0x88]
mov edx, 0x1f52
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x188], 7
mov qword [rsp + 0x180], r12
mov word [rsp + 0x170], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x88]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x168]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x168]
call fcn.180024850
nop
cmp qword [rsp + 0x188], 8
jb 0x180021da0
mov rcx, qword [rsp + 0x170]
call fcn.18005eeb4
mov qword [rsp + 0xd0], pe_nt_image_headers64
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0xd0]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180021de3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
test r13b, r13b
jns 0x1800220d1
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x20]
mov edx, 0x1f53
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
xor eax, eax
mov rcx, rsi
lea rdi, [0x18008c314]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x18008c314]
lea rcx, [rsp + 0x20]
call fcn.1800113a0
xor eax, eax
mov rcx, rsi
lea rdi, [0x18008c33c]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x18008c33c]
lea rcx, [rsp + 0x20]
call fcn.1800113a0
xor r9d, r9d
mov r8d, 0x104
lea rdx, [rsp + 0xbb0]
mov rcx, rbp
call fcn.18001c320
lea rcx, [rsp + 0xbb0]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov rdx, rax
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x30
jl 0x180021f1c
mov r8d, ntohs
lea rdx, [rsp + 0x580]
lea rcx, [rsp + 0x790]
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
lea rdx, [0x18008c3c8]
lea rcx, [rsp + 0x790]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rsp + 0x580]
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
lea rdx, [rax - 0x48]
lea rcx, [rsp + 0x790]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rsp + 0x790]
lea rcx, [rsp + 0x580]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x580]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rsp + 0x580]
lea rcx, [rsp + 0x20]
call fcn.1800113a0
xor eax, eax
mov rcx, rsi
lea rdi, [0x18008c3c4]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x18008c3c4]
lea rcx, [rsp + 0x20]
call fcn.1800113a0
xor eax, eax
mov rcx, rsi
lea rdi, [0x18008c42c]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x18008c42c]
lea rcx, [rsp + 0x20]
call fcn.1800113a0
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0xa0], rax
lea r8, [rsp + 0xa0]
mov edx, 0x1f54
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov rdx, qword [rsp + 0xa0]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.1800113a0
mov rdx, qword [rsp + 0x20]
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
or eax, ecx
jge 0x180022004
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.180003fe0
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x1b0], 7
mov qword [rsp + 0x1a8], r12
mov word [rsp + 0x198], r12w
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x190]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x190]
call fcn.180024850
nop
cmp qword [rsp + 0x1b0], 8
jb 0x18002206e
mov rcx, qword [rsp + 0x198]
call fcn.18005eeb4
mov qword [rsp + 0xe0], 0x80
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0xe0]
call fcn.180024160
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800220b2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800220d1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea r8, [0x18008c430]
test r8, 0xffffffffffff0000
jne 0x18002212b
movzx edi, r8w
xor edx, edx
mov ecx, edi
call fcn.180003260
test rax, rax
je 0x180022231
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.180003b50
mov rbx, qword [rsp + 0x30]
jmp 0x180022231
xor eax, eax
mov rcx, rsi
mov rdi, r8
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x1800221a2
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x180022231
cmp dword [rdx + 0x10], eax
jge 0x180022175
cmp dword [rbx - 0xc], eax
jge 0x180022168
mov ecx, 0x80070057
call fcn.180002fb0
int3
mov dword [rbx - 0x10], r12d
mov word [rbx], r12w
jmp 0x180022231
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18002218b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + Ordinal_26]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
jmp 0x180022231
mov r14d, dword [rbx - 0x10]
mov r12, r8
sub r12, rbx
sar r12, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1800221d8
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.180003fe0
mov rbx, qword [rsp + 0x30]
lea r8, [0x18008c430]
cmp r12, r14
ja 0x1800221fc
movsxd rax, edi
lea r14, [rax + rax]
lea r8, [rbx + r12*2]
movsxd rdx, dword [rbx - 0xc]
add rdx, rdx
mov r9, r14
mov rcx, rbx
call fcn.18005f71c
jmp 0x180022215
movsxd rax, edi
lea r14, [rax + rax]
movsxd rdx, dword [rbx - 0xc]
add rdx, rdx
mov r9, r14
mov rcx, rbx
call fcn.18005f078
test edi, edi
js 0x1800223ac
cmp edi, dword [rbx - 0xc]
jg 0x1800223ac
mov dword [rbx - 0x10], edi
xor r12d, r12d
mov word [rbx + r14], r12w
mov r8d, 1
mov rdx, rbx
lea rcx, [rsp + 0xc0]
call fcn.180024b80
nop
lea rcx, [rsp + 0xc0]
call fcn.180024b00
mov r14d, eax
test eax, eax
jle 0x18002237f
xor ebx, ebx
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0xb8], rax
mov r9d, r12d
lea r8, [0x18008c448]
lea rdx, [0x18008c460]
lea rcx, [rsp + 0xb8]
call fcn.180011550
mov r8d, 1
mov rdi, qword [rsp + 0xb8]
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.180024b80
nop
mov dword [rsp + 0x48], ebx
lea r8, [rsp + 0x48]
lea rdx, [0x18008c470]
lea rcx, [rsp + 0x40]
call fcn.180024ac0
cmp dword [rsp + 0x48], 0
je 0x180022301
lea rcx, [rsp + 0x40]
call fcn.180024b60
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18002236e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x18002236e
mov dword [rsp + 0x2c], ebx
lea r8, [rsp + 0x2c]
lea rdx, str.AppendMenu
lea rcx, [rsp + 0x40]
call fcn.180024ac0
cmp dword [rsp + 0x2c], 0
jne 0x180022349
lea rcx, [rsp + 0x40]
call fcn.180024b60
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18002236e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x18002236e
lea rcx, [rsp + 0x40]
call fcn.180024b60
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18002236e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
inc r12d
cmp r12d, r14d
jl 0x180022262
mov rbx, qword [rsp + 0x30]
lea rcx, [rsp + 0xc0]
call fcn.180024b60
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800223b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
xor r12d, r12d
jmp 0x1800223ba
mov ecx, 0x80070057
call fcn.180002fb0
nop
xor r12d, r12d
test r15d, r15d
je 0x1800225d4
bt r13d, 9
jae 0x1800225d4
mov qword [rsp + 0xf0], 0x200
mov rdx, qword [rbp + 0xd8]
test rdx, rdx
jne 0x1800223eb
mov rcx, r12
jmp 0x1800223f9
mov rcx, qword [rbp + 0xe8]
sub rcx, rdx
sar rcx, 3
mov rbx, qword [rbp + 0xe0]
mov rax, rbx
sub rax, rdx
sar rax, 3
cmp rax, rcx
jae 0x180022426
mov qword [rbx], 0x200
lea rax, [rbx + 8]
mov qword [rbp + 0xe0], rax
jmp 0x180022515
cmp rdx, rbx
jbe 0x180022430
call fcn.1800610c8
mov r12, qword [rbp + 0xc0]
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x138], rbx
mov rcx, qword [rbp + 0xe0]
mov r14, qword [rbp + 0xd8]
mov rax, rcx
sub rax, r14
test rax, 0xfffffffffffffff8
jne 0x180022467
xor ebx, ebx
jmp 0x18002248b
cmp r14, rcx
jbe 0x180022471
call fcn.1800610c8
test r12, r12
je 0x18002247f
cmp r12, qword [rbp + 0xc0]
je 0x180022484
call fcn.1800610c8
sub rbx, r14
sar rbx, 3
movaps xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x350], xmm0
lea r9, [rsp + 0xf0]
mov r8d, 1
lea rdx, [rsp + 0x350]
lea rcx, [rbp + 0xc0]
call fcn.180023a10
mov r12, qword [rbp + 0xd8]
cmp r12, qword [rbp + 0xe0]
jbe 0x1800224d3
call fcn.1800610c8
mov rdi, qword [rbp + 0xc0]
test rdi, rdi
jne 0x1800224e9
call fcn.1800610c8
xor r11d, r11d
jmp 0x1800224ec
mov r11, qword [rdi]
lea rcx, [r12 + rbx*8]
cmp rcx, qword [r11 + 0x20]
ja 0x180022508
test rdi, rdi
je 0x180022500
mov rax, qword [rdi]
jmp 0x180022502
xor eax, eax
cmp rcx, qword [rax + 0x18]
jae 0x180022512
call fcn.1800610c8
xor r12d, r12d
jmp 0x180022515
xor r12d, r12d
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x60]
mov edx, 0x1f55
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x2a0], 7
mov qword [rsp + 0x298], r12
mov word [rsp + 0x288], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x60]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x280]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x280]
call fcn.180024850
nop
cmp qword [rsp + 0x2a0], 8
jb 0x1800225b5
mov rcx, qword [rsp + 0x288]
call fcn.18005eeb4
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1800225d4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
cmp dword [rbp], 0
je 0x180022724
bt r13d, 0x17
jae 0x180022730
lea rcx, [rbp + 0x60]
mov rdx, qword [rcx + 0x20]
sub rdx, qword [rcx + 0x18]
movabs r14, 0x6666666666666667
mov rax, r14
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jne 0x18002273a
xor edx, edx
call fcn.180022c00
cmp qword [rax + 0x20], 8
jb 0x180022631
mov rcx, qword [rax + 8]
jmp 0x180022635
lea rcx, [rax + 8]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x18002273a
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea r8, [rsp + 0x70]
mov edx, 0x1f59
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x2f0], 7
mov qword [rsp + 0x2e8], r12
mov word [rsp + 0x2d8], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x70]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x2d0]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x2d0]
call fcn.180024850
nop
cmp qword [rsp + 0x2f0], 8
jb 0x1800226e2
mov rcx, qword [rsp + 0x2d8]
call fcn.18005eeb4
mov qword [rsp + 0x100], 0x800000
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0x100]
call fcn.180024160
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18002273a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
jmp 0x18002273a
movabs r14, 0x6666666666666667
jmp 0x18002273a
movabs r14, 0x6666666666666667
mov ebx, dword [rsp + 0x28]
test bl, 4
je 0x180022842
bt r13d, 0x10
jae 0x180022842
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x80], rax
lea r8, [rsp + 0x80]
mov edx, 0x1f42
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x340], 7
mov qword [rsp + 0x338], r12
mov word [rsp + 0x328], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x80]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x320]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x320]
call fcn.180024850
nop
cmp qword [rsp + 0x340], 8
jb 0x1800227fa
mov rcx, qword [rsp + 0x328]
call fcn.18005eeb4
mov qword [rsp + 0x110], 0x10000
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0x110]
call fcn.180024160
inc dword [rbp + 0x120]
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180022842
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
test bl, 8
je 0x18002296d
bt r13d, 0x12
jae 0x18002296d
mov rdx, qword [rbp + 0x80]
sub rdx, qword [rbp + 0x78]
mov rax, r14
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jne 0x18002296d
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x90], rax
lea r8, [rsp + 0x90]
mov edx, 0x1f44
lea rcx, [0x1800ae4c0]
call fcn.180027bc0
mov qword [rsp + 0x318], 7
mov qword [rsp + 0x310], r12
mov word [rsp + 0x300], r12w
xor eax, eax
mov rcx, rsi
mov rdx, qword [rsp + 0x90]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x2f8]
call fcn.180003900
nop
lea rcx, [rbp + 0xf0]
lea rdx, [rsp + 0x2f8]
call fcn.180024850
nop
cmp qword [rsp + 0x318], 8
jb 0x180022927
mov rcx, qword [rsp + 0x300]
call fcn.18005eeb4
mov qword [rsp + 0x120], 0x40000
lea rcx, [rbp + 0xc0]
lea rdx, [rsp + 0x120]
call fcn.180024160
inc dword [rbp + 0x120]
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x18002296d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
xor eax, eax
mov rcx, qword [rsp + 0xdc0]
xor rcx, rsp
call fcn.18005f4d0
lea r11, [rsp + 0xdd0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret