Function at 0x40a4f0
Capabilities:
Contain obfuscated stackstrings
Delete file
Move file
Set registry value

Disassembly:
sub esp, 0x280
lea eax, [esp + 0x17c]
push ebx
push ebp
push esi
push edi
push 0x422ed4
push str._sqedit.dll
push eax
call fcn.00411c30
mov al, byte [0x41d339]
xor ebx, ebx
add esp, 0xc
cmp al, bl
je 0x40a540
lea ecx, [esp + 0x88]
push 0x25
push ecx
call fcn.004026b0
add esp, 8
test al, al
jne 0x40a589
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
lea edx, [esp + 0x88]
push edx
call fcn.00402c20
add esp, 4
test al, al
je 0x40aa29
mov edi, str._system
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x88]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.qedit.dll
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x88]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [esp + 0x8c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00411ce0
add esp, 8
cmp eax, 0xffffffff
jne 0x40a5f7
lea ecx, [esp + 0x88]
lea edx, [esp + 0x18c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x40a60d
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x280
ret
lea eax, [esp + 0x18c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x40aa29
lea ecx, [esp + 0x84]
lea edx, [esp + 0x10]
push ecx
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push edx
push ebx
push 0x20006
push ebx
push ebx
push ebx
push str.CLSIDC1F400A0_3F08_11D3_9F0B_006008039E37
push 0x80000000
call ebp
test eax, eax
jne 0x40aa29
mov edi, str.Sample_Grabber
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
not ecx
push ecx
push str.Sample_Grabber
push 1
push ebx
push ebx
push eax
call esi
test eax, eax
je 0x40a67c
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x280
ret
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x84]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push 0x20006
push ebx
push ebx
push ebx
push str.CLSIDC1F400A0_3F08_11D3_9F0B_006008039E37InprocServer32
push 0x80000000
call ebp
test eax, eax
jne 0x40a739
lea edi, [esp + 0x88]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x88]
not ecx
push ecx
push edx
push 1
push ebx
push ebx
push eax
call esi
test eax, eax
je 0x40a6ef
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x280
ret
mov edi, str.Both
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push str.Both
push 1
push ebx
push str.ThreadingModel
push edx
call esi
test eax, eax
je 0x40a72e
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x280
ret
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x84]
lea eax, [esp + 0x10]
push edx
push eax
push ebx
push 0x20006
push ebx
push ebx
push ebx
push str.CLSID083863F1_70DE_11d0_BD40_00A0C911CE86InstanceC1F400A0_3F08_11D3_9F0B_006008039E37
push 0x80000000
call ebp
test eax, eax
jne 0x40aa11
mov edi, str.C1F400A0_3F08_11D3_9F0B_006008039E37
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x14]
push str.C1F400A0_3F08_11D3_9F0B_006008039E37
push 1
push ebx
push str.CLSID
push ecx
call esi
test eax, eax
jne 0x40aa1e
mov al, 2
mov dl, 0x30
mov byte [esp + 0x14], al
mov byte [esp + 0x1c], al
mov cl, 0x33
mov al, 0x60
mov byte [esp + 0x15], bl
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], bl
mov byte [esp + 0x18], bl
mov byte [esp + 0x19], bl
mov byte [esp + 0x1a], 0x20
mov byte [esp + 0x1b], bl
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bl
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], bl
mov byte [esp + 0x22], bl
mov byte [esp + 0x23], bl
mov byte [esp + 0x24], dl
mov byte [esp + 0x25], 0x70
mov byte [esp + 0x26], 0x69
mov byte [esp + 0x27], cl
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], 1
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3d], 0x74
mov byte [esp + 0x3e], 0x79
mov byte [esp + 0x3f], cl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], bl
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], al
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], al
mov byte [esp + 0x49], bl
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4c], 0x31
mov byte [esp + 0x4d], 0x70
mov byte [esp + 0x4e], 0x69
mov byte [esp + 0x4f], cl
mov byte [esp + 0x50], 8
mov byte [esp + 0x51], bl
mov byte [esp + 0x52], bl
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], bl
mov byte [esp + 0x55], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], 1
mov byte [esp + 0x59], bl
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5b], bl
mov byte [esp + 0x5c], bl
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x6c], al
mov byte [esp + 0x70], al
lea eax, [esp + 0x14]
push 0x70
push eax
mov byte [esp + 0x6f], cl
mov ecx, dword [esp + 0x18]
push 3
push ebx
push str.FilterData
push ecx
mov byte [esp + 0x79], bl
mov byte [esp + 0x7a], bl
mov byte [esp + 0x7b], bl
mov byte [esp + 0x7c], dl
mov byte [esp + 0x7d], 0x74
mov byte [esp + 0x7e], 0x79
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], bl
mov byte [esp + 0x82], bl
mov byte [esp + 0x83], bl
mov byte [esp + 0x85], bl
mov byte [esp + 0x86], bl
mov byte [esp + 0x87], bl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x8c], bl
mov byte [esp + 0x8d], bl
mov byte [esp + 0x8e], bl
mov byte [esp + 0x8f], bl
mov byte [esp + 0x90], bl
mov byte [esp + 0x91], bl
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x96], bl
mov byte [esp + 0x97], bl
mov byte [esp + 0x98], bl
mov byte [esp + 0x99], bl
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], bl
call esi
test eax, eax
jne 0x40aa1e
mov edi, str.SampleGrabber
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x10]
not ecx
push ecx
push str.SampleGrabber
push 1
push ebx
push str.FriendlyName
push eax
call esi
test eax, eax
je 0x40aa06
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x280
ret
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x280
ret
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x280
ret