Function at 0x471416
Capabilities:
Delete registry value

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov esi, eax
mov cl, byte [esi]
neg cl
sbb ecx, ecx
not ecx
and ecx, 0x4a4924
cmp dword [edi + 0x40], 0x10
jb 0x47143a
mov eax, dword [edi + 0x2c]
jmp 0x47143d
lea eax, [edi + 0x2c]
mov ebp, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push eax
push ecx
push str.Security
mov ebx, str.GLOBAL
push ebx
call ebp
mov cl, byte [esi + 0xb]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x47146a
mov eax, dword [edi + 0x2c]
jmp 0x47146d
lea eax, [edi + 0x2c]
push eax
push ecx
push str.UseAllCiphers
push ebx
call ebp
push dword [esi + 0x18]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
cmp dword [esi + 0x18], 0
jl 0x471499
lea ecx, [esp + 0x14]
jmp 0x47149b
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4714a6
mov eax, dword [edi + 0x2c]
jmp 0x4714a9
lea eax, [edi + 0x2c]
push eax
push ecx
push str.MaxNrUsers
push ebx
call ebp
mov cl, byte [esi + 2]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x4714cb
mov eax, dword [edi + 0x2c]
jmp 0x4714ce
lea eax, [edi + 0x2c]
push eax
push ecx
push str.CheckAnonPass
push ebx
call ebp
push dword [esi + 0x48]
lea eax, [esp + 0x18]
push dword [esi + 0x44]
push str._d_d
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x10
cmp dword [esi + 0x44], 0
jg 0x4714fe
xor ecx, ecx
cmp dword [esi + 0x48], ecx
jle 0x471502
lea ecx, [esp + 0x14]
cmp dword [edi + 0x40], 0x10
jb 0x47150d
mov eax, dword [edi + 0x2c]
jmp 0x471510
lea eax, [edi + 0x2c]
push eax
push ecx
push str.SpeedLimit
push ebx
call ebp
mov cl, byte [esi + 3]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x471532
mov eax, dword [edi + 0x2c]
jmp 0x471535
lea eax, [edi + 0x2c]
push eax
push ecx
push str.DeletePartialUploads
push ebx
call ebp
mov cl, byte [esi + 5]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x471557
mov eax, dword [edi + 0x2c]
jmp 0x47155a
lea eax, [edi + 0x2c]
push eax
push ecx
push str.BlockFTPBounceAttack
push ebx
call ebp
mov cl, byte [esi + 4]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x47157c
mov eax, dword [edi + 0x2c]
jmp 0x47157f
lea eax, [edi + 0x2c]
push eax
push ecx
push str.BlockAntiTimeOut
push ebx
call ebp
mov cl, byte [esi + 6]
neg cl
sbb ecx, ecx
not ecx
and ecx, 0x4a4924
cmp dword [edi + 0x40], 0x10
jb 0x4715a3
mov eax, dword [edi + 0x2c]
jmp 0x4715a6
lea eax, [edi + 0x2c]
push eax
push ecx
push str.DirCacheEnable
push ebx
call ebp
push dword [esi + 0x1c]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x1c]
sub eax, 0x19
add esp, 0xc
neg eax
sbb eax, eax
lea ecx, [esp + 0x14]
and eax, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4715e1
mov ecx, dword [edi + 0x2c]
jmp 0x4715e4
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.DirCacheSize
push ebx
call ebp
push dword [esi + 0x20]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x20]
sub eax, 0x258
add esp, 0xc
neg eax
sbb eax, eax
lea ecx, [esp + 0x14]
and eax, ecx
cmp dword [edi + 0x40], 0x10
jb 0x471621
mov ecx, dword [edi + 0x2c]
jmp 0x471624
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.DirCacheTime
push ebx
call ebp
mov eax, dword [esi + 0x24]
cmp eax, 1
jne 0x47163d
mov eax, str.Exclusive
jmp 0x47164a
dec eax
dec eax
neg eax
sbb eax, eax
not eax
and eax, str.Shared
cmp dword [edi + 0x40], 0x10
jb 0x471655
mov ecx, dword [edi + 0x2c]
jmp 0x471658
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.OpenFilesUploadMode
push ebx
call ebp
mov eax, dword [esi + 0x28]
dec eax
neg eax
sbb eax, eax
not eax
and eax, str.Exclusive
cmp dword [edi + 0x40], 0x10
jb 0x47167c
mov ecx, dword [edi + 0x2c]
jmp 0x47167f
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.OpenFilesDownloadMode
push ebx
call ebp
lea ecx, [esi + 0x74]
neg ecx
lea eax, [esi + 0x78]
sbb ecx, ecx
and ecx, eax
push str.rw_rw_rw_
push ecx
call dword [sym.imp.MSVCP71.dll_bool___cdecl_std::operator__char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
test al, al
pop ecx
pop ecx
je 0x4716ba
cmp dword [esi + 0x90], 0x10
jb 0x4716b5
mov ecx, dword [esi + 0x7c]
jmp 0x4716bc
lea ecx, [esi + 0x7c]
jmp 0x4716bc
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4716c7
mov eax, dword [edi + 0x2c]
jmp 0x4716ca
lea eax, [edi + 0x2c]
push eax
push ecx
push str.DirListMask
push ebx
call ebp
mov cl, byte [esi + 1]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x4716ec
mov eax, dword [edi + 0x2c]
jmp 0x4716ef
lea eax, [edi + 0x2c]
push eax
push ecx
push str.AntiHammer
push ebx
call ebp
push dword [esi + 0x2c]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x2c]
sub eax, 0x1e
add esp, 0xc
neg eax
sbb eax, eax
lea ecx, [esp + 0x14]
and eax, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47172a
mov ecx, dword [edi + 0x2c]
jmp 0x47172d
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.AntiHammerWindow
push ebx
call ebp
push dword [esi + 0x30]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x30]
sub eax, 4
add esp, 0xc
neg eax
sbb eax, eax
lea ecx, [esp + 0x14]
and eax, ecx
cmp dword [edi + 0x40], 0x10
jb 0x471768
mov ecx, dword [edi + 0x2c]
jmp 0x47176b
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.AntiHammerTries
push ebx
call ebp
push dword [esi + 0x34]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x34]
sub eax, 0x12c
add esp, 0xc
neg eax
sbb eax, eax
lea ecx, [esp + 0x14]
and eax, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4717a8
mov ecx, dword [edi + 0x2c]
jmp 0x4717ab
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.AntiHammerBlock
push ebx
call ebp
mov cl, byte [esi + 8]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x4717cd
mov eax, dword [edi + 0x2c]
jmp 0x4717d0
lea eax, [edi + 0x2c]
push eax
push ecx
push str.SocketInlineOOB
push ebx
call ebp
mov cl, byte [esi + 9]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x4717f2
mov eax, dword [edi + 0x2c]
jmp 0x4717f5
lea eax, [edi + 0x2c]
push eax
push ecx
push str.SocketKeepAlive
push ebx
call ebp
mov cl, byte [esi + 0xa]
neg cl
sbb ecx, ecx
and ecx, str.1_la
cmp dword [edi + 0x40], 0x10
jb 0x471817
mov eax, dword [edi + 0x2c]
jmp 0x47181a
lea eax, [edi + 0x2c]
push eax
push ecx
push str.SocketNoNagle
push ebx
call ebp
push dword [esi + 0x38]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x38]
add esp, 0xc
test eax, eax
jle 0x47184e
cmp eax, 0x8000
je 0x47184e
lea ecx, [esp + 0x14]
jmp 0x471850
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47185b
mov eax, dword [edi + 0x2c]
jmp 0x47185e
lea eax, [edi + 0x2c]
push eax
push ecx
push str.SocketRcvBuffer
push ebx
call ebp
push dword [esi + 0x3c]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
mov eax, dword [esi + 0x3c]
add esp, 0xc
test eax, eax
jle 0x471892
cmp eax, 0x8000
je 0x471892
lea ecx, [esp + 0x14]
jmp 0x471894
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47189f
mov eax, dword [edi + 0x2c]
jmp 0x4718a2
lea eax, [edi + 0x2c]
push eax
push ecx
push str.SocketSndBuffer
push ebx
call ebp
push dword [esi + 0x40]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
cmp dword [esi + 0x40], 0
jle 0x4718ce
lea ecx, [esp + 0x14]
jmp 0x4718d0
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4718db
mov eax, dword [edi + 0x2c]
jmp 0x4718de
lea eax, [edi + 0x2c]
push eax
push ecx
push str.PacketTimeOut
push ebx
call ebp
mov cl, byte [esi + 7]
neg cl
sbb ecx, ecx
not ecx
and ecx, 0x4a4924
cmp dword [edi + 0x40], 0x10
jb 0x471902
mov eax, dword [edi + 0x2c]
jmp 0x471905
lea eax, [edi + 0x2c]
push eax
push ecx
push str.PacketTimeOutDynamic
push ebx
call ebp
push dword [esi + 0x10]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
cmp dword [esi + 0x10], 0
jle 0x471931
lea ecx, [esp + 0x14]
jmp 0x471933
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47193e
mov eax, dword [edi + 0x2c]
jmp 0x471941
lea eax, [edi + 0x2c]
push eax
push ecx
push str.PASVPortStart
push ebx
call ebp
push dword [esi + 0x14]
lea eax, [esp + 0x18]
push 0x4a4e30
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
cmp dword [esi + 0x14], 0
jle 0x47196d
lea ecx, [esp + 0x14]
jmp 0x47196f
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47197a
mov eax, dword [edi + 0x2c]
jmp 0x47197d
lea eax, [edi + 0x2c]
push eax
push ecx
push str.PASVPortRange
push ebx
call ebp
cmp byte [esi + 0xc], 0
je 0x471994
mov esi, str.1_la
jmp 0x4719cf
lea eax, [esp + 0x10]
push eax
push 2
push 0
push str.SOFTWARECat_SoftServ_U
push reloc.WS2_32.dll_bind
mov esi, 0x4a4924
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4719cf
push str.AskedUPnPConfigure
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [edi + 0x40], 0x10
jb 0x4719da
mov edi, dword [edi + 0x2c]
jmp 0x4719dd
add edi, 0x2c
push edi
push esi
push str.UseUPnP
push ebx
call ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret