Function at 0x408000
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], edi
mov ebx, DirectSoundCreate
mov byte [ebp - 0x30], 0
mov byte [ebp - 0x2f], 8
mov byte [ebp - 0x2e], 0x10
mov byte [ebp - 0x2d], 0x18
mov byte [ebp - 0x2c], 0x20
mov byte [ebp - 0x2b], 0x28
mov byte [ebp - 0x2a], 0x30
mov byte [ebp - 0x29], 0x38
mov byte [ebp - 0x28], 0x40
mov byte [ebp - 0x27], 0x48
mov byte [ebp - 0x26], 0x50
mov byte [ebp - 0x25], 0x58
mov byte [ebp - 0x24], 0x60
mov byte [ebp - 0x23], 0x68
mov byte [ebp - 0x22], 0x70
mov byte [ebp - 0x21], 0x78
mov byte [ebp - 0x20], 0x80
mov byte [ebp - 0x1f], 0x88
mov byte [ebp - 0x1e], 0x90
mov byte [ebp - 0x1d], 0x98
mov byte [ebp - 0x1c], 0xa0
mov byte [ebp - 0x1b], 0xa8
mov byte [ebp - 0x1a], 0xb0
mov byte [ebp - 0x19], 0xb8
mov byte [ebp - 0x18], 0xc0
mov byte [ebp - 0x17], 0xc8
mov byte [ebp - 0x16], 0xd0
mov byte [ebp - 0x15], 0xd8
mov byte [ebp - 0x14], 0xe0
mov byte [ebp - 0x13], 0xe8
mov byte [ebp - 0x12], 0xf0
lea esi, [eax + 4]
mov dword [ebp - 8], esi
mov edx, dword [ebp - 4]
mov eax, ebx
and eax, edx
neg eax
sbb eax, eax
neg eax
shr ebx, 1
jne 0x4080bf
mov edx, dword [esi]
add esi, 4
mov dword [ebp - 4], edx
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
test eax, eax
je 0x4080e5
push 0x1e
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x2f]
push ecx
call sub.MSVCRT.dll_memmove
mov al, byte [esi]
not al
add esp, 0xc
mov byte [edi], al
inc edi
mov byte [ebp - 0x30], al
mov dword [ebp - 0xc], edi
inc esi
jmp 0x40809b
mov edx, dword [ebp - 4]
mov eax, ebx
and eax, edx
neg eax
sbb eax, eax
neg eax
shr ebx, 1
jne 0x408106
mov edx, dword [esi]
add esi, 4
mov dword [ebp - 4], edx
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
test eax, eax
jne 0x4081ed
mov edx, dword [ebp - 4]
mov eax, ebx
and eax, edx
neg eax
sbb eax, eax
neg eax
shr ebx, 1
jne 0x40812f
mov ecx, dword [esi]
add esi, 4
mov dword [ebp - 4], ecx
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
mov edx, dword [ebp - 4]
mov ecx, ebx
and ecx, edx
neg ecx
sbb ecx, ecx
neg ecx
lea edx, [eax + eax]
or ecx, edx
shr ebx, 1
jne 0x408155
mov eax, dword [esi]
add esi, 4
mov dword [ebp - 4], eax
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
mov edx, dword [ebp - 4]
mov eax, ebx
and eax, edx
neg eax
sbb eax, eax
neg eax
add ecx, ecx
or eax, ecx
shr ebx, 1
jne 0x40817a
mov edx, dword [esi]
add esi, 4
mov dword [ebp - 4], edx
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
mov edx, dword [ebp - 4]
mov ecx, ebx
and ecx, edx
neg ecx
sbb ecx, ecx
neg ecx
add eax, eax
or ecx, eax
shr ebx, 1
jne 0x40819f
mov edx, dword [esi]
add esi, 4
mov dword [ebp - 4], edx
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
mov edx, dword [ebp - 4]
mov eax, ebx
and eax, edx
neg eax
sbb eax, eax
neg eax
add ecx, ecx
or eax, ecx
shr ebx, 1
jne 0x4081c4
mov edx, dword [esi]
add esi, 4
mov dword [ebp - 4], edx
mov ebx, DirectSoundCreate
mov dword [ebp - 8], esi
mov cl, byte [ebp + eax - 0x30]
push eax
mov byte [edi], cl
lea eax, [ebp - 0x30]
mov byte [ebp + 0xf], cl
push eax
lea ecx, [ebp - 0x2f]
inc edi
push ecx
mov dword [ebp - 0xc], edi
call sub.MSVCRT.dll_memmove
mov dl, byte [ebp + 0xf]
add esp, 0xc
mov byte [ebp - 0x30], dl
jmp 0x40809e
xor eax, eax
mov ax, word [esi]
mov ecx, eax
and ecx, 0x3f
je 0x408234
shr eax, 6
or eax, 0xfffffc00
mov dword [ebp + 0xc], eax
mov eax, ecx
mov dword [ebp - 0x10], eax
pushfd
cld
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add esi, dword [ebp + 0xc]
rep movsb byte es:[edi], byte [esi]
popfd
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov eax, dword [ebp - 8]
add eax, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
mov esi, eax
mov edi, ecx
jmp 0x40809e
mov ecx, dword [ebp + 8]
mov eax, edi
pop edi
pop esi
sub eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret