Function at 0x47ce70
Capabilities:
Create process on windows
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53afa4
mov eax, dword fs:[0]
push eax
sub esp, 0x3f0
mov eax, dword [0x5954a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3c0], ecx
lea eax, [ebp - 0x21c]
push eax
mov ecx, dword [ebp - 0x3c0]
call fcn.0047d7a0
mov dword [ebp - 4], 0
push 0x54b550
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x230]
push edx
call fcn.0044e7e0
add esp, 0xc
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x36c], eax
push str.ODM_File
mov ecx, dword [ebp - 0x36c]
push ecx
push 0x54b534
mov edx, dword [ebp - 0x21c]
push edx
push str..odm
mov ecx, dword [ebp - 0x3c0]
call fcn.0047d4f0
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x374], eax
push 0x5c
mov ecx, dword [ebp - 0x374]
push ecx
call fcn.004f8f45
add esp, 8
mov dword [ebp - 0x370], eax
cmp dword [ebp - 0x370], 0
jne 0x47cf45
mov dword [ebp - 0x3c4], 0xffffffff
jmp 0x47cf59
mov edx, dword [ebp - 0x370]
sub edx, dword [ebp - 0x21c]
sar edx, 1
mov dword [ebp - 0x3c4], edx
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x22c]
add ecx, 1
push ecx
lea edx, [ebp - 0x234]
push edx
lea ecx, [ebp - 0x21c]
call fcn.0044e740
mov byte [ebp - 4], 2
push str.esafenet_cdgout_exe32_20110929
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
je 0x47cfbd
mov eax, dword [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x224], 0
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call fcn.0047afc0
add esp, 4
mov dword [ebp - 0x238], 0
lea ecx, [ebp - 0x238]
push ecx
call fcn.00401470
add esp, 4
test eax, eax
je 0x47d0b8
push str.__Error_CryptDiskGetNumberOfDevices_
call fcn.0047c040
add esp, 4
lea edx, [ebp - 0x340]
push edx
mov eax, dword [ebp - 0x238]
push eax
call fcn.0047c5d0
add esp, 8
mov dword [ebp - 0x344], eax
cmp dword [ebp - 0x344], 0
jne 0x47d037
push str.Error_GetExistDeviceLetter...
call fcn.0047c040
add esp, 4
xor ecx, ecx
mov word [ebp - 0x33c], cx
push 0xfe
push 0
lea edx, [ebp - 0x33a]
push edx
call fcn.004f8090
add esp, 0xc
mov eax, dword [ebp - 0x340]
push eax
push 0x54b3c8
lea ecx, [ebp - 0x33c]
push ecx
call fcn.00401030
add esp, 0xc
lea edx, [ebp - 0x33c]
push edx
call fcn.004f810a
add esp, 4
test eax, eax
jbe 0x47d0b8
push 1
lea eax, [ebp - 0x33c]
push eax
call fcn.0040a5a0
add esp, 8
mov dword [ebp - 0x348], eax
cmp dword [ebp - 0x348], 0
je 0x47d0b8
lea ecx, [ebp - 0x33c]
push ecx
push str.Error_UnMountImg___s_...
call fcn.0047c040
add esp, 8
push 0
push 0
call fcn.004039d0
add esp, 8
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0
jne 0x47d0e0
push str.Error_CryptDiskUninstallDriver...
call fcn.0047c040
add esp, 4
xor edx, edx
mov word [ebp - 0x214], dx
push 0x1fe
push 0
lea eax, [ebp - 0x212]
push eax
call fcn.004f8090
add esp, 0xc
push 0x54b534
push str._sShellOpenCommand
lea ecx, [ebp - 0x214]
push ecx
call fcn.00401030
add esp, 0xc
lea edx, [ebp - 0x214]
push edx
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
push 0x54b534
push 0x54b568
lea eax, [ebp - 0x214]
push eax
call fcn.00401030
add esp, 0xc
lea ecx, [ebp - 0x214]
push ecx
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea ecx, [ebp - 0x220]
call fcn.0044f320
mov byte [ebp - 4], 3
call fcn.0047bee0
test eax, eax
je 0x47d288
lea edx, [ebp - 0x234]
push edx
push 0x546398
lea eax, [ebp - 0x34c]
push eax
call fcn.0046fd10
add esp, 0xc
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x3cc], ecx
mov byte [ebp - 4], 4
push str.OdmIconReplace64.dll
mov edx, dword [ebp - 0x3cc]
push edx
lea eax, [ebp - 0x350]
push eax
call fcn.0044e7e0
add esp, 0xc
mov dword [ebp - 0x3d0], eax
mov ecx, dword [ebp - 0x3d0]
mov dword [ebp - 0x3d4], ecx
mov byte [ebp - 4], 5
push 0x546398
mov edx, dword [ebp - 0x3d4]
push edx
lea eax, [ebp - 0x354]
push eax
call fcn.0044e7e0
add esp, 0xc
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x3d8]
mov dword [ebp - 0x3dc], ecx
mov byte [ebp - 4], 6
push str.__u__s
mov edx, dword [ebp - 0x3dc]
push edx
lea eax, [ebp - 0x358]
push eax
call fcn.0044e7e0
add esp, 0xc
mov dword [ebp - 0x3e0], eax
mov ecx, dword [ebp - 0x3e0]
mov dword [ebp - 0x384], ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x384]
push edx
lea ecx, [ebp - 0x220]
call fcn.0044f9d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x358]
call fcn.0044f990
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x354]
call fcn.0044f990
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x350]
call fcn.0044f990
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x34c]
call fcn.0044f990
jmp 0x47d39a
lea eax, [ebp - 0x234]
push eax
push 0x546398
lea ecx, [ebp - 0x35c]
push ecx
call fcn.0046fd10
add esp, 0xc
mov dword [ebp - 0x3e4], eax
mov edx, dword [ebp - 0x3e4]
mov dword [ebp - 0x3e8], edx
mov byte [ebp - 4], 8
push str.OdmIconReplace.dll
mov eax, dword [ebp - 0x3e8]
push eax
lea ecx, [ebp - 0x360]
push ecx
call fcn.0044e7e0
add esp, 0xc
mov dword [ebp - 0x3ec], eax
mov edx, dword [ebp - 0x3ec]
mov dword [ebp - 0x3f0], edx
mov byte [ebp - 4], 9
push 0x546398
mov eax, dword [ebp - 0x3f0]
push eax
lea ecx, [ebp - 0x364]
push ecx
call fcn.0044e7e0
add esp, 0xc
mov dword [ebp - 0x3f4], eax
mov edx, dword [ebp - 0x3f4]
mov dword [ebp - 0x3f8], edx
mov byte [ebp - 4], 0xa
push str.__u__s
mov eax, dword [ebp - 0x3f8]
push eax
lea ecx, [ebp - 0x368]
push ecx
call fcn.0044e7e0
add esp, 0xc
mov dword [ebp - 0x3fc], eax
mov edx, dword [ebp - 0x3fc]
mov dword [ebp - 0x398], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x398]
push eax
lea ecx, [ebp - 0x220]
call fcn.0044f9d0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x368]
call fcn.0044f990
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x364]
call fcn.0044f990
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x360]
call fcn.0044f990
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x35c]
call fcn.0044f990
mov ecx, dword [ebp - 0x220]
mov dword [ebp - 0x3ac], ecx
push 0
push 0
mov edx, dword [ebp - 0x3ac]
push edx
push str.regsvr32.exe
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x220]
call fcn.0044f990
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x234]
call fcn.0044f990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x230]
call fcn.0044f990
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x21c]
call fcn.0044f990
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f8124
mov esp, ebp
pop ebp
ret