Function at 0x401ad0
Capabilities:
Connect to wmi namespace via wbemlocator
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov esi, esp
mov dword [esi + 0x98], ebp
mov dword [esi + 0x9c], esp
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0xa0]
mov dword [esi + 0xa4], 0x406ef0
mov ecx, dword fs:[0]
mov dword [esi + 0xa0], ecx
mov dword fs:[0], eax
cmp dword [0x42c260], 0xa
jl 0x401b42
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401b42
nop word cs:[eax + eax]
jmp 0x401b40
mov ecx, dword [sym.imp.ole32.dll_CoInitialize]
nop dword [eax + eax]
push eax
sub esp, 0x3fc
mov dword [esi + 0x24], esp
push eax
mov edi, esp
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0x1c], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 4], eax
mov esp, eax
push eax
mov dword [esi + 0x38], esp
sub esp, 0x18
mov dword [esi + 0xc], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x34], eax
mov esp, eax
push eax
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x8c], 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 + 0x18], esp
push 0
mov ebx, ecx
call ecx
mov dword [edi], 0
mov dword [esi + 0x28], edi
push edi
push 0x42a758
push 1
push 0
push 0x42a768
mov eax, dword [sym.imp.ole32.dll_CoCreateInstance]
call eax
cmp dword [0x42c260], 0xa
jl 0x401c28
mov ecx, dword [0x42c264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401c28
push eax
mov edi, esp
push 0
call ebx
mov dword [edi], 0
push edi
push 0x42a758
push 1
push 0
push 0x42a768
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ecx, ebx
jmp 0x401b50
lea ebx, [ebp + 8]
lea ecx, [ebx + 4]
mov dword [esi + 0x30], ecx
lea ecx, [ebx + 0x1c]
mov dword [esi + 0x2c], ecx
test eax, eax
js 0x401c72
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
cmp dword [0x42c268], 0xa
jl 0x401e6c
mov eax, dword [0x42c26c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401e6c
nop word [eax + eax]
jmp 0x401c70
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
xor edi, edi
cmp eax, 0xa
jl 0x401cc4
test ecx, ecx
je 0x401cc4
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
nop dword [eax]
call ebx
call ebx
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x401cc1
test ecx, ecx
jne 0x401ca0
lea ebx, [ebp + 8]
cmp eax, 0xa
jl 0x401d06
test ecx, ecx
je 0x401d06
nop dword [eax]
jmp 0x401cd0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0xf
mov byte [ebx + 4], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 7
mov word [ebx + 0x1c], 0
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
jb 0x401d43
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x401d36
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
lea ebx, [ebp + 8]
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0xf
mov byte [ebx + 4], 0
mov eax, dword [ebx + 0x30]
cmp eax, 8
jb 0x401d98
mov ecx, dword [esi + 0x2c]
mov ecx, dword [ecx]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401d8b
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
lea ebx, [ebp + 8]
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 7
mov word [ebx + 0x1c], 0
cmp dword [0x42c260], 0xa
jl 0x401f82
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401f82
mov eax, dword [ebx + 0x18]
cmp eax, 0xf
jbe 0x401ce0
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x401e01
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
lea ebx, [ebp + 8]
mov eax, dword [ebx + 0x30]
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0xf
mov byte [ebx + 4], 0
cmp eax, 8
jb 0x401cf2
mov ecx, dword [esi + 0x2c]
mov ecx, dword [ecx]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401e5a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
lea ebx, [ebp + 8]
jmp 0x401cf2
mov dword [esi + 0x3c], edx
mov edx, 0x39baec3b
mov ecx, 0xbaa3cb08
mov eax, 0x9a9c429a
mov edi, 0x7e572057
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov dword [eax + 4], ecx
mov ebx, 0x313d495d
mov dword [eax], edx
mov edx, 0xa0c9bbe9
mov dword [eax + 0xc], edi
mov ecx, 0xc8478848
mov edi, dword [esi + 0x20]
mov dword [eax + 8], edi
mov edi, 0x88939068
mov dword [esi + 0x20], ecx
mov dword [eax + 0x14], edx
mov dword [eax + 0x10], ebx
mov ecx, 0x39f5ec69
mov edx, 0xbaf7cb47
mov dword [esi + 0x58], edx
mov dword [esi + 0x64], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], ecx
mov ecx, 0x9adf42c6
mov edx, 0x7e1a201e
mov dword [esi + 0x50], edx
mov dword [esi + 0x6c], edx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x68], ecx
mov ecx, 0xa0c9bbe9
mov edx, 0x310f490b
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], edx
mov dword [eax + 0x1c], edi
mov dword [esi + 0x7c], edi
mov ecx, dword [esi + 0x20]
mov dword [eax + 0x18], ecx
mov dword [esi + 0x78], ecx
lea ecx, [esi + 0x60]
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 + 0xa8], 0
push 0xc
call fcn.0040b9d2
add esp, 4
mov ebx, eax
mov dword [eax + 4], 0
mov dword [eax + 8], 1
push dword [esi + 4]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx], eax
test eax, eax
je 0x4020ef
mov ecx, dword [esi + 0x1c]
mov dword [ecx], ebx
cmp dword [0x42c260], 0xa
mov edi, dword [esi + 0x14]
jl 0x401f98
mov ecx, dword [0x42c264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401f98
nop word cs:[eax + eax]
jmp 0x401f80
mov eax, dword [esi + 0xa0]
mov dword fs:[0], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 4], ebx
mov edx, dword [esi + 0x3c]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0xa8], 7
sub esp, 0x24
mov dword [esp + 0x20], edi
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call ecx
mov edi, dword [esi + 4]
mov ecx, edi
add ecx, 8
lock dec dword [ecx]
lea ebx, [ebp + 8]
jne 0x40201a
mov ebx, eax
mov eax, dword [edi]
test eax, eax
je 0x401ffa
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40200a
push eax
call fcn.0040ba38
add esp, 4
push dword [esi + 4]
call fcn.0040ba02
add esp, 4
mov eax, ebx
lea ebx, [ebp + 8]
mov edx, dword [0x42c264]
lea ecx, [edx + 1]
imul ecx, edx
test cl, 1
sete cl
cmp dword [0x42c260], 0xa
setl dl
or dl, cl
test eax, eax
js 0x40204c
test dl, dl
mov edi, dword [esi + 0x14]
je 0x402152
jmp 0x402106
test dl, dl
je 0x402090
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xa8], 0
push eax
call ecx
cmp dword [0x42c260], 0xa
jl 0x402092
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402092
jmp 0x402080
jmp 0x402090
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
xor edi, edi
cmp eax, 0xa
jl 0x40234e
test ecx, ecx
je 0x40234e
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x40234e
test ecx, ecx
jne 0x4020c5
jmp 0x40234e
mov dword [esi + 4], ebx
mov dword [esi + 0xa8], 1
push 0x8007000e
call fcn.0040bec0
mov eax, dword [edi]
sub esp, 0x20
movaps xmm0, xmmword [0x40d4e0]
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 dword [sym.imp.ole32.dll_CoSetProxyBlanket]
cmp dword [0x42c260], 0xa
jl 0x402186
mov ecx, dword [0x42c264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x402186
mov eax, dword [edi]
sub esp, 0x20
movaps xmm0, xmmword [0x40d4e0]
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 dword [sym.imp.ole32.dll_CoSetProxyBlanket]
jmp 0x402106
test eax, eax
mov edi, dword [esi + 0xc]
js 0x4021b2
mov eax, dword [esi + 0x38]
mov dword [eax], 0
cmp dword [0x42c270], 0xa
jl 0x4021f2
mov eax, dword [0x42c274]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4021f2
nop
jmp 0x4021b0
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xa8], 0
push eax
call ecx
cmp dword [0x42c260], 0xa
jl 0x4022db
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4022db
nop word [eax + eax]
jmp 0x4021f0
mov eax, 0x7cb9a93a
mov ecx, 0x90d79f04
mov edx, dword [esi + 0x34]
mov dword [edx + 4], ecx
mov ecx, 0xd58d04e6
mov dword [edx], eax
mov eax, 0x7e1a0053
mov dword [edx + 0xc], eax
mov dword [edx + 8], ecx
xor eax, eax
lea ecx, [esi + 0x60]
mov eax, dword [esi + 0x58]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x54]
mov dword [esi + 0x68], 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
mov edx, dword [ebx + 0x14]
mov ecx, edx
xor ecx, 0x7fffffff
cmp ecx, eax
jb 0x402dd6
mov ecx, dword [ebx + 4]
mov dword [esi + 0x88], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esi + 0x84], ecx
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [esi + 0x3c], edx
add edx, eax
mov ebx, 0xf
mov ecx, edi
cmp edx, 0x10
mov dword [esi + 0x20], edx
jb 0x4023a9
test edx, edx
mov dword [esi + 0x4c], eax
js 0x402372
mov ecx, edx
or ecx, 0xf
cmp ecx, 0x17
mov edi, 0x16
cmovae edi, ecx
mov dword [esi + 0xa8], 0
cmp edi, 0xfff
jae 0x402377
mov dword [esi + 4], edi
lea eax, [edi + 1]
push eax
call fcn.0040b9d2
add esp, 4
mov edi, eax
jmp 0x40239b
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42c260], 0xa
jl 0x402302
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402302
nop
jmp 0x402300
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
xor edi, edi
cmp eax, 0xa
jl 0x40234e
test ecx, ecx
je 0x40234e
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x40234e
test ecx, ecx
jne 0x40232d
cmp eax, 0xa
lea ebx, [ebp + 8]
jl 0x401cc4
test ecx, ecx
je 0x401cc4
nop word cs:[eax + eax]
jmp 0x402370
mov edi, SysReAllocString
mov dword [esi + 4], edi
lea eax, [edi + 0x24]
mov dword [esi + 0xa8], 0
push eax
call fcn.0040b9d2
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0xc]
mov dword [ecx], edi
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + 4]
mov dword [esi + 4], ebx
cmp dword [esi + 0x84], 0x10
mov ebx, edi
mov dword [esi + 0x1c], edi
mov edi, dword [esi + 0x88]
cmovb edi, dword [esi + 0x30]
mov dword [ecx + 0x10], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x14], edx
push eax
push dword [esi + 0x34]
push ebx
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, dword [esi + 0x1c]
push dword [esi + 0x3c]
push edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov byte [eax + ecx], 0
cmp dword [0x42c260], 0xa
jl 0x402412
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402412
nop dword [eax]
jmp 0x402410
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov eax, dword [eax + 0x14]
mov dword [esi + 0x1c], eax
mov dword [esi + 0xa8], 2
push 0xc
call fcn.0040b9d2
add esp, 4
cmp dword [esi + 0x1c], 0x10
mov ecx, dword [esi + 0xc]
cmovae ecx, dword [esi + 4]
mov dword [eax + 4], 0
mov dword [esi + 4], eax
mov dword [eax + 8], 1
mov dword [esi + 0xa8], 3
push ecx
call fcn.0040bd30
mov edi, eax
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [esi + 8]
mov dword [eax], ecx
cmp dword [0x42c260], 0xa
mov ecx, dword [esi + 0x10]
jl 0x402492
mov eax, dword [0x42c264]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
je 0x402492
jmp 0x402490
cmp dword [0x42c278], 0xa
jl 0x4024b2
mov eax, dword [0x42c27c]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
je 0x4024b2
nop dword [eax + eax]
jmp 0x4024b0
mov dword [esi + 4], edi
mov eax, 0x39b9bd3e
mov edx, 0xbaf7cb47
mov edi, dword [esi + 0x8c]
mov dword [edi + 4], edx
mov dword [edi], eax
mov eax, dword [esi + 0x58]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x50]
mov dword [edi + 0xc], eax
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x54]
mov dword [edi + 8], eax
mov dword [esi + 0x68], eax
xor eax, eax
lea edx, [esi + 0x60]
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [edx]
movaps xmmword [edi], xmm0
mov dword [esi + 0xa8], 5
push edi
call fcn.004014d0
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
test eax, eax
mov edx, dword [esi + 4]
mov edi, 0
je 0x402519
mov edi, dword [eax]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
mov dword [esi + 0xa8], 6
push dword [esi + 0x38]
push 0
push 0x30
push edx
push edi
push ecx
call eax
cmp dword [0x42c260], 0xa
jl 0x402562
mov edx, dword [0x42c264]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
je 0x402562
nop word cs:[eax + eax]
jmp 0x402560
mov dword [esi + 4], eax
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x10]
mov edi, dword [eax]
test edi, edi
je 0x4025ab
lock dec dword [edi + 8]
jne 0x4025a5
mov eax, dword [edi]
test eax, eax
je 0x402589
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x402599
push eax
call fcn.0040ba38
add esp, 4
push edi
call fcn.0040ba02
add esp, 4
mov eax, dword [esi + 0x10]
mov dword [eax], 0
mov eax, dword [esi + 8]
mov edi, dword [eax]
test edi, edi
je 0x4025eb
lock dec dword [edi + 8]
jne 0x4025e2
mov eax, dword [edi]
test eax, eax
je 0x4025c9
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4025d9
push eax
call fcn.0040ba38
add esp, 4
push edi
call fcn.0040ba02
add esp, 4
mov eax, dword [esi + 8]
mov dword [eax], 0
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
cmp eax, 0xa
jl 0x402739
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
je 0x402739
nop
mov ecx, dword [esi + 0x10]
mov edi, dword [ecx]
test edi, edi
je 0x402650
lock dec dword [edi + 8]
jne 0x40264a
mov eax, dword [edi]
test eax, eax
je 0x40262e
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40263e
push eax
call fcn.0040ba38
add esp, 4
push edi
call fcn.0040ba02
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [ecx], 0
mov eax, dword [esi + 8]
mov edi, dword [eax]
test edi, edi
je 0x402693
lock dec dword [edi + 8]
jne 0x40268a
mov eax, dword [edi]
test eax, eax
je 0x40266e
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40267e
push eax
call fcn.0040ba38
add esp, 4
push edi
call fcn.0040ba02
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
mov dword [eax], 0
mov edi, dword [ecx]
test edi, edi
je 0x4026d0
lock dec dword [edi + 8]
jne 0x4026ca
mov eax, dword [edi]
test eax, eax
je 0x4026ae
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4026be
push eax
call fcn.0040ba38
add esp, 4
push edi
call fcn.0040ba02
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [ecx], 0
mov eax, dword [esi + 8]
mov edi, dword [eax]
test edi, edi
je 0x402710
lock dec dword [edi + 8]
jne 0x402707
mov eax, dword [edi]
test eax, eax
je 0x4026ee
push eax
call ebx
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x4026fe
push eax
call fcn.0040ba38
add esp, 4
push edi
call fcn.0040ba02
add esp, 4
mov eax, dword [esi + 8]
mov dword [eax], 0
mov ecx, dword [0x42c264]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
cmp dword [0x42c260], 0xa
jl 0x40256b
test eax, eax
jne 0x402610
jmp 0x40256b
cmp dword [esi + 4], 0
js 0x402ac4
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov ecx, dword [esi + 0x18]
add ecx, 4
mov dword [esi + 8], ecx
mov edi, dword [esi + 0x14]
jmp 0x402764
cmp dword [esi + 0x10], 0
je 0x402ce5
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
sete dh
cmp eax, 0xa
setl dl
or dl, dh
test dl, dl
je 0x402778
mov edx, dword [esi + 0x38]
mov edx, dword [edx]
test edx, edx
je 0x402ce5
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [esi + 0xa8], 2
push dword [esi + 0x40]
push dword [esi + 0x48]
push 1
push 0xffffffffffffffff
push edx
call eax
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x4027c6
test ecx, ecx
jne 0x402aa0
mov edx, dword [esi + 0x40]
mov edx, dword [edx]
mov dword [esi + 0x10], edx
test edx, edx
mov ebx, dword [esi + 0x44]
je 0x402ccc
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
cmp dword [0x42c260], 0xa
jl 0x402820
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402820
push ebx
mov edi, dword [sym.imp.OLEAUT32.dll_VariantClear]
call edi
push ebx
call edi
cmp dword [0x42c260], 0xa
jl 0x4027d9
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4027f9
jmp 0x4027d9
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 + 0x2c]
jb 0x402839
mov edx, dword [edi + 0x1c]
mov dword [esi + 0xa8], 2
push 0
push 0
push ebx
push 0
push edx
push eax
call ecx
cmp dword [0x42c260], 0xa
jl 0x40286c
mov ecx, dword [0x42c264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x402ab0
test eax, eax
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 0x18]
js 0x402a21
mov eax, dword [edi + 8]
mov edx, dword [esi + 8]
mov dword [ecx], edx
push 3
push eax
call fcn.00406c20
cmp dword [0x42c260], 0xa
jl 0x4028d4
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4028d4
mov edi, dword [esi + 0x18]
push dword [edi]
push 0xc8
mov ebx, dword [esi + 0x24]
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
push dword [edi]
push 0xc8
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
cmp dword [0x42c260], 0xa
jge 0x402893
mov eax, dword [esi + 0x18]
push dword [eax]
push 0xc8
push dword [esi + 0x24]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
cmp dword [0x42c260], 0xa
jl 0x402924
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402924
mov edi, dword [esi + 0x18]
push dword [edi]
push 0xc8
mov ebx, dword [esi + 0x24]
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
push dword [edi]
push 0xc8
push ebx
jmp 0x4028e1
lea eax, [ebp + 8]
mov ebx, dword [eax]
push dword [esi + 0x24]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
mov eax, dword [ebx + 0x14]
cmp eax, edi
jae 0x402965
mov dword [esi + 0xa8], 4
sub esp, 0xc
movzx eax, byte [esi + 0x60]
mov byte [esp + 4], al
mov eax, dword [esi + 0x24]
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, ebx
call fcn.00406930
jmp 0x402984
mov ecx, ebx
cmp eax, 0x10
jb 0x40296e
mov ecx, dword [ebx]
mov dword [ebx + 0x10], edi
push edi
push dword [esi + 0x24]
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [0x42c264]
mov ecx, dword [0x42c260]
cmp ecx, 0xa
mov edi, dword [esi + 0x44]
jl 0x4029aa
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov ebx, dword [esi + 0x18]
je 0x4029ad
jmp 0x402ac2
mov ebx, dword [esi + 0x18]
mov edx, dword [ebx]
cmp edx, dword [esi + 8]
je 0x4029c9
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [0x42c264]
mov ecx, dword [0x42c260]
cmp ecx, 0xa
jl 0x402a21
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402a21
nop dword [eax]
mov eax, dword [ebx]
cmp eax, dword [esi + 8]
je 0x4029f1
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [ebx]
cmp eax, dword [esi + 8]
je 0x402a02
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [0x42c264]
mov ecx, dword [0x42c260]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x4029ad
test edx, edx
jne 0x4029e0
jmp 0x4029ad
push edi
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantCopy]
call ebx
cmp dword [0x42c260], 0xa
jl 0x402a49
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402a49
push edi
call ebx
push edi
jmp 0x402a28
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xa8], 2
push eax
call ecx
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x402a7d
test ecx, ecx
jne 0x402ac0
cmp eax, 0xa
mov edi, dword [esi + 0x14]
jl 0x40275a
test ecx, ecx
je 0x40275a
jmp 0x402ce0
jmp 0x402aa0
jmp 0x402ab0
jmp 0x402ac0
jmp 0x402ac2
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xa8], 2
push eax
call ecx
cmp dword [0x42c260], 0xa
jl 0x402b02
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402b02
nop word cs:[eax + eax]
jmp 0x402b00
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42c260], 0xa
jl 0x402b32
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402b32
nop word cs:[eax + eax]
jmp 0x402b30
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42c264]
mov ecx, dword [0x42c260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
xor edi, edi
cmp ecx, 0xa
jl 0x402b80
test eax, eax
je 0x402b80
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42c264]
mov ecx, dword [0x42c260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x402b80
test eax, eax
jne 0x402b5e
cmp ecx, 0xa
jl 0x402c31
test eax, eax
je 0x402c31
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x402bce
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402bc1
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x402c08
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402bfe
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
cmp dword [0x42c260], 0xa
jl 0x402c31
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x402b91
jmp 0x402c31
push ebx
push ecx
call fcn.0040ba07
add esp, 8
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x402c6e
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402c64
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040ba07
add esp, 8
mov edx, dword [0x42c264]
mov eax, dword [0x42c260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x40234e
test ecx, ecx
je 0x40234e
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x402c34
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402c27
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402dd0
add eax, 0x24
mov ebx, eax
mov ecx, edx
jmp 0x402c27
cmp eax, 0xa
jl 0x402ce2
test ecx, ecx
mov edi, dword [esi + 0x14]
je 0x402ce5
nop dword [eax + eax]
jmp 0x402ce0
mov edi, dword [esi + 0x14]
cmp eax, 0xa
jl 0x402cf2
test ecx, ecx
je 0x402cf2
nop
jmp 0x402cf0
mov eax, dword [edi]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xa8], 2
push eax
call ecx
cmp dword [0x42c260], 0xa
jl 0x402d22
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402d22
nop
jmp 0x402d20
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42c260], 0xa
jl 0x402d48
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402d48
jmp 0x402d46
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42c260], 0xa
jl 0x402d6e
mov eax, dword [0x42c264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402d6e
jmp 0x402d6c
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42c264]
mov ecx, dword [0x42c260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
mov edi, 1
cmp ecx, 0xa
jl 0x402b80
test eax, eax
je 0x402b80
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42c264]
mov ecx, dword [0x42c260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x402b80
test eax, eax
jne 0x402da5
jmp 0x402b80
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esi + 0xa8], 0
call fcn.004067b0
nop word cs:[eax + eax]
push ebp
sub esp, 0x24
lea esi, [ebp - 0xac]
mov ebp, dword [esi + 0x98]
mov ecx, dword [esi + 0x1c]
call fcn.00401480
add esp, 0x24
pop ebp
ret