Function at 0x406e20
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x16c]
sub esp, 0x16c
push 0xffffffffffffffff
push 0x4407e0
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x4558d0]
xor eax, ebp
mov dword [ebp + 0x168], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 0x5c], esi
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x11], 0
mov dword [ebp - 4], esi
mov dword [0x4542fc], 1
mov dword [ebp - 0x24], vtable.CProtection.0
mov byte [ebp - 4], 1
push 0x100
push esi
lea eax, [ebp]
push eax
call fcn.0042cc70
mov byte [ebp + 0x134], 0
mov byte [ebp + 0x100], 0
push 0x456ce8
call fcn.0040ebe0
push 0x456ce4
call fcn.0040ea20
add esp, 0x14
push 0x456cd0
push 0xf003f
push esi
push str.SoftwareDownloadManager_
push SysReAllocStringLen
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
call edi
test eax, eax
jne 0x406f09
mov dword [ebp - 0x34], 0x32
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp + 0x134]
push edx
push esi
push esi
mov eax, dword [0x456ce4]
push eax
mov ecx, dword [0x456cd0]
push ecx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call ebx
test eax, eax
jne 0x406f0f
mov byte [ebp - 0x1d], 1
jmp 0x406f0f
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea edx, [ebp - 0x58]
push edx
push 1
push esi
mov eax, dword [0x456ce8]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call edi
test eax, eax
jne 0x406f59
mov dword [ebp - 0x34], 0x32
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp + 0x100]
push edx
push esi
push esi
mov eax, dword [0x456ce4]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
call ebx
test eax, eax
jne 0x406f4f
mov byte [ebp - 0x11], 1
mov edx, dword [ebp - 0x58]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebp - 0x1d], 0
jne 0x406f6e
cmp byte [ebp - 0x11], 0
jne 0x406fa0
mov dword [ebp - 0x5c], 5
jmp 0x406fa0
lea eax, [ebp + 0x134]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406f77
sub eax, edx
cmp eax, 0x17
jne 0x406fa0
cmp byte [ebp + 0x139], 0x2d
jne 0x406fa0
cmp byte [ebp + 0x13f], 0x2d
jne 0x406fa0
cmp byte [ebp + 0x145], 0x2d
je 0x406fe0
cmp dword [0x4542fc], esi
je 0x406fe6
cmp byte [ebp - 0x11], 0
je 0x406fe6
lea eax, [ebp + 0x100]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406fb7
sub eax, edx
cmp eax, 0x17
jne 0x406fe6
cmp byte [ebp + 0x105], 0x2d
jne 0x406fe6
cmp byte [ebp + 0x10b], 0x2d
jne 0x406fe6
cmp byte [ebp + 0x111], 0x2d
jne 0x406fe6
mov dword [0x4542fc], esi
lea ecx, [ebp - 0x44]
call fcn.0040e740
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e740
mov byte [ebp - 4], 3
call fcn.004063e0
lea ecx, [ebp - 0x18]
call fcn.004020b0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x18]
push eax
call fcn.0040f650
add esp, 4
test eax, eax
je 0x407035
mov ecx, dword [ebp - 0x18]
push ecx
push 0x444384
push 0x456cdc
call fcn.00406280
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.004020b0
mov byte [ebp - 4], 5
lea edx, [ebp - 0x1c]
push edx
call fcn.0040ed90
add esp, 4
test eax, eax
je 0x40706e
mov byte [0x456ccc], 1
mov eax, dword [ebp - 0x1c]
push eax
push 0x444384
push 0x456ce0
call fcn.00406280
add esp, 0xc
mov eax, dword [0x456cc8]
cmp eax, esi
je 0x40707e
mov byte [0x456ccc], 0
lea ecx, [ebp - 0x30]
cmp dword [0x4542fc], esi
jne 0x407264
push ecx
push 1
push 0
mov edx, dword [0x456cdc]
push edx
neg eax
sbb eax, eax
add eax, reloc.OLEAUT32.dll_SysReAllocString
push eax
call edi
mov esi, eax
mov dword [ebp - 0x60], esi
test esi, esi
je 0x407134
cmp esi, 2
je 0x407130
lea ecx, [ebp - 0x2c]
call fcn.004020b0
mov byte [ebp - 4], 6
cmp dword [0x456cc8], 0
mov eax, str.CURRENT_USER
jne 0x4070d6
mov eax, str.MACHINE
mov ecx, dword [0x456cdc]
push ecx
push eax
push str._s_s
lea edx, [ebp - 0x2c]
push edx
call fcn.00406280
add esp, 0x10
mov eax, dword [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x44]
call fcn.0040e830
test eax, eax
je 0x407124
lea ecx, [ebp - 0x30]
push ecx
push 1
push 0
mov edx, dword [0x456cdc]
push edx
mov eax, dword [0x456cc8]
neg eax
sbb eax, eax
add eax, reloc.OLEAUT32.dll_SysReAllocString
push eax
call edi
mov esi, eax
mov dword [ebp - 0x60], esi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call fcn.00402120
test esi, esi
jne 0x407162
mov dword [ebp - 0x34], 0x100
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp]
push edx
push 0
push 0
mov eax, dword [0x456d10]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call ebx
mov esi, eax
neg esi
sbb esi, esi
add esi, 1
jne 0x40734f
push 0
lea edx, [ebp - 0x30]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareClassesCLSIDE6871B76_C3C8_44DD_B947_ABFFE144860D
push SysReAllocStringLen
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
call esi
mov dword [ebp - 0x60], eax
test eax, eax
je 0x407241
lea ecx, [ebp - 0x2c]
call fcn.004020b0
mov byte [ebp - 4], 7
push str.SoftwareClassesCLSIDE6871B76_C3C8_44DD_B947_ABFFE144860D
push str.CURRENT_USER_s
lea eax, [ebp - 0x2c]
push eax
call fcn.00406280
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x54]
call fcn.0040e830
test eax, eax
jne 0x407212
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call fcn.00402120
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
xor eax, eax
jmp 0x40744c
push 0
lea edx, [ebp - 0x30]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareClassesCLSIDE6871B76_C3C8_44DD_B947_ABFFE144860D
push SysReAllocStringLen
call esi
test eax, eax
jne 0x4071c4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call fcn.00402120
mov dword [ebp - 0x34], 0x100
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp]
push ecx
push 0
push 0
mov edx, dword [0x456d10]
push edx
mov eax, dword [ebp - 0x30]
push eax
jmp 0x407346
push 0
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
mov edx, dword [0x456ce0]
push edx
xor eax, eax
cmp byte [0x456ccc], al
setne al
add eax, 0x80000001
push eax
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
call esi
test eax, eax
je 0x407329
lea ecx, [ebp - 0x2c]
call fcn.004020b0
mov byte [ebp - 4], 8
cmp byte [0x456ccc], 0
mov eax, str.MACHINE
jne 0x4072bb
mov eax, str.CURRENT_USER
mov ecx, dword [0x456ce0]
push ecx
push eax
push str._s_s
lea edx, [ebp - 0x2c]
push edx
call fcn.00406280
add esp, 0x10
mov eax, dword [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x44]
call fcn.0040e830
test eax, eax
je 0x4071c4
push 0
lea ecx, [ebp - 0x30]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
mov edx, dword [0x456ce0]
push edx
xor eax, eax
cmp byte [0x456ccc], al
setne al
add eax, 0x80000001
push eax
call esi
test eax, eax
jne 0x4071c4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c]
call fcn.00402120
mov dword [ebp - 0x34], 0x100
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp]
push edx
push 0
push 0
mov eax, dword [0x456d10]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call ebx
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x4071d0
mov edx, dword [0x456cd8]
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407370
sub eax, esi
push eax
push edx
push 0x100
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x24]
call fcn.004051b0
cmp dword [0x4542fc], 0
je 0x407471
lea ecx, [ebp]
mov eax, dword [0x456d0c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4073c1
test dl, dl
je 0x4073bd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4073c1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4073a1
xor eax, eax
jmp 0x4073c6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40740c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov eax, 4
jmp 0x40744c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov eax, 6
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x168]
xor ecx, ebp
call fcn.0042cc02
add ebp, 0x16c
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x1d]
test al, al
jne 0x407481
cmp byte [ebp - 0x11], al
je 0x40786d
xor bl, bl
mov byte [ebp - 0x12], bl
test al, al
je 0x40765c
mov ecx, dword [0x456d00]
lea eax, [ebp + 0x134]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4074c0
test dl, dl
je 0x4074bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4074c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4074a0
xor eax, eax
jmp 0x4074c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4074ce
mov bl, 1
mov byte [ebp - 0x12], bl
mov ecx, dword [0x456d04]
lea eax, [ebp + 0x134]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407500
test dl, dl
je 0x4074fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407500
add eax, 2
add ecx, 2
test dl, dl
jne 0x4074e0
xor eax, eax
jmp 0x407505
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40750e
mov bl, 1
mov byte [ebp - 0x12], bl
mov ecx, dword [0x456d08]
lea eax, [ebp + 0x134]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407540
test dl, dl
je 0x40753c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407540
add eax, 2
add ecx, 2
test dl, dl
jne 0x407520
xor eax, eax
jmp 0x407545
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40758e
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov eax, 1
jmp 0x40744c
mov ecx, dword [0x456d0c]
lea eax, [ebp + 0x134]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4075c0
test dl, dl
je 0x4075bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4075c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4075a0
xor eax, eax
jmp 0x4075c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4075ce
mov bl, 1
mov byte [ebp - 0x12], bl
mov ecx, dword [0x456cf8]
lea eax, [ebp + 0x134]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407600
test dl, dl
je 0x4075fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407600
add eax, 2
add ecx, 2
test dl, dl
jne 0x4075e0
xor eax, eax
jmp 0x407605
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40760e
mov bl, 1
mov byte [ebp - 0x12], bl
mov ecx, dword [0x456cfc]
lea eax, [ebp + 0x134]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407640
test dl, dl
je 0x40763c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407640
add eax, 2
add ecx, 2
test dl, dl
jne 0x407620
xor eax, eax
jmp 0x407645
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40764e
mov bl, 1
mov byte [ebp - 0x12], bl
cmp byte [ebp - 0x11], 0
jne 0x40765c
test bl, bl
jne 0x407549
xor bl, bl
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x11], bl
je 0x4077ec
mov ecx, dword [0x456d00]
lea eax, [ebp + 0x100]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407696
test dl, dl
je 0x407692
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407696
add eax, 2
add ecx, 2
test dl, dl
jne 0x407676
xor eax, eax
jmp 0x40769b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4076a4
mov bl, 1
mov byte [ebp - 0x25], bl
mov ecx, dword [0x456d04]
lea eax, [ebp + 0x100]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4076d0
test dl, dl
je 0x4076cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4076d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4076b0
xor eax, eax
jmp 0x4076d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4076de
mov bl, 1
mov byte [ebp - 0x25], bl
mov ecx, dword [0x456d08]
lea eax, [ebp + 0x100]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407710
test dl, dl
je 0x40770c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407710
add eax, 2
add ecx, 2
test dl, dl
jne 0x4076f0
xor eax, eax
jmp 0x407715
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407549
mov ecx, dword [0x456d0c]
lea eax, [ebp + 0x100]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407750
test dl, dl
je 0x40774c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407750
add eax, 2
add ecx, 2
test dl, dl
jne 0x407730
xor eax, eax
jmp 0x407755
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40775e
mov bl, 1
mov byte [ebp - 0x25], bl
mov ecx, dword [0x456cf8]
lea eax, [ebp + 0x100]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407790
test dl, dl
je 0x40778c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407790
add eax, 2
add ecx, 2
test dl, dl
jne 0x407770
xor eax, eax
jmp 0x407795
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40779e
mov bl, 1
mov byte [ebp - 0x25], bl
mov ecx, dword [0x456cfc]
lea eax, [ebp + 0x100]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4077d0
test dl, dl
je 0x4077cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4077d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4077b0
xor eax, eax
jmp 0x4077d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4077de
mov bl, 1
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x1d], 0
jne 0x4077ec
test bl, bl
jne 0x407549
cmp byte [ebp - 0x12], 0
je 0x4077fa
test bl, bl
jne 0x407549
lea ecx, [ebp]
lea eax, [ebp + 0x134]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407823
test dl, dl
je 0x40781f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407823
add eax, 2
add ecx, 2
test dl, dl
jne 0x407803
xor eax, eax
jmp 0x407828
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4071d0
lea ecx, [ebp]
lea eax, [ebp + 0x100]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407860
test dl, dl
je 0x40785c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407860
add eax, 2
add ecx, 2
test dl, dl
jne 0x407840
xor eax, eax
jmp 0x407865
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4071d0
lea ecx, [ebp]
mov eax, dword [0x456d00]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407895
test dl, dl
je 0x407891
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407895
add eax, 2
add ecx, 2
test dl, dl
jne 0x407875
xor eax, eax
jmp 0x40789a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407549
lea ecx, [ebp]
mov eax, dword [0x456d04]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4078d0
test dl, dl
je 0x4078cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4078d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4078b0
xor eax, eax
jmp 0x4078d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40791e
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov eax, 2
jmp 0x40744c
lea ecx, [ebp]
mov eax, dword [0x456d08]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407946
test dl, dl
je 0x407942
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407946
add eax, 2
add ecx, 2
test dl, dl
jne 0x407926
xor eax, eax
jmp 0x40794b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407994
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov eax, 3
jmp 0x40744c
lea ecx, [ebp]
mov eax, dword [0x456cf8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4079c0
test dl, dl
je 0x4079bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4079c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4079a0
xor eax, eax
jmp 0x4079c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40794f
lea ecx, [ebp]
mov eax, dword [0x456cfc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4079f1
test dl, dl
je 0x4079ed
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4079f1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4079d1
xor eax, eax
jmp 0x4079f6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407a3f
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov eax, 7
jmp 0x40744c
lea ecx, [ebp]
mov eax, dword [0x456d0c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x407a67
test dl, dl
je 0x407a63
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x407a67
add eax, 2
add ecx, 2
test dl, dl
jne 0x407a47
xor eax, eax
jmp 0x407a6c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407b0e
cmp dword [ebp - 0x5c], 5
je 0x4073ca
cmp byte [ebp - 0x1d], al
je 0x407abd
lea eax, [ebp + 0x134]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407a90
sub eax, edx
cmp eax, 0x17
jne 0x407abd
cmp byte [ebp + 0x139], 0x2d
jne 0x407abd
cmp byte [ebp + 0x13f], 0x2d
jne 0x407abd
cmp byte [ebp + 0x145], 0x2d
je 0x4071d0
cmp byte [ebp - 0x11], 0
je 0x4073ca
lea eax, [ebp + 0x100]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407ad0
sub eax, edx
cmp eax, 0x17
jne 0x4073ca
cmp byte [ebp + 0x105], 0x2d
jne 0x4073ca
cmp byte [ebp + 0x10b], 0x2d
jne 0x4073ca
cmp byte [ebp + 0x111], 0x2d
jne 0x4073ca
jmp 0x4071d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402120
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18]
call fcn.00402120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.0040e7a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.0040e7a0
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], vtable.CProtection.0
mov dword [ebp - 4], 0xffffffff
jmp 0x407447