Function at 0x470e07
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 0x470e2b
mov eax, dword [edi + 0x2c]
jmp 0x470e2e
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 0x470e5b
mov eax, dword [edi + 0x2c]
jmp 0x470e5e
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 0x470e8a
lea ecx, [esp + 0x14]
jmp 0x470e8c
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x470e97
mov eax, dword [edi + 0x2c]
jmp 0x470e9a
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 0x470ebc
mov eax, dword [edi + 0x2c]
jmp 0x470ebf
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 0x470eef
xor ecx, ecx
cmp dword [esi + 0x48], ecx
jle 0x470ef3
lea ecx, [esp + 0x14]
cmp dword [edi + 0x40], 0x10
jb 0x470efe
mov eax, dword [edi + 0x2c]
jmp 0x470f01
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 0x470f23
mov eax, dword [edi + 0x2c]
jmp 0x470f26
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 0x470f48
mov eax, dword [edi + 0x2c]
jmp 0x470f4b
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 0x470f6d
mov eax, dword [edi + 0x2c]
jmp 0x470f70
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 0x470f94
mov eax, dword [edi + 0x2c]
jmp 0x470f97
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 0x470fd2
mov ecx, dword [edi + 0x2c]
jmp 0x470fd5
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 0x471012
mov ecx, dword [edi + 0x2c]
jmp 0x471015
lea ecx, [edi + 0x2c]
push ecx
push eax
push str.DirCacheTime
push ebx
call ebp
mov eax, dword [esi + 0x24]
cmp eax, 1
jne 0x47102e
mov eax, str.Exclusive
jmp 0x47103b
dec eax
dec eax
neg eax
sbb eax, eax
not eax
and eax, str.Shared
cmp dword [edi + 0x40], 0x10
jb 0x471046
mov ecx, dword [edi + 0x2c]
jmp 0x471049
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 0x47106d
mov ecx, dword [edi + 0x2c]
jmp 0x471070
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 0x4710ab
cmp dword [esi + 0x90], 0x10
jb 0x4710a6
mov ecx, dword [esi + 0x7c]
jmp 0x4710ad
lea ecx, [esi + 0x7c]
jmp 0x4710ad
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4710b8
mov eax, dword [edi + 0x2c]
jmp 0x4710bb
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 0x4710dd
mov eax, dword [edi + 0x2c]
jmp 0x4710e0
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 0x47111b
mov ecx, dword [edi + 0x2c]
jmp 0x47111e
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 0x471159
mov ecx, dword [edi + 0x2c]
jmp 0x47115c
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 0x471199
mov ecx, dword [edi + 0x2c]
jmp 0x47119c
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 0x4711be
mov eax, dword [edi + 0x2c]
jmp 0x4711c1
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 0x4711e3
mov eax, dword [edi + 0x2c]
jmp 0x4711e6
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 0x471208
mov eax, dword [edi + 0x2c]
jmp 0x47120b
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 0x47123f
cmp eax, 0x8000
je 0x47123f
lea ecx, [esp + 0x14]
jmp 0x471241
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47124c
mov eax, dword [edi + 0x2c]
jmp 0x47124f
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 0x471283
cmp eax, 0x8000
je 0x471283
lea ecx, [esp + 0x14]
jmp 0x471285
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x471290
mov eax, dword [edi + 0x2c]
jmp 0x471293
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 0x4712bf
lea ecx, [esp + 0x14]
jmp 0x4712c1
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x4712cc
mov eax, dword [edi + 0x2c]
jmp 0x4712cf
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 0x4712f3
mov eax, dword [edi + 0x2c]
jmp 0x4712f6
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 0x471322
lea ecx, [esp + 0x14]
jmp 0x471324
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47132f
mov eax, dword [edi + 0x2c]
jmp 0x471332
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 0x47135e
lea ecx, [esp + 0x14]
jmp 0x471360
xor ecx, ecx
cmp dword [edi + 0x40], 0x10
jb 0x47136b
mov eax, dword [edi + 0x2c]
jmp 0x47136e
lea eax, [edi + 0x2c]
push eax
push ecx
push str.PASVPortRange
push ebx
call ebp
cmp byte [esi + 0xc], 0
je 0x471385
mov esi, str.1_la
jmp 0x4713c0
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 0x4713c0
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 0x4713cb
mov edi, dword [edi + 0x2c]
jmp 0x4713ce
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