Function at 0x407c50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x51dcc0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x294
push ebx
push ebp
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x60], ebx
lea eax, [esp + 0x5f]
lea ecx, [esp + 0x13]
push eax
xor edi, edi
push ecx
lea ecx, [esp + 0xa4]
mov dword [esp + 0x2b4], edi
call fcn.0040c030
mov ebp, dword [esp + 0x2b4]
lea ecx, [esp + 0x9c]
push ebp
mov byte [esp + 0x2b0], 1
call fcn.004a4300
mov word [esp + 0xd4], di
mov edx, dword [ebp]
lea eax, [esp + 0xd4]
push eax
push str.running
push ebp
mov byte [esp + 0x2b8], 2
call dword [edx + 0xb0]
test eax, eax
jl 0x407cf8
push 8
lea ecx, [esp + 0xd8]
push edi
lea edx, [esp + 0xdc]
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
test eax, eax
jge 0x407d45
lea ecx, [esp + 0xd4]
call fcn.00416b90
push 0x56f018
mov word [esp + 0xd8], 8
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp eax, edi
mov dword [esp + 0xdc], eax
jne 0x407d4c
mov ecx, 0x56f018
test ecx, ecx
je 0x407d4c
mov eax, 0x8007000e
mov word [esp + 0xd4], 0xa
mov dword [esp + 0xdc], eax
jmp 0x407d4c
mov eax, dword [esp + 0xdc]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
je 0x407e42
mov dl, byte [esp + 0x13]
push edi
lea ecx, [esp + 0xe8]
mov byte [esp + 0xe8], dl
call fcn.0040d630
mov ecx, dword [esp + 0xdc]
lea eax, [esp + 0xe4]
push 1
push eax
push ecx
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2b8], 3
call fcn.004a5ee0
mov eax, dword [esp + 0xe8]
mov esi, 0x535104
cmp eax, edi
je 0x407dae
mov esi, eax
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, edi
mov byte [esp + 0x2ac], 4
je 0x407dd2
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x407dd4
xor eax, eax
mov ecx, eax
cmp eax, edi
mov byte [esp + 0x2ac], 3
mov dword [esp + 0x28], ecx
jne 0x407df4
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x28]
cmp ecx, edi
mov byte [esp + 0x2ac], 5
je 0x407e09
call fcn.0040d5d0
mov edx, eax
jmp 0x407e0b
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebx + 0x64]
call fcn.0040fa00
lea ecx, [esp + 0x28]
call fcn.0040d4b0
push 1
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2b0], 2
call fcn.0040d630
jmp 0x407e5f
mov edi, 0x56f01c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x56f01c
lea ecx, [ebx + 0x64]
call fcn.0040fa00
mov esi, dword [esp + 0x60]
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
lea ebx, [esi + 0x74]
push eax
push ecx
mov ecx, ebx
call fcn.0040e2d0
lea ecx, [esi + 0x84]
call fcn.0040e630
xor edi, edi
mov dword [esp + 0x1c], edi
mov edx, dword [ebp]
lea eax, [esp + 0x1c]
push eax
push str.fileassociation
push ebp
mov byte [esp + 0x2b8], 6
call dword [edx + 0x90]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
mov eax, dword [esp + 0x1c]
jl 0x40843f
cmp eax, edi
je 0x40843f
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x407eea
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x2ac], 2
cmp eax, edi
je 0x408451
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x408451
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], edi
cmp eax, edi
jle 0x408427
jmp 0x407f02
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edi, dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [eax]
push ecx
push eax
mov byte [esp + 0x2b8], 7
call dword [edx + 0x1c]
test eax, eax
jge 0x407f47
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 6
cmp eax, ebp
je 0x408405
jmp 0x4083ff
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x18]
push 0x560248
lea ecx, [esp + 0x18]
push eax
push ecx
mov byte [esp + 0x2b8], 8
call fcn.00416d10
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x407f88
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 6
cmp eax, ebp
je 0x408405
jmp 0x4083ff
mov word [esp + 0x2c], bp
mov word [esp + 0x64], bp
mov word [esp + 0x4c], bp
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
push str.rate
push eax
mov byte [esp + 0x2b8], 0xb
call dword [ecx + 0xb0]
test eax, eax
jl 0x408019
push 3
lea eax, [esp + 0x50]
push ebp
lea ecx, [esp + 0x54]
push eax
push ecx
call edi
test eax, eax
jl 0x408019
cmp dword [esp + 0x54], ebp
jne 0x408019
lea edx, [esp + 0x4c]
push edx
call esi
lea eax, [esp + 0x64]
push eax
call esi
lea ecx, [esp + 0x2c]
push ecx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 7
cmp eax, ebp
je 0x407ffa
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 6
cmp eax, ebp
je 0x408405
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x408405
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
push ecx
push 0x560664
mov edx, dword [eax]
push eax
call dword [edx + 0xb0]
test eax, eax
jl 0x4083c4
push 8
lea edx, [esp + 0x30]
push ebp
lea eax, [esp + 0x34]
push edx
push eax
call edi
test eax, eax
jl 0x4083c4
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x64]
push edx
push str.progid
mov ecx, dword [eax]
push eax
call dword [ecx + 0xb0]
test eax, eax
jl 0x4083c4
push 8
lea eax, [esp + 0x68]
push ebp
lea ecx, [esp + 0x6c]
push eax
push ecx
call edi
test eax, eax
jl 0x4083c4
mov edx, dword [esp + 0x34]
mov edi, dword [sym.imp.MSVCRT.dll_wcslen]
push edx
call edi
add esp, 4
test eax, eax
je 0x408387
mov eax, dword [esp + 0x6c]
push eax
call edi
add esp, 4
test eax, eax
je 0x408387
mov esi, dword [esp + 0x34]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebp
mov byte [esp + 0x2ac], 0xc
je 0x4080d7
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x4080d9
xor eax, eax
mov ecx, eax
cmp eax, ebp
mov byte [esp + 0x2ac], 0xb
mov dword [esp + 0x28], ecx
jne 0x4080f9
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x28]
cmp ecx, ebp
mov byte [esp + 0x2ac], 0xd
je 0x40810e
call fcn.0040d5d0
mov esi, eax
jmp 0x408110
xor esi, esi
mov cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x78], cl
lea ecx, [esp + 0x78]
call fcn.0040d460
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x7c]
call fcn.0040fa00
lea ecx, [esp + 0x28]
mov byte [esp + 0x2ac], 0xf
call fcn.0040d4b0
mov eax, dword [esp + 0x78]
cmp eax, ebp
jne 0x408157
mov eax, 0x535108
push eax
call dword [sym.imp.MSVCRT.dll__strlwr]
add esp, 4
lea ecx, [esp + 0x184]
call fcn.0040cc70
lea edx, [esp + 0x74]
push eax
push edx
lea ecx, [esp + 0x134]
mov byte [esp + 0x2b4], 0x10
call fcn.0040e6d0
mov ecx, dword [esp + 0x60]
push eax
lea eax, [esp + 0x88]
add ecx, 0x84
push eax
mov byte [esp + 0x2b4], 0x11
call fcn.0040e490
mov ebp, dword [eax]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2ac], 0x10
call fcn.0040ccb0
lea ecx, [esp + 0x184]
mov byte [esp + 0x2ac], 0xf
call fcn.0040cbd0
mov esi, dword [esp + 0x34]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x2ac], 0x12
je 0x4081f9
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x4081fb
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0xf
test eax, eax
mov dword [esp + 0x3c], ecx
jne 0x40821b
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov byte [esp + 0x2ac], 0x13
je 0x408230
call fcn.0040d5d0
mov edx, eax
jmp 0x408232
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x20]
call fcn.0040fa00
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2ac], 0xf
call fcn.0040d4b0
mov esi, dword [esp + 0x6c]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x2ac], 0x14
je 0x408281
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x408283
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0xf
test eax, eax
mov dword [esp + 0x40], ecx
jne 0x4082a3
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov byte [esp + 0x2ac], 0x15
je 0x4082b8
call fcn.0040d5d0
mov edx, eax
jmp 0x4082ba
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp + 0x30]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, esi
call fcn.0040fa00
lea ecx, [esp + 0x40]
mov byte [esp + 0x2ac], 0xf
call fcn.0040d4b0
mov edx, dword [esi + 4]
test edx, edx
jne 0x4082ef
mov edx, 0x535108
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp + 0x40]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, esi
call fcn.0040fa00
mov eax, dword [esi + 4]
test eax, eax
jne 0x408313
mov eax, 0x535108
push eax
call dword [sym.imp.MSVCRT.dll__strlwr]
mov eax, dword [ebx + 8]
add esp, 4
lea edx, [esp + 0x74]
mov ecx, ebx
push edx
push eax
call fcn.0040e140
push 1
lea ecx, [esp + 0x78]
mov byte [esp + 0x2b0], 0xb
call fcn.0040d460
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x64]
push ecx
call esi
lea edx, [esp + 0x2c]
push edx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 7
test eax, eax
je 0x408371
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 6
test eax, eax
je 0x408405
jmp 0x4083ff
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x64]
push ecx
call esi
lea edx, [esp + 0x2c]
push edx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 7
cmp eax, ebp
je 0x4083b2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 6
cmp eax, ebp
je 0x408405
jmp 0x4083ff
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x64]
push ecx
call esi
lea edx, [esp + 0x2c]
push edx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 7
cmp eax, ebp
je 0x4083ef
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 6
cmp eax, ebp
je 0x408405
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x407efc
mov ebp, dword [esp + 0x2b4]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x2ac], 2
test eax, eax
je 0x408451
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x408451
cmp eax, edi
mov byte [esp + 0x2ac], 2
je 0x408451
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x60]
lea ecx, [eax + 0x98]
mov dword [esp + 0x20], ecx
call fcn.0040e940
xor edi, edi
mov dword [esp + 0x1c], edi
mov ecx, dword [ebp]
lea edx, [esp + 0x1c]
push edx
push str.urlassociation
push ebp
mov byte [esp + 0x2b8], 0x16
call dword [ecx + 0x90]
test eax, eax
mov eax, dword [esp + 0x1c]
jl 0x408a23
cmp eax, edi
je 0x408a23
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x4084c8
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x2ac], 2
cmp eax, edi
je 0x408a35
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x408a35
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], edi
cmp eax, edi
jle 0x408a0b
mov edi, dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov ecx, dword [esp + 0x24]
xor ebp, ebp
jmp 0x4084f4
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edi, dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
xor ebp, ebp
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x1c]
lea ebx, [esp + 0x14]
push ebx
push ecx
mov edx, dword [eax]
push eax
mov byte [esp + 0x2b8], 0x17
call dword [edx + 0x1c]
test eax, eax
jge 0x408533
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x16
cmp eax, ebp
je 0x4089e9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4089e9
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0x14]
push 0x560248
lea eax, [esp + 0x1c]
push edx
push eax
mov byte [esp + 0x2b8], 0x18
call fcn.00416d10
mov eax, dword [esp + 0x18]
cmp eax, ebp
jne 0x40857a
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x16
cmp eax, ebp
je 0x4089e9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4089e9
mov word [esp + 0x2c], bp
mov word [esp + 0x64], bp
mov word [esp + 0x4c], bp
mov edx, dword [eax]
lea ecx, [esp + 0x4c]
push ecx
push str.rate
push eax
mov byte [esp + 0x2b8], 0x1b
call dword [edx + 0xb0]
test eax, eax
jl 0x408605
push 3
lea edx, [esp + 0x50]
push ebp
lea eax, [esp + 0x54]
push edx
push eax
call edi
test eax, eax
jl 0x408605
cmp dword [esp + 0x54], ebp
jne 0x408605
lea ecx, [esp + 0x4c]
push ecx
call esi
lea edx, [esp + 0x64]
push edx
call esi
lea eax, [esp + 0x2c]
push eax
call esi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x17
cmp eax, ebp
je 0x4085ec
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x16
cmp eax, ebp
je 0x4089e9
jmp 0x4089e3
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x2c]
push edx
push 0x56062c
mov ecx, dword [eax]
push eax
call dword [ecx + 0xb0]
test eax, eax
jl 0x4089a8
push 8
lea eax, [esp + 0x30]
push ebp
lea ecx, [esp + 0x34]
push eax
push ecx
call edi
test eax, eax
jl 0x4089a8
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x64]
push ecx
push str.progid
mov edx, dword [eax]
push eax
call dword [edx + 0xb0]
test eax, eax
jl 0x4089a8
push 8
lea edx, [esp + 0x68]
push ebp
lea eax, [esp + 0x6c]
push edx
push eax
call edi
test eax, eax
jl 0x4089a8
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
jne 0x4086cd
lea edx, [esp + 0x4c]
push edx
call esi
lea eax, [esp + 0x64]
push eax
call esi
lea ecx, [esp + 0x2c]
push ecx
call esi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x17
cmp eax, ebp
je 0x4086ae
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x16
cmp eax, ebp
je 0x4089e9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4089e9
mov esi, dword [esp + 0x34]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x90], eax
cmp eax, ebp
mov byte [esp + 0x2ac], 0x1c
je 0x4086f8
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x4086fa
xor eax, eax
mov ecx, eax
cmp eax, ebp
mov byte [esp + 0x2ac], 0x1b
mov dword [esp + 0x44], ecx
jne 0x40871a
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x44]
cmp ecx, ebp
mov byte [esp + 0x2ac], 0x1d
je 0x40872f
call fcn.0040d5d0
mov esi, eax
jmp 0x408731
xor esi, esi
mov dl, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x78]
mov byte [esp + 0x78], dl
call fcn.0040d460
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x7c]
call fcn.0040fa00
lea ecx, [esp + 0x44]
mov byte [esp + 0x2ac], 0x1f
call fcn.0040d4b0
mov eax, dword [esp + 0x78]
cmp eax, ebp
jne 0x408778
mov eax, 0x535108
mov ebx, dword [sym.imp.MSVCRT.dll__strlwr]
push eax
call ebx
add esp, 4
lea ecx, [esp + 0x184]
call fcn.0040cc70
push eax
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x134]
mov byte [esp + 0x2b4], 0x20
call fcn.0040e9e0
lea ecx, [esp + 0x84]
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x2b4], 0x21
call fcn.0040e850
mov ebp, dword [eax]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2ac], 0x20
call fcn.0040ccb0
lea ecx, [esp + 0x184]
mov byte [esp + 0x2ac], 0x1f
call fcn.0040cbd0
mov esi, dword [esp + 0x34]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov byte [esp + 0x2ac], 0x22
je 0x408819
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x40881b
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x1f
test eax, eax
mov dword [esp + 0x40], ecx
jne 0x40883b
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov byte [esp + 0x2ac], 0x23
je 0x408850
call fcn.0040d5d0
mov edx, eax
jmp 0x408852
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x20]
call fcn.0040fa00
lea ecx, [esp + 0x40]
mov byte [esp + 0x2ac], 0x1f
call fcn.0040d4b0
mov edx, dword [esp + 0x6c]
push edx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
jbe 0x408952
mov esi, dword [esp + 0x6c]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov byte [esp + 0x2ac], 0x24
je 0x4088ba
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x4088bc
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x1f
test eax, eax
mov dword [esp + 0x3c], ecx
jne 0x4088dc
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov byte [esp + 0x2ac], 0x25
je 0x4088f1
call fcn.0040d5d0
mov edx, eax
jmp 0x4088f3
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp + 0x30]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, esi
call fcn.0040fa00
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2ac], 0x1f
call fcn.0040d4b0
mov edx, dword [esi + 4]
test edx, edx
jne 0x408928
mov edx, 0x535108
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp + 0x40]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, esi
call fcn.0040fa00
mov esi, dword [esi + 4]
test esi, esi
jne 0x40894c
mov esi, 0x535108
push esi
call ebx
add esp, 4
push 1
lea ecx, [esp + 0x78]
mov byte [esp + 0x2b0], 0x1b
call fcn.0040d460
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x64]
push ecx
call esi
lea edx, [esp + 0x2c]
push edx
call esi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x17
test eax, eax
je 0x408996
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x16
test eax, eax
je 0x4089e9
jmp 0x4089e3
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x64]
push ecx
call esi
lea edx, [esp + 0x2c]
push edx
call esi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x17
cmp eax, ebp
je 0x4089d3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x16
cmp eax, ebp
je 0x4089e9
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
jl 0x4084e6
mov ebp, dword [esp + 0x2b4]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x2ac], 2
test eax, eax
je 0x408a35
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x408a35
cmp eax, edi
mov byte [esp + 0x2ac], 2
je 0x408a35
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x60]
lea ecx, [eax + 0xac]
mov dword [esp + 0x1c], ecx
call fcn.0040ec50
xor edi, edi
mov dword [esp + 0x24], edi
mov ecx, dword [ebp]
lea edx, [esp + 0x24]
push edx
push str.progid
push ebp
mov byte [esp + 0x2b8], 0x26
call dword [ecx + 0x90]
test eax, eax
mov eax, dword [esp + 0x24]
jl 0x40948a
cmp eax, edi
je 0x40948a
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x408aac
mov eax, dword [esp + 0x24]
mov byte [esp + 0x2ac], 2
cmp eax, edi
je 0x40949c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40949c
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], edi
cmp eax, edi
jle 0x409472
mov edi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebp, 8
jmp 0x408ada
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebp, 8
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax]
push ecx
push eax
mov byte [esp + 0x2b8], 0x27
call dword [edx + 0x1c]
test eax, eax
jge 0x408b21
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x26
test eax, eax
je 0x40945d
jmp 0x409457
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x18]
push 0x560248
lea ecx, [esp + 0x18]
push eax
push ecx
mov byte [esp + 0x2b8], 0x28
call fcn.00416d10
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x408b66
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x26
test eax, eax
je 0x40945d
jmp 0x409457
xor ecx, ecx
mov word [esp + 0x64], cx
mov word [esp + 0x2c], cx
mov word [esp + 0x4c], cx
mov word [esp + 0x74], cx
mov word [esp + 0xb4], cx
mov ecx, dword [eax]
lea edx, [esp + 0x64]
push edx
push 0x560394
push eax
mov byte [esp + 0x2b8], 0x2d
call dword [ecx + 0xb0]
test eax, eax
jl 0x40940b
push ebp
lea eax, [esp + 0x68]
push 0
lea ecx, [esp + 0x6c]
push eax
push ecx
call ebx
test eax, eax
jl 0x40940b
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
push ecx
push str.defaulticon
mov edx, dword [eax]
push eax
call dword [edx + 0xb0]
test eax, eax
jl 0x408bec
push ebp
lea edx, [esp + 0x30]
push 0
lea eax, [esp + 0x34]
push edx
push eax
call ebx
test eax, eax
jge 0x408c21
lea ecx, [esp + 0x2c]
call fcn.00416b90
push 0x56f018
mov word [esp + 0x30], bp
call edi
test eax, eax
mov dword [esp + 0x34], eax
jne 0x408c21
mov ecx, 0x56f018
test ecx, ecx
je 0x408c21
mov word [esp + 0x2c], 0xa
mov dword [esp + 0x34], 0x8007000e
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x4c]
push ecx
push str.shell
mov edx, dword [eax]
push eax
call dword [edx + 0xb0]
test eax, eax
jl 0x408c4f
push ebp
lea edx, [esp + 0x50]
push 0
lea eax, [esp + 0x54]
push edx
push eax
call ebx
test eax, eax
jge 0x408c84
lea ecx, [esp + 0x4c]
call fcn.00416b90
push 0x56f018
mov word [esp + 0x50], bp
call edi
test eax, eax
mov dword [esp + 0x54], eax
jne 0x408c84
mov ecx, 0x56f018
test ecx, ecx
je 0x408c84
mov word [esp + 0x4c], 0xa
mov dword [esp + 0x54], 0x8007000e
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x74]
push ecx
push str.shellcommand
mov edx, dword [eax]
push eax
call dword [edx + 0xb0]
test eax, eax
jl 0x408cb2
push ebp
lea edx, [esp + 0x78]
push 0
lea eax, [esp + 0x7c]
push edx
push eax
call ebx
test eax, eax
jge 0x408ce7
lea ecx, [esp + 0x74]
call fcn.00416b90
push 0x56f018
mov word [esp + 0x78], bp
call edi
test eax, eax
mov dword [esp + 0x7c], eax
jne 0x408ce7
mov ecx, 0x56f018
test ecx, ecx
je 0x408ce7
mov word [esp + 0x74], 0xa
mov dword [esp + 0x7c], 0x8007000e
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xb4]
push ecx
push str.shellopencmd
mov edx, dword [eax]
push eax
call dword [edx + 0xb0]
test eax, eax
jl 0x408d1e
push ebp
lea edx, [esp + 0xb8]
push 0
lea eax, [esp + 0xbc]
push edx
push eax
call ebx
test eax, eax
jge 0x408d65
lea ecx, [esp + 0xb4]
call fcn.00416b90
push 0x56f018
mov word [esp + 0xb8], bp
call edi
test eax, eax
mov dword [esp + 0xbc], eax
jne 0x408d6c
mov ecx, 0x56f018
test ecx, ecx
je 0x408d6c
mov eax, 0x8007000e
mov word [esp + 0xb4], 0xa
mov dword [esp + 0xbc], eax
jmp 0x408d6c
mov eax, dword [esp + 0xbc]
mov edi, dword [sym.imp.MSVCRT.dll_wcslen]
push eax
call edi
add esp, 4
test eax, eax
jne 0x408ded
mov edx, dword [esp + 0x54]
push edx
call edi
add esp, 4
test eax, eax
je 0x408d98
mov eax, dword [esp + 0x7c]
push eax
call edi
add esp, 4
test eax, eax
jne 0x408ded
lea ecx, [esp + 0xb4]
push ecx
call esi
lea edx, [esp + 0x74]
push edx
call esi
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x2c]
push ecx
call esi
lea edx, [esp + 0x64]
push edx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x27
test eax, eax
je 0x408dd4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x26
test eax, eax
je 0x40945d
jmp 0x409457
mov eax, dword [esp + 0x6c]
push eax
call edi
add esp, 4
test eax, eax
jne 0x408e50
lea ecx, [esp + 0xb4]
push ecx
call esi
lea edx, [esp + 0x74]
push edx
call esi
lea eax, [esp + 0x4c]
push eax
call esi
lea ecx, [esp + 0x2c]
push ecx
call esi
lea edx, [esp + 0x64]
push edx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x27
test eax, eax
je 0x408e37
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x26
test eax, eax
je 0x40945d
jmp 0x409457
mov esi, dword [esp + 0x6c]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
mov byte [esp + 0x2ac], 0x2e
je 0x408e7b
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x408e7d
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x2d
test eax, eax
mov dword [esp + 0x44], ecx
jne 0x408e9d
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x44]
test ecx, ecx
mov byte [esp + 0x2ac], 0x2f
je 0x408eb2
call fcn.0040d5d0
mov esi, eax
jmp 0x408eb4
xor esi, esi
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xe8]
mov byte [esp + 0xe8], al
call fcn.0040d460
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0xec]
call fcn.0040fa00
lea ecx, [esp + 0x44]
mov byte [esp + 0x2ac], 0x31
call fcn.0040d4b0
mov eax, dword [esp + 0xe8]
test eax, eax
jne 0x408f08
mov eax, 0x535108
push eax
call dword [sym.imp.MSVCRT.dll__strlwr]
add esp, 4
lea ecx, [esp + 0x12c]
call fcn.0040cd80
lea ecx, [esp + 0xe4]
push eax
push ecx
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x2b4], 0x32
call fcn.0040ecf0
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x124]
push eax
push edx
mov byte [esp + 0x2b4], 0x33
call fcn.0040eb60
mov ebp, dword [eax]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2ac], 0x32
call fcn.0040cee0
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2ac], 0x31
call fcn.0040cde0
mov esi, dword [esp + 0x6c]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
mov byte [esp + 0x2ac], 0x34
je 0x408faa
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x408fac
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x31
test eax, eax
mov dword [esp + 0x40], ecx
jne 0x408fcc
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov byte [esp + 0x2ac], 0x35
je 0x408fe1
call fcn.0040d5d0
mov edx, eax
jmp 0x408fe3
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x20]
call fcn.0040fa00
lea ecx, [esp + 0x40]
mov byte [esp + 0x2ac], 0x31
call fcn.0040d4b0
mov eax, dword [esp + 0x34]
mov ebx, dword [sym.imp.MSVCRT.dll_wcslen]
push eax
call ebx
add esp, 4
test eax, eax
je 0x409105
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x108], cl
lea ecx, [esp + 0x108]
call fcn.0040d630
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x104]
push 1
push edx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2b8], 0x36
call fcn.004a5ee0
mov eax, dword [esp + 0x108]
mov esi, 0x535104
test eax, eax
je 0x409070
mov esi, eax
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
mov byte [esp + 0x2ac], 0x37
je 0x409097
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x409099
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x36
test eax, eax
mov dword [esp + 0x3c], ecx
jne 0x4090b9
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov byte [esp + 0x2ac], 0x38
je 0x4090ce
call fcn.0040d5d0
mov edx, eax
jmp 0x4090d0
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x30]
call fcn.0040fa00
lea ecx, [esp + 0x3c]
call fcn.0040d4b0
push 1
lea ecx, [esp + 0x108]
mov byte [esp + 0x2b0], 0x31
call fcn.0040d630
mov esi, dword [esp + 0x54]
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
mov byte [esp + 0x2ac], 0x39
je 0x409130
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x409132
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x31
test eax, eax
mov dword [esp + 0xcc], ecx
jne 0x409158
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0xcc]
test ecx, ecx
mov byte [esp + 0x2ac], 0x3a
je 0x40916d
call fcn.0040d5d0
mov edx, eax
jmp 0x40916f
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x40]
call fcn.0040fa00
lea ecx, [esp + 0xcc]
mov byte [esp + 0x2ac], 0x31
call fcn.0040d4b0
mov ecx, dword [esp + 0x7c]
push ecx
call ebx
add esp, 4
test eax, eax
je 0x409297
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x118]
mov byte [esp + 0x118], dl
call fcn.0040d630
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x114]
push 1
push eax
push ecx
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2b8], 0x3b
call fcn.004a5ee0
mov eax, dword [esp + 0x118]
mov esi, 0x535104
test eax, eax
je 0x4091f9
mov esi, eax
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
mov byte [esp + 0x2ac], 0x3c
je 0x409220
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x409222
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x3b
test eax, eax
mov dword [esp + 0x8c], ecx
jne 0x409248
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x8c]
test ecx, ecx
mov byte [esp + 0x2ac], 0x3d
je 0x40925d
call fcn.0040d5d0
mov edx, eax
jmp 0x40925f
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x50]
call fcn.0040fa00
lea ecx, [esp + 0x8c]
call fcn.0040d4b0
push 1
lea ecx, [esp + 0x118]
mov byte [esp + 0x2b0], 0x31
call fcn.0040d630
mov edx, dword [esp + 0xbc]
push edx
call ebx
add esp, 4
test eax, eax
je 0x40939b
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xf8]
mov byte [esp + 0xf8], al
call fcn.0040d630
mov edx, dword [esp + 0xbc]
lea ecx, [esp + 0xf4]
push 1
push ecx
push edx
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2b8], 0x3e
call fcn.004a5ee0
mov eax, dword [esp + 0xf8]
mov esi, 0x535104
test eax, eax
je 0x4092fd
mov esi, eax
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
mov byte [esp + 0x2ac], 0x3f
je 0x409324
push esi
mov ecx, eax
call fcn.0040d540
jmp 0x409326
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2ac], 0x3e
test eax, eax
mov dword [esp + 0x90], ecx
jne 0x40934c
push 0x8007000e
call fcn.004c7dcc
mov ecx, dword [esp + 0x90]
test ecx, ecx
mov byte [esp + 0x2ac], 0x40
je 0x409361
call fcn.0040d5d0
mov edx, eax
jmp 0x409363
xor edx, edx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp + 0x60]
call fcn.0040fa00
lea ecx, [esp + 0x90]
call fcn.0040d4b0
push 1
lea ecx, [esp + 0xf8]
mov byte [esp + 0x2b0], 0x31
call fcn.0040d630
push 1
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2b0], 0x2d
call fcn.0040d460
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0xb4]
push eax
call esi
lea ecx, [esp + 0x74]
push ecx
call esi
lea edx, [esp + 0x4c]
push edx
call esi
lea eax, [esp + 0x2c]
push eax
call esi
lea ecx, [esp + 0x64]
push ecx
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x27
test eax, eax
je 0x4093f3
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x26
test eax, eax
je 0x40945d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40945d
lea edx, [esp + 0xb4]
push edx
call esi
lea eax, [esp + 0x74]
push eax
call esi
lea ecx, [esp + 0x4c]
push ecx
call esi
lea edx, [esp + 0x2c]
push edx
call esi
lea eax, [esp + 0x64]
push eax
call esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x2ac], 0x27
test eax, eax
je 0x409447
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2ac], 0x26
test eax, eax
je 0x40945d
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x408ac9
mov eax, dword [esp + 0x24]
mov byte [esp + 0x2ac], 2
test eax, eax
je 0x40949c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40949c
cmp eax, edi
mov byte [esp + 0x2ac], 2
je 0x40949c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov edi, dword [esp + 0x60]
mov ecx, dword [edi + 0xb0]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0xd0], eax
je 0x4094e2
lea esi, [eax + 0xc]
add eax, 0x1c
push eax
call fcn.0040a3f0
add esp, 4
lea ecx, [esp + 0xd0]
mov dword [esi + 0x10], eax
call fcn.004116f0
mov ecx, dword [edi + 0xb0]
mov eax, dword [esp + 0xd0]
cmp eax, ecx
jne 0x4094b3
mov ecx, dword [edi + 0x88]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x98], eax
je 0x4095fc
mov ebp, dword [esp + 0x1c]
mov bl, 0x41
mov edi, dword [esp + 0x60]
add eax, 0x40
push eax
lea eax, [esp + 0x24]
mov esi, dword [edi + 0xb0]
push eax
mov ecx, ebp
call fcn.004cfcd0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
cmp eax, esi
jne 0x409548
mov eax, dword [ecx + 0x44]
test eax, eax
jne 0x409534
mov eax, 0x535108
push eax
lea esi, [ecx + 0xc]
call fcn.0040a600
add esp, 4
mov dword [esi + 0x10], eax
jmp 0x4095db
lea esi, [ecx + 0x40]
lea ecx, [esp + 0x12c]
call fcn.0040cd80
push eax
push esi
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x2b4], bl
call fcn.0040ecf0
lea edx, [esp + 0x84]
push eax
push edx
mov ecx, ebp
mov byte [esp + 0x2b4], 0x42
call fcn.00411010
lea eax, [esp + 0x88]
lea ecx, [esp + 0x84]
push eax
push ecx
lea ecx, [esp + 0x98]
call fcn.00411bc0
mov esi, dword [esp + 0x90]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2ac], bl
call fcn.0040cee0
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2ac], 2
call fcn.0040cde0
mov eax, dword [esp + 0x98]
mov edx, dword [esi + 0x1c]
mov dword [eax + 0x1c], edx
lea ecx, [esp + 0x98]
call fcn.00410fc0
mov ecx, dword [edi + 0x88]
mov eax, dword [esp + 0x98]
cmp eax, ecx
jne 0x4094ff
mov ebx, dword [esp + 0x60]
mov ecx, dword [ebx + 0x9c]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x48], eax
je 0x4098de
xor ebp, ebp
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0xb0]
add eax, 0x40
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, edi
call fcn.004cfcd0
cmp dword [esp + 0x90], esi
jne 0x4097b2
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebx + 0xb0]
lea eax, [esp + 0x20]
lea esi, [edx + 0xc]
push esi
push eax
call fcn.00411640
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
je 0x409680
lea eax, [ecx + 0xc]
mov ecx, esi
push eax
call fcn.00415c20
test eax, eax
jl 0x409680
lea eax, [esp + 0x20]
jmp 0x409695
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x8c]
cmp dword [eax], edi
jne 0x4096bd
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0x44]
cmp eax, ebp
jne 0x4096a9
mov eax, 0x535108
push eax
lea esi, [ecx + 0xc]
call fcn.0040a600
add esp, 4
mov dword [esi + 0x10], eax
jmp 0x4098c1
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x13]
push ecx
lea ecx, [esp + 0x134]
lea esi, [eax + 0xc]
call fcn.00454330
lea edx, [esp + 0x5f]
lea ecx, [esp + 0x140]
push edx
mov byte [esp + 0x2b0], 0x43
call fcn.00454330
lea eax, [esp + 0xb3]
lea ecx, [esp + 0x150]
push eax
mov byte [esp + 0x2b0], 0x44
call fcn.00454330
lea ecx, [esp + 0xc5]
mov byte [esp + 0x2ac], 0x45
push ecx
lea ecx, [esp + 0x164]
call fcn.00454330
lea edx, [esp + 0xc7]
lea ecx, [esp + 0x170]
push edx
mov byte [esp + 0x2b0], 0x46
call fcn.00454330
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x240]
push eax
push esi
mov byte [esp + 0x2b4], 0x47
call fcn.0040ecf0
lea ecx, [esp + 0x124]
push eax
push ecx
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x2b4], 0x48
call fcn.0040eb60
mov esi, dword [eax]
lea ecx, [esp + 0x240]
mov byte [esp + 0x2ac], 0x47
call fcn.0040cee0
lea ecx, [esp + 0x12c]
mov byte [esp + 0x2ac], 2
call fcn.0040cde0
mov eax, dword [esp + 0x48]
mov edx, dword [esi + 0x1c]
mov dword [eax + 0x1c], edx
jmp 0x4098c1
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0xc6]
push edx
lea esi, [ecx + 0x40]
lea ecx, [esp + 0x18c]
call fcn.00454330
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x198]
push eax
mov byte [esp + 0x2b0], 0x49
call fcn.00454330
lea ecx, [esp + 0xcb]
mov byte [esp + 0x2ac], 0x4a
push ecx
lea ecx, [esp + 0x1ac]
call fcn.00454330
lea edx, [esp + 0xc9]
lea ecx, [esp + 0x1b8]
push edx
mov byte [esp + 0x2b0], 0x4b
call fcn.00454330
lea eax, [esp + 0xca]
lea ecx, [esp + 0x1c8]
push eax
mov byte [esp + 0x2b0], 0x4c
call fcn.00454330
push esi
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x2b0], 0x4d
call fcn.0040bed0
lea ecx, [esp + 0x184]
mov byte [esp + 0x2ac], 0x4e
push ecx
lea ecx, [esp + 0x1f0]
call fcn.0040f860
lea edx, [esp + 0x1dc]
lea eax, [esp + 0x84]
push edx
push eax
mov ecx, edi
mov byte [esp + 0x2b4], 0x4f
call fcn.0040eb60
mov esi, dword [eax]
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x2ac], 0x4d
call fcn.0040cee0
lea ecx, [esp + 0x184]
mov byte [esp + 0x2ac], 2
call fcn.0040cde0
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x1c]
mov dword [edx + 0x1c], ecx
lea ecx, [esp + 0x48]
call fcn.00410fc0
mov ecx, dword [ebx + 0x9c]
mov eax, dword [esp + 0x48]
cmp eax, ecx
jne 0x409616
jmp 0x4098e0
xor ebp, ebp
lea eax, [esp + 0xd4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xac]
cmp edx, ebp
mov byte [esp + 0x2ac], 0
mov ecx, dword [eax]
mov esi, eax
mov dword [esp + 0x20], ecx
je 0x40996e
mov edx, ecx
cmp ecx, edx
jne 0x40996e
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0xa0]
call fcn.00410470
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0x90]
mov dword [edx + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xac], ebp
push ecx
mov dword [eax], eax
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0xa0]
mov dword [eax + 8], eax
call fcn.00442110
mov eax, dword [esp + 0xa0]
jmp 0x4099b1
cmp ecx, eax
je 0x4099aa
lea edx, [esp + 0x84]
push ebp
push edx
lea ecx, [esp + 0x28]
call fcn.004104b0
mov eax, dword [eax]
lea ecx, [esp + 0x8c]
push eax
push ecx
lea ecx, [esp + 0xa4]
call fcn.00410090
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jne 0x409972
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x90], ecx
push eax
call sub.MFC42.DLL_operatordelete
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xa4], ebp
push edx
mov dword [esp + 0xb4], ebp
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x2bc]
add esp, 8
mov dword [esp + 0xa4], ebp
cmp eax, ebp
pop edi
pop esi
pop ebp
mov dword [esp + 0x2a0], 0xffffffff
pop ebx
je 0x4099fc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x294]
mov dword fs:[0], ecx
add esp, 0x2a0
ret 4