Function at 0x406e20
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x40a455
push eax
mov eax, 0x1040
mov dword fs:[0], esp
call fcn.00409ea0
push ebx
mov ebx, ecx
push ebp
push esi
lea eax, [ebx + 0x494]
push edi
push eax
mov eax, dword [esp + 0x1064]
lea ebp, [ebx + 0x47c]
push eax
mov ecx, ebp
call fcn.00403290
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
xor esi, esi
lea ecx, [esp + 0x14]
mov dword [esp + 0x1058], esi
call sub.MFC42.DLL_CString::CString
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x761]
mov byte [esp + 0x760], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x28], esi
mov dword [esp + 0x60], esi
mov ecx, 9
mov esi, str.SoftwareLENOVONPdirectDataCommon
lea edi, [esp + 0xb8]
mov edx, dword [0x40e528]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [str.AppliedSchemeName]
mov eax, dword [0x40e52c]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x40e530]
mov dword [esp + 0x80], edx
mov dx, word [0x40e534]
mov dword [esp + 0x88], ecx
push 0xe000
lea ecx, [esp + 0x18]
mov byte [esp + 0x105c], 1
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x88], eax
mov word [esp + 0x90], dx
call sub.MFC42.DLL_CString::LoadStringA
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [esp + 0x60]
push eax
push 0x20019
lea ecx, [esp + 0xc0]
push 0
push ecx
push 0x80000001
call esi
test eax, eax
jne 0x406f64
lea edx, [esp + 0x24]
lea eax, [esp + 0x760]
push edx
mov edx, dword [esp + 0x64]
push eax
push 0
lea ecx, [esp + 0x88]
push 0
push ecx
push edx
mov dword [esp + 0x3c], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x60]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0xcdc]
lea edx, [esp + 0x760]
push ecx
push edx
mov ecx, ebp
call fcn.00403290
mov cl, byte [ebx + 0x5a0]
mov al, 0x10
test al, cl
je 0x4075e4
lea ecx, [esp + 0x3c]
call fcn.00401000
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 2
call fcn.00401250
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 3
call fcn.004014b0
dec eax
je 0x4075da
dec eax
je 0x4075da
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
push 0x20019
push 0
push str.SOFTWARELenovoLenovo_Wireless_Projector
push 0x80000002
mov dword [esp + 0x34], 1
call esi
test eax, eax
jne 0x4075d0
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x30]
call fcn.00401300
lea edx, [esp + 0x1c]
push 0
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push edx
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
mov dword [esp + 0x40], 0
call edi
test eax, eax
jne 0x40706a
mov eax, dword [esp + 0x1c]
push str.WireLessRadioOn
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x68]
push 4
push ecx
push 4
push 0
push str.WireLessRadioOn
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
lea ecx, [esp + 0x40]
call fcn.004010b0
mov esi, eax
test esi, esi
je 0x407084
cmp esi, 4
jne 0x4071bd
xor ecx, ecx
lea edx, [esp + 0x28]
mov dword [esp + 0x98], ecx
lea eax, [esp + 0x98]
mov byte [esp + 0x9c], cl
mov byte [esp + 0x6e0], cl
push edx
lea ecx, [esp + 0x6e4]
push eax
push ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x34], 0xffffffff
call fcn.00401150
sub eax, 5
je 0x4075c6
dec eax
jne 0x4071bd
lea ecx, [esp + 0x2c]
call fcn.00401420
lea ecx, [esp + 0x558]
call fcn.00402bc0
lea ecx, [esp + 0x558]
mov byte [esp + 0x1058], 4
call sub.MFC42.DLL_CDialog::DoModal
mov eax, dword [esp + 0x5b8]
mov edx, dword [0x40eb58]
test eax, eax
mov dword [esp + 0x20], edx
je 0x40716d
lea ecx, [esp + 0x3c]
call fcn.004011b0
lea ecx, [esp + 0x63c]
mov byte [esp + 0x1058], 7
call fcn.004015f0
lea ecx, [esp + 0x5fc]
mov byte [esp + 0x1058], 6
call sub.MFC42.DLL_CStatic::CStatic
lea ecx, [esp + 0x5bc]
mov byte [esp + 0x1058], 5
call sub.MFC42.DLL_CButton::CButton
lea ecx, [esp + 0x558]
mov byte [esp + 0x1058], 3
call fcn.00409cb0
jmp 0x407525
lea ecx, [esp + 0x63c]
mov byte [esp + 0x1058], 0xa
call fcn.004015f0
lea ecx, [esp + 0x5fc]
mov byte [esp + 0x1058], 9
call sub.MFC42.DLL_CStatic::CStatic
lea ecx, [esp + 0x5bc]
mov byte [esp + 0x1058], 8
call sub.MFC42.DLL_CButton::CButton
lea ecx, [esp + 0x558]
mov byte [esp + 0x1058], 3
call fcn.00409cb0
mov eax, esi
dec eax
je 0x407229
dec eax
je 0x40721f
sub eax, 2
je 0x4071d7
test esi, esi
je 0x4071d7
cmp esi, 4
jne 0x407525
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4075a3
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x2c]
push edx
call fcn.00401390
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x407233
lea eax, [esp + 0x28]
lea ecx, [esp + 0x2c]
push eax
call fcn.00401330
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x40724d
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
call fcn.00401360
jmp 0x407241
push 0xe005
jmp 0x4075b1
push 0xe003
jmp 0x4074ee
lea edx, [esp + 0x28]
lea ecx, [esp + 0x2c]
push edx
call fcn.00401330
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40737d
push 0xe007
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0x34
mov eax, dword [eax - 8]
mov esi, dword [ecx - 8]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
push esi
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.00408650
add esp, 0xc
cmp eax, 6
jne 0x407442
xor esi, esi
lea edx, [esp + 0x20]
push esi
push edx
push esi
push 0x20006
push esi
push esi
push esi
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
mov dword [esp + 0x44], esi
call edi
test eax, eax
jne 0x4072f4
mov eax, dword [esp + 0x20]
push str.WLANConnectionExists
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
push 4
push ecx
push 4
push esi
push str.WLANConnectionExists
push edx
mov dword [esp + 0x30], 1
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], esi
push ecx
lea ecx, [esp + 0x30]
call fcn.00401450
cmp dword [esp + 0x38], esi
jne 0x407323
lea edx, [esp + 0x64]
lea ecx, [esp + 0x2c]
push edx
call fcn.004013f0
lea ecx, [esp + 0x2c]
call fcn.00401420
mov eax, dword [ebx + 0x5a0]
lea ecx, [esp + 0x2c]
and al, 0xef
mov dword [esp + 0x28], 1
mov dword [ebx + 0x5a0], eax
call fcn.00401420
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
lea ecx, [esp + 0x40]
call fcn.00401120
mov ecx, eax
dec ecx
je 0x4074a3
sub ecx, 2
je 0x40749c
sub ecx, 2
jne 0x4074e1
push 0xe00b
jmp 0x4074a8
lea eax, [esp + 0x20]
push 0
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
mov dword [esp + 0x44], 0
call edi
test eax, eax
jne 0x407323
mov ecx, dword [esp + 0x20]
push str.WLANConnectionExists
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x18]
push 4
push edx
push 4
push 0
push str.WLANConnectionExists
push eax
mov dword [esp + 0x30], 0
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x407432
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 2
call fcn.004012e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1058], 1
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0x1058], 0
call fcn.00409cc8
lea ecx, [esp + 0x10]
mov dword [esp + 0x1058], 0xffffffff
call fcn.00409cc8
xor eax, eax
jmp 0x407fab
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x407323
lea ecx, [esp + 0x3c]
call fcn.004011b0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 2
call fcn.004012e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1058], 1
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0x1058], 0
call fcn.00409cc8
lea ecx, [esp + 0x10]
mov dword [esp + 0x1058], 0xffffffff
call fcn.00409cc8
mov eax, 0xc
jmp 0x407fab
push 0xe00a
jmp 0x4074a8
push 0xe003
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0x30
mov eax, dword [edx - 8]
mov esi, dword [ecx - 8]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
push esi
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.00408650
add esp, 0xc
jmp 0x4074e9
test eax, eax
je 0x407576
push 0xe008
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 8]
mov ecx, dword [esp + 0x10]
push 0x30
push eax
mov esi, dword [ecx - 8]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
push esi
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.00408650
add esp, 0xc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 2
call fcn.004012e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1058], 1
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0x1058], 0
call fcn.00409cc8
lea ecx, [esp + 0x10]
mov dword [esp + 0x1058], 0xffffffff
call fcn.00409cc8
mov eax, 0xc
jmp 0x407fab
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 2
call fcn.004012e0
mov byte [esp + 0x1058], 1
lea ecx, [esp + 0x3c]
jmp 0x40780e
lea ecx, [esp + 0x3c]
call fcn.004011b0
push 0xe006
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 8]
jmp 0x4074fe
push 0xe00b
jmp 0x4074ee
push 0xe005
jmp 0x4074ee
push 0xe012
jmp 0x4074ee
test byte [esp + 0xde8], al
je 0x407813
lea ecx, [esp + 0x2c]
call fcn.00401000
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1058], 0xb
call fcn.00401250
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 0xc
call fcn.00401190
sub eax, 0
je 0x407669
dec eax
jne 0x4077e8
push 0xe009
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0x30
mov eax, dword [edx - 8]
mov esi, dword [ecx - 8]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
push esi
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.00408650
add esp, 0xc
jmp 0x4077e8
lea ecx, [esp + 0x2c]
call fcn.004011b0
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push edx
push 0x20019
push 0
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
call esi
test eax, eax
jne 0x40770e
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x4c]
push eax
push ecx
push 0
push 0
push str.WLANConnectionExists
push edx
mov dword [esp + 0x30], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40783a
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
mov dword [esp + 0x3c], eax
call edi
lea edx, [esp + 0x1c]
push edx
push 0xf003f
push 0
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
call esi
test eax, eax
jne 0x407714
mov eax, dword [esp + 0x1c]
push str.WLANConnectionExists
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov ecx, dword [esp + 0x1c]
push ecx
call edi
jmp 0x407714
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x1c]
push edx
push 0x20019
push 0
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
call esi
test eax, eax
jne 0x4077b4
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x4c]
push eax
push ecx
push 0
push 0
push str.WireLessRadioOn
push edx
mov dword [esp + 0x30], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40783a
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x3c]
test eax, eax
je 0x407775
call fcn.00401420
jmp 0x40777a
call fcn.00401480
mov eax, dword [esp + 0x1c]
push eax
call edi
lea ecx, [esp + 0x1c]
push ecx
push 0xf003f
push 0
push str.SoftwareLENOVONPdirectDataCommon
push 0x80000001
call esi
test eax, eax
jne 0x4077b4
mov edx, dword [esp + 0x1c]
push str.WireLessRadioOn
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov eax, dword [esp + 0x1c]
push eax
call edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], 0
push ecx
lea ecx, [esp + 0x40]
call fcn.00401450
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4077e8
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4077e8
lea edx, [esp + 0x64]
lea ecx, [esp + 0x3c]
push edx
call fcn.004013c0
lea ecx, [esp + 0x2c]
call fcn.004011b0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1058], 0xb
call fcn.004012e0
mov byte [esp + 0x1058], 1
lea ecx, [esp + 0x2c]
call fcn.00401090
mov eax, dword [ebx + 0x7fc]
mov ecx, dword [ebx + 0x5a0]
push eax
push ecx
mov ecx, ebx
call fcn.00408a80
test eax, eax
je 0x407888
push 9
mov ecx, ebp
call fcn.00403920
jmp 0x407f81
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1058], 0xb
call fcn.004012e0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1058], 1
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0x1058], 0
call fcn.00409cc8
lea ecx, [esp + 0x10]
mov dword [esp + 0x1058], 0xffffffff
call fcn.00409cc8
xor eax, eax
jmp 0x407fab
sub esp, 0x374
mov ecx, 0xdd
lea esi, [ebx + 0x494]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00408720
test eax, eax
jne 0x407f81
lea edx, [esp + 0xe0]
mov ecx, ebp
push edx
call fcn.004039b0
mov ecx, dword [esp + 0x1ec]
mov esi, eax
mov eax, dword [esp + 0x448]
push eax
push ecx
mov ecx, ebx
call fcn.004089e0
xor edi, edi
cmp esi, edi
jne 0x407f81
cmp eax, edi
jne 0x407f81
mov ecx, ebx
call fcn.00409910
test eax, eax
je 0x4078ff
push 0xb
mov ecx, ebx
call fcn.00409390
jmp 0x407f81
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0xe0]
push 0x40eb5c
push edx
call esi
lea eax, [esp + 0x1f4]
push 0x40eb5c
push eax
call esi
lea ecx, [esp + 0x74]
mov dword [esp + 0x1f0], edi
push ecx
mov ecx, ebp
mov dword [esp + 0x2fc], edi
mov dword [esp + 0x418], edi
mov dword [esp + 0x420], edi
call fcn.004039e0
mov eax, dword [esp + 0x74]
xor edx, edx
cmp eax, edi
lea eax, [esp + 0x94]
lea ecx, [esp + 0x70]
push eax
sete dl
push ecx
mov ecx, ebp
mov dword [esp + 0x308], edx
call fcn.00403480
cmp dword [esp + 0x70], edi
je 0x4079ab
lea edx, [esp + 0x58]
mov ecx, ebp
push edx
call fcn.00403a10
cmp eax, edi
jne 0x4079d0
lea eax, [esp + 0x18]
mov ecx, ebx
push eax
call fcn.00409300
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [esp + 0x2fc], ecx
jmp 0x4079d7
lea eax, [esp + 0x58]
mov ecx, ebp
push eax
call fcn.00403a10
cmp eax, edi
jne 0x4079d0
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp eax, 2
sete cl
mov dword [esp + 0x2fc], ecx
jmp 0x4079d7
mov dword [esp + 0x2fc], edi
lea edx, [esp + 0x78]
mov ecx, ebp
push edx
call fcn.00403b90
cmp eax, edi
jne 0x4079fa
mov eax, dword [esp + 0x78]
mov dword [esp + 0x304], 1
cmp eax, edi
jne 0x407a01
mov dword [esp + 0x304], edi
lea eax, [esp + 0x864]
mov ecx, ebp
push eax
call fcn.00403bc0
lea ecx, [esp + 0x864]
lea edx, [esp + 0x30c]
push ecx
push edx
call esi
lea eax, [esp + 0x6c]
mov ecx, ebp
push eax
mov dword [esp + 0x70], 0
call fcn.00403bf0
mov ecx, dword [esp + 0x6c]
sub esp, 0x374
mov dword [esp + 0x784], ecx
mov ecx, 0xdd
lea esi, [esp + 0x454]
mov edi, esp
mov dword [esp + 0x67c], 1
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
call fcn.00403600
lea edx, [esp + 0x54]
mov ecx, ebp
push edx
call fcn.00403320
mov eax, dword [ebx + 0x6ac]
test eax, eax
je 0x407b03
mov eax, dword [esp + 0x54]
mov ecx, eax
shl ecx, 4
add ecx, eax
shl ecx, 4
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
lea edx, [ebx + 0x910]
mov ecx, ebp
mov dword [ebx + 0x914], eax
push eax
push edx
call fcn.00403b50
test eax, eax
je 0x407ac2
mov eax, dword [ebx + 0x914]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*8]
shl ecx, 4
sub ecx, eax
shl ecx, 2
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
lea edx, [ebx + 0x918]
mov ecx, ebp
mov dword [ebx + 0x91c], eax
push eax
push edx
call fcn.00403da0
test eax, eax
je 0x407c0e
mov eax, dword [ebx + 0x91c]
push eax
jmp 0x407c06
mov eax, dword [esp + 0x448]
test eax, eax
je 0x407b27
cmp eax, 1
jne 0x407b27
mov eax, dword [esp + 0x43e]
mov esi, dword [esp + 0x43c]
mov dword [esp + 0x24], eax
jmp 0x407b39
mov ecx, dword [esp + 0x426]
mov esi, dword [esp + 0x424]
mov dword [esp + 0x24], ecx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x455]
mov byte [esp + 0x454], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x454]
mov ecx, ebp
push edx
stosb byte es:[edi], al
call fcn.00403210
lea eax, [esp + 0x968]
lea ecx, [esp + 0x454]
push eax
push ecx
mov ecx, ebp
call fcn.00403290
mov eax, dword [esp + 0xcd0]
test eax, eax
je 0x407ba2
cmp eax, 1
jne 0x407ba2
mov eax, dword [esp + 0xcc4]
mov edx, dword [esp + 0xcc6]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
jmp 0x407bb8
mov eax, dword [esp + 0xcac]
mov ecx, dword [esp + 0xcae]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
cmp si, ax
jne 0x407c0e
mov dx, word [esp + 0x24]
cmp dx, word [esp + 0x20]
jne 0x407c0e
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*8]
shl ecx, 4
sub ecx, eax
shl ecx, 2
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
mov esi, eax
lea edx, [esp + 0x24]
mov ecx, ebp
push esi
push edx
mov dword [esp + 0x2c], 0
call fcn.00403da0
mov eax, dword [esp + 0x24]
push esi
push eax
mov ecx, ebp
call fcn.004037e0
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
je 0x407c1a
xor edi, edi
jmp 0x407c38
sub esp, 0x374
mov ecx, 0xdd
lea esi, [ebx + 0x494]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
call fcn.00403e40
mov edi, eax
push edi
mov ecx, ebp
call fcn.00403920
test edi, edi
jne 0x407f5d
mov ecx, dword [ebx + 0x6b4]
push ecx
mov ecx, ebx
call fcn.00408310
lea edx, [esp + 0x90]
lea eax, [esp + 0x64]
push edx
push eax
mov ecx, ebp
call fcn.00403480
mov eax, dword [esp + 0x64]
test eax, eax
je 0x407c82
mov ecx, dword [ebx + 0x6b0]
push ecx
mov ecx, ebx
call fcn.00408370
jmp 0x407cce
lea edx, [esp + 0x24]
mov ecx, ebp
push edx
call fcn.00403a10
mov eax, dword [ebx + 0x6b0]
test eax, eax
mov eax, dword [esp + 0x24]
je 0x407cad
cmp eax, 2
je 0x407cce
push eax
mov ecx, ebp
call fcn.00403690
push 2
jmp 0x407cc7
cmp eax, 2
jne 0x407cce
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.004034c0
test eax, eax
jne 0x407cce
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.00403f40
mov edx, dword [ebx + 0x6b8]
mov ecx, ebx
push edx
call fcn.004084d0
mov eax, dword [ebx + 0x6bc]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x407d45
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
push 0x226
lea ecx, [esp + 0x2c]
mov byte [esp + 0x105c], 0xd
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [esp + 0x28]
lea edi, [ebx + 0x6c0]
push eax
push edi
call esi
test eax, eax
jne 0x407d25
push eax
push 0x40eb5c
jmp 0x407d2d
mov ecx, dword [ebx + 0x7c4]
push ecx
push edi
mov ecx, ebx
call fcn.00408550
lea ecx, [esp + 0x28]
mov byte [esp + 0x1058], 1
call fcn.00409cc8
mov dl, byte [0x40eb5c]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x455]
mov byte [esp + 0x454], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [esp + 0x5f]
xor edi, edi
mov byte [esp + 0x3c], al
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
lea ecx, [esp + 0x454]
mov byte [esp + 0x1058], 0xe
push ecx
mov ecx, ebp
call fcn.00403210
lea edx, [esp + 0x454]
lea eax, [ebx + 0x494]
push edx
push eax
mov dword [esp + 0x70], eax
call esi
test eax, eax
jne 0x407df9
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.00403320
mov eax, dword [esp + 0x18]
mov ecx, eax
shl ecx, 4
add ecx, eax
shl ecx, 4
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
mov edi, eax
lea edx, [esp + 0x4c]
mov ecx, ebp
push edi
push edx
call fcn.004033c0
test eax, eax
jne 0x407dee
mov eax, dword [esp + 0x4c]
push edi
push eax
mov ecx, ebp
call fcn.00403e70
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
xor edi, edi
cmp dword [ebx + 0x6ac], edi
jne 0x407f15
mov eax, dword [esp + 0x448]
cmp eax, edi
je 0x407e25
cmp eax, 1
jne 0x407e25
mov ecx, dword [esp + 0x43c]
mov edx, dword [esp + 0x43e]
jmp 0x407e33
mov ecx, dword [esp + 0x424]
mov edx, dword [esp + 0x426]
mov eax, dword [ebx + 0x7fc]
cmp eax, edi
je 0x407e52
cmp eax, 1
jne 0x407e52
mov si, word [ebx + 0x7f0]
mov bx, word [ebx + 0x7f2]
jmp 0x407e60
mov si, word [ebx + 0x7d8]
mov bx, word [ebx + 0x7da]
cmp cx, si
jae 0x407e6a
cmp dx, bx
jb 0x407e80
cmp si, word [esp + 0x1c]
jne 0x407f15
cmp bx, word [esp + 0x20]
jne 0x407f15
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*8]
shl ecx, 4
sub ecx, eax
shl ecx, 2
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
mov edi, eax
lea edx, [esp + 0x38]
mov ecx, ebp
push edi
push edx
mov dword [esp + 0x40], 0
call fcn.00403400
mov eax, dword [esp + 0x1c]
and esi, 0xffff
mov dword [esp + 0x18], esi
and eax, 0xffff
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
and ebx, 0xffff
and eax, 0xffff
fidiv dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x38]
fstp dword [esp + 0x4c]
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x4c]
fidiv dword [esp + 0x18]
fstp dword [esp + 0x50]
mov eax, dword [esp + 0x50]
push eax
push ecx
push edi
push edx
mov ecx, ebp
call fcn.00404100
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
push 1
mov ecx, ebp
call fcn.004038a0
mov eax, dword [esp + 0x68]
mov ecx, ebp
push eax
call fcn.004038e0
push 0
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x14]
mov byte [esp + 0x1058], 0
call fcn.00409cc8
lea ecx, [esp + 0x10]
mov dword [esp + 0x1058], 0xffffffff
call fcn.00409cc8
xor eax, eax
jmp 0x407fab
push edi
mov ecx, ebx
call fcn.00409390
mov ecx, ebx
call fcn.00407fd0
push 0
mov ecx, ebp
call fcn.004038a0
push 0x40eb5c
mov ecx, ebp
call fcn.004038e0
lea ecx, [esp + 0x14]
mov byte [esp + 0x1058], 0
call fcn.00409cc8
lea ecx, [esp + 0x10]
mov dword [esp + 0x1058], 0xffffffff
call fcn.00409cc8
mov eax, 9
mov ecx, dword [esp + 0x1050]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x104c
ret 4