Function at 0x10004340
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e8120
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x10144930]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], eax
mov dword [ebp - 4], 0
test ecx, ecx
je 0x1000445d
test eax, eax
je 0x1000445d
xor eax, eax
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x18], ax
mov dword [ebp - 0x4c], eax
mov dl, byte [ebp - 0x18]
mov bl, al
lea esp, [esp]
cmp eax, 6
jge 0x100043f4
test eax, eax
jne 0x100043c1
movzx ebx, byte [ecx]
and ebx, 0xfd
mov byte [ebp - 0x1c], bl
mov byte [ecx], bl
mov eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x100043a0
cmp eax, 4
jne 0x100043de
movzx edx, byte [ecx + 4]
xor edx, 0x80
mov byte [ebp - 0x18], dl
mov byte [ecx + 4], dl
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x100043a0
movzx edx, byte [ecx + eax]
mov byte [ebp + eax - 0x1c], dl
mov dl, byte [ebp - 0x18]
mov bl, byte [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x100043a0
movzx eax, byte [ebp - 0x17]
push eax
movzx ecx, dl
push ecx
movzx edx, byte [ebp - 0x19]
push edx
movzx eax, byte [ebp - 0x1a]
push eax
movzx ecx, byte [ebp - 0x1b]
push ecx
movzx edx, bl
push edx
push str.MAC_Address:____02x_02x_02x_02x_02x_02x_
mov ecx, 0x10152dd8
call fcn.1003f430
add esp, 0x1c
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x44]
lea edx, [ebp - 0x1c]
call fcn.100041f0
test al, al
jne 0x1000447d
push str.Fail_to_Get_decoding____
mov ecx, 0x10152dd8
call fcn.1003f430
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100c59be
mov esp, ebp
pop ebp
ret 4
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov dword [ebp - 0x50], ecx
cmp ecx, 7
jge 0x100044a5
movzx eax, byte [ebp + ecx - 0x44]
cdq
mov esi, 0xa
idiv esi
mov byte [ebp + ecx - 0x24], dl
add ecx, 1
jmp 0x10004487
movzx esi, byte [ebp - 0x1e]
movzx edi, byte [ebp - 0x20]
movzx ebx, byte [ebp - 0x22]
movzx eax, byte [ebp - 0x24]
cdq
mov ecx, 0xa
idiv ecx
mov ecx, edx
mov eax, ebx
cdq
mov ebx, 0xa
idiv ebx
add ecx, edx
mov eax, edi
cdq
idiv ebx
add ecx, edx
mov eax, esi
cdq
idiv ebx
add ecx, edx
lea ecx, [ecx + ecx*2]
movzx eax, byte [ebp - 0x23]
cdq
idiv ebx
add ecx, edx
movzx eax, byte [ebp - 0x21]
cdq
idiv ebx
add ecx, edx
movzx eax, byte [ebp - 0x1f]
cdq
idiv ebx
add ecx, edx
mov eax, 0xcccccccd
mul ecx
shr edx, 3
add edx, 1
lea eax, [edx + edx*4]
add eax, eax
sub eax, ecx
xor edx, edx
mov ecx, ebx
div ecx
mov byte [ebp - 0x1d], dl
movzx edx, dl
push edx
push esi
movzx eax, byte [ebp - 0x1f]
push eax
push edi
movzx eax, byte [ebp - 0x21]
push eax
movzx eax, byte [ebp - 0x22]
push eax
movzx eax, byte [ebp - 0x23]
push eax
movzx eax, byte [ebp - 0x24]
push eax
push str._d_d_d_d_d_d_d_d
mov eax, 0x1000
push eax
mov eax, dword [ebp - 0x48]
push eax
call fcn.100c5d3f
add esp, 0x2c
mov dword [ebp - 4], 0xffffffff
mov al, 1
jmp 0x1000445f