Function at 0x18000ec20
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
mov eax, 0x2420
call fcn.180030720
sub rsp, rax
mov qword [rsp + 0xc0], 0xfffffffffffffffe
mov qword [rsp + 0x2478], rbx
mov rax, qword [0x18004b0f0]
xor rax, rsp
mov qword [rsp + 0x2410], rax
mov r15, r8
mov qword [rsp + 0x88], r8
mov r12, rdx
mov qword [rsp + 0x80], rdx
mov r14, rcx
mov qword [rsp + 0xc8], r8
mov dword [rsp + 0x58], 0
call fcn.1800122f8
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x18000eca7
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.1800122f8
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x18000ecd5
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.1800122f8
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x18000ed03
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.1800122f8
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x18000ed31
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 0x18000edc0
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x18000ee48
cmp dword [rdx + 0x10], eax
jge 0x18000ed8e
cmp dword [rbx - 0xc], eax
jge 0x18000ed84
mov ecx, 0x80070057
call fcn.180001e70
int3
mov dword [rbx - 0x10], eax
mov byte [rbx], al
jmp 0x18000ee48
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eda4
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 0x18000ee48
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 0x18000edf0
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.180001e10
mov rbx, qword [rsp + 0x50]
cmp r13, r12
ja 0x18000ee0e
movsxd r12, edi
lea r8, [r13 + rbx]
movsxd rdx, dword [rbx - 0xc]
mov r9, r12
mov rcx, rbx
call fcn.180021464
jmp 0x18000ee27
movsxd r12, edi
movsxd rdx, dword [rbx - 0xc]
mov r9, r12
lea r8, [0x18003cbe0]
mov rcx, rbx
call fcn.1800213cc
test edi, edi
js 0x18000f84e
cmp edi, dword [rbx - 0xc]
jg 0x18000f84e
mov dword [rbx - 0x10], edi
mov byte [r12 + rbx], 0
mov r12, qword [rsp + 0x80]
mov rcx, qword [r15 + 8]
sub rcx, 0x18
call fcn.1800017b0
add rax, 0x18
mov qword [rsp + 0xb0], rax
xor r9d, r9d
lea r8, [rsp + 0xb0]
lea rdx, [rsp + 0x98]
mov rcx, r14
call fcn.18000f890
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rsi, 0xffffffffffffffe8
cmp rcx, rsi
je 0x18000eed6
cmp dword [rsi + 0x10], 0
jl 0x18000eec7
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x18000eec7
call fcn.1800017b0
mov rdi, rax
mov eax, ebp
lock xadd dword [rsi + 0x10], eax
dec eax
test eax, eax
jg 0x18000eebc
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 0x18000eed6
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.180001b10
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eef8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.1800122f8
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x18000ef17
mov ecx, 0x80004005
call fcn.180001e70
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x70], rdi
mov rdx, r15
lea rcx, [rsp + 0xd0]
call fcn.180004bd0
mov r8, rax
lea rdx, [rsp + 0xa0]
mov rcx, r14
call fcn.18000fdf0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x18000efa3
cmp dword [rdi + 0x10], 0
jl 0x18000ef94
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x18000ef94
call fcn.1800017b0
mov rbx, rax
mov eax, ebp
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x18000ef89
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 + 0x70], rax
jmp 0x18000efa3
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
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 0x18000efc5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, 0x202
lea rdx, [rsp + 0x330]
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 r13, rax
mov qword [rsp + 0x60], 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 + 0x320], di
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_gethostbyname]
test rax, rax
je 0x18000f037
mov rax, qword [rax + 0x18]
mov rcx, qword [rax]
mov eax, dword [rcx]
mov dword [rsp + 0x324], eax
mov ecx, 0x50
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rsp + 0x322], ax
mov dword [rsp + 0x90], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
xor r14d, r14d
mov dword [rsp + 0x94], r14d
lea r8d, [r14 + 0x10]
lea rdx, [rsp + 0x320]
mov rcx, r13
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x18000f1fe
mov qword [rsp + 0x118], r13
mov dword [rsp + 0x110], 1
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x110]
xor edx, edx
mov ecx, ebp
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jg 0x18000f1cf
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], r14d
jl 0x18000f0e4
cmp rax, qword [rdi - 0x18]
jne 0x18000f0e4
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x18000f11d
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x18000f100
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.1800213cc
lea rax, [rbx + 0x18]
mov qword [r12], rax
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000f145
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 0x18000f165
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 0x18000f185
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 0x18000f1a5
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 0x18000f1bf
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, r15
call fcn.180004ae0
mov rax, r12
jmp 0x18000f859
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x78], 4
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
mov edx, 0xffff
mov r8d, 0x1007
mov rcx, r13
call qword [sym.imp.WS2_32.dll_getsockopt]
mov dword [rsp + 0x48], r14d
lea r8, [rsp + 0x48]
mov edx, 0x8004667e
mov rcx, r13
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [rsp + 0x68], 0x7d0
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x68]
mov edx, 0xffff
mov r8d, 0x1005
mov rcx, r13
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x68]
mov edx, 0xffff
mov r8d, 0x1006
mov rcx, r13
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rbx, qword [rsp + 0x70]
lea r15, [rbx - 0x18]
mov qword [rsp + 0xb8], r15
mov rdi, qword [rsp + 0x38]
lea rsi, [rdi - 0x18]
cmp r15, rsi
je 0x18000f3b2
cmp dword [rsi + 0x10], r14d
jl 0x18000f2c3
mov rax, qword [rsi]
cmp qword [r15], rax
jne 0x18000f2c3
mov rcx, r15
call fcn.1800017b0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rsi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000f2b5
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 0x18000f3b2
movsxd r12, dword [rbx - 0x10]
test r12d, r12d
jne 0x18000f32c
mov rbx, qword [rsi]
cmp dword [rsi + 8], r14d
je 0x18000f3b2
cmp dword [rsi + 0x10], r14d
jge 0x18000f2fc
cmp dword [rdi - 0xc], r14d
jge 0x18000f2f0
mov ecx, 0x80070057
call fcn.180001e70
int3
mov dword [rdi - 0x10], r14d
mov byte [rdi], r14b
jmp 0x18000f3b2
mov eax, ebp
lock xadd dword [rsi + 0x10], eax
dec eax
test eax, eax
jg 0x18000f315
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 0x18000f3b2
mov r14d, 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 0x18000f35a
mov edx, r12d
lea rcx, [rsp + 0x38]
call fcn.180001e10
mov rdi, qword [rsp + 0x38]
cmp r13, r14
ja 0x18000f378
mov rsi, r12
lea r8, [r13 + rdi]
movsxd rdx, dword [rdi - 0xc]
mov r9, r12
mov rcx, rdi
call fcn.180021464
jmp 0x18000f38d
mov rsi, r12
movsxd rdx, dword [rdi - 0xc]
mov r9, r12
mov r8, rbx
mov rcx, rdi
call fcn.1800213cc
test r12d, r12d
js 0x18000f3a7
cmp r12d, dword [rdi - 0xc]
jg 0x18000f3a7
mov dword [rdi - 0x10], r12d
mov byte [rsi + rdi], 0
mov r13, qword [rsp + 0x60]
jmp 0x18000f3b2
mov ecx, 0x80070057
call fcn.180001e70
int3
xor r9d, r9d
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.WS2_32.dll_send]
mov r14d, eax
cmp eax, 0xffffffff
jne 0x18000f4ec
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 0x18000f3fa
cmp rax, qword [rdi - 0x18]
jne 0x18000f3fa
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x18000f433
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x18000f416
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.1800213cc
lea rax, [rbx + 0x18]
mov rsi, qword [rsp + 0x80]
mov qword [rsi], rax
mov eax, ebp
lock xadd dword [r15 + 0x10], eax
dec eax
test eax, eax
jg 0x18000f45d
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
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 0x18000f47d
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 0x18000f49d
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 0x18000f4bd
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 0x18000f4d7
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 + 0x88]
call fcn.180004ae0
mov rax, rsi
jmp 0x18000f859
mov rbx, qword [rsp + 0x30]
test r14d, r14d
jle 0x18000f659
xor edx, edx
mov r8d, 0x1f40
lea rcx, [rsp + 0x4d0]
call fcn.1800231d0
xor r9d, r9d
mov r8d, 0x1f3f
lea rdx, [rsp + 0x4d0]
mov rcx, r13
call qword [sym.imp.WS2_32.dll_recv]
mov r14d, eax
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x4d0]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rsi, rcx
lea r15, [rsp + 0x4d0]
lea r13, [rsp + 0x4d0]
sub r13, rbx
mov r12d, dword [rbx - 0x10]
test ecx, ecx
setns al
test eax, eax
je 0x18000f642
cmp ecx, ecx
cmovg esi, esi
mov eax, 0x7fffffff
sub eax, esi
xor ecx, ecx
cmp eax, r12d
setge cl
test ecx, ecx
je 0x18000f637
lea edi, [r12 + rsi]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x18000f5aa
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.180001e10
mov rbx, qword [rsp + 0x30]
cmp r13, r12
ja 0x18000f5b4
lea r15, [r13 + rbx]
movsxd rdx, esi
lea rcx, [r12 + rbx]
mov r9, rdx
mov r8, r15
call fcn.1800213cc
test edi, edi
js 0x18000f62c
cmp edi, dword [rbx - 0xc]
jg 0x18000f62c
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov byte [rax + rbx], 0
cmp dword [rbx - 0x10], 0
jl 0x18000f5fa
lea rdx, str.end
mov rcx, rbx
call fcn.1800223c8
test rax, rax
je 0x18000f5fa
sub eax, ebx
cmp eax, 0xffffffff
jne 0x18000f64d
cmp dword [rbx - 0x10], 0
jl 0x18000f61b
lea rdx, str.__html_
mov rcx, rbx
call fcn.1800223c8
test rax, rax
je 0x18000f61b
sub eax, ebx
cmp eax, 0xffffffff
jne 0x18000f654
cmp r14d, 0xffffffff
mov r13, qword [rsp + 0x60]
jne 0x18000f4f1
jmp 0x18000f659
mov ecx, 0x80070057
call fcn.180001e70
int3
mov ecx, 0x80070057
call fcn.180001e70
int3
mov ecx, 0x80070057
call fcn.180001e70
int3
mov r13, qword [rsp + 0x60]
jmp 0x18000f659
mov r13, qword [rsp + 0x60]
mov rcx, r13
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
cmp dword [rbx - 0x10], 0
jl 0x18000f733
lea rdx, str._r_n_r_n
mov rcx, rbx
call fcn.1800223c8
test rax, rax
je 0x18000f733
sub eax, ebx
cmp eax, 0xffffffff
je 0x18000f733
lea r8d, [rax + 4]
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x30]
call fcn.1800039a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x18000f705
cmp dword [rbx + 0x10], 0
jl 0x18000f6f6
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x18000f6f6
call fcn.1800017b0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000f6eb
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 0x18000f705
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
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 0x18000f72e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x30]
jmp 0x18000f733
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 0x18000f757
cmp rax, qword [rbx - 0x18]
jne 0x18000f757
lea rdi, [rbx - 0x18]
lock add dword [rbx - 8], 1
jmp 0x18000f790
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rbx - 0x10]
call qword [rax]
mov rdi, rax
test rax, rax
jne 0x18000f773
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.1800213cc
lea rax, [rdi + 0x18]
mov rsi, qword [rsp + 0x80]
mov qword [rsi], rax
mov eax, ebp
mov r15, qword [rsp + 0xb8]
lock xadd dword [r15 + 0x10], eax
dec eax
test eax, eax
jg 0x18000f7c2
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
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 0x18000f7e2
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 0x18000f802
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 0x18000f81e
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 0x18000f83c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x88]
call fcn.180004ae0
mov rax, rsi
jmp 0x18000f859
mov ecx, 0x80070057
call fcn.180001e70
nop
mov rcx, qword [rsp + 0x2410]
xor rcx, rsp
call fcn.180021230
mov rbx, qword [rsp + 0x2478]
add rsp, 0x2420
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret