Function at 0x4052a0
Capabilities:
Get common file path
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb10
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
lea edx, [ecx - 1]
cmp edx, 6
ja case.default.0x4052c4
jmp dword [edx*4 + 0x40d810]
mov ebx, dword [0x40d144]
push dword [ebx + 0x1c]
push 0x41968c
push edi
call dbg.CreatePanedWindow
add esp, 0xc
test eax, eax
jne 0x4052ed
push edi
call dword [sym.imp.user32.dll_DestroyWindow]
mov eax, dword [0x41968c]
mov ecx, dword [ebx + 0x1c]
sub esp, 0x30
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
movaps xmm0, xmmword [0x40d7e0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0x7d3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 4], str.SysTreeView32
mov dword [esp], 0x200
mov esi, dword [sym.imp.user32.dll_CreateWindowExW]
call esi
mov dword [0x419690], eax
mov eax, dword [0x41968c]
mov ecx, dword [ebx + 0x1c]
sub esp, 0x30
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
movaps xmm0, xmmword [0x40d7f0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 4], str.Edit
mov dword [esp], 0x200
call esi
mov dword [0x419694], eax
push dword [0x419690]
push dword [0x41968c]
call dbg.SetLeft
add esp, 8
push dword [0x419694]
push dword [0x41968c]
call dbg.SetRight
add esp, 8
lea eax, [esp + 0x660]
push 0x9e
push str.___Generated_.IDL_file__by_the_OLE_COM_Object_Viewer__n___n___typelib_filename:
push eax
call sym._memcpy
add esp, 0xc
movups xmm0, xmmword [str._s___s_]
movaps xmmword [esp + 0x220], xmm0
movups xmm0, xmmword [0x40dba0]
movaps xmmword [esp + 0x240], xmm0
movups xmm0, xmmword [str.version__ld._ld_]
movaps xmmword [esp + 0x230], xmm0
mov word [esp + 0x250], 0
movups xmm0, xmmword [0x40dbbe]
movups xmmword [esp + 0x20c], xmm0
movups xmm0, xmmword [str.typedef_enum]
movaps xmmword [esp + 0x200], xmm0
movups xmm0, xmmword [0x40dbde]
movaps xmmword [esp + 0x1f0], xmm0
movups xmm0, xmmword [str.typedef_struct]
movaps xmmword [esp + 0x1e0], xmm0
movups xmm0, xmmword [str.coclass]
movaps xmmword [esp + 0x140], xmm0
mov word [esp + 0x150], 0
movups xmm0, xmmword [str.typedef]
movaps xmmword [esp + 0x120], xmm0
mov word [esp + 0x130], 0
movups xmm0, xmmword [str.library]
movaps xmmword [esp + 0x1c0], xmm0
mov word [esp + 0x1d0], 0
mov dword [esp + 0x7c], 0x67
mov dword [esp + 0x78], 0x610074
movsd xmm0, qword [0x40dc4e]
movsd qword [esp + 0x1ae], xmm0
movups xmm0, xmmword [str.properties]
movaps xmmword [esp + 0x1a0], xmm0
movups xmm0, xmmword [str.methods]
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0xd4], 5
mov dword [esp + 0xe8], 0x100
lea eax, [esp + 0x260]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xd0], 0xffff0002
mov dword [esp + 0xcc], 0xffff0000
lea eax, [esp + 0x2c]
push eax
push 0x41969c
call dword [sym.imp.oleaut32.dll_LoadTypeLib]
test eax, eax
js 0x405c5c
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
lea esi, [esp + 0x10]
push 0
push 0
push edx
push esi
push 0xffffffffffffffff
push eax
call dword [ecx + 0x24]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
push eax
call dword [ecx + 0x1c]
push 0x210
push 1
call dword [sym.imp.ucrtbase.dll_calloc]
add esp, 8
mov esi, eax
push 2
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
mov word [eax], 0
mov dword [esp + 4], esi
mov dword [esp + 0xf8], esi
xor ebx, ebx
nop word cs:[eax + eax]
mov edi, ebx
add ebx, 2
cmp word [esp + edi + 0x660], 0
jne 0x4055a0
sar edi, 1
push ebx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, eax
push ebx
lea eax, [esp + 0x664]
push eax
mov dword [esp + 8], ecx
push ecx
call sym._memcpy
add esp, 0xc
mov esi, 0xfffffffe
nop word [eax + eax]
cmp word [esi + 0x41969e], 0
lea esi, [esi + 2]
jne 0x4055e0
mov eax, esi
sar eax, 1
mov dword [esp + 0xc], eax
add eax, edi
mov dword [esp + 8], eax
lea eax, [eax*2 + 2]
push eax
push dword [esp + 4]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esp], eax
lea ecx, [eax + ebx]
add ecx, 0xfffffffe
add esi, 2
push esi
push 0x41969c
push ecx
call sym._memcpy
add esp, 0xc
mov ebx, dword [esp + 8]
lea eax, [ebx*2 + 0xa]
push eax
push dword [esp + 4]
mov esi, dword [sym.imp.ucrtbase.dll_realloc]
call esi
add esp, 8
mov dword [eax + ebx*2], 0xa000a
mov dword [eax + ebx*2 + 4], 0xa005b
mov word [eax + ebx*2 + 8], 0
lea ecx, [ebx*2 + 0xc]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + ebx*2 + 8], 0x20
lea ecx, [ebx*2 + 0xe]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + ebx*2 + 0xa], 0x20
lea ecx, [ebx*2 + 0x10]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + ebx*2 + 0xc], 0x20
lea ecx, [ebx*2 + 0x12]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + ebx*2 + 0xe], 0x20
lea ecx, [ebx*2 + 0x1a]
push ecx
push eax
call esi
mov edx, esi
add esp, 8
mov dword [eax + ebx*2 + 0x10], 0x750075
mov dword [eax + ebx*2 + 0x14], 0x640069
mov word [eax + ebx*2 + 0x18], 0
mov ecx, dword [esp + 0xc]
lea esi, [ecx + edi + 0xd]
lea ecx, [ebx + ebx + 0x1c]
mov edi, ebx
push ecx
push eax
call edx
add esp, 8
mov ebx, dword [esp + 4]
mov dword [ebx], eax
mov dword [eax + edi*2 + 0x18], 0x28
mov dword [ebx + 0x204], esi
push 0x100
lea eax, [esp + 0x264]
push eax
push dword [esp + 0x60]
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov eax, 0xfffffffe
cmp word [esp + eax + 0x262], 0
lea eax, [eax + 2]
jne 0x405720
lea ecx, [esp + 0x260]
mov word [eax + ecx - 2], 0
xor edi, edi
nop
mov esi, edi
add edi, 2
cmp word [esp + esi + 0x262], 0
jne 0x405740
sar esi, 1
mov eax, dword [ebx + 0x204]
add eax, esi
lea eax, [eax*2 + 2]
push eax
push dword [ebx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esp], eax
mov ebx, dword [ebx + 0x204]
lea edx, [eax + ebx*2]
mov dword [esp + 0xc], ebx
push edi
lea ecx, [esp + 0x266]
push ecx
push edx
call sym._memcpy
add esp, 0xc
lea edi, [ebx + esi]
lea eax, [edi*2 + 8]
push eax
push dword [esp + 4]
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
call eax
add esp, 8
xor ebx, ebx
mov ecx, 0x5d000a
add ecx, 0xffcf001f
mov edx, 0
adc edx, 9
mov dword [eax + edi*2 + 4], edx
mov dword [eax + edi*2], ecx
lea ecx, [edi*2 + 0xa]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [eax + edi*2 + 6], 0x20
lea ecx, [edi*2 + 0xc]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [eax + edi*2 + 8], 0x20
lea ecx, [edi*2 + 0xe]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
mov edx, dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [eax + edi*2 + 0xa], 0x20
mov ecx, dword [esp + 0xc]
add esi, ecx
add esi, 7
lea ecx, [edi*2 + 0x10]
push ecx
push eax
call edx
add esp, 8
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov dword [eax + edi*2 + 0xc], 0x20
mov dword [ecx + 0x204], esi
mov eax, dword [esp + 0x58]
movzx ecx, word [eax + 0x18]
movzx eax, word [eax + 0x1a]
lea edx, [esp + 0x230]
push eax
push ecx
push edx
lea eax, [esp + 0x26c]
push eax
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
nop word [eax + eax]
mov edi, ebx
add ebx, 2
cmp word [esp + edi + 0x260], 0
jne 0x405870
sar edi, 1
mov esi, dword [esp + 4]
mov eax, dword [esi + 0x204]
add eax, edi
lea eax, [eax*2 + 2]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov esi, dword [esi + 0x204]
mov dword [esp], eax
lea eax, [eax + esi*2]
push ebx
lea ecx, [esp + 0x264]
push ecx
push eax
call sym._memcpy
add esp, 0xc
add edi, esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
test eax, eax
je 0x405cd0
lea eax, [edi*2 + 6]
push eax
push dword [esp + 4]
mov esi, dword [sym.imp.ucrtbase.dll_realloc]
call esi
add esp, 8
mov dword [eax + edi*2], 0xa002c
mov word [eax + edi*2 + 4], 0
lea ecx, [edi*2 + 8]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + edi*2 + 4], 0x20
lea ecx, [edi*2 + 0xa]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + edi*2 + 6], 0x20
lea ecx, [edi*2 + 0xc]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + edi*2 + 8], 0x20
lea ecx, [edi*2 + 0xe]
push ecx
push eax
call esi
add esp, 8
mov dword [eax + edi*2 + 0xa], 0x20
lea ecx, [edi*2 + 0x22]
push ecx
push eax
call esi
add esp, 8
movups xmm0, xmmword [0x40dc80]
movups xmmword [eax + edi*2 + 0xc], xmm0
movsd xmm0, qword [0x40dc8e]
movsd qword [eax + edi*2 + 0x1a], xmm0
lea ebx, [edi + 0x12]
lea ecx, [edi*2 + 0x26]
push ecx
push eax
call esi
add esp, 8
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov dword [eax + edi*2 + 0x20], 0x220028
mov word [eax + edi*2 + 0x24], 0
mov edx, ebx
mov dword [ecx + 0x204], ebx
xor ebx, ebx
mov ecx, dword [esp + 0xc]
nop word [eax + eax]
mov edi, ebx
add ebx, 2
cmp word [ecx + edi], 0
jne 0x4059b0
sar edi, 1
mov dword [esp], edx
lea esi, [edi + edx]
lea ecx, [esi*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
mov dword [eax], ecx
mov eax, dword [esp]
lea eax, [ecx + eax*2]
push ebx
push dword [esp + 0x10]
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp]
add edi, eax
add edi, 2
lea eax, [esi*2 + 6]
push eax
push dword [esp + 0xc]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [eax + esi*2], 0x290022
mov word [eax + esi*2 + 4], 0
jmp 0x405cd3
cmp ecx, 0x111
je 0x405b8d
cmp ecx, 0x11f
jne case.0x4052c4.3
movzx eax, ax
mov edi, dword [0x40d144]
lea esi, [esp + 0x460]
push 0x100
push esi
push eax
push dword [edi + 0x1c]
call dword [sym.imp.user32.dll_LoadStringW]
test eax, eax
jne 0x405a6f
push 0x100
push esi
push 0xa
push dword [edi + 0x1c]
call dword [sym.imp.user32.dll_LoadStringW]
push esi
push 0
push 0x40b
push dword [0x419698]
call dword [sym.imp.user32.dll_SendMessageW]
jmp 0x408078
push dword [ebp + 0x14]
push eax
push ecx
push edi
call dword [sym.imp.user32.dll_DefWindowProcW]
jmp 0x40807a
cmp eax, 1
jne 0x408073
jmp 0x408078
mov dword [esp + 0x460], 4
push 0xffff0000
push 4
push 0x110a
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov esi, eax
mov ebx, dword [sym.imp.user32.dll_SendMessageW]
jmp 0x405afa
push esi
push 0
push 0x1101
push dword [0x419690]
call ebx
mov esi, edi
test edi, edi
je 0x408078
push esi
push 4
push 0x110a
push dword [0x419690]
call ebx
mov edi, eax
test eax, eax
jne 0x405b40
push esi
push 1
push 0x110a
push dword [0x419690]
call ebx
mov edi, eax
test eax, eax
jne 0x405b40
push esi
push 3
push 0x110a
push dword [0x419690]
call ebx
mov edi, eax
nop dword [eax + eax]
mov dword [esp + 0x464], esi
lea eax, [esp + 0x460]
push eax
push 0
push 0x113e
push dword [0x419690]
call ebx
mov eax, dword [esp + 0x484]
test eax, eax
je 0x405ae0
push dword [eax]
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
push dword [esp + 0x484]
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
jmp 0x405ae0
cmp ax, 0x7b
je 0x40803c
movzx eax, ax
cmp eax, 0xbba
je 0x405cc4
cmp eax, 0xbb9
jne 0x408078
xorps xmm0, xmm0
movaps xmmword [esp + 0x900], xmm0
movaps xmmword [esp + 0x910], xmm0
movaps xmmword [esp + 0x920], xmm0
movaps xmmword [esp + 0x930], xmm0
movaps xmmword [esp + 0x940], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x950], xmm0
xor eax, eax
nop dword [eax]
movzx ecx, word [eax + 0x41969c]
mov word [esp + eax + 0x260], cx
add eax, 2
test cx, cx
jne 0x405bf0
lea eax, [esp + 0x25e]
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x405c10
lea esi, [esp + 0x260]
nop word cs:[eax + eax]
movzx ecx, word [eax]
cmp ecx, 0x2e
je 0x40808a
cmp ecx, 0x5c
je 0x4080bf
cmp eax, esi
jbe 0x408084
cmp cx, 0x2f
je 0x408084
add eax, 0xfffffffe
jmp 0x405c30
mov esi, eax
lea eax, [esp + 0x700]
push 0x100
push eax
push 0x190
push dword [ebx + 0x1c]
call dword [sym.imp.user32.dll_LoadStringW]
mov dword [esp + 0x80], 0x41969c
mov dword [esp + 0x84], esi
lea eax, [esp + 0x80]
lea esi, [esp + 0x460]
push eax
push 0x100
push esi
push 0
push 0
lea eax, [esp + 0x714]
push eax
push 0x2400
call dword [sym.imp.kernel32.dll_FormatMessageW]
push 0x30
push 0
push esi
push dword [ebx]
call dword [sym.imp.user32.dll_MessageBoxW]
push edi
call dword [sym.imp.user32.dll_DestroyWindow]
jmp 0x408078
mov eax, dword [esp]
lea ecx, [edi + 3]
mov dword [esp], ecx
lea ecx, [edi*2 + 8]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, 0xa
mov dword [eax + edi*2 + 4], ecx
mov ecx, 0x5d000a
mov dword [eax + edi*2], ecx
xor esi, esi
nop
mov ebx, esi
add esi, 2
cmp word [esp + ebx + 0x1c0], 0
jne 0x405d00
sar ebx, 1
add ebx, dword [esp]
lea ecx, [ebx*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edi, dword [esp + 4]
mov dword [edi], eax
mov dword [esp + 8], eax
mov ecx, dword [esp]
lea eax, [eax + ecx*2]
lea ecx, [esp + 0x1c0]
push esi
push ecx
push eax
call sym._memcpy
add esp, 0xc
mov dword [edi + 0x204], ebx
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [esp], eax
je 0x405daa
xor esi, esi
nop dword [eax]
mov edi, esi
add esi, 2
cmp word [eax + edi], 0
jne 0x405d60
sar edi, 1
add edi, ebx
lea eax, [edi*2 + 2]
push eax
push dword [esp + 0xc]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, eax
mov eax, dword [esp + 4]
mov dword [eax], ecx
lea eax, [ecx + ebx*2]
mov ebx, ecx
push esi
push dword [esp + 4]
push eax
call sym._memcpy
mov ecx, ebx
add esp, 0xc
mov ebx, edi
mov edi, dword [esp + 4]
jmp 0x405db2
mov edi, dword [esp + 4]
mov ecx, dword [esp + 8]
lea esi, [ebx + 3]
lea eax, [ebx*2 + 8]
push eax
push ecx
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, 0x5d000a
add ecx, 0x1e0000
mov dword [eax + ebx*2], ecx
mov ecx, 0xa
mov dword [eax + ebx*2 + 4], ecx
mov dword [edi], eax
mov dword [edi + 0x204], esi
add edi, 4
mov eax, edi
nop dword [eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x405df0
mov word [eax + 2], 0
mov dword [eax - 2], 0x3b007d
lea eax, [esp + 0x220]
push dword [esp + 0xc]
push dword [esp + 4]
push eax
lea eax, [esp + 0x26c]
push eax
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
mov esi, dword [sym.imp.oleaut32.dll_SysFreeString]
push dword [esp + 0x10]
call esi
push dword [esp + 0x20]
call esi
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 0xcc], eax
cmp dword [esp + 0x54], 0
jle 0x407caa
xor esi, esi
jmp 0x405eaf
mov dword [esi + 0x204], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push dword [esp + 0x1c]
push eax
call dword [ecx + 0x4c]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [esp + 0x10]
mov esi, dword [sym.imp.oleaut32.dll_SysFreeString]
call esi
push dword [esp + 0x20]
call esi
mov esi, dword [esp + 0x6c]
inc esi
cmp esi, dword [esp + 0x54]
je 0x407ca3
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push esi
push eax
call dword [ecx + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x1c]
push edx
push 0xffffffffffffffff
push eax
call dword [ecx + 0x30]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push eax
call dword [ecx + 0xc]
push 0x200
push 0
lea eax, [esp + 0x268]
push eax
call sym._memset
add esp, 0xc
push 0x200
push 0
lea eax, [esp + 0x908]
push eax
call sym._memset
add esp, 0xc
push 0x210
push 1
call dword [sym.imp.ucrtbase.dll_calloc]
add esp, 8
mov ebx, eax
push 2
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
mov dword [ebx], eax
mov word [eax], 0
mov dword [esp + 0xf8], ebx
mov edi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x28]
cmp ecx, 7
mov dword [esp + 0x6c], esi
ja case.default.0x405f5c
mov dword [esp + 0xc], ebx
jmp dword [ecx*4 + 0x40d82c]
lea eax, [esp + 0x25e]
nop word [eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x405f70
xor ecx, ecx
nop dword [eax]
movzx edx, word [esp + ecx + 0x200]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x405f80
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x405fa0
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x405fb0
mov ecx, edi
mov edx, ebx
call dbg.CreateTypedefHeader
mov eax, 0xfffffffe
nop
cmp word [esp + eax + 0x122], 0
lea eax, [eax + 2]
jne 0x405fd0
lea ebx, [esp + eax]
add ebx, 0x200
xor edi, edi
nop dword [eax]
mov esi, edi
add edi, 2
cmp word [ebx + esi], 0
jne 0x405ff0
sar esi, 1
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x204]
add eax, esi
lea eax, [eax*2 + 2]
push eax
push dword [ecx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esp + 4], eax
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x204]
mov dword [esp], ecx
lea eax, [eax + ecx*2]
push edi
push ebx
mov ebx, edx
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp]
lea edi, [eax + esi]
add esi, eax
add esi, 2
lea eax, [edi*2 + 6]
push eax
push dword [esp + 8]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov dword [eax + edi*2], 0xa007b
mov word [eax + edi*2 + 4], 0
mov dword [ebx + 0x204], esi
lea eax, [ebx + 4]
mov dword [esp + 0x50], eax
nop dword [eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406080
mov word [eax + 2], 0
mov dword [eax - 2], 0x20007d
mov eax, dword [esp + 0x10]
mov ecx, ebx
add ecx, 2
nop
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4060a0
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x4060b0
mov eax, dword [esp + 0x50]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4060d0
mov word [eax + 2], 0
mov dword [eax - 2], 0xa003b
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov ecx, eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 0x2e]
mov dword [esp + 0x88], 5
mov dword [esp + 0x9c], 0x100
lea eax, [esp + 0x460]
mov dword [esp + 0x98], eax
mov dword [esp + 0x84], 0xffff0002
mov dword [esp + 0x64], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x24], edx
test edx, edx
lea esi, [esp + 0x40]
je 0x406ce5
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x68], eax
xor ecx, ecx
mov dword [esp + 0x34], edi
jmp 0x4061e1
lea esi, [ebx + 1]
lea eax, [ebx*2 + 4]
push eax
push edi
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, dword [esp]
mov dword [ecx], eax
mov dword [eax + ebx*2], 0xa
mov dword [ecx + 0x204], esi
lea eax, [esp + 0x80]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
push dword [esp + 0x28]
call dword [sym.imp.oleaut32.dll_SysFreeString]
mov edi, dword [esp + 0x34]
mov eax, dword [edi]
push dword [esp + 0x40]
push edi
call dword [eax + 0x54]
lea esi, [esp + 0x40]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
inc ecx
cmp ecx, dword [esp + 0x24]
je 0x406ce5
mov eax, dword [edi]
push esi
mov dword [esp + 8], ecx
push ecx
push edi
call dword [eax + 0x18]
test eax, eax
js 0x4061d2
mov eax, dword [esp + 0x40]
mov ecx, dword [edi]
push 0
push 0
push 0
lea edx, [esp + 0x34]
push edx
push dword [eax]
push edi
call dword [ecx + 0x30]
test eax, eax
js 0x4061d2
push 0x210
push 1
call dword [sym.imp.ucrtbase.dll_calloc]
add esp, 8
mov esi, eax
push 2
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
mov dword [esi], eax
mov word [eax], 0
mov dword [esp], esi
mov dword [esp + 0xac], esi
push 0x200
push 0
lea eax, [esp + 0x468]
push eax
call sym._memset
add esp, 0xc
push 0x200
push 0
lea eax, [esp + 0x708]
push eax
call sym._memset
add esp, 0xc
mov eax, dword [esp + 0x40]
cmp dword [eax + 0x20], 2
jne 0x406354
lea esi, [esp + 0x110]
push esi
call dword [sym.imp.oleaut32.dll_VariantInit]
mov eax, dword [esp + 0x40]
push 8
push 0
push dword [eax + 8]
push esi
call dword [sym.imp.oleaut32.dll_VariantChangeType]
test eax, eax
jne 0x406350
lea eax, [esp + 0x460]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4062b0
mov dword [eax + 6], 0x74
mov dword [eax + 2], 0x73006e
mov dword [eax - 2], 0x6f0063
lea eax, [esp + 0x460]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4062e0
mov dword [eax - 2], 0x20
lea eax, [esp + 0x700]
nop word [eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406300
mov dword [eax + 2], 0x20
mov dword [eax - 2], 0x3d0020
mov eax, dword [esp + 0x118]
lea ecx, [esp + 0x6fe]
nop word cs:[eax + eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406330
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x406340
mov eax, dword [esp + 0x40]
sub esp, 0xc
movsd xmm0, qword [eax + 0xc]
movsd qword [esp], xmm0
mov dword [esp + 8], edi
lea esi, [esp + 0x46c]
mov ecx, esi
lea edx, [esp + 0x70c]
call dbg.CreateTypeInfo
add esp, 0xc
mov eax, esi
nop
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406380
mov dword [eax - 2], 0x20
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x45e]
nop dword [eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4063a0
xor ecx, ecx
nop dword [eax]
movzx edx, word [esi + ecx]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x4063b0
lea eax, [esp + 0x45e]
nop word [eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4063d0
xor ecx, ecx
nop dword [eax]
movzx edx, word [esp + ecx + 0x700]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x4063e0
xor ebx, ebx
nop word cs:[eax + eax]
mov edi, ebx
add ebx, 2
cmp word [esi + edi], 0
jne 0x406400
sar edi, 1
mov ecx, dword [esp]
mov eax, dword [ecx + 0x204]
add eax, edi
lea eax, [eax*2 + 2]
push eax
push dword [ecx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, dword [esp]
mov dword [ecx], eax
mov ecx, dword [ecx + 0x204]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], eax
lea eax, [eax + ecx*2]
push ebx
push esi
push eax
call sym._memcpy
add esp, 0xc
xor esi, esi
nop
mov ebx, esi
add esi, 2
cmp word [esp + ebx + 0x700], 0
jne 0x406450
mov eax, dword [esp + 8]
add eax, edi
mov dword [esp + 8], eax
sar ebx, 1
add ebx, eax
lea eax, [ebx*2 + 2]
push eax
push dword [esp + 0x1c]
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
call eax
add esp, 8
mov edi, eax
mov eax, dword [esp + 8]
lea eax, [edi + eax*2]
push esi
lea ecx, [esp + 0x704]
push ecx
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x68]
jge 0x406170
lea esi, [ebx + 1]
lea eax, [ebx*2 + 4]
push eax
push edi
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edi, eax
mov dword [eax + ebx*2], 0x2c
mov ebx, esi
jmp 0x406170
mov ecx, dword [esp + 0x14]
movzx edx, word [edi + 0x30]
push ebx
push edi
push dword [esp + 0x38]
push dword [esp + 0x2c]
push dword [esp + 0x20]
call dbg.CreateInterfaceInfo
add esp, 0x14
mov dword [ebx + 0x208], 1
mov eax, dword [esp + 0x1c]
test byte [eax + 0x36], 0x40
je 0x40650e
mov dword [ebx + 0x20c], 1
lea eax, [esp + 0x260]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406520
movups xmm0, xmmword [0x40dec6]
movups xmmword [eax + 0xc], xmm0
movups xmm0, xmmword [str.dispinterface]
movups xmmword [eax - 2], xmm0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop word [eax + eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406550
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x406560
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 4], eax
xor eax, eax
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
nop dword [eax + eax]
movzx ecx, word [esp + eax + 0x1a0]
mov word [esp + eax + 0x260], cx
add eax, 2
test cx, cx
jne 0x4065a0
mov eax, dword [esp + 4]
mov dword [esp + 0xcc], eax
push 0x210
push 1
call dword [sym.imp.ucrtbase.dll_calloc]
add esp, 8
mov esi, eax
push 2
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
mov word [eax], 0
mov dword [esp + 8], esi
mov dword [esp + 0xf8], esi
xor ebx, ebx
nop word cs:[eax + eax]
mov esi, ebx
add ebx, 2
cmp word [esp + esi + 0x1a0], 0
jne 0x406600
sar esi, 1
push ebx
push eax
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
call eax
add esp, 8
mov edi, eax
push ebx
lea eax, [esp + 0x1a4]
push eax
push edi
call sym._memcpy
add esp, 0xc
lea eax, [esi*2 + 6]
add esi, 2
push eax
push edi
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edi, dword [esp + 8]
mov dword [edi], eax
mov word [eax + ebx + 2], 0
mov dword [eax + ebx - 2], 0xa003a
mov dword [edi + 0x204], esi
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
movzx edx, word [edx + 0x2e]
push eax
call dbg.EnumVars
add esp, 4
mov ecx, dword [esp + 0xcc]
mov edx, edi
call dbg.AddChildrenData
xor eax, eax
nop dword [eax]
movzx ecx, word [esp + eax + 0x160]
mov word [esp + eax + 0x260], cx
add eax, 2
test cx, cx
jne 0x4066b0
mov eax, dword [esp + 4]
mov dword [esp + 0xcc], eax
push 0x210
push 1
call dword [sym.imp.ucrtbase.dll_calloc]
add esp, 8
mov esi, eax
push 2
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
mov word [eax], 0
mov dword [esp + 8], esi
mov dword [esp + 0xf8], esi
xor ebx, ebx
nop word cs:[eax + eax]
mov esi, ebx
add ebx, 2
cmp word [esp + esi + 0x160], 0
jne 0x406710
sar esi, 1
push ebx
push eax
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
call eax
add esp, 8
mov edi, eax
push ebx
lea eax, [esp + 0x164]
push eax
push edi
call sym._memcpy
add esp, 0xc
lea eax, [esi*2 + 6]
add esi, 2
push eax
push edi
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edi, dword [esp + 8]
mov dword [edi], eax
mov word [eax + ebx + 2], 0
mov dword [eax + ebx - 2], 0xa003a
mov dword [edi + 0x204], esi
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
call dbg.EnumFuncs
add esp, 4
mov ecx, dword [esp + 0xcc]
mov edx, edi
call dbg.AddChildrenData
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 0x30]
mov esi, dword [esp + 4]
push esi
call dbg.EnumImplTypes
add esp, 4
mov ecx, esi
mov esi, dword [esp + 0xc]
mov edx, esi
call dbg.AddChildrenData
mov eax, esi
add eax, 4
mov dword [esp + 4], eax
mov edi, 0xfffffffe
nop word [eax + eax]
cmp word [esi + edi + 6], 0
lea edi, [edi + 2]
jne 0x4067f0
mov ebx, edi
sar ebx, 1
mov eax, dword [esi + 0x204]
add eax, ebx
lea eax, [eax*2 + 2]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [esp + 8], ecx
lea eax, [eax + ecx*2]
add edi, 2
push edi
push dword [esp + 8]
push eax
call sym._memcpy
add esp, 0xc
add ebx, dword [esp + 8]
mov dword [esi + 0x204], ebx
mov eax, dword [esp]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push 0xffffffffffffffff
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x405e76
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push dword [esp + 0x1c]
push eax
call dword [ecx + 0x4c]
push dword [esp + 0x10]
mov esi, dword [sym.imp.oleaut32.dll_SysFreeString]
call esi
push dword [esp + 0x20]
call esi
push 0x200
push 0
lea esi, [esp + 0x268]
push esi
call sym._memset
add esp, 0xc
push 0x210
push 1
call dword [sym.imp.ucrtbase.dll_calloc]
add esp, 8
mov ebx, eax
push 2
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
mov dword [ebx], eax
mov word [eax], 0
mov dword [esp + 0xf8], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x38]
push edx
push dword [esp + 0x74]
push eax
call dword [ecx + 0x38]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x1c]
push edx
push 0xffffffffffffffff
push eax
call dword [ecx + 0x30]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push eax
call dword [ecx + 0xc]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 0x30]
push ebx
push eax
push dword [esp + 0x38]
push dword [esp + 0x2c]
push dword [esp + 0x20]
call dbg.CreateInterfaceInfo
add esp, 0x14
mov dword [ebx + 0x208], 1
mov eax, esi
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406940
movsd xmm0, qword [0x40deb0]
movsd qword [eax + 0xc], xmm0
movups xmm0, xmmword [str.interface]
movups xmmword [eax - 2], xmm0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop dword [eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406970
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x406980
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4072c0
lea eax, [esp + 0x260]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4069b0
movups xmm0, xmmword [str.module]
movups xmmword [eax - 2], xmm0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4069d0
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x4069e0
jmp 0x4072c0
mov ecx, dword [esp + 0x14]
movzx edx, word [edi + 0x30]
push ebx
push edi
push dword [esp + 0x38]
push dword [esp + 0x2c]
push dword [esp + 0x20]
call dbg.CreateInterfaceInfo
add esp, 0x14
mov dword [ebx + 0x208], 1
lea eax, [esp + 0x260]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406a30
movsd xmm0, qword [0x40deb0]
movsd qword [eax + 0xc], xmm0
movups xmm0, xmmword [str.interface]
movups xmmword [eax - 2], xmm0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop dword [eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406a60
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x406a70
jmp 0x4072c0
lea eax, [esp + 0x260]
nop dword [eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406a90
movups xmm0, xmmword [0x40dc1e]
movups xmmword [eax + 0xc], xmm0
movups xmm0, xmmword [str.typedef_union]
movups xmmword [eax - 2], xmm0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop word [eax + eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406ac0
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x406ad0
jmp 0x4072c0
xor edi, edi
nop word [eax + eax]
mov esi, edi
add edi, 2
cmp word [esp + esi + 0x1e0], 0
jne 0x406af0
sar esi, 1
push edi
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, eax
push edi
lea eax, [esp + 0x1e4]
push eax
mov dword [esp + 8], ecx
push ecx
call sym._memcpy
add esp, 0xc
xor ebx, ebx
nop word [eax + eax]
mov eax, ebx
add ebx, 2
cmp word [esp + eax + 0x78], 0
jne 0x406b30
sar eax, 1
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
lea eax, [eax*2 + 2]
push eax
push dword [esp + 4]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov esi, dword [esp + 0xc]
mov dword [esi], eax
mov dword [esp], eax
add eax, edi
add eax, 0xfffffffe
push ebx
lea ecx, [esp + 0x7c]
push ecx
push eax
call sym._memcpy
mov eax, dword [esp + 0x10]
add esp, 0xc
mov dword [esi + 0x204], eax
xor ebx, ebx
mov esi, dword [esp + 0x10]
nop dword [eax + eax]
mov edi, ebx
add ebx, 2
cmp word [esi + edi], 0
jne 0x406b90
sar edi, 1
lea ecx, [edi + eax]
mov dword [esp + 8], ecx
lea eax, [ecx*2 + 2]
push eax
push dword [esp + 4]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edx, eax
mov dword [esp], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 4]
lea eax, [edx + eax*2]
push ebx
mov ebx, ecx
push esi
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp + 4]
add eax, edi
add eax, 3
mov dword [esp + 4], eax
mov edi, dword [esp + 8]
lea eax, [edi*2 + 8]
push eax
push dword [esp + 4]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, 0x5d000a
add ecx, 0x1e0016
mov dword [eax + edi*2], ecx
mov ecx, 0xa
mov dword [eax + edi*2 + 4], ecx
mov dword [ebx], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0x204], eax
lea eax, [ebx + 4]
mov ecx, eax
nop word [eax + eax]
cmp word [ecx], 0
lea ecx, [ecx + 2]
jne 0x406c30
mov word [ecx + 2], 0
mov dword [ecx - 2], 0x20007d
mov ecx, ebx
add ecx, 2
nop dword [eax + eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406c50
xor edx, edx
nop dword [eax]
movzx edi, word [esi + edx]
mov word [ecx + edx], di
add edx, 2
test di, di
jne 0x406c60
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406c70
mov word [eax + 2], 0
mov dword [eax - 2], 0xa003b
lea eax, [esp + 0x25e]
nop dword [eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x406c90
xor ecx, ecx
nop dword [eax]
movzx edx, word [esp + ecx + 0x1e0]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x406ca0
lea eax, [esp + 0x25e]
nop dword [eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x406cc0
xor ecx, ecx
nop dword [eax]
movzx edx, word [esi + ecx]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x406cd0
jmp 0x4072c0
mov ecx, dword [esp + 0x64]
mov edx, ebx
call dbg.AddChildrenData
mov esi, 0xfffffffe
nop word cs:[eax + eax]
cmp word [ebx + esi + 6], 0
lea esi, [esi + 2]
jne 0x406d00
mov edi, esi
sar edi, 1
mov eax, dword [ebx + 0x204]
add eax, edi
lea eax, [eax*2 + 2]
push eax
push dword [ebx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov ebx, dword [ebx + 0x204]
lea eax, [eax + ebx*2]
add esi, 2
push esi
push dword [esp + 0x54]
push eax
call sym._memcpy
add esp, 0xc
add edi, ebx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x204], edi
jmp 0x405e76
lea ecx, [esp + 0x25e]
nop
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x406d60
mov dword [esp + 4], edi
xor edx, edx
movzx esi, word [esp + edx + 0x140]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x406d70
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x25e]
nop
cmp word [edx + 2], 0
lea edx, [edx + 2]
jne 0x406d90
xor esi, esi
nop dword [eax]
movzx edi, word [ecx + esi]
mov word [edx + esi], di
add esi, 2
test di, di
jne 0x406da0
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
movups xmm0, xmmword [0x40de92]
movups xmmword [esp + 0x70a], xmm0
movups xmm0, xmmword [str.noncreatable]
movaps xmmword [esp + 0x700], xmm0
push 6
push eax
mov esi, dword [sym.imp.ucrtbase.dll_realloc]
call esi
add esp, 8
mov dword [eax], 0xa005b
mov word [eax + 4], 0
push 8
push eax
call esi
add esp, 8
mov dword [eax + 4], 0x20
push 0xa
push eax
call esi
add esp, 8
mov dword [eax + 6], 0x20
push 0xc
push eax
call esi
add esp, 8
mov dword [eax + 8], 0x20
push 0xe
push eax
call esi
add esp, 8
mov dword [eax + 0xa], 0x20
push 0x16
push eax
call esi
add esp, 8
mov dword [eax + 0xc], 0x750075
mov dword [eax + 0x10], 0x640069
mov word [eax + 0x14], 0
push 0x18
push eax
call esi
add esp, 8
mov dword [ebx], eax
mov dword [eax + 0x14], 0x28
mov dword [ebx + 0x204], 0xb
push 0x100
lea eax, [esp + 0x464]
push eax
push dword [esp + 0xc]
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov eax, 0xfffffffe
nop
cmp word [esp + eax + 0x462], 0
lea eax, [eax + 2]
jne 0x406e80
lea ecx, [esp + 0x460]
mov word [eax + ecx - 2], 0
xor edi, edi
nop
mov esi, edi
add edi, 2
cmp word [esp + esi + 0x462], 0
jne 0x406ea0
sar esi, 1
mov eax, dword [ebx + 0x204]
add eax, esi
lea eax, [eax*2 + 2]
push eax
push dword [ebx]
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
call eax
add esp, 8
mov ecx, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x204]
lea eax, [ecx + ebx*2]
push edi
lea ecx, [esp + 0x466]
push ecx
push eax
call sym._memcpy
add esp, 0xc
lea edi, [ebx + esi]
add esi, ebx
inc esi
mov ebx, dword [esp + 0xc]
lea eax, [edi*2 + 4]
push eax
push dword [esp + 0xc]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov dword [eax + edi*2], 0x29
mov dword [ebx + 0x204], esi
mov edx, dword [esp]
mov eax, dword [edx]
push 0
push 0
lea ecx, [esp + 0x88]
push ecx
push 0
push 0xffffffffffffffff
push edx
call dword [eax + 0x30]
test eax, eax
mov edi, dword [esp + 4]
js 0x4073d3
push dword [esp + 0x80]
call dword [sym.imp.oleaut32.dll_SysStringLen]
test eax, eax
je 0x4073c5
mov eax, dword [ebx + 0x204]
lea eax, [eax*2 + 6]
push eax
push dword [ebx]
mov edi, dword [sym.imp.ucrtbase.dll_realloc]
call edi
add esp, 8
mov esi, dword [ebx + 0x204]
mov dword [eax + esi*2], 0xa002c
mov word [eax + esi*2 + 4], 0
lea ecx, [esi*2 + 8]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 4], 0x20
lea ecx, [esi*2 + 0xa]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 6], 0x20
lea ecx, [esi*2 + 0xc]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 8], 0x20
lea ecx, [esi*2 + 0xe]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 0xa], 0x20
lea ecx, [esi*2 + 0x22]
push ecx
push eax
call edi
mov edx, edi
add esp, 8
movups xmm0, xmmword [0x40dc80]
movups xmmword [eax + esi*2 + 0xc], xmm0
movsd xmm0, qword [0x40dc8e]
movsd qword [eax + esi*2 + 0x1a], xmm0
lea edi, [esi + 0x12]
lea ecx, [esi*2 + 0x26]
push ecx
push eax
call edx
add esp, 8
mov dword [ebx], eax
mov dword [eax + esi*2 + 0x20], 0x220028
mov word [eax + esi*2 + 0x24], 0
mov ecx, edi
mov dword [ebx + 0x204], edi
xor edi, edi
mov esi, dword [esp + 0x80]
nop
mov ebx, edi
add edi, 2
cmp word [esi + ebx], 0
jne 0x407040
sar ebx, 1
mov dword [esp], ecx
add ecx, ebx
mov dword [esp + 8], ecx
lea ecx, [ecx*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov eax, dword [esp]
lea eax, [ecx + eax*2]
push edi
push esi
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp]
add eax, ebx
add eax, 2
mov dword [esp], eax
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 8]
lea eax, [edi*2 + 6]
push eax
push dword [esp + 0x28]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov dword [eax + edi*2], 0x290022
mov word [eax + edi*2 + 4], 0
mov eax, dword [esp]
mov dword [ebx + 0x204], eax
mov edi, dword [esp + 4]
jmp 0x4073cc
lea eax, [esp + 0x25e]
nop word [eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4070e0
xor ecx, ecx
nop dword [eax]
movzx edx, word [esp + ecx + 0x120]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x4070f0
mov eax, dword [esp + 0x14]
sub esp, 0xc
movsd xmm0, qword [edi + 0x3c]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
lea esi, [esp + 0x26c]
mov ecx, esi
lea edx, [esp + 0x90c]
call dbg.CreateTypeInfo
add esp, 0xc
mov eax, esi
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x407140
mov dword [eax - 2], 0x20
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x25e]
nop dword [eax + eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x407160
xor edx, edx
nop dword [eax]
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x407170
lea eax, [esp + 0x25e]
nop word [eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x407190
xor ecx, ecx
nop dword [eax]
movzx edx, word [esp + ecx + 0x900]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x4071a0
mov ecx, dword [esp + 0x1c]
mov edx, ebx
call dbg.CreateTypedefHeader
mov eax, 0xfffffffe
nop word cs:[eax + eax]
cmp word [esp + eax + 0x122], 0
lea eax, [eax + 2]
jne 0x4071d0
lea ebx, [esp + eax]
add ebx, 0x260
xor edi, edi
nop dword [eax]
mov esi, edi
add edi, 2
cmp word [ebx + esi], 0
jne 0x4071f0
sar esi, 1
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x204]
add eax, esi
lea eax, [eax*2 + 2]
push eax
push dword [ecx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esp + 4], eax
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x204]
mov dword [esp], ecx
lea eax, [eax + ecx*2]
push edi
push ebx
mov ebx, edx
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp]
lea edi, [eax + esi]
add esi, eax
add esi, 2
lea eax, [edi*2 + 6]
push eax
push dword [esp + 8]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov dword [eax + edi*2], 0xa003b
mov word [eax + edi*2 + 4], 0
mov dword [ebx + 0x204], esi
jmp 0x4072c0
xor eax, eax
mov ecx, dword [esp + 0x10]
nop dword [eax]
movzx edx, word [ecx + eax]
mov word [esp + eax + 0x260], dx
add eax, 2
test dx, dx
jne 0x407280
test byte [section..data], 1
je 0x4072c0
mov eax, dword [edi + 0x28]
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.pTypeAttr__typekind___d_not_supported_n
mov dword [esp + 8], str.PopulateTree
call dbg.wine_dbg_log
add esp, 0x14
nop
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov edi, eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 0x2e]
push edi
call dbg.EnumVars
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push edi
call dbg.EnumFuncs
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 0x30]
push edi
call dbg.EnumImplTypes
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
mov ecx, 0x6e0077
xor edx, ecx
mov ecx, dword [eax + 4]
mov esi, 0x6b006e
xor ecx, esi
or ecx, edx
mov edx, dword [eax]
mov esi, 0x550049
xor edx, esi
movzx esi, word [eax + 0x10]
or esi, edx
mov eax, dword [eax + 8]
mov edx, 0x6f006e
xor eax, edx
or esi, eax
or esi, ecx
je 0x40735a
mov ecx, edi
mov edx, ebx
call dbg.AddChildrenData
lea eax, [ebx + 4]
mov dword [esp + 4], eax
mov edi, 0xfffffffe
nop word cs:[eax + eax]
cmp word [ebx + edi + 6], 0
lea edi, [edi + 2]
jne 0x407370
mov esi, ebx
mov ebx, edi
sar ebx, 1
mov eax, dword [esi + 0x204]
add eax, ebx
lea eax, [eax*2 + 2]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [esp + 0xc], ecx
lea eax, [eax + ecx*2]
add edi, 2
push edi
push dword [esp + 8]
push eax
call sym._memcpy
add esp, 0xc
add ebx, dword [esp + 0xc]
jmp 0x405e70
mov esi, dword [esp + 0x80]
push esi
call dword [sym.imp.oleaut32.dll_SysFreeString]
mov ecx, dword [ebx]
mov esi, dword [ebx + 0x204]
add esi, esi
test byte [edi + 0x36], 2
jne 0x4074d2
add esi, 6
push esi
push ecx
mov edi, dword [sym.imp.ucrtbase.dll_realloc]
call edi
add esp, 8
mov esi, dword [ebx + 0x204]
mov dword [eax + esi*2], 0xa002c
mov word [eax + esi*2 + 4], 0
lea ecx, [esi*2 + 8]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 4], 0x20
lea ecx, [esi*2 + 0xa]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 6], 0x20
lea ecx, [esi*2 + 0xc]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 8], 0x20
lea ecx, [esi + 6]
mov dword [esp + 4], ecx
lea ecx, [esi*2 + 0xe]
push ecx
push eax
call edi
add esp, 8
mov dword [eax + esi*2 + 0xa], 0x20
xor ebx, ebx
nop dword [eax]
mov edi, ebx
add ebx, 2
cmp word [esp + edi + 0x700], 0
jne 0x407470
sar edi, 1
add edi, dword [esp + 4]
lea esi, [edi + edi]
lea ecx, [edi*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edx, eax
mov dword [esp], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 4]
lea eax, [edx + eax*2]
push ebx
mov ebx, ecx
lea ecx, [esp + 0x704]
push ecx
push eax
call sym._memcpy
mov ecx, dword [esp + 0xc]
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
add esp, 0xc
mov dword [ebx + 0x204], edi
jmp 0x4074d7
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
add esi, 8
push esi
push ecx
call eax
add esp, 8
mov ebx, dword [ebx + 0x204]
mov ecx, 0xa
mov dword [eax + ebx*2 + 4], ecx
mov ecx, 0x5d000a
mov dword [eax + ebx*2], ecx
xor esi, esi
nop word [eax + eax]
mov ecx, esi
add esi, 2
cmp word [esp + ecx + 0x140], 0
jne 0x407500
sar ecx, 1
lea edi, [ecx + ebx]
add edi, 3
lea ecx, [edi*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov dword [esp], eax
lea eax, [eax + ebx*2]
add eax, 6
push esi
lea ecx, [esp + 0x144]
push ecx
push eax
call sym._memcpy
add esp, 0xc
mov eax, edi
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x204], edi
xor edi, edi
mov ebx, dword [esp + 0x10]
nop dword [eax]
mov esi, edi
add edi, 2
cmp word [ebx + esi], 0
jne 0x407560
sar esi, 1
mov dword [esp + 4], eax
add eax, esi
mov dword [esp + 8], eax
lea eax, [eax*2 + 2]
push eax
push dword [esp + 4]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edx, eax
mov dword [esp], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 4]
lea eax, [edx + eax*2]
push edi
push ebx
mov ebx, ecx
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp + 4]
add esi, eax
add esi, 3
mov edi, dword [esp + 8]
lea eax, [edi*2 + 8]
push eax
push dword [esp + 4]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, 0x5d000a
add ecx, 0x1e0016
mov dword [eax + edi*2], ecx
mov ecx, 0xa
mov dword [eax + edi*2 + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 0x204], esi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x30]
movsd xmm0, qword [0x40deb0]
movsd qword [esp + 0x70e], xmm0
movups xmm0, xmmword [str.interface]
movaps xmmword [esp + 0x700], xmm0
movups xmm0, xmmword [0x40dec6]
movups xmmword [esp + 0x46e], xmm0
movups xmm0, xmmword [str.dispinterface]
movaps xmmword [esp + 0x460], xmm0
movups xmm0, xmmword [str.default]
movaps xmmword [esp + 0x110], xmm0
mov word [esp + 0x4c], 0
mov dword [esp + 0x48], 0x650063
mov dword [esp + 0x44], 0x720075
mov dword [esp + 0x40], 0x6f0073
movsd xmm0, qword [0x40df02]
movsd qword [esp + 0x8e], xmm0
movups xmm0, xmmword [str.restricted]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp], eax
test eax, eax
lea esi, [esp + 0x60]
je 0x407bf1
xor ecx, ecx
mov dword [esp + 0x24], edi
jmp 0x407753
sar edi, 1
lea edx, [edi + ecx]
mov dword [esp + 0x18], edx
mov dword [esp + 8], ecx
lea ecx, [edx*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edx, eax
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 8]
lea eax, [edx + eax*2]
push ebx
mov ebx, ecx
push esi
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [esp + 8]
add eax, edi
add eax, 2
mov dword [esp + 8], eax
mov edi, dword [esp + 0x18]
lea eax, [edi*2 + 6]
push eax
push dword [esp + 0x38]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov dword [eax + edi*2], 0xa003b
mov word [eax + edi*2 + 4], 0
mov eax, dword [esp + 8]
mov dword [ebx + 0x204], eax
push esi
call dword [sym.imp.oleaut32.dll_SysFreeString]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push dword [esp + 0x5c]
push eax
call dword [ecx + 0x4c]
lea esi, [esp + 0x60]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
push edx
call dword [ecx + 8]
mov ecx, dword [esp + 4]
inc ecx
cmp ecx, dword [esp]
je 0x407bf1
mov eax, dword [edi]
push esi
mov dword [esp + 8], ecx
push ecx
push edi
call dword [eax + 0x20]
test eax, eax
js 0x407745
mov eax, dword [edi]
lea ecx, [esp + 0x28]
push ecx
push dword [esp + 0x64]
push edi
call dword [eax + 0x38]
test eax, eax
js 0x407745
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push 0
push 0
push 0
lea edx, [esp + 0x80]
push edx
push 0xffffffffffffffff
push eax
call dword [ecx + 0x30]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
test eax, eax
js 0x407741
lea eax, [esp + 0x5c]
push eax
push edx
call dword [ecx + 0xc]
test eax, eax
js 0x40773b
mov eax, dword [ebx + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [ebx]
mov edi, ebx
mov ebx, dword [sym.imp.ucrtbase.dll_realloc]
call ebx
add esp, 8
mov esi, dword [edi + 0x204]
mov dword [eax + esi*2], 0x20
lea ecx, [esi*2 + 6]
push ecx
push eax
call ebx
add esp, 8
mov dword [eax + esi*2 + 2], 0x20
lea ecx, [esi*2 + 8]
push ecx
push eax
call ebx
add esp, 8
mov dword [eax + esi*2 + 4], 0x20
lea ecx, [esi + 4]
mov dword [esp + 8], ecx
lea ecx, [esi*2 + 0xa]
push ecx
push eax
call ebx
add esp, 8
mov dword [edi], eax
mov dword [eax + esi*2 + 6], 0x20
mov eax, dword [esp + 8]
mov dword [edi + 0x204], eax
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
lea ecx, [esp + 0x3c]
push ecx
push dword [esp + 8]
push edx
call dword [eax + 0x24]
mov eax, dword [esp + 0x3c]
test al, 1
jne 0x407885
test al, 2
jne 0x4079bb
test al, 4
mov ebx, dword [esp + 0xc]
je 0x407aa8
mov eax, dword [ebx + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [ebx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, dword [ebx + 0x204]
mov dword [eax + ecx*2], 0x5b
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x407946
mov eax, dword [edi + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [edi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov edx, dword [edi + 0x204]
mov dword [eax + edx*2], 0x5b
xor ebx, ebx
nop dword [eax]
mov ecx, ebx
add ebx, 2
cmp word [esp + ecx + 0x110], 0
jne 0x4078b0
sar ecx, 1
lea esi, [ecx + edx]
inc esi
lea ecx, [esi + esi + 2]
push ecx
push eax
mov eax, dword [sym.imp.ucrtbase.dll_realloc]
mov dword [esp + 0x10], edx
call eax
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 8]
lea eax, [edi + eax*2 + 2]
push ebx
mov ebx, ecx
lea ecx, [esp + 0x114]
push ecx
push eax
call sym._memcpy
add esp, 0xc
mov dword [ebx + 0x204], esi
mov eax, dword [esp + 0x3c]
test al, 2
jne 0x4079ec
mov dword [esp + 8], edi
test al, 4
je 0x407a73
lea eax, [esi + 2]
mov dword [esp + 0x18], eax
lea eax, [esi*2 + 6]
push eax
push dword [esp + 0xc]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [eax + esi*2], 0x20002c
mov word [eax + esi*2 + 4], 0
xor edi, edi
nop dword [eax + eax]
mov ebx, edi
add edi, 2
cmp word [esp + ebx + 0x80], 0
jne 0x407950
sar ebx, 1
add ebx, dword [esp + 0x18]
lea esi, [ebx + ebx]
lea ecx, [ebx*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
lea eax, [ecx + eax*2]
push edi
lea ecx, [esp + 0x84]
push ecx
push eax
call sym._memcpy
mov ecx, dword [sym.imp.ucrtbase.dll_realloc]
mov eax, dword [esp + 0x14]
add esp, 0xc
mov edx, dword [esp + 0xc]
mov dword [edx + 0x204], ebx
mov ebx, edx
jmp 0x407a7f
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [ebx]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov ecx, dword [ebx + 0x204]
mov dword [eax + ecx*2], 0x5b
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x407a13
lea eax, [esi + 2]
mov dword [esp + 0x18], eax
lea eax, [esi*2 + 6]
push eax
push edi
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [eax + esi*2], 0x20002c
mov word [eax + esi*2 + 4], 0
xor edi, edi
nop word cs:[eax + eax]
mov esi, edi
add edi, 2
cmp word [esp + esi + 0x40], 0
jne 0x407a20
sar esi, 1
add esi, dword [esp + 0x18]
lea ecx, [esi*2 + 2]
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [ebx], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x18]
lea eax, [eax + ecx*2]
push edi
lea ecx, [esp + 0x44]
push ecx
push eax
call sym._memcpy
add esp, 0xc
mov dword [ebx + 0x204], esi
mov eax, dword [esp + 0x3c]
test al, 4
jne 0x40791c
add esi, esi
mov ecx, dword [sym.imp.ucrtbase.dll_realloc]
mov eax, dword [esp + 8]
add esi, 6
push esi
push eax
call ecx
add esp, 8
mov dword [ebx], eax
mov ecx, dword [ebx + 0x204]
mov word [eax + ecx*2 + 4], 0
mov dword [eax + ecx*2], 0x20005d
add ecx, 2
mov dword [ebx + 0x204], ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + 0x28]
cmp eax, 3
je 0x407b20
test byte [ecx + 0x36], 0x40
jne 0x407b20
cmp eax, 4
jne 0x407be1
xor ebx, ebx
nop word cs:[eax + eax]
mov esi, ebx
add ebx, 2
cmp word [esp + esi + 0x460], 0
jne 0x407ad0
sar esi, 1
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x204]
add eax, esi
lea eax, [eax*2 + 2]
push eax
push dword [edi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esp + 8], eax
mov dword [edi], eax
mov ecx, dword [edi + 0x204]
mov dword [esp + 0x18], ecx
lea edx, [eax + ecx*2]
push ebx
mov ebx, edi
lea ecx, [esp + 0x464]
jmp 0x407b7e
xor ebx, ebx
nop word cs:[eax + eax]
mov esi, ebx
add ebx, 2
cmp word [esp + esi + 0x700], 0
jne 0x407b30
sar esi, 1
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x204]
add eax, esi
lea eax, [eax*2 + 2]
push eax
push dword [edi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esp + 8], eax
mov dword [edi], eax
mov ecx, dword [edi + 0x204]
mov dword [esp + 0x18], ecx
lea edx, [eax + ecx*2]
push ebx
mov ebx, edi
lea ecx, [esp + 0x704]
push ecx
push edx
call sym._memcpy
mov edx, dword [esp + 0x14]
mov ecx, dword [sym.imp.ucrtbase.dll_realloc]
add esp, 0xc
add esi, dword [esp + 0x18]
mov dword [edi + 0x204], esi
lea eax, [esi*2 + 4]
push eax
push edx
call ecx
add esp, 8
mov dword [ebx], eax
mov ecx, dword [ebx + 0x204]
mov dword [eax + ecx*2], 0x20
inc ecx
mov dword [ebx + 0x204], ecx
xor ebx, ebx
mov esi, dword [esp + 0x74]
nop word cs:[eax + eax]
mov edi, ebx
add ebx, 2
cmp word [esi + edi], 0
jne 0x407bd0
jmp 0x40769f
mov edx, dword [ebx]
mov esi, dword [ebx + 0x204]
mov ecx, dword [sym.imp.ucrtbase.dll_realloc]
jmp 0x407b9c
mov eax, ebx
add eax, 4
mov dword [esp + 4], eax
nop word [eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x407c00
mov ecx, 0x5d000a
add ecx, 0xffde0073
mov edx, 0xa
adc edx, 0xffffffff
mov dword [eax - 2], ecx
mov dword [eax + 2], edx
lea eax, [esp + 0xcc]
push eax
push 0
push 0x1132
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
mov edi, 0xfffffffe
nop word cs:[eax + eax]
cmp word [ebx + edi + 6], 0
lea edi, [edi + 2]
jne 0x407c50
mov esi, ebx
mov ebx, edi
sar ebx, 1
mov eax, dword [esi + 0x204]
add eax, ebx
lea eax, [eax*2 + 2]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [esp], ecx
lea eax, [eax + ecx*2]
add edi, 2
push edi
push dword [esp + 8]
push eax
call sym._memcpy
add esp, 0xc
add ebx, dword [esp]
jmp 0x405e70
mov eax, dword [esp + 0xcc]
mov ebx, dword [sym.imp.user32.dll_SendMessageW]
push eax
push 2
push 0x1102
push dword [0x419690]
call ebx
xorps xmm0, xmm0
movups xmmword [esp + 0x180], xmm0
movups xmmword [esp + 0x190], xmm0
mov dword [esp + 0x178], 4
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x17c], eax
lea eax, [esp + 0x178]
push eax
push 0
push 0x113e
push dword [0x419690]
call ebx
mov eax, dword [esp + 0x17c]
mov esi, dword [esp + 0x19c]
movups xmm0, xmmword [0x40e096]
movups xmmword [esp + 0x76e], xmm0
movups xmm0, xmmword [0x40e088]
movaps xmmword [esp + 0x760], xmm0
movups xmm0, xmmword [0x40e078]
movaps xmmword [esp + 0x750], xmm0
movups xmm0, xmmword [0x40e068]
movaps xmmword [esp + 0x740], xmm0
movups xmm0, xmmword [0x40e058]
movaps xmmword [esp + 0x730], xmm0
movups xmm0, xmmword [0x40e048]
movaps xmmword [esp + 0x720], xmm0
movups xmm0, xmmword [0x40e038]
movaps xmmword [esp + 0x710], xmm0
movups xmm0, xmmword [str.___TLib_:_n___Forward_declare_all_types_defined_in_this_typelib]
movaps xmmword [esp + 0x700], xmm0
push eax
push 4
push 0x110a
push dword [0x419690]
call ebx
mov edi, eax
lea edx, [esp + 0x700]
mov ecx, esi
call dbg.AddToTLDataStrWithTabsW
mov eax, dword [esi + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [eax + ecx*2], 0xa
inc ecx
mov dword [esi + 0x204], ecx
xorps xmm0, xmm0
movups xmmword [esp + 0x88], xmm0
movups xmmword [esp + 0x98], xmm0
mov dword [esp + 0x80], 5
mov dword [esp + 0x94], 0x100
lea eax, [esp + 0x460]
mov dword [esp + 0x90], eax
test edi, edi
jne 0x407e86
mov esi, dword [esp + 0x19c]
push dword [esp + 0x17c]
push 4
push 0x110a
push dword [0x419690]
call dword [sym.imp.user32.dll_SendMessageW]
xorps xmm0, xmm0
movups xmmword [esp + 0x468], xmm0
movups xmmword [esp + 0x478], xmm0
mov dword [esp + 0x460], 4
test eax, eax
je 0x407fb8
mov edi, eax
jmp 0x407f46
push edi
push 1
push 0x110a
push dword [0x419690]
call ebx
mov edi, eax
test eax, eax
je 0x407e13
mov dword [esp + 0x84], edi
lea eax, [esp + 0x80]
push eax
push 0
push 0x113e
push dword [0x419690]
call ebx
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0x208], 0
je 0x407e70
cmp dword [eax + 0x20c], 0
jne 0x407e70
lea eax, [esp + 0x460]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x407ed0
mov dword [eax - 2], 0x3b
mov ecx, esi
lea edx, [esp + 0x460]
call dbg.AddToTLDataStrWithTabsW
mov eax, dword [esi + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [eax + ecx*2], 0xa
inc ecx
mov dword [esi + 0x204], ecx
jmp 0x407e70
push edi
push 1
push 0x110a
push dword [0x419690]
call ebx
mov edi, eax
test eax, eax
je 0x407fb8
mov dword [esp + 0x464], edi
lea eax, [esp + 0x460]
push eax
push 0
push 0x113e
push dword [0x419690]
call ebx
mov eax, dword [esp + 0x484]
cmp dword [eax + 0x20c], 0
jne 0x407f30
mov eax, dword [esi + 0x204]
lea eax, [eax*2 + 4]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [eax + ecx*2], 0xa
inc ecx
mov dword [esi + 0x204], ecx
mov eax, dword [esp + 0x484]
mov edx, dword [eax]
mov ecx, esi
call dbg.AddToTLDataStrWithTabsW
jmp 0x407f30
mov esi, dword [esp + 0x19c]
lea eax, [esi + 4]
mov dword [esp + 4], eax
mov ebx, 0xfffffffe
nop dword [eax + eax]
cmp word [esi + ebx + 6], 0
lea ebx, [ebx + 2]
jne 0x407fd0
mov edi, ebx
sar edi, 1
mov eax, dword [esi + 0x204]
add eax, edi
lea eax, [eax*2 + 2]
push eax
push dword [esi]
call dword [sym.imp.ucrtbase.dll_realloc]
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi + 0x204]
mov dword [esp + 0xc], ecx
lea eax, [eax + ecx*2]
add ebx, 2
push ebx
push dword [esp + 8]
push eax
call sym._memcpy
add esp, 0xc
add edi, dword [esp + 0xc]
mov dword [esi + 0x204], edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x419690]
call dword [sym.imp.user32.dll_SetFocus]
jmp 0x408078
push dword [0x419698]
call dword [sym.imp.user32.dll_IsWindowVisible]
xor ebx, ebx
test eax, eax
sete bl
lea eax, [ebx + ebx*4]
push eax
push dword [0x419698]
call dword [sym.imp.user32.dll_ShowWindow]
push edi
call dword [sym.imp.user32.dll_GetMenu]
shl ebx, 3
push ebx
push 0x7b
push eax
call dword [sym.imp.user32.dll_CheckMenuItem]
call dbg.TypeLibResizeChild
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
cmp cx, 0x2e
jne 0x4080b9
mov word [eax], 0
xor ecx, ecx
nop word cs:[eax + eax]
cmp eax, esi
jbe 0x4080b9
cmp cx, 0x2f
je 0x4080b9
movzx ecx, word [eax - 2]
add eax, 0xfffffffe
cmp cx, 0x5c
jne 0x4080a0
jmp 0x4080bf
cmp cx, 0x2f
jne 0x4080c2
add eax, 2
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, word [eax + ecx]
mov word [esp + ecx + 0x700], dx
add ecx, 2
test dx, dx
jne 0x4080d0
push esi
push 0x100
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov dword [esp + 0x900], 0x58
mov ebx, dword [0x40d144]
movsd xmm0, qword [ebx + 0x18]
movsd qword [esp + 0x904], xmm0
mov dword [esp + 0x90c], 0x40e0ae
lea edi, [esp + 0x700]
mov dword [esp + 0x91c], edi
mov dword [esp + 0x920], 0x100
mov dword [esp + 0x92c], esi
mov dword [esp + 0x934], 0x806
mov dword [esp + 0x93c], 0x40e0a6
lea eax, [esp + 0x900]
push eax
call dword [sym.imp.comdlg32.dll_GetSaveFileNameW]
test eax, eax
je 0x408078
mov esi, dword [sym.imp.user32.dll_SendMessageW]
push 0xffff0000
push 4
push 0x110a
push dword [0x419690]
call esi
xorps xmm0, xmm0
movaps xmmword [esp + 0x660], xmm0
movaps xmmword [esp + 0x670], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x680], xmm0
mov dword [esp + 0x664], eax
lea eax, [esp + 0x660]
push eax
push 0
push 0x113e
push dword [0x419690]
call esi
mov esi, dword [esp + 0x684]
sub esp, 0x1c
movaps xmm0, xmmword [0x40d7d0]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call dword [sym.imp.kernel32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x4082e5
mov edi, eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x204]
sub esp, 0x20
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0xfde9
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov ebx, eax
push eax
call dword [sym.imp.ucrtbase.dll_malloc]
add esp, 4
push 0
push 0
push ebx
push eax
push dword [esi + 0x204]
push dword [esi]
mov esi, eax
push 0
push 0xfde9
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
lea eax, [esp + 0xcc]
push 0
push eax
push ebx
push esi
push edi
call dword [sym.imp.kernel32.dll_WriteFile]
test eax, eax
jne 0x4082cf
mov eax, dword fs:[0x18]
mov ebx, dword [eax + 0x34]
lea eax, [esp + 0x460]
push 0x100
push eax
push 6
mov eax, dword [0x40d144]
push dword [eax + 0x1c]
call dword [sym.imp.user32.dll_LoadStringW]
lea eax, [esp + 0x80]
push 0
push 0
push eax
push 0
push ebx
push 0
push 0x1100
call dword [sym.imp.kernel32.dll_FormatMessageW]
push 0x10
lea eax, [esp + 0x464]
push eax
push dword [esp + 0x88]
push 0
call dword [sym.imp.user32.dll_MessageBoxW]
push dword [esp + 0x80]
call dword [sym.imp.kernel32.dll_LocalFree]
push esi
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x408078
mov eax, dword fs:[0x18]
mov edi, dword [eax + 0x34]
lea esi, [esp + 0x460]
push 0x100
push esi
push 6
push dword [ebx + 0x1c]
call dword [sym.imp.user32.dll_LoadStringW]
lea eax, [esp + 0x80]
push 0
push 0
push eax
push 0
push edi
push 0
push 0x1100
call dword [sym.imp.kernel32.dll_FormatMessageW]
push 0x10
push esi
push dword [esp + 0x88]
push 0
call dword [sym.imp.user32.dll_MessageBoxW]
push dword [esp + 0x80]
call dword [sym.imp.kernel32.dll_LocalFree]
jmp 0x408078