Function at 0x18000ec10
Capabilities:
Connect socket
Get socket status
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xca0
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov qword [rsp + 0xcf8], rbx
mov rax, qword [0x18004b0f0]
xor rax, rsp
mov qword [rsp + 0xc90], rax
mov r13, r8
mov qword [rsp + 0x80], r8
mov r12, rdx
mov qword [rsp + 0x70], rdx
mov r14, rcx
mov qword [rsp + 0xc0], r8
xor r15d, r15d
mov dword [rsp + 0x5c], r15d
call fcn.1800122c8
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x18000ec8f
mov ecx, 0x80004005
call fcn.180001e70
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
call fcn.1800122c8
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x18000ecbe
mov ecx, 0x80004005
call fcn.180001e70
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
call fcn.1800122c8
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x18000eced
mov ecx, 0x80004005
call fcn.180001e70
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
call fcn.1800122c8
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x18000ed1c
mov ecx, 0x80004005
call fcn.180001e70
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x40], rsi
xor eax, eax
or rbp, 0xffffffffffffffff
mov rcx, rbp
lea rdi, [0x18003cbe0]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x18000edac
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x18000ee39
cmp dword [rdx + 0x10], eax
jge 0x18000ed7a
cmp dword [rbx - 0xc], eax
jge 0x18000ed6f
mov ecx, 0x80070057
call fcn.180001e70
int3
mov dword [rbx - 0x10], r15d
mov byte [rbx], al
jmp 0x18000ee39
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ed90
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov rsi, qword [rsp + 0x40]
jmp 0x18000ee39
mov r12d, dword [rbx - 0x10]
lea r13, [0x18003cbe0]
sub r13, rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x18000eddc
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.180001e10
mov rbx, qword [rsp + 0x50]
cmp r13, r12
ja 0x18000edfa
movsxd r12, edi
lea r8, [r13 + rbx]
movsxd rdx, dword [rbx - 0xc]
mov r9, r12
mov rcx, rbx
call fcn.180021434
jmp 0x18000ee13
movsxd r12, edi
movsxd rdx, dword [rbx - 0xc]
mov r9, r12
lea r8, [0x18003cbe0]
mov rcx, rbx
call fcn.18002139c
test edi, edi
js 0x18000f81c
cmp edi, dword [rbx - 0xc]
jg 0x18000f81c
mov dword [rbx - 0x10], edi
mov byte [r12 + rbx], 0
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x80]
mov rcx, qword [r13 + 8]
sub rcx, 0x18
call fcn.1800017b0
add rax, 0x18
mov qword [rsp + 0x98], rax
xor r9d, r9d
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0xa8]
mov rcx, r14
call fcn.18000f860
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rsi, 0xffffffffffffffe8
cmp rcx, rsi
je 0x18000eec7
cmp dword [rsi + 0x10], 0
jl 0x18000eeb8
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x18000eeb8
call fcn.1800017b0
mov rdi, rax
mov eax, ebp
lock xadd dword [rsi + 0x10], eax
dec eax
test eax, eax
jg 0x18000eead
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x40], rax
jmp 0x18000eec7
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.180001b10
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eee9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.1800122c8
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x18000ef09
mov ecx, 0x80004005
call fcn.180001e70
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x60], rdi
mov rdx, r13
lea rcx, [rsp + 0xc8]
call fcn.180004b90
mov r8, rax
lea rdx, [rsp + 0x90]
mov rcx, r14
call fcn.18000fdc0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x18000ef95
cmp dword [rdi + 0x10], 0
jl 0x18000ef86
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x18000ef86
call fcn.1800017b0
mov rbx, rax
mov eax, ebp
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x18000ef7b
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x18000ef95
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.180001b10
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000efb7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, 0x202
lea rdx, [rsp + 0x320]
call qword [sym.imp.WS2_32.dll_WSAStartup]
xor r8d, r8d
lea edx, [r8 + 1]
mov edi, 2
mov ecx, edi
call qword [sym.imp.WS2_32.dll_socket]
mov r15, rax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x48], 1
lea r8, [rsp + 0x48]
mov edx, 0x8004667e
mov rcx, rax
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov word [rsp + 0x310], di
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_gethostbyname]
test rax, rax
je 0x18000f029
mov rax, qword [rax + 0x18]
mov rcx, qword [rax]
mov eax, dword [rcx]
mov dword [rsp + 0x314], eax
mov ecx, 0x50
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rsp + 0x312], ax
mov dword [rsp + 0x88], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
xor edi, edi
mov dword [rsp + 0x8c], edi
lea r8d, [rdi + 0x10]
lea rdx, [rsp + 0x310]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x18000f1ee
mov qword [rsp + 0x108], r15
mov dword [rsp + 0x100], 1
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x100]
xor edx, edx
mov ecx, ebp
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jg 0x18000f1bf
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x18000f0d4
cmp rax, qword [rdi - 0x18]
jne 0x18000f0d4
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x18000f10d
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x18000f0f0
call fcn.180001db0
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
inc eax
movsxd rdx, eax
mov r8, rdi
lea rcx, [rbx + 0x18]
mov r9, rdx
call fcn.18002139c
lea rax, [rbx + 0x18]
mov qword [r12], rax
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f135
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f155
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f175
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f195
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [rdi - 8], ebp
dec ebp
test ebp, ebp
jg 0x18000f1af
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, r13
call fcn.180004aa0
mov rax, r12
jmp 0x18000f827
mov dword [rsp + 0x5c], ebp
mov dword [rsp + 0x78], 4
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x5c]
mov edx, 0xffff
mov r8d, 0x1007
mov rcx, r15
call qword [sym.imp.WS2_32.dll_getsockopt]
mov dword [rsp + 0x48], edi
lea r8, [rsp + 0x48]
mov edx, 0x8004667e
mov rcx, r15
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [rsp + 0x58], 0x3e8
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov edx, 0xffff
mov r8d, 0x1005
mov rcx, r15
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov edx, 0xffff
mov r8d, 0x1006
mov rcx, r15
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rbx, qword [rsp + 0x60]
lea r14, [rbx - 0x18]
mov qword [rsp + 0xb0], r14
mov rdi, qword [rsp + 0x38]
lea rsi, [rdi - 0x18]
cmp r14, rsi
je 0x18000f3a4
cmp dword [rsi + 0x10], 0
jl 0x18000f2b2
mov rax, qword [rsi]
cmp qword [r14], rax
jne 0x18000f2b2
mov rcx, r14
call fcn.1800017b0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rsi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000f2a4
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rdi, 0x18
mov qword [rsp + 0x38], rdi
jmp 0x18000f3a4
movsxd r12, dword [rbx - 0x10]
test r12d, r12d
jne 0x18000f31e
mov rbx, qword [rsi]
cmp dword [rsi + 8], r12d
je 0x18000f3a4
cmp dword [rsi + 0x10], r12d
jge 0x18000f2ee
cmp dword [rdi - 0xc], r12d
jge 0x18000f2df
mov ecx, 0x80070057
call fcn.180001e70
int3
mov dword [rdi - 0x10], 0
mov byte [rdi], 0
jmp 0x18000f3a4
mov eax, ebp
lock xadd dword [rsi + 0x10], eax
dec eax
test eax, eax
jg 0x18000f307
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
jmp 0x18000f3a4
mov r15d, dword [rdi - 0x10]
mov r13, rbx
sub r13, rdi
mov ecx, 1
sub ecx, dword [rsi + 0x10]
mov eax, dword [rsi + 0xc]
sub eax, r12d
or eax, ecx
jge 0x18000f34c
mov edx, r12d
lea rcx, [rsp + 0x38]
call fcn.180001e10
mov rdi, qword [rsp + 0x38]
cmp r13, r15
ja 0x18000f36a
mov rsi, r12
lea r8, [r13 + rdi]
movsxd rdx, dword [rdi - 0xc]
mov r9, r12
mov rcx, rdi
call fcn.180021434
jmp 0x18000f37f
mov rsi, r12
movsxd rdx, dword [rdi - 0xc]
mov r9, r12
mov r8, rbx
mov rcx, rdi
call fcn.18002139c
test r12d, r12d
js 0x18000f399
cmp r12d, dword [rdi - 0xc]
jg 0x18000f399
mov dword [rdi - 0x10], r12d
mov byte [rsi + rdi], 0
mov r15, qword [rsp + 0x68]
jmp 0x18000f3a4
mov ecx, 0x80070057
call fcn.180001e70
int3
xor r9d, r9d
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
mov r13d, eax
cmp eax, 0xffffffff
jne 0x18000f4db
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x18000f3ec
cmp rax, qword [rdi - 0x18]
jne 0x18000f3ec
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x18000f425
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x18000f408
call fcn.180001db0
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
inc eax
movsxd rdx, eax
mov r8, rdi
lea rcx, [rbx + 0x18]
mov r9, rdx
call fcn.18002139c
lea rax, [rbx + 0x18]
mov rsi, qword [rsp + 0x70]
mov qword [rsi], rax
mov eax, ebp
lock xadd dword [r14 + 0x10], eax
dec eax
test eax, eax
jg 0x18000f44c
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f46c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f48c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f4ac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [rdi - 8], ebp
dec ebp
test ebp, ebp
jg 0x18000f4c6
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x80]
call fcn.180004aa0
mov rax, rsi
jmp 0x18000f827
mov rbx, qword [rsp + 0x30]
test r13d, r13d
jle 0x18000f62a
xor edx, edx
mov r8d, 0x7d0
lea rcx, [rsp + 0x4c0]
call fcn.1800231a0
xor r9d, r9d
mov r8d, 0x7cf
lea rdx, [rsp + 0x4c0]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_recv]
mov r13d, eax
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x4c0]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rsi, rcx
lea r15, [rsp + 0x4c0]
lea r14, [rsp + 0x4c0]
sub r14, rbx
mov r12d, dword [rbx - 0x10]
test ecx, ecx
setns al
test eax, eax
je 0x18000f61a
cmp ecx, ecx
cmovg esi, esi
mov eax, 0x7fffffff
sub eax, esi
xor ecx, ecx
cmp eax, r12d
setge cl
test ecx, ecx
je 0x18000f60f
lea edi, [r12 + rsi]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x18000f599
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.180001e10
mov rbx, qword [rsp + 0x30]
cmp r14, r12
ja 0x18000f5a2
lea r15, [r14 + rbx]
movsxd rdx, esi
lea rcx, [r12 + rbx]
mov r9, rdx
mov r8, r15
call fcn.18002139c
test edi, edi
js 0x18000f604
cmp edi, dword [rbx - 0xc]
jg 0x18000f604
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov byte [rax + rbx], 0
cmp dword [rbx - 0x10], 0
jl 0x18000f5e8
lea rdx, str.jishu123
mov rcx, rbx
call fcn.180022398
test rax, rax
je 0x18000f5e8
sub eax, ebx
cmp eax, 0xffffffff
jne 0x18000f625
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp r13d, 0xffffffff
mov r15, qword [rsp + 0x68]
jne 0x18000f4e0
jmp 0x18000f62a
mov ecx, 0x80070057
call fcn.180001e70
int3
mov ecx, 0x80070057
call fcn.180001e70
int3
mov ecx, 0x80070057
call fcn.180001e70
int3
mov r15, qword [rsp + 0x68]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
cmp dword [rbx - 0x10], 0
jl 0x18000f704
lea rdx, str._r_n_r_n
mov rcx, rbx
call fcn.180022398
test rax, rax
je 0x18000f704
sub eax, ebx
cmp eax, 0xffffffff
je 0x18000f704
lea r8d, [rax + 4]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x30]
call fcn.1800039a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x18000f6d6
cmp dword [rbx + 0x10], 0
jl 0x18000f6c7
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x18000f6c7
call fcn.1800017b0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000f6bc
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x18000f6d6
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.180001b10
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f6ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x30]
jmp 0x18000f704
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x18000f728
cmp rax, qword [rbx - 0x18]
jne 0x18000f728
lea rdi, [rbx - 0x18]
lock add dword [rbx - 8], 1
jmp 0x18000f761
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rdi, rax
test rax, rax
jne 0x18000f744
call fcn.180001db0
int3
mov eax, dword [rbx - 0x10]
mov dword [rdi + 8], eax
mov eax, dword [rbx - 0x10]
inc eax
movsxd rdx, eax
mov r8, rbx
lea rcx, [rdi + 0x18]
mov r9, rdx
call fcn.18002139c
lea rax, [rdi + 0x18]
mov rsi, qword [rsp + 0x70]
mov qword [rsi], rax
mov eax, ebp
mov r14, qword [rsp + 0xb0]
lock xadd dword [r14 + 0x10], eax
dec eax
test eax, eax
jg 0x18000f790
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f7b0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f7d0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, ebp
lock xadd dword [rbx - 8], eax
dec eax
test eax, eax
jg 0x18000f7ec
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x18000f80a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x80]
call fcn.180004aa0
mov rax, rsi
jmp 0x18000f827
mov ecx, 0x80070057
call fcn.180001e70
nop
mov rcx, qword [rsp + 0xc90]
xor rcx, rsp
call fcn.180021200
mov rbx, qword [rsp + 0xcf8]
add rsp, 0xca0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret