Function at 0x403610
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x208
push ebx
push ebp
mov ebp, dword [esp + 0x220]
push esi
push edi
xor edi, edi
xor ecx, ecx
mov ebx, 3
mov esi, 1
nop
mov eax, ecx
cdq
idiv ebp
mov eax, dword [esp + 0x224]
mov byte [esp + ecx + 0x18], cl
mov dl, byte [edx + eax]
mov byte [esp + ecx + 0x118], dl
mov al, cl
inc al
mov byte [esp + esi + 0x18], al
mov eax, esi
cdq
idiv ebp
mov eax, dword [esp + 0x224]
add esi, 4
mov dl, byte [edx + eax]
mov al, cl
add al, 2
mov byte [esp + ecx + 0x1a], al
mov byte [esp + ecx + 0x119], dl
lea eax, [ebx - 1]
cdq
idiv ebp
mov eax, dword [esp + 0x224]
mov dl, byte [edx + eax]
mov al, cl
add al, 3
mov byte [esp + ecx + 0x1b], al
mov byte [esp + ecx + 0x11a], dl
mov eax, ebx
cdq
idiv ebp
mov eax, dword [esp + 0x224]
add ecx, 4
add ebx, 4
cmp esi, 0x101
mov dl, byte [edx + eax]
mov byte [esp + ebx + 0x114], dl
jl 0x403630
xor esi, esi
lea esp, [esp]
mov cl, byte [esp + esi + 0x18]
movzx eax, byte [esp + esi + 0x118]
movzx edx, cl
add eax, edi
add eax, edx
and eax, 0x800000ff
jns 0x4036e1
dec eax
or eax, 0xffffff00
inc eax
mov dl, byte [esp + eax + 0x18]
mov byte [esp + eax + 0x18], cl
mov cl, byte [esp + esi + 0x19]
mov byte [esp + esi + 0x18], dl
movzx edx, byte [esp + esi + 0x119]
movzx edi, cl
add edx, eax
add edi, edx
mov eax, edi
and eax, 0x800000ff
jns 0x403710
dec eax
or eax, 0xffffff00
inc eax
mov dl, byte [esp + eax + 0x18]
mov byte [esp + eax + 0x18], cl
mov cl, byte [esp + esi + 0x1a]
mov byte [esp + esi + 0x19], dl
movzx edx, byte [esp + esi + 0x11a]
movzx edi, cl
add edx, eax
add edi, edx
mov eax, edi
and eax, 0x800000ff
jns 0x40373f
dec eax
or eax, 0xffffff00
inc eax
mov dl, byte [esp + eax + 0x18]
mov byte [esp + eax + 0x18], cl
mov cl, byte [esp + esi + 0x1b]
mov byte [esp + esi + 0x1a], dl
movzx edx, byte [esp + esi + 0x11b]
movzx edi, cl
add edx, eax
add edi, edx
and edi, 0x800000ff
jns 0x40376e
dec edi
or edi, 0xffffff00
inc edi
mov al, byte [esp + edi + 0x18]
mov byte [esp + edi + 0x18], cl
mov byte [esp + esi + 0x1b], al
add esi, 4
cmp esi, 0x100
jl 0x4036c0
mov eax, dword [esp + 0x220]
xor edi, edi
test eax, eax
jle 0x40388c
mov ebx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x21c]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
jmp 0x4037c0
inc esi
and esi, 0x800000ff
jns 0x4037d1
dec esi
or esi, 0xffffff00
inc esi
movzx eax, byte [esp + esi + 0x18]
add edi, eax
and edi, 0x800000ff
jns 0x4037e8
dec edi
or edi, 0xffffff00
inc edi
push 0
push 0
push 0x2fd
push 0
call ebp
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x403818
call dword [sym.imp.USER32.dll_InSendMessage]
test eax, eax
je 0x403845
push 0
push 0
push 0x312
push 0
call ebp
jmp 0x403845
push 0
push 0
push 0
push 0
push 0x43
push 0xcd
push 0x2fd
push 0x41
push 0x800000
push str.dSIhr4oEqS4M9lEdmo1puOPhqnDBR6L
push str.dSIhr4oEqS4M9lEdmo1puOPhqnDBR6L
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov al, byte [esp + edi + 0x18]
mov cl, byte [esp + esi + 0x18]
mov byte [esp + edi + 0x18], cl
mov byte [esp + esi + 0x18], al
movzx edx, byte [esp + edi + 0x18]
movzx eax, al
add edx, eax
and edx, 0x800000ff
jns 0x40386f
dec edx
or edx, 0xffffff00
inc edx
mov cl, byte [esp + edx + 0x18]
mov edx, dword [esp + 0x14]
xor cl, byte [edx + ebx]
mov eax, dword [esp + 0x10]
mov byte [ebx], cl
inc ebx
dec eax
mov dword [esp + 0x10], eax
jne 0x4037c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret