Function at 0x4017f0
Capabilities:
Connect to wmi namespace via wbemlocator
Get http document via iwebbrowser2
Resolve function by parsing pe exports

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], 0x406890
mov ecx, dword fs:[0]
mov dword [esi + 0xb0], ecx
mov dword fs:[0], eax
cmp dword [0x42f260], 0xa
jl 0x401862
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401862
nop word cs:[eax + eax]
jmp 0x401860
mov ecx, dword [sym.imp.ole32.dll_CoInitialize]
nop dword [eax + eax]
push eax
sub esp, 0x3fc
mov dword [esi + 0x20], esp
push eax
mov edi, esp
push eax
mov dword [esi + 0x1c], esp
push eax
mov dword [esi + 0xc], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x10], eax
mov esp, eax
push eax
mov dword [esi + 0x44], esp
sub esp, 0x18
mov dword [esi + 0x14], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x40], eax
mov esp, eax
push eax
mov dword [esi + 0x28], esp
push eax
mov dword [esi + 0x24], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x6c], eax
mov esp, eax
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x48], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x2c], 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 + 0x30], edi
push edi
push 0x42d748
push 1
push 0
push 0x42d758
mov eax, dword [sym.imp.ole32.dll_CoCreateInstance]
call eax
cmp dword [0x42f260], 0xa
jl 0x401945
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401945
push eax
mov edi, esp
push 0
call ebx
mov dword [edi], 0
push edi
push 0x42d748
push 1
push 0
push 0x42d758
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ecx, ebx
jmp 0x401870
lea ebx, [ebp + 8]
lea ecx, [ebx + 4]
mov dword [esi + 0x3c], ecx
lea ecx, [ebx + 0x1c]
mov dword [esi + 0x38], ecx
test eax, eax
js 0x401996
mov eax, dword [0x42f268]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
test cl, 1
sete cl
cmp dword [0x42f26c], 0xa
setl al
or al, cl
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
mov dword [esi + 0x34], ecx
cmp al, 1
mov ebx, dword [esi + 0x10]
jne 0x401bfa
jmp 0x401bb2
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
xor edi, edi
cmp eax, 0xa
jl 0x4019f4
test ecx, ecx
je 0x4019f4
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
nop word cs:[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 0x4019f1
test ecx, ecx
jne 0x4019d0
lea ebx, [ebp + 8]
cmp eax, 0xa
jl 0x401a36
test ecx, ecx
je 0x401a36
nop dword [eax]
jmp 0x401a00
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 0x401a73
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x401a66
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a6b
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040eca7
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 0x401ac8
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401abb
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a6b
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040eca7
add esp, 8
lea ebx, [ebp + 8]
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 7
mov word [ebx + 0x1c], 0
cmp dword [0x42f260], 0xa
jl 0x401b9c
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401b9c
mov eax, dword [ebx + 0x18]
cmp eax, 0xf
jbe 0x401a10
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x401b31
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a6b
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040eca7
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 0x401a22
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
lea ebx, [eax*2 + 2]
cmp ebx, 0x1000
jb 0x401b8a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a6b
add eax, eax
add eax, 0x25
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040eca7
add esp, 8
lea ebx, [ebp + 8]
jmp 0x401a22
mov eax, dword [esi + 0xb0]
mov dword fs:[0], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x30584b45
mov edx, 0x481d2547
mov dword [ebx + 4], edx
mov dword [ebx], ecx
mov ecx, 0x5a4c51a0
mov edx, 0x212d3868
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], ecx
mov edx, 0x3f432f17
mov ecx, 0xbf57da26
mov edi, 0xbf57da26
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x10], edx
mov edx, 0x62bbcbd6
mov edi, 0x7162e957
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edx
test al, al
jne 0x401c3e
mov ecx, 0x30584b45
mov edx, 0x481d2547
mov dword [ebx + 4], edx
mov dword [ebx], ecx
mov ecx, 0x5a4c51a0
mov edx, 0x212d3868
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], ecx
mov ecx, 0x3f432f17
mov edx, 0xbf57da26
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x10], ecx
mov ecx, 0x62bbcbd6
mov edx, 0x7162e957
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x18], ecx
jmp 0x401bb2
mov eax, 0x30174b17
mov ebx, 0x48492508
mov dword [esi + 0x64], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x68], eax
mov dword [esi + 0x70], eax
mov eax, 0x5a0f51fc
mov ebx, 0x21603821
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x60], eax
mov dword [esi + 0x78], eax
mov eax, 0x3f712f41
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov dword [esi + 0x88], edx
mov dword [esi + 0x8c], edi
lea ecx, [esi + 0x70]
xor eax, eax
mov eax, dword [esi + 0x10]
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.0040ec72
add esp, 4
mov ebx, eax
mov dword [eax + 4], 0
mov dword [eax + 8], 1
push dword [esi + 0x10]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx], eax
test eax, eax
je 0x402a71
mov ecx, dword [esi + 0xc]
mov dword [ecx], ebx
cmp dword [0x42f260], 0xa
mov edi, dword [esi + 0x1c]
jl 0x401d02
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401d02
nop dword [eax]
jmp 0x401d00
mov dword [esi + 0x10], ebx
mov edx, dword [esi + 0x34]
mov ecx, dword [edx]
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], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call ecx
mov edi, eax
cmp dword [0x42f260], 0xa
jl 0x401d62
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401d62
nop word [eax + eax]
jmp 0x401d60
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
jmp 0x401d84
push ebx
call fcn.0040eca2
add esp, 4
mov edx, dword [esi + 0xc]
mov dword [edx], 0
mov ebx, dword [edx]
test ebx, ebx
je 0x401dc3
lock dec dword [ebx + 8]
jne 0x401dbd
mov eax, dword [ebx]
test eax, eax
je 0x401da1
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x401db1
push eax
call fcn.0040ecd8
add esp, 4
push ebx
call fcn.0040eca2
add esp, 4
mov edx, dword [esi + 0xc]
mov dword [edx], 0
cmp dword [0x42f260], 0xa
jl 0x401e14
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401e14
mov ebx, dword [edx]
test ebx, ebx
je 0x401d82
lock dec dword [ebx + 8]
jne 0x401d7c
mov eax, dword [ebx]
test eax, eax
je 0x401dfb
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x401d70
push eax
call fcn.0040ecd8
add esp, 4
jmp 0x401d70
test edi, edi
js 0x401f42
mov edi, dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov ebx, dword [esi + 0x1c]
nop word cs:[eax + eax]
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
cmp dword [0x42f260], 0xa
jl 0x401f01
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401f01
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
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
mov ecx, dword [0x42f264]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
cmp dword [0x42f260], 0xa
jl 0x401e30
test eax, eax
jne 0x401e80
jmp 0x401e30
test eax, eax
lea ebx, [ebp + 8]
js 0x401f82
mov eax, dword [esi + 0x44]
mov dword [eax], 0
mov eax, 0x755b0e44
mov ecx, 0x6269714b
cmp dword [0x42f270], 0xa
jl 0x401fc2
mov edx, dword [0x42f274]
lea edi, [edx + 1]
imul edi, edx
and edi, 1
je 0x401fc2
nop dword [eax]
jmp 0x401f40
mov eax, dword [esi + 0x30]
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
lea ebx, [ebp + 8]
jl 0x402a97
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x402abc
jmp 0x402a97
mov eax, dword [esi + 0x1c]
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 0x4020a2
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4020a2
nop word [eax + eax]
jmp 0x401fc0
mov edx, dword [esi + 0x40]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, 0x155d17dc
mov ecx, 0x2160186c
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
xor eax, eax
lea ecx, [esi + 0x70]
mov eax, dword [esi + 0x64]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x60]
mov dword [esi + 0x78], 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
mov ecx, dword [esi + 0x14]
jb 0x402a88
mov edi, dword [ebx + 4]
mov dword [esi + 0xc], edi
mov edi, dword [ebx + 0x18]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0
mov dword [esi + 0x9c], edx
add edx, eax
mov ebx, 0xf
mov dword [esi + 0x34], ecx
cmp edx, 0x10
mov dword [esi + 0x10], edx
jb 0x402185
test edx, edx
mov dword [esi + 0x58], eax
mov dword [esi + 0x54], edi
js 0x402148
mov ecx, edx
or ecx, 0xf
cmp ecx, 0x17
mov ebx, 0x16
cmovae ebx, ecx
mov dword [esi + 0xb8], 0
cmp ebx, 0xfff
jae 0x40214d
mov dword [esi + 0x50], ebx
lea eax, [ebx + 1]
push eax
call fcn.0040ec72
add esp, 4
mov edx, eax
jmp 0x402171
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x4020e9
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4020e9
mov edi, dword [sym.imp.ole32.dll_CoUninitialize]
call edi
call edi
cmp dword [0x42f260], 0xa
jl 0x4020e9
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4020cc
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
xor edi, edi
cmp eax, 0xa
lea ebx, [ebp + 8]
jl 0x402ac4
test ecx, ecx
je 0x402ac4
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 0x402140
test ecx, ecx
jne 0x40211f
lea ebx, [ebp + 8]
jmp 0x402ac4
mov ebx, SysReAllocString
mov dword [esi + 0x50], ebx
lea eax, [ebx + 0x24]
mov dword [esi + 0xb8], 0
push eax
call fcn.0040ec72
add esp, 4
mov edx, eax
add edx, 0x23
and edx, 0xffffffe0
mov dword [edx - 4], eax
mov eax, dword [esi + 0x58]
mov edi, dword [esi + 0x54]
mov dword [esi + 0x34], edx
mov ecx, dword [esi + 0x14]
mov dword [ecx], edx
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x50]
cmp edi, 0x10
mov edi, dword [esi + 0xc]
cmovb edi, dword [esi + 0x3c]
mov dword [esi + 0xc], edi
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], ebx
push eax
push dword [esi + 0x40]
mov edi, dword [esi + 0x34]
push edi
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
push dword [esi + 0x9c]
push dword [esi + 0xc]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
cmp dword [0x42f260], 0xa
jl 0x4021e2
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4021e2
nop
jmp 0x4021e0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov dword [esi + 0xc], ecx
mov eax, dword [eax + 0x14]
mov dword [esi + 0x10], eax
mov dword [esi + 0xb8], 2
push 0xc
call fcn.0040ec72
add esp, 4
cmp dword [esi + 0x10], 0x10
mov ecx, dword [esi + 0x14]
cmovae ecx, dword [esi + 0xc]
mov dword [eax + 4], 0
mov dword [esi + 0xc], eax
mov dword [eax + 8], 1
mov dword [esi + 0xb8], 3
push ecx
call fcn.0040efd0
mov edx, eax
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x28]
mov dword [eax], ecx
cmp dword [0x42f260], 0xa
mov ebx, dword [esi + 0x6c]
jl 0x402262
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402262
jmp 0x402260
mov dword [esi + 0xc], edx
mov eax, 0x305b1a40
mov ecx, 0x48492508
cmp dword [0x42f278], 0xa
jl 0x402292
mov edx, dword [0x42f27c]
lea edi, [edx + 1]
imul edi, edx
and edi, 1
je 0x402292
nop dword [eax]
jmp 0x402290
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x64]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x5c]
mov dword [ebx + 0xc], eax
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x60]
mov dword [ebx + 8], eax
mov dword [esi + 0x78], eax
xor eax, eax
lea ecx, [esi + 0x70]
movaps xmm0, xmmword [ebx]
xorps xmm0, xmmword [ecx]
movaps xmmword [ebx], xmm0
mov dword [esi + 0xb8], 5
push 0xc
call fcn.0040ec72
add esp, 4
mov dword [eax + 4], 0
mov dword [eax + 8], 1
mov dword [esi + 0xb8], 6
push dword [esi + 0x6c]
mov dword [esi + 0x10], eax
call fcn.0040efd0
mov edx, dword [esi + 0x10]
mov dword [edx], eax
mov ecx, dword [esi + 0x24]
mov dword [ecx], edx
cmp dword [0x42f260], 0xa
jl 0x402322
mov ecx, dword [0x42f264]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x402322
nop
jmp 0x402320
mov edx, dword [esi + 0x40]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x50]
mov dword [esi + 0xb8], 7
push dword [esi + 0x44]
push 0
push 0x30
push dword [esi + 0xc]
push eax
push edx
call ecx
mov edi, eax
cmp dword [0x42f260], 0xa
jl 0x402362
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402362
nop dword [eax]
jmp 0x402360
mov ebx, dword [esi + 0x10]
jmp 0x40237e
push ebx
call fcn.0040eca2
add esp, 4
mov eax, dword [esi + 0x28]
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov ebx, dword [eax]
test ebx, ebx
je 0x4023bd
lock dec dword [ebx + 8]
jne 0x4023b4
mov eax, dword [ebx]
test eax, eax
je 0x40239b
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x4023ab
push eax
call fcn.0040ecd8
add esp, 4
push ebx
call fcn.0040eca2
add esp, 4
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov eax, dword [esi + 0x28]
mov ebx, dword [eax]
test ebx, ebx
je 0x402401
lock dec dword [ebx + 8]
jne 0x4023f8
mov eax, dword [ebx]
test eax, eax
je 0x4023df
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x4023ef
push eax
call fcn.0040ecd8
add esp, 4
push ebx
call fcn.0040eca2
add esp, 4
mov eax, dword [esi + 0x28]
mov dword [eax], 0
mov ecx, dword [0x42f264]
mov eax, dword [0x42f260]
cmp eax, 0xa
jl 0x4024ab
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x4024ab
mov eax, dword [esi + 0x24]
mov ebx, dword [eax]
test ebx, ebx
je 0x402468
lock dec dword [ebx + 8]
jne 0x40245f
mov eax, dword [ebx]
test eax, eax
je 0x402446
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x402456
push eax
call fcn.0040ecd8
add esp, 4
push ebx
call fcn.0040eca2
add esp, 4
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov eax, dword [esi + 0x28]
mov ebx, dword [eax]
test ebx, ebx
je 0x402379
lock dec dword [ebx + 8]
jne 0x402370
mov eax, dword [ebx]
test eax, eax
je 0x402492
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x402367
push eax
call fcn.0040ecd8
add esp, 4
jmp 0x402367
test edi, edi
js 0x4027f1
mov edx, dword [esi + 0x4c]
mov dword [edx], 0
mov edx, dword [esi + 0x18]
add edx, 4
mov dword [esi + 0xc], edx
jmp 0x4024cf
test edi, edi
jne 0x402858
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
cmp eax, 0xa
jl 0x4024e5
test edx, edx
jne 0x4027e7
mov ecx, dword [esi + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x40285d
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
mov dword [esi + 0xb8], 2
push dword [esi + 0x4c]
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 0x40252f
test edx, edx
jne 0x4027e9
mov edi, dword [esi + 0x4c]
cmp dword [edi], 0
mov ebx, dword [esi + 0x2c]
je 0x4026bc
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
cmp dword [0x42f260], 0xa
jl 0x402573
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402573
push ebx
mov edi, dword [sym.imp.OLEAUT32.dll_VariantClear]
call edi
push ebx
call edi
cmp dword [0x42f260], 0xa
jge 0x40254e
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 + 0x38]
jb 0x40258c
mov edx, dword [edi + 0x1c]
mov dword [esi + 0xb8], 2
push 0
push 0
push ebx
push 0
push edx
push eax
call ecx
mov ecx, dword [0x42f264]
mov edx, dword [0x42f260]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
cmp edx, 0xa
jl 0x4025c3
test edi, edi
jne 0x4027eb
test eax, eax
mov ecx, dword [esi + 0x18]
js 0x402746
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov edx, dword [esi + 0xc]
mov dword [ecx], edx
push 3
push eax
call fcn.004065c0
cmp dword [0x42f260], 0xa
jl 0x40262b
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40262b
mov edi, dword [esi + 0x18]
push dword [edi]
push 0xc8
mov ebx, dword [esi + 0x20]
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 [0x42f260], 0xa
jge 0x4025ea
mov eax, dword [esi + 0x18]
push dword [eax]
push 0xc8
push dword [esi + 0x20]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0xc
cmp dword [0x42f260], 0xa
jl 0x40267b
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40267b
mov edi, dword [esi + 0x18]
push dword [edi]
push 0xc8
mov ebx, dword [esi + 0x20]
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 0x402638
lea eax, [ebp + 8]
mov ebx, dword [eax]
push dword [esi + 0x20]
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 0x4026c6
mov dword [esi + 0xb8], 4
sub esp, 0xc
movzx eax, byte [esi + 0x70]
mov byte [esp + 4], al
mov eax, dword [esi + 0x20]
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, ebx
call fcn.004062d0
jmp 0x4026e5
mov edi, 3
jmp 0x4027d4
mov ecx, ebx
cmp eax, 0x10
jb 0x4026cf
mov ecx, dword [ebx]
mov dword [ebx + 0x10], edi
push edi
push dword [esi + 0x20]
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
cmp dword [0x42f260], 0xa
mov ebx, dword [esi + 0x18]
jl 0x402705
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4027ef
mov eax, dword [ebx]
cmp eax, dword [esi + 0xc]
je 0x402716
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [0x42f264]
mov edx, dword [0x42f260]
lea edi, [eax + 1]
imul edi, eax
and edi, 1
cmp edx, 0xa
jl 0x402746
test edi, edi
je 0x402746
mov eax, dword [ebx]
cmp eax, dword [esi + 0xc]
je 0x402705
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x402705
cmp edx, 0xa
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantCopy]
jl 0x402777
test edi, edi
je 0x402777
mov edi, dword [esi + 0x2c]
push edi
call ebx
push edi
call ebx
cmp dword [0x42f260], 0xa
jl 0x402777
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x402755
push dword [esi + 0x2c]
call ebx
cmp dword [0x42f260], 0xa
jl 0x40279e
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40279e
mov edi, dword [esi + 0x2c]
push edi
call ebx
push edi
jmp 0x40277a
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]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
xor edi, edi
cmp eax, 0xa
jl 0x4027d4
test edx, edx
jne 0x4027ed
cmp eax, 0xa
jl 0x4024c7
test edx, edx
je 0x4024c7
jmp 0x4027e5
jmp 0x4027e7
jmp 0x4027e9
jmp 0x4027eb
jmp 0x4027ed
jmp 0x4027ef
mov eax, dword [esi + 0x1c]
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 0x402832
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402832
nop word cs:[eax + eax]
jmp 0x402830
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x402872
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402872
jmp 0x402856
cmp edi, 3
jne 0x402870
cmp eax, 0xa
jl 0x40298b
test edx, edx
je 0x40298b
jmp 0x40286e
jmp 0x402870
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42f264]
mov ecx, dword [0x42f260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
xor edi, edi
cmp ecx, 0xa
jl 0x4028db
test eax, eax
je 0x4028db
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
cmp dword [0x42f260], 0xa
jl 0x4028bb
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x40289e
call ebx
mov edx, dword [0x42f264]
mov ecx, dword [0x42f260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x4028db
test eax, eax
jne 0x40289e
cmp ecx, 0xa
jl 0x4028f0
test eax, eax
je 0x4028f0
jmp 0x4028e4
push ebx
push ecx
call fcn.0040eca7
add esp, 8
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x40292d
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x402923
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a6b
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.0040eca7
add esp, 8
mov edx, dword [0x42f264]
mov eax, dword [0x42f260]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x402140
test ecx, ecx
je 0x402140
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x14]
cmp eax, 0x10
jb 0x4028f3
mov ecx, dword [ecx]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x4028e6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x402a6b
add eax, 0x24
mov ebx, eax
mov ecx, edx
jmp 0x4028e6
mov eax, dword [esi + 0x1c]
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 0x4029bd
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4029bd
jmp 0x4029bb
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x4029e3
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4029e3
jmp 0x4029e1
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x42f260], 0xa
jl 0x402a09
mov eax, dword [0x42f264]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402a09
jmp 0x402a07
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x42f264]
mov ecx, dword [0x42f260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
mov edi, 1
cmp ecx, 0xa
jl 0x4028db
test eax, eax
je 0x4028db
mov ebx, dword [sym.imp.ole32.dll_CoUninitialize]
call ebx
call ebx
mov edx, dword [0x42f264]
mov ecx, dword [0x42f260]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x4028db
test eax, eax
jne 0x402a40
jmp 0x4028db
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esi + 0x10], ebx
mov dword [esi + 0xb8], 1
push 0x8007000e
call fcn.0040f160
mov dword [esi + 0xb8], 0
call fcn.00406150
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
xor edi, edi
cmp eax, 0xa
jl 0x402ac4
test ecx, ecx
je 0x402ac4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x402a97
cmp eax, 0xa
jl 0x4019f4
test ecx, ecx
je 0x4019f4
nop word cs:[eax + eax]
jmp 0x402ae0