Function at 0x40a0c0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x8b4]
mov esi, str.___Generated_.IDL_file__by_the_OLE_COM_Object_Viewer__n___n___typelib_filename:
push ebx
lea ebx, [ebp - 0x8b6]
mov ecx, ebx
sub ecx, edi
sub esp, 0xba8
mov eax, dword [str.___Generated_.IDL_file__by_the_OLE_COM_Object_Viewer__n___n___typelib_filename:]
sub esi, ecx
movdqu xmm0, xmmword [0x40fb00]
movdqu xmm1, xmmword [0x40fb30]
add ecx, 0x9e
movdqu xmm2, xmmword [str.interfacdispintehelpcontappobjeccancreatlicensedpredeclicontrol]
mov dword [ebp - 0x8b6], eax
mov eax, dword [0x40e23a]
shr ecx, 2
mov dword [ebp - 0x81c], eax
xor eax, eax
rep movsd dword es:[edi], dword [esi]
movups xmmword [ebp - 0xaf8], xmm0
xor ecx, ecx
xor esi, esi
movdqu xmm0, xmmword [str.version__ld._ld_struct]
xor edi, edi
movups xmmword [ebp - 0x9b8], xmm1
movdqu xmm1, xmmword [str.module]
mov word [ebp - 0x988], cx
movups xmmword [ebp - 0x9a8], xmm0
movdqu xmm0, xmmword [0x40fb20]
movups xmmword [ebp - 0xae8], xmm1
movups xmmword [ebp - 0x998], xmm0
movdqu xmm0, xmmword [0x40faf0]
mov dword [ebp - 0xa18], 0x6e0065
movups xmmword [ebp - 0xa28], xmm0
movups xmmword [ebp - 0x9c8], xmm0
mov dword [ebp - 0xa14], 0x6d0075
mov dword [ebp - 0xa10], 0x20
movups xmmword [ebp - 0xa68], xmm2
movdqu xmm3, xmmword [0x40fa20]
movdqu xmm1, xmmword [str.coclass_library_propertimethods]
mov word [ebp - 0xab8], ax
xor eax, eax
movups xmmword [ebp - 0xaa8], xmm0
movups xmmword [ebp - 0x9e8], xmm0
movdqu xmm0, xmmword [0x40fb60]
mov word [ebp - 0xa98], ax
xor eax, eax
mov word [ebp - 0x9cc], ax
xor eax, eax
movups xmmword [ebp - 0xa88], xmm0
movdqu xmm0, xmmword [0x40fb70]
mov word [ebp - 0xa78], ax
xor eax, eax
mov word [ebp - 0xa34], ax
lea eax, [ebp - 0x818]
movups xmmword [ebp - 0xa48], xmm0
movdqu xmm0, xmmword [0x40fb80]
mov dword [ebp - 0x934], eax
lea eax, [ebp - 0xb48]
movups xmmword [ebp - 0xa08], xmm3
movups xmmword [ebp - 0xac8], xmm1
movups xmmword [ebp - 0xad8], xmm0
mov dword [ebp - 0xa58], 0x200065
mov word [ebp - 0xa54], si
mov dword [ebp - 0x9f8], 0x660072
mov dword [ebp - 0x9f4], 0x630061
mov dword [ebp - 0x9f0], 0x200065
mov word [ebp - 0x9ec], di
mov dword [ebp - 0x9d8], 0x6e0075
mov dword [ebp - 0x9d4], 0x6f0069
mov dword [ebp - 0x9d0], 0x20006e
mov dword [ebp - 0xb10], 0x610074
mov dword [ebp - 0xb0c], 0x67
mov dword [ebp - 0xa38], 0x730065
mov dword [ebp - 0x944], 5
mov dword [ebp - 0x930], 0x100
mov dword [ebp - 0x948], 0xffff0002
mov dword [ebp - 0x94c], 0xffff0000
mov dword [esp + 4], eax
mov dword [esp], 0x41b730
call dword [sym.imp.oleaut32.dll_LoadTypeLib]
sub esp, 8
test eax, eax
js 0x40c0c8
mov eax, dword [ebp - 0xb48]
lea esi, [ebp - 0xb28]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0xc]
mov dword [ebp - 0xb64], eax
mov eax, dword [ebp - 0xb48]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0xc], esi
lea esi, [ebp - 0xb2c]
mov dword [esp + 8], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [edx + 0x24]
mov eax, dword [ebp - 0xb48]
lea ecx, [ebp - 0xb44]
sub esp, 0x18
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 8
call sym._InitializeTLData
mov ecx, ebx
mov ebx, 4
lea edi, [eax + 0x204]
mov esi, eax
mov dword [ebp - 0x920], eax
mov edx, edi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x41b730
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f620
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea esi, [esi]
mov ecx, 0x40f506
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub ebx, 1
jne 0x40a3a8
mov ecx, str.uuid
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f510
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea eax, [ebp - 0x818]
mov dword [esp + 8], 0x100
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb44]
mov dword [esp], eax
mov eax, dword [sym.imp.ole32.dll_StringFromGUID2]
mov dword [ebp - 0xb80], eax
call eax
sub esp, 0xc
cmp word [ebp - 0x818], 0
je 0x40c240
lea eax, [ebp - 0x818]
lea esi, [esi]
lea edi, [edi]
add eax, 2
cmp word [eax], 0
jne 0x40a420
lea ebx, [ebp - 0x818]
sub eax, ebx
sar eax, 1
sub eax, 1
xor edx, edx
lea ecx, [ebp - 0x816]
mov ebx, 4
mov word [ebp + eax*2 - 0x818], dx
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f62a
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea esi, [esi]
mov ecx, 0x40f506
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub ebx, 1
jne 0x40a468
mov eax, dword [ebp - 0xb44]
movzx edx, word [eax + 0x1a]
mov dword [esp + 0xc], edx
movzx eax, word [eax + 0x18]
mov dword [esp + 8], eax
lea eax, [ebp - 0x9a8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_wsprintfW]
mov dword [ebp - 0xb4c], eax
call eax
mov eax, esi
lea ecx, [ebp - 0x818]
mov edx, edi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb28]
test eax, eax
je 0x40a52c
mov ecx, 0x40f50a
mov edx, edi
mov eax, esi
mov ebx, 4
call sym._AddToTLDataStrW.isra.0
lea esi, [esi]
mov ecx, 0x40f506
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub ebx, 1
jne 0x40a4e0
mov ecx, str.helpstring
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f518
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb28]
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f51e
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f524
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea ecx, [ebp - 0xa88]
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb2c]
test ecx, ecx
je 0x40a55c
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov edx, edi
mov ecx, 0x40f632
mov eax, esi
call sym._AddToTLDataStrW.isra.0
cmp word [esi + 4], 0
lea edx, [esi + 4]
je 0x40a581
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40a578
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x40f63a]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a588
mov eax, dword [ebp - 0xb28]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb2c]
mov dword [esp + 8], eax
lea eax, [ebp - 0xaf8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
mov eax, dword [ebp - 0xb4c]
call eax
mov ebx, dword [sym.imp.oleaut32.dll_SysFreeString]
mov eax, dword [ebp - 0xb2c]
mov dword [ebp - 0xb5c], ebx
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0xb28]
sub esp, 4
mov dword [esp], eax
call ebx
lea eax, [ebp - 0x94c]
sub esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 8], 0
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 4], 0x1132
mov dword [ebp - 0xb58], eax
call eax
mov ebx, dword [ebp - 0xb64]
mov dword [ebp - 0x94c], eax
sub esp, 0x10
test ebx, ebx
jle 0x40c210
mov dword [ebp - 0xb4c], 0
lea eax, [ebp - 0x218]
mov dword [ebp - 0xb54], eax
lea eax, [ebp - 0x418]
mov dword [ebp - 0xb60], eax
lea eax, [ebp - 0x978]
mov dword [ebp - 0xb7c], eax
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp - 0xb48]
lea edi, [ebp - 0xb40]
lea ebx, [ebp - 0xb34]
mov edx, dword [eax]
mov dword [esp + 8], edi
mov edi, dword [ebp - 0xb4c]
mov dword [esp], eax
mov dword [esp + 4], edi
lea edi, [ebp - 0xb30]
call dword [edx + 0x10]
mov eax, dword [ebp - 0xb40]
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0xb28]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0xb2c]
mov dword [esp + 8], edi
lea edi, [ebp - 0x818]
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [edx + 0x30]
mov eax, dword [ebp - 0xb40]
sub esp, 0x18
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0xc]
xor eax, eax
mov ecx, pe_nt_image_headers32
rep stosd dword es:[edi], eax
mov ecx, pe_nt_image_headers32
lea edi, [ebp - 0x618]
sub esp, 8
rep stosd dword es:[edi], eax
call sym._InitializeTLData
mov edi, dword [ebp - 0xb34]
mov dword [ebp - 0x920], eax
mov esi, eax
mov eax, dword [edi + 0x28]
mov dword [ebp - 0xb50], eax
cmp eax, 7
ja case.default.0x40a730
jmp dword [eax*4 + 0x40f68c]
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40a759
add edx, 2
cmp word [edx], 0
jne 0x40a750
lea ebx, [ebp - 0xaa8]
xor eax, eax
mov dword [ebp - 0xb68], ebx
mov esi, esi
lea edi, [edi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a770
mov eax, dword [ebp - 0xb40]
mov ecx, dword [edi + 0x3c]
lea edx, [ebp - 0x618]
mov dword [esp + 4], eax
movzx eax, word [edi + 0x40]
mov word [esp], ax
lea eax, [ebp - 0x818]
call sym._CreateTypeInfo.isra.0
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40a7c9
lea esi, [esi]
lea edi, [edi]
add edx, 2
cmp word [edx], 0
jne 0x40a7c0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x40f506]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a7d0
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40a809
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40a800
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a810
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40a839
add edx, 2
cmp word [edx], 0
jne 0x40a830
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebp + eax - 0x618]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a840
mov eax, dword [ebp - 0xb34]
mov edx, esi
call sym._CreateTypedefHeader.isra.0
mov ecx, dword [ebp - 0xb68]
mov esi, esi
lea edi, [edi]
add ecx, 2
cmp word [ecx], 0
jne 0x40a870
lea ebx, [esi + 0x204]
sub ecx, dword [ebp - 0xb68]
lea eax, [ebp - 0x818]
add ecx, eax
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, esi
mov ecx, 0x40f600
mov edx, ebx
call sym._AddToTLDataStrW.isra.0
lea eax, [esi + 4]
mov dword [ebp - 0xb50], eax
jmp 0x40b01f
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40a8d9
nop
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40a8d0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebp + eax - 0xac8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a8e0
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40a919
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40a910
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40a920
mov eax, dword [ebp - 0xb40]
xor ecx, ecx
lea ebx, [esi + 0x204]
movdqu xmm4, xmmword [str.noncreatdefault]
mov word [ebp - 0x400], cx
mov edx, ebx
mov ecx, 0x40f500
mov dword [ebp - 0xb50], eax
mov eax, esi
mov dword [ebp - 0x408], 0x620061
mov dword [ebp - 0x404], 0x65006c
movups xmmword [ebp - 0x418], xmm4
call sym._AddToTLDataStrW.isra.0
mov eax, 4
mov dword [ebp - 0xb68], edi
mov edi, eax
lea esi, [esi]
mov ecx, 0x40f506
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub edi, 1
jne 0x40a990
mov ecx, str.uuid
mov edx, ebx
mov eax, esi
mov dword [ebp - 0xb70], edi
mov edi, dword [ebp - 0xb68]
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f510
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb54]
mov dword [esp], edi
mov dword [esp + 8], 0x100
mov ecx, dword [ebp - 0xb80]
mov dword [esp + 4], eax
call ecx
sub esp, 0xc
cmp word [ebp - 0x218], 0
je 0x40c348
mov eax, dword [ebp - 0xb54]
nop
add eax, 2
cmp word [eax], 0
jne 0x40aa00
sub eax, dword [ebp - 0xb54]
sar eax, 1
sub eax, 1
xor edx, edx
lea ecx, [ebp - 0x216]
mov word [ebp + eax*2 - 0x218], dx
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f514
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb50]
lea edx, [ebp - 0x908]
mov eax, dword [ecx]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ecx
call dword [eax + 0x30]
sub esp, 0x18
test eax, eax
jns 0x40be48
test byte [edi + 0x36], 2
je 0x40be80
mov ecx, 0x40f524
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea ecx, [ebp - 0xac8]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb2c]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f64e
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb34]
xor edx, edx
xor ecx, ecx
movdqu xmm5, xmmword [str.interfacdispintehelpcontappobjeccancreatlicensedpredeclicontrol]
mov edi, dword [ebp - 0xb40]
mov dword [ebp - 0xb50], 0
movdqu xmm6, xmmword [0x40fa20]
movzx eax, word [eax + 0x30]
mov word [ebp - 0x8f4], dx
xor edx, edx
movdqu xmm7, xmmword [0x40fba0]
movdqu xmm4, xmmword [0x40fab0]
mov word [ebp - 0x1fc], cx
xor ecx, ecx
mov dword [ebp - 0xb68], eax
mov dword [ebp - 0x8f8], 0x200065
mov dword [ebp - 0x208], 0x660072
mov dword [ebp - 0x204], 0x630061
mov dword [ebp - 0x200], 0x200065
mov dword [ebp - 0xb08], 0x6f0073
mov dword [ebp - 0xb04], 0x720075
mov dword [ebp - 0xb00], 0x650063
mov word [ebp - 0xafc], dx
mov dword [ebp - 0x408], 0x640065
mov word [ebp - 0x404], cx
movups xmmword [ebp - 0x908], xmm5
movups xmmword [ebp - 0x218], xmm6
movups xmmword [ebp - 0x978], xmm7
movups xmmword [ebp - 0x418], xmm4
test eax, eax
je 0x40ad90
lea esi, [esi]
lea ecx, [ebp - 0xb20]
mov eax, dword [edi]
mov dword [esp], edi
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0xb50]
mov dword [esp + 4], ecx
call dword [eax + 0x20]
sub esp, 0xc
test eax, eax
js 0x40ad77
mov eax, dword [edi]
mov edx, dword [ebp - 0xb20]
lea ecx, [ebp - 0xb24]
mov dword [esp], edi
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call dword [eax + 0x38]
sub esp, 0xc
test eax, eax
js 0x40ad77
mov eax, dword [ebp - 0xb24]
lea ecx, [ebp - 0xb18]
mov edx, dword [eax]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [edx + 0x30]
sub esp, 0x18
test eax, eax
mov eax, dword [ebp - 0xb24]
mov edx, dword [eax]
js 0x40ad6e
lea ecx, [ebp - 0xb1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0xc]
mov ecx, 4
sub esp, 8
test eax, eax
js 0x40ad66
mov dword [ebp - 0xb6c], edi
mov edi, ebx
mov ebx, ecx
nop
lea esi, [esi]
mov ecx, 0x40f506
mov edx, edi
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub ebx, 1
jne 0x40ac68
mov ebx, edi
mov edi, dword [ebp - 0xb6c]
mov ecx, dword [ebp - 0xb50]
lea edx, [ebp - 0xb14]
mov eax, dword [edi]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], edi
call dword [eax + 0x24]
mov eax, dword [ebp - 0xb14]
sub esp, 0xc
test al, 1
jne 0x40bed8
test al, 2
jne 0x40bde0
test al, 4
je 0x40ace7
mov ecx, 0x40f540
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb60]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f61a
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb1c]
mov edx, dword [eax + 0x28]
cmp edx, 3
je 0x40bec0
test byte [eax + 0x36], 0x40
jne 0x40bec0
cmp edx, 4
je 0x40c180
mov ecx, 0x40f506
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb18]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f600
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb18]
mov dword [esp], eax
mov eax, dword [ebp - 0xb5c]
call eax
mov eax, dword [ebp - 0xb24]
mov ecx, dword [ebp - 0xb1c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x4c]
sub esp, 8
mov eax, dword [ebp - 0xb24]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
add dword [ebp - 0xb50], 1
mov eax, dword [ebp - 0xb50]
cmp dword [ebp - 0xb68], eax
jne 0x40aba0
lea edi, [esi + 4]
cmp word [esi + 4], 0
mov eax, edi
je 0x40ada9
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40ada0
mov edx, dword [ebp - 0xb70]
nop
movzx ecx, word [edx + 0x40f538]
mov word [eax + edx], cx
add edx, 2
test cx, cx
jne 0x40adb0
lea eax, [ebp - 0x94c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov ecx, edi
mov edx, ebx
mov eax, esi
sub esp, 0x10
call sym._AddToTLDataStrW.isra.0
jmp 0x40b0d0
lea ebx, [esi + 0x204]
lea ecx, [ebp - 0x9c8]
mov eax, esi
mov edx, ebx
call sym._AddToTLDataStrW.isra.0
lea ecx, [ebp - 0xb10]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb2c]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov edx, ebx
mov ecx, 0x40f64e
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea edx, [esi + 4]
cmp word [esi + 4], 0
mov dword [ebp - 0xb50], edx
je 0x40c368
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40ae58
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x40f640]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40ae68
cmp word [esi + 4], 0
mov edi, dword [ebp - 0xb2c]
mov edx, dword [ebp - 0xb50]
je 0x40ae99
nop
add edx, 2
cmp word [edx], 0
jne 0x40ae90
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [edi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40aea0
cmp word [esi + 4], 0
mov edx, dword [ebp - 0xb50]
je 0x40aec9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40aec0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x40f600]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40aed0
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40af01
nop
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40aef8
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebp + eax - 0x9c8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40af08
cmp word [ebp - 0x818], 0
mov edx, dword [ebp - 0xb2c]
lea eax, [ebp - 0x818]
je 0x40af48
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x40af38
lea esi, [esi]
movzx ecx, word [edx]
add edx, 2
add eax, 2
mov word [eax - 2], cx
test cx, cx
jne 0x40af48
jmp 0x40b01f
mov eax, dword [ebp - 0xb30]
movzx edx, word [edi + 0x30]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0xb2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb28]
mov dword [esp], eax
mov eax, dword [ebp - 0xb40]
call sym._CreateInterfaceInfo
cmp word [ebp - 0x818], 0
mov dword [esi + 0x208], 1
lea edx, [ebp - 0x818]
je 0x40afb9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40afb0
xor eax, eax
lea ebx, [ebp - 0xa68]
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40afc8
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40aff9
nop
add edx, 2
cmp word [edx], 0
jne 0x40aff0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b000
lea eax, [esi + 4]
lea ebx, [esi + 0x204]
mov dword [ebp - 0xb50], eax
lea eax, [ebp - 0x94c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov edi, eax
mov eax, dword [ebp - 0xb34]
sub esp, 0x10
mov ecx, edi
movzx edx, word [eax + 0x2e]
mov eax, dword [ebp - 0xb40]
call sym._EnumVars
mov eax, dword [ebp - 0xb34]
movzx edx, word [eax + 0x2c]
mov dword [esp], edi
lea ecx, [eax + 0x36]
mov eax, dword [ebp - 0xb40]
call sym._EnumFuncs.isra.0
mov eax, dword [ebp - 0xb34]
movzx edx, word [eax + 0x30]
test edx, edx
je 0x40b09b
mov eax, dword [ebp - 0xb40]
mov ecx, edi
call sym._EnumImplTypes.part.0
mov eax, dword [ebp - 0xb2c]
mov dword [esp + 8], 0x12
mov dword [esp + 4], str.IUnknown
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x40bd48
mov ecx, dword [ebp - 0xb50]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb40]
mov ecx, dword [ebp - 0xb34]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x4c]
mov eax, dword [ebp - 0xb40]
sub esp, 8
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0xb2c]
mov edi, dword [ebp - 0xb5c]
sub esp, 4
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0xb28]
sub esp, 4
mov dword [esp], eax
call edi
add dword [ebp - 0xb4c], 1
mov eax, dword [ebp - 0xb4c]
sub esp, 4
cmp dword [ebp - 0xb64], eax
jne 0x40a670
mov eax, dword [ebp - 0x94c]
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 8], 2
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
mov dword [esp + 4], 0x1102
call eax
xor edx, edx
xor eax, eax
sub esp, 0x10
mov dword [ebp + eax - 0x970], edx
add eax, 4
cmp eax, 0x20
jb 0x40b168
mov eax, dword [ebp - 0x94c]
mov dword [esp + 8], 0
mov esi, str.___TLib_:_n___Forward_declare_all_types_defined_in_this_typelib
mov dword [ebp - 0x978], 4
mov dword [ebp - 0x974], eax
mov eax, dword [ebp - 0xb7c]
mov dword [esp + 4], 0x113e
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov edi, dword [ebp - 0xb60]
mov ecx, 0x1f
mov ebx, dword [ebp - 0x954]
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
movzx eax, word [esi]
mov word [edi], ax
mov eax, dword [ebp - 0x974]
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x110a
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
lea ecx, [ebp - 0x418]
mov dword [ebp - 0xb50], eax
mov esi, eax
lea eax, [ebx + 0x204]
sub esp, 0x10
mov edx, eax
mov dword [ebp - 0xb4c], eax
mov edi, eax
mov eax, ebx
call sym._AddToTLDataStrWithTabsW.isra.0
mov edx, edi
mov eax, ebx
mov ecx, 0x40f612
call sym._AddToTLDataStrW.isra.0
xor edx, edx
xor eax, eax
mov dword [ebp + eax - 0x900], edx
add eax, 4
cmp eax, 0x20
jb 0x40b23c
mov eax, dword [ebp - 0xb54]
lea edi, [ebp - 0x908]
mov dword [ebp - 0x908], 5
mov dword [ebp - 0x8f4], 0x100
mov dword [ebp - 0x8f8], eax
mov eax, dword [ebp - 0xb50]
test eax, eax
je 0x40bf80
mov dword [ebp - 0xb50], ebx
mov ebx, dword [ebp - 0xb58]
jmp 0x40b2bb
mov eax, dword [0x41b724]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 1
mov dword [esp + 4], 0x110a
mov dword [esp], eax
call ebx
sub esp, 0x10
mov esi, eax
test eax, eax
je 0x40bf80
mov eax, dword [0x41b724]
mov dword [ebp - 0x904], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x113e
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x8e4]
sub esp, 0x10
mov ecx, dword [eax + 0x208]
test ecx, ecx
je 0x40b290
mov edx, dword [eax + 0x20c]
test edx, edx
jne 0x40b290
cmp word [ebp - 0x218], 0
mov edx, dword [ebp - 0xb54]
je 0x40b319
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b310
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x40f686]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b320
mov ecx, dword [ebp - 0xb54]
mov edx, dword [ebp - 0xb4c]
mov eax, dword [ebp - 0xb50]
call sym._AddToTLDataStrWithTabsW.isra.0
mov edx, dword [ebp - 0xb4c]
mov eax, dword [ebp - 0xb50]
mov ecx, 0x40f612
call sym._AddToTLDataStrW.isra.0
jmp 0x40b290
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40b389
nop
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b380
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebp + eax - 0x9e8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b390
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40b3c9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b3c0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b3d0
jmp 0x40b010
mov eax, dword [ebp - 0xb30]
movzx edx, word [edi + 0x30]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0xb2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb28]
mov dword [esp], eax
mov eax, dword [ebp - 0xb40]
call sym._CreateInterfaceInfo
mov eax, dword [ebp - 0xb34]
mov dword [esi + 0x208], 1
test byte [eax + 0x36], 0x40
jne 0x40be20
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40b451
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b448
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebp + eax - 0xa08]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b458
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40b491
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b488
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b498
lea eax, [ebp - 0x94c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov edi, eax
mov eax, dword [ebp - 0x94c]
sub esp, 0x10
mov dword [ebp - 0xb50], eax
xor eax, eax
lea esi, [esi]
movzx edx, word [ebp + eax - 0xa48]
mov word [ebp + eax - 0x818], dx
add eax, 2
test dx, dx
jne 0x40b4e8
mov dword [ebp - 0x94c], edi
call sym._InitializeTLData
lea ecx, [ebp - 0xa48]
lea edx, [eax + 0x204]
mov ebx, eax
mov dword [ebp - 0x920], eax
mov dword [ebp - 0xb68], edx
call sym._AddToTLDataStrW.isra.0
mov edx, dword [ebp - 0xb68]
mov ecx, 0x40f656
mov eax, ebx
call sym._AddToTLDataStrW.isra.0
lea eax, [ebp - 0x94c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov ecx, eax
mov dword [ebp - 0x94c], eax
mov eax, dword [ebp - 0xb34]
sub esp, 0x10
movzx edx, word [eax + 0x2e]
mov eax, dword [ebp - 0xb40]
call sym._EnumVars
mov eax, dword [ebp - 0x94c]
mov edx, ebx
call sym._AddChildrenData
xor eax, eax
lea esi, [esi]
movzx edx, word [ebp + eax - 0xad8]
mov word [ebp + eax - 0x818], dx
add eax, 2
test dx, dx
jne 0x40b598
mov dword [ebp - 0x94c], edi
call sym._InitializeTLData
lea ecx, [ebp - 0xad8]
lea edx, [eax + 0x204]
mov ebx, eax
mov dword [ebp - 0x920], eax
mov dword [ebp - 0xb68], edx
call sym._AddToTLDataStrW.isra.0
mov edx, dword [ebp - 0xb68]
mov ecx, 0x40f656
mov eax, ebx
call sym._AddToTLDataStrW.isra.0
lea eax, [ebp - 0x94c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov edx, dword [ebp - 0xb34]
sub esp, 0x10
mov dword [ebp - 0x94c], eax
lea ecx, [edx + 0x36]
movzx edx, word [edx + 0x2c]
mov dword [esp], eax
mov eax, dword [ebp - 0xb40]
call sym._EnumFuncs.isra.0
mov eax, dword [ebp - 0x94c]
mov edx, ebx
call sym._AddChildrenData
mov eax, dword [ebp - 0xb34]
movzx edx, word [eax + 0x30]
test edx, edx
jne 0x40be30
mov edx, esi
mov eax, edi
call sym._AddChildrenData
lea ecx, [esi + 4]
lea edx, [esi + 0x204]
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb50]
lea ecx, [ebp - 0xb38]
mov dword [ebp - 0x94c], eax
mov eax, dword [ebp - 0xb40]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0xc
test eax, eax
js 0x40b0d0
mov eax, dword [ebp - 0xb40]
mov ecx, dword [ebp - 0xb34]
lea edi, [ebp - 0x818]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x4c]
mov eax, dword [ebp - 0xb2c]
mov ebx, dword [ebp - 0xb5c]
sub esp, 8
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0xb28]
sub esp, 4
mov dword [esp], eax
call ebx
xor eax, eax
mov ecx, pe_nt_image_headers32
lea ebx, [ebp - 0xb30]
rep stosd dword es:[edi], eax
sub esp, 4
call sym._InitializeTLData
lea ecx, [ebp - 0xb3c]
mov dword [ebp - 0x920], eax
mov esi, eax
mov eax, dword [ebp - 0xb40]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0xb38]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x38]
mov eax, dword [ebp - 0xb3c]
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp + 0x10], ebx
lea ebx, [ebp - 0xb28]
mov dword [esp + 0xc], ebx
lea ebx, [ebp - 0xb2c]
mov dword [esp + 8], ebx
lea ebx, [ebp - 0xb34]
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [edx + 0x30]
mov eax, dword [ebp - 0xb3c]
sub esp, 0x18
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0xc]
mov eax, dword [ebp - 0xb34]
mov ecx, dword [ebp - 0xb2c]
sub esp, 8
movzx edx, word [eax + 0x30]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xb30]
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb28]
mov dword [esp], eax
mov eax, dword [ebp - 0xb40]
call sym._CreateInterfaceInfo
cmp word [ebp - 0x818], 0
mov dword [esi + 0x208], 1
lea edx, [ebp - 0x818]
je 0x40b7e1
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b7d8
xor eax, eax
lea ebx, [ebp - 0xa68]
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b7f0
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40b829
lea esi, [esi]
lea edi, [edi]
add edx, 2
cmp word [edx], 0
jne 0x40b820
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b830
mov eax, dword [ebp - 0xb3c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x40b010
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40b879
add edx, 2
cmp word [edx], 0
jne 0x40b870
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [ebp + eax - 0xa28]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b880
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40b8b9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b8b0
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b8c0
mov eax, edi
mov edx, esi
call sym._CreateTypedefHeader.isra.0
lea eax, [ebp - 0xaa8]
mov dword [ebp - 0xb68], eax
mov ecx, eax
mov esi, esi
lea edi, [edi]
add ecx, 2
cmp word [ecx], 0
jne 0x40b8f0
lea eax, [esi + 0x204]
sub ecx, dword [ebp - 0xb68]
lea ebx, [ebp - 0xa28]
add ecx, ebx
mov edx, eax
mov dword [ebp - 0xb88], eax
mov ebx, eax
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov edx, ebx
mov ecx, 0x40f532
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea edx, [esi + 4]
cmp word [esi + 4], 0
mov dword [ebp - 0xb78], edx
je 0x40c358
add edx, 2
cmp word [edx], 0
jne 0x40b940
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [eax + 0x40f640]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b950
cmp word [esi + 4], 0
mov ebx, dword [ebp - 0xb2c]
mov edx, dword [ebp - 0xb78]
je 0x40b989
lea esi, [esi]
lea edi, [edi]
add edx, 2
cmp word [edx], 0
jne 0x40b980
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b990
cmp word [esi + 4], 0
mov edx, dword [ebp - 0xb78]
je 0x40b9b9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40b9b0
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [eax + 0x40f600]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40b9c0
lea eax, [ebp - 0x94c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov ebx, dword [ebp - 0xb40]
mov ecx, eax
mov dword [ebp - 0xb84], eax
mov eax, dword [ebp - 0xb34]
sub esp, 0x10
movzx edi, word [eax + 0x2e]
mov eax, dword [ebp - 0xb60]
mov dword [ebp - 0x908], ecx
xor ecx, ecx
mov dword [ebp - 0x900], 5
mov dword [ebp - 0x8f0], eax
lea eax, [ebp - 0xb14]
mov dword [ebp - 0xb68], edi
mov dword [ebp - 0x8ec], 0x100
mov dword [ebp - 0x904], 0xffff0002
mov dword [ebp - 0xb70], eax
test edi, edi
je 0x40bcaa
mov dword [ebp - 0xb8c], esi
mov esi, ecx
jmp 0x40ba7f
add esi, 1
cmp dword [ebp - 0xb68], esi
je 0x40bca4
mov eax, dword [ebx]
mov edi, dword [ebp - 0xb70]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 8], edi
call dword [eax + 0x18]
sub esp, 0xc
test eax, eax
js 0x40ba70
mov edx, dword [ebp - 0xb14]
lea edi, [ebp - 0xb08]
mov eax, dword [ebx]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov edx, dword [edx]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x30]
sub esp, 0x18
test eax, eax
js 0x40ba70
call sym._InitializeTLData
mov edi, dword [ebp - 0xb60]
mov ecx, pe_nt_image_headers32
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 0xb6c], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0xb54]
mov ecx, pe_nt_image_headers32
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xb14]
cmp dword [eax + 0x20], 2
je 0x40bf28
mov ecx, dword [eax + 0xc]
mov edi, dword [ebp - 0xb60]
mov dword [esp + 4], ebx
movzx eax, word [eax + 0x10]
mov edx, dword [ebp - 0xb54]
mov word [esp], ax
mov eax, edi
call sym._CreateTypeInfo.isra.0
cmp word [ebp - 0x418], 0
je 0x40c0b8
mov edx, edi
nop
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40bb50
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [eax + 0x40f506]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40bb60
cmp word [ebp - 0x418], 0
mov ecx, dword [ebp - 0xb08]
mov edx, dword [ebp - 0xb60]
je 0x40bb99
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40bb90
mov eax, dword [ebp - 0xb50]
nop
movzx edi, word [ecx + eax]
mov word [edx + eax], di
add eax, 2
test di, di
jne 0x40bba0
cmp word [ebp - 0x418], 0
mov edx, dword [ebp - 0xb60]
je 0x40bbc9
add edx, 2
cmp word [edx], 0
jne 0x40bbc0
mov dword [ebp - 0xb74], ebx
mov eax, dword [ebp - 0xb50]
mov edi, dword [ebp - 0xb54]
nop
lea esi, [esi]
movzx ebx, word [edi + eax]
mov word [edx + eax], bx
add eax, 2
test bx, bx
jne 0x40bbe0
mov eax, dword [ebp - 0xb6c]
mov ebx, dword [ebp - 0xb74]
lea edi, [eax + 0x204]
mov edx, edi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb6c]
mov ecx, dword [ebp - 0xb54]
mov edx, edi
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb68]
sub eax, 1
cmp eax, esi
jg 0x40bdc0
mov eax, dword [ebp - 0xb6c]
mov ecx, 0x40f612
mov edx, edi
add esi, 1
call sym._AddToTLDataStrW.isra.0
lea eax, [ebp - 0x908]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x1132
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
mov eax, dword [ebp - 0xb08]
sub esp, 0x10
mov dword [esp], eax
mov eax, dword [ebp - 0xb5c]
call eax
mov eax, dword [ebx]
mov edx, dword [ebp - 0xb14]
sub esp, 4
mov dword [esp + 4], edx
mov dword [esp], ebx
call dword [eax + 0x54]
sub esp, 8
cmp dword [ebp - 0xb68], esi
jne 0x40ba7f
mov esi, dword [ebp - 0xb8c]
mov eax, dword [ebp - 0xb84]
mov edx, esi
call sym._AddChildrenData
mov ecx, dword [ebp - 0xb78]
mov edx, dword [ebp - 0xb88]
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40b0d0
cmp word [ebp - 0x818], 0
lea edx, [ebp - 0x818]
je 0x40bce9
add edx, 2
cmp word [edx], 0
jne 0x40bce0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebp + eax - 0xae8]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40bcf0
cmp word [ebp - 0x818], 0
mov ebx, dword [ebp - 0xb2c]
lea edx, [ebp - 0x818]
je 0x40bd29
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40bd20
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40bd30
jmp 0x40b010
mov edx, esi
mov eax, edi
call sym._AddChildrenData
jmp 0x40b0c1
mov ecx, dword [ebp - 0xb2c]
xor eax, eax
nop
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x818], dx
add eax, 2
test dx, dx
jne 0x40bd60
lea eax, [esi + 4]
lea ebx, [esi + 0x204]
mov dword [ebp - 0xb50], eax
test byte [0x40e2c0], 1
je 0x40b01f
mov eax, dword [edi + 0x28]
mov dword [esp + 0xc], str.pTypeAttr__typekind___d_not_supported_n
mov dword [esp + 8], str.PopulateTree
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x40e2c0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x40b01f
mov eax, dword [ebp - 0xb6c]
mov ecx, 0x40f60e
mov edx, edi
call sym._AddToTLDataStrW.isra.0
jmp 0x40bc2d
mov ecx, 0x40f540
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
lea ecx, [ebp - 0xb08]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
test byte [ebp - 0xb14], 4
je 0x40acd9
mov ecx, 0x40f544
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40acca
mov dword [esi + 0x20c], 1
jmp 0x40b432
mov eax, dword [ebp - 0xb40]
mov ecx, edi
call sym._EnumImplTypes.part.0
jmp 0x40b659
mov eax, dword [ebp - 0x908]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysStringLen]
sub esp, 4
test eax, eax
jne 0x40c198
mov eax, dword [ebp - 0x908]
mov dword [esp], eax
mov eax, dword [ebp - 0xb5c]
call eax
sub esp, 4
test byte [edi + 0x36], 2
jne 0x40aa88
mov ecx, 0x40f50a
mov edx, ebx
mov eax, esi
mov edi, 4
call sym._AddToTLDataStrW.isra.0
nop
lea esi, [esi]
mov ecx, 0x40f506
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub edi, 1
jne 0x40be98
mov ecx, dword [ebp - 0xb60]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40aa88
lea ecx, [ebp - 0x908]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40ad0c
mov ecx, 0x40f540
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0xb7c]
mov eax, esi
mov edx, ebx
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb14]
test al, 2
jne 0x40bf10
test al, 4
je 0x40acd9
jmp 0x40be0a
mov ecx, 0x40f544
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40bdee
mov edi, dword [ebp - 0xb7c]
mov dword [esp], edi
call dword [sym.imp.oleaut32.dll_VariantInit]
mov eax, dword [ebp - 0xb14]
sub esp, 4
mov dword [esp + 0xc], 8
mov dword [esp + 8], 0
mov eax, dword [eax + 8]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.oleaut32.dll_VariantChangeType]
sub esp, 0x10
test eax, eax
je 0x40c250
mov eax, dword [ebp - 0xb14]
jmp 0x40bb16
mov eax, dword [ebp - 0x974]
mov dword [esp + 8], 4
mov dword [esp + 4], 0x110a
mov esi, dword [ebp - 0x954]
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp], eax
mov eax, dword [ebp - 0xb58]
call eax
xor ecx, ecx
xor edx, edx
sub esp, 0x10
mov ebx, eax
mov dword [ebp + edx - 0x210], ecx
add edx, 4
cmp edx, 0x20
jb 0x40bfb9
mov dword [ebp - 0x218], 4
lea edi, [esi + 0x204]
test eax, eax
je 0x40c080
mov dword [ebp - 0xb4c], esi
mov esi, dword [ebp - 0xb58]
jmp 0x40c017
mov eax, dword [0x41b724]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov dword [esp + 4], 0x110a
mov dword [esp], eax
call esi
sub esp, 0x10
mov ebx, eax
test eax, eax
je 0x40c080
mov eax, dword [ebp - 0xb54]
mov dword [ebp - 0x214], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x41b724]
mov dword [esp + 4], 0x113e
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x1f4]
sub esp, 0x10
mov eax, dword [eax + 0x20c]
test eax, eax
jne 0x40bff0
mov eax, dword [ebp - 0xb4c]
mov edx, edi
mov ecx, 0x40f612
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0x1f4]
mov edx, edi
mov ecx, dword [eax]
mov eax, dword [ebp - 0xb4c]
call sym._AddToTLDataStrWithTabsW.isra.0
jmp 0x40bff0
mov eax, dword [ebp - 0x954]
lea ecx, [eax + 4]
lea edx, [eax + 0x204]
call sym._AddToTLDataStrW.isra.0
mov eax, dword [ebp - 0xb48]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
xor eax, eax
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov edx, dword [ebp - 0xb60]
jmp 0x40bb59
mov esi, eax
mov eax, dword [0x41b4dc]
lea edi, [ebp - 0x218]
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], edi
lea ebx, [ebp - 0x418]
mov dword [esp + 4], 0x190
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
lea eax, [ebp - 0x618]
mov dword [ebp - 0x614], esi
mov dword [ebp - 0x618], 0x41b730
sub esp, 0x10
mov dword [esp + 0x10], ebx
mov dword [esp + 4], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0x100
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0x2400
call dword [sym.imp.kernel32.dll_FormatMessageW]
mov eax, dword [0x41b4c0]
sub esp, 0x1c
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_MessageBoxW]
mov eax, 1
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov ecx, dword [ebp - 0xb54]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40ad0c
mov eax, esi
mov ecx, 0x40f50a
mov edx, ebx
call sym._AddToTLDataStrW.isra.0
mov eax, 4
mov dword [ebp - 0xb50], edi
mov edi, eax
nop
lea esi, [esi]
mov ecx, 0x40f506
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
sub edi, 1
jne 0x40c1b8
mov edx, ebx
mov eax, esi
mov ecx, str.helpstring
mov edi, dword [ebp - 0xb50]
call sym._AddToTLDataStrW.isra.0
mov edx, ebx
mov eax, esi
mov ecx, 0x40f518
call sym._AddToTLDataStrW.isra.0
mov ecx, dword [ebp - 0x908]
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
mov ecx, 0x40f51e
mov edx, ebx
mov eax, esi
call sym._AddToTLDataStrW.isra.0
jmp 0x40be62
lea ebx, [ebp - 0x218]
mov dword [ebp - 0xb54], ebx
lea ebx, [ebp - 0x418]
mov dword [ebp - 0xb60], ebx
lea ebx, [ebp - 0x978]
mov dword [ebp - 0xb7c], ebx
jmp 0x40b13d
mov eax, 0xffffffff
jmp 0x40a436
cmp word [ebp - 0x418], 0
mov edx, dword [ebp - 0xb60]
je 0x40c269
add edx, 2
cmp word [edx], 0
jne 0x40c260
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [eax + str.const]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40c270
cmp word [ebp - 0x418], 0
mov edx, dword [ebp - 0xb60]
je 0x40c2a1
nop
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40c298
mov eax, dword [ebp - 0xb50]
mov esi, esi
lea edi, [edi]
movzx ecx, word [eax + 0x40f506]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40c2b0
cmp word [ebp - 0x218], 0
mov edx, dword [ebp - 0xb54]
je 0x40c2e1
nop
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40c2d8
mov eax, dword [ebp - 0xb50]
mov esi, esi
lea edi, [edi]
movzx ecx, word [eax + 0x40f646]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40c2f0
cmp word [ebp - 0x218], 0
mov edi, dword [ebp - 0x970]
mov edx, dword [ebp - 0xb54]
je 0x40c329
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x40c320
mov eax, dword [ebp - 0xb50]
nop
movzx ecx, word [edi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40c330
jmp 0x40bf6b
mov eax, 0xffffffff
jmp 0x40aa14
mov edx, dword [ebp - 0xb78]
jmp 0x40b949
mov edx, dword [ebp - 0xb50]
jmp 0x40ae61