Function at 0x10004250
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
sub esp, 0x50
mov eax, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x44], ecx
add eax, 0x1f
mov dword [esp + 0x48], eax
mov eax, dword [0x10095038]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
add eax, 0x6e52e6b9
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
xor eax, eax
cmp ecx, 1
mov dword [esp + 0x34], eax
je 0x10004a9b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x30], eax
mov dl, byte [edx + eax]
mov byte [esp + 0x12], dl
mov esi, 0x1f
xor edx, edx
div esi
mov al, byte [esp + 0x12]
mov bl, byte [ecx + edx]
mov bh, al
xor bh, 0xff
and bh, 0xff
mov dl, 0xff
xor dl, 0xff
mov cl, al
and cl, dl
or bh, cl
xor bh, 0xff
xor bh, 0xff
and bh, 0xff
mov cl, 0xff
xor cl, 0xff
and cl, 0xff
mov dl, 0xff
xor dl, 0xff
and dl, 0xff
or cl, dl
xor cl, 0xff
mov dh, al
xor dh, cl
and dh, al
mov al, bh
xor al, 0xff
mov dl, dh
xor dl, 0xff
mov cl, 0xff
xor cl, 0x16
mov ah, al
and ah, 0x16
and bh, cl
mov ch, dl
and ch, 0x16
and dh, cl
or ah, bh
or ch, dh
xor ah, ch
or al, dl
xor al, 0xff
or cl, 0x16
and al, cl
or ah, al
mov al, 0xff
xor al, 0xfd
and al, 0x8a
mov dl, 0xff
xor dl, 0x8a
mov ch, dl
and ch, 0xfd
mov cl, 0xff
xor cl, 0xff
and cl, 0x8a
and dl, 0xff
or al, ch
or cl, dl
xor al, cl
mov bh, ah
xor bh, 0xff
and bh, 0xb
mov dl, 0xff
xor dl, 0xb
and ah, dl
mov cl, 0xff
xor cl, 0xff
and cl, 0xb
and dl, 0xff
or bh, ah
or cl, dl
xor bh, cl
mov cl, 0xff
xor cl, 0x6e
and cl, 0x68
mov ah, 0xff
xor ah, 0x68
mov ch, ah
and ch, 0x6e
mov dl, 0xff
xor dl, 0xff
and dl, 0x68
and ah, 0xff
or cl, ch
or dl, ah
xor cl, dl
mov byte [esp + 0xa], cl
mov cl, al
xor cl, 0xff
mov ch, bh
xor ch, 0xff
mov ah, 0xff
xor ah, 0xcd
mov dl, cl
and dl, 0xcd
and al, ah
mov dh, ch
and dh, 0xcd
and bh, ah
or dl, al
mov al, byte [esp + 0xa]
or dh, bh
xor dl, dh
or cl, ch
xor cl, 0xff
or ah, 0xcd
and cl, ah
or dl, cl
mov cl, al
and cl, 0x6e
xor al, 0x6e
or cl, al
mov al, dl
xor al, 0xff
and al, 0xff
mov ah, 0xff
xor ah, 0xff
and dl, ah
or al, dl
xor cl, 0xff
mov dh, al
xor dh, cl
and dh, al
mov al, 0xff
xor al, 0xfd
and al, 0x25
mov dl, 0xff
xor dl, 0x25
mov ah, dl
and ah, 0xfd
mov cl, 0xff
xor cl, 0xff
and cl, 0x25
and dl, 0xff
or al, ah
or cl, dl
xor al, cl
xor al, 0xff
xor al, 0x1f
and al, 0x1f
mov byte [esp + 0xb], al
mov dl, 0xff
xor dl, 0x1f
and dl, 0xf7
mov cl, 0xff
xor cl, 0xf7
mov ah, cl
and ah, 0x1f
mov al, 0xff
xor al, 0xff
and al, 0xf7
and cl, 0xff
or dl, ah
or al, cl
xor dl, al
mov cl, 0xff
xor cl, 0xfd
mov ah, dl
xor ah, 0xff
mov al, 0xff
xor al, 0xb8
or cl, ah
or al, 0xb8
xor cl, 0xff
and cl, al
mov ah, 0xff
xor ah, 0xff
and ah, 0x17
mov bh, 0xff
xor bh, 0x17
mov al, bh
and al, 0xff
mov ch, 0xff
xor ch, 0xff
and ch, 0x17
and bh, 0xff
or ah, al
mov al, byte [esp + 0xb]
or ch, bh
xor ah, ch
xor ah, 0xff
mov bh, 0xff
xor bh, 0x1f
mov ch, 0xff
xor ch, 0x1b
or ah, bh
or ch, 0x1b
xor ah, 0xff
and ah, ch
mov byte [esp + 0xf], ah
xor dl, 0xff
xor dl, 0xff
and dl, 0xff
mov byte [esp + 0xe], dl
mov ah, al
xor ah, 0xff
mov bh, cl
xor bh, 0xff
mov ch, 0xff
xor ch, 0xd7
mov dl, ah
and dl, 0xd7
and al, ch
mov byte [esp + 0xc], al
mov al, bh
and al, 0xd7
mov byte [esp + 0xd], al
mov al, byte [esp + 0xc]
and cl, ch
or dl, al
mov al, byte [esp + 0xd]
or al, cl
mov cl, byte [esp + 0xe]
xor dl, al
mov al, byte [esp + 0xf]
or ah, bh
xor ah, 0xff
or ch, 0xd7
and ah, ch
or dl, ah
mov byte [esp + 0x13], dl
mov ah, al
xor ah, 0xff
mov bh, cl
xor bh, 0xff
mov ch, 0xff
xor ch, 0x69
mov dl, ah
and dl, 0x69
and al, ch
mov byte [esp + 0x10], al
mov al, bh
and al, 0x69
mov byte [esp + 0x11], al
mov al, byte [esp + 0x10]
and cl, ch
or dl, al
mov al, byte [esp + 0x11]
or al, cl
mov cl, byte [esp + 0x12]
xor dl, al
mov al, byte [esp + 0x13]
or ah, bh
xor ah, 0xff
or ch, 0x69
and ah, ch
or dl, ah
mov ah, al
xor ah, 0xff
mov ch, dl
and ch, ah
xor dl, 0xff
and al, dl
or ch, al
mov byte [esp + 0x20], ch
mov ah, ch
xor ah, 0xff
and ah, 0x57
mov dl, 0xff
xor dl, 0x57
and ch, dl
mov al, 0xff
xor al, 0xff
and al, 0x57
and dl, 0xff
or ah, ch
or al, dl
xor ah, al
mov dl, cl
xor dl, 0xff
mov al, ah
and al, dl
xor ah, 0xff
mov dl, cl
and dl, ah
or al, dl
xor cl, 0xff
mov ch, al
xor ch, cl
and ch, al
mov cl, bl
xor cl, 0xff
and cl, 0xff
mov dl, 0xff
xor dl, 0xff
mov al, bl
and al, dl
or cl, al
mov bh, 0xff
xor bh, 0xff
xor cl, 0xff
mov al, 0xff
xor al, 0xfa
or bh, cl
or al, 0xfa
xor bh, 0xff
and bh, al
mov dl, 0xff
xor dl, 0xff
and dl, 0x20
mov cl, 0xff
xor cl, 0x20
mov ah, cl
and ah, 0xff
mov al, 0xff
xor al, 0xff
and al, 0x20
and cl, 0xff
or dl, ah
or al, cl
xor dl, al
mov al, bl
xor al, 0xff
xor dl, 0xff
mov cl, 0xff
xor cl, 0xdc
or al, dl
or cl, 0xdc
xor al, 0xff
and al, cl
mov ah, bh
xor ah, 0xff
mov byte [esp + 0x16], ah
mov dl, al
xor dl, 0xff
mov cl, 0xff
xor cl, 0x71
and ah, 0x71
and bh, cl
mov byte [esp + 0x14], bh
mov bh, dl
and bh, 0x71
and al, cl
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
or ah, al
mov al, byte [esp + 0x15]
or bh, al
mov al, byte [esp + 0x16]
xor ah, bh
or al, dl
xor al, 0xff
or cl, 0x71
and al, cl
or ah, al
mov al, ah
xor al, 0xff
and al, 0xe
mov dl, 0xff
xor dl, 0xe
and ah, dl
mov cl, 0xff
xor cl, 0xff
and cl, 0xe
and dl, 0xff
or al, ah
or cl, dl
xor al, cl
mov byte [esp + 0x17], al
mov cl, 0xff
xor cl, 0xfd
and cl, 0xff
mov al, 0xff
xor al, 0xff
and al, 0xfd
or cl, al
mov dl, 0xff
xor dl, 0xc5
and dl, 0xbc
mov bh, 0xff
xor bh, 0xbc
mov al, bh
and al, 0xc5
mov ah, 0xff
xor ah, 0xff
and ah, 0xbc
and bh, 0xff
or dl, al
mov al, byte [esp + 0x17]
or ah, bh
xor dl, ah
mov byte [esp + 0x1a], dl
mov dl, al
xor dl, 0xff
mov byte [esp + 0x1b], dl
mov bh, cl
xor bh, 0xff
mov ah, 0xff
xor ah, 0x42
and dl, 0x42
and al, ah
mov byte [esp + 0x18], al
mov al, bh
and al, 0x42
mov byte [esp + 0x19], al
mov al, byte [esp + 0x18]
and cl, ah
or dl, al
mov al, byte [esp + 0x19]
or al, cl
mov cl, byte [esp + 0x1a]
xor dl, al
mov al, byte [esp + 0x1b]
or al, bh
xor al, 0xff
or ah, 0x42
and al, ah
or dl, al
mov ah, 0xff
xor ah, 0xc5
mov byte [esp + 0x1f], ah
mov al, cl
xor al, 0xff
mov byte [esp + 0x1e], al
mov bh, 0xff
xor bh, 0xfe
and ah, 0xfe
mov al, bh
and al, 0xc5
mov byte [esp + 0x1c], al
mov al, byte [esp + 0x1e]
and al, 0xfe
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x1c]
and cl, bh
or ah, al
mov al, byte [esp + 0x1d]
or al, cl
mov cl, byte [esp + 0x1e]
xor ah, al
mov al, byte [esp + 0x1f]
or al, cl
mov cl, byte [esp + 0x20]
xor al, 0xff
or bh, 0xfe
and al, bh
or ah, al
mov al, dl
xor al, 0xff
and al, 0xff
mov bh, 0xff
xor bh, 0xff
and dl, bh
or al, dl
xor al, 0xff
xor ah, 0xff
mov dl, 0xff
xor dl, 0x8e
or al, ah
or dl, 0x8e
xor al, 0xff
and al, dl
mov byte [esp + 0x23], al
mov al, bl
xor al, 0xff
and al, 0xac
mov ah, 0xff
xor ah, 0xac
and bl, ah
mov dl, 0xff
xor dl, 0xff
and dl, 0xac
and ah, 0xff
or al, bl
or dl, ah
xor al, dl
mov dl, cl
xor dl, 0xff
and dl, 0xff
mov ah, 0xff
xor ah, 0xff
and cl, ah
or dl, cl
mov cl, 0xff
xor cl, 0x7e
and cl, 0xea
mov bl, 0xff
xor bl, 0xea
mov bh, bl
and bh, 0x7e
mov ah, 0xff
xor ah, 0xff
and ah, 0xea
and bl, 0xff
or cl, bh
or ah, bl
xor cl, ah
mov ah, al
and ah, dl
xor al, dl
or ah, al
mov dl, 0xff
xor dl, 0x7e
mov byte [esp + 0x24], dl
mov bh, cl
xor bh, 0xff
mov bl, 0xff
xor bl, 0xc
and dl, 0xc
mov al, bl
and al, 0x7e
mov byte [esp + 0x21], al
mov al, bh
and al, 0xc
mov byte [esp + 0x22], al
mov al, byte [esp + 0x21]
and cl, bl
or dl, al
mov al, byte [esp + 0x22]
or al, cl
mov cl, byte [esp + 0x23]
xor dl, al
mov al, byte [esp + 0x24]
or al, bh
xor al, 0xff
or bl, 0xc
and al, bl
or dl, al
mov al, ah
xor al, 0xff
and al, 0xff
mov bl, 0xff
xor bl, 0xff
and ah, bl
or al, ah
xor dl, 0xff
mov bl, al
xor bl, dl
and bl, al
mov dl, dh
xor dl, 0xff
mov ah, ch
xor ah, 0xff
mov al, 0xff
xor al, 0x7f
or dl, ah
or al, 0x7f
xor dl, 0xff
and dl, al
mov ah, dh
xor ah, 0xff
and ah, 0xf7
mov bh, 0xff
xor bh, 0xf7
and dh, bh
mov al, ch
xor al, 0xff
and al, 0xf7
and ch, bh
or ah, dh
or al, ch
xor ah, al
mov al, dl
and al, ah
xor dl, ah
or al, dl
mov byte [esp + 0x2e], al
mov ah, cl
xor ah, 0xff
and ah, 0xff
mov dl, 0xff
xor dl, 0xff
mov al, cl
and al, dl
or ah, al
mov ch, bl
xor ch, 0xff
and ch, 0xff
mov dl, 0xff
xor dl, 0xff
mov al, bl
and al, dl
or ch, al
mov dl, 0xff
xor dl, 0x18
and dl, 0xff
mov al, 0xff
xor al, 0xff
and al, 0x18
or dl, al
mov dh, 0xff
xor dh, 0x18
mov al, ah
xor al, dh
and al, ah
xor cl, 0xff
mov bh, dl
xor bh, 0xff
mov dh, 0xff
xor dh, 1
or cl, bh
or dh, 1
xor cl, 0xff
and cl, dh
mov bh, 0xff
xor bh, 0x18
mov dh, ch
xor dh, bh
and dh, ch
mov byte [esp + 0x29], dh
mov bh, dl
xor bh, 0xff
mov dh, bl
xor dh, bh
and dh, bl
mov byte [esp + 0x27], dh
mov dh, al
xor dh, 0xff
mov bl, cl
xor bl, 0xff
mov byte [esp + 0x28], bl
mov bl, 0xff
xor bl, 0x79
mov bh, dh
and bh, 0x79
and al, bl
mov byte [esp + 0x25], al
mov al, byte [esp + 0x28]
and al, 0x79
mov byte [esp + 0x26], al
mov al, byte [esp + 0x25]
and cl, bl
or bh, al
mov al, byte [esp + 0x26]
or al, cl
mov cl, byte [esp + 0x27]
xor bh, al
mov al, byte [esp + 0x28]
or dh, al
mov al, byte [esp + 0x29]
xor dh, 0xff
or bl, 0x79
and dh, bl
or bh, dh
mov bl, al
xor bl, 0xff
mov byte [esp + 0x2d], bl
mov dh, cl
xor dh, 0xff
mov byte [esp + 0x2c], dh
mov dh, 0xff
xor dh, 0x22
and bl, 0x22
and al, dh
mov byte [esp + 0x2a], al
mov al, byte [esp + 0x2c]
and al, 0x22
mov byte [esp + 0x2b], al
mov al, byte [esp + 0x2a]
and cl, dh
or bl, al
mov al, byte [esp + 0x2b]
or al, cl
mov cl, byte [esp + 0x2c]
xor bl, al
mov al, byte [esp + 0x2d]
or al, cl
mov cl, byte [esp + 0x2e]
xor al, 0xff
or dh, 0x22
and al, dh
or bl, al
mov al, bh
xor al, 0xff
and al, 0x17
mov byte [esp + 0x2f], al
mov al, 0xff
xor al, 0x17
and bh, al
mov dh, bl
xor dh, 0xff
and dh, 0x17
and bl, al
mov al, byte [esp + 0x2f]
or al, bh
or dh, bl
xor al, dh
mov bl, ah
and bl, ch
xor ah, ch
or bl, ah
mov ah, bl
xor ah, 0xff
and ah, 0xc9
mov dh, 0xff
xor dh, 0xc9
and bl, dh
mov ch, 0xff
xor ch, 0xff
and ch, 0xc9
and dh, 0xff
or ah, bl
or ch, dh
xor ah, ch
mov ch, dl
and ch, 0x18
xor dl, 0x18
or ch, dl
xor ch, 0xff
mov dl, ah
xor dl, ch
and dl, ah
mov ah, al
and ah, dl
xor al, dl
or ah, al
mov dl, cl
xor dl, 0xff
and dl, 0xff
mov ch, 0xff
xor ch, 0xff
mov al, cl
and al, ch
or dl, al
xor dl, 0xff
mov al, ah
xor al, dl
and al, ah
mov dl, ah
xor dl, 0xff
and dl, 0xff
mov ch, 0xff
xor ch, 0xff
and ah, ch
or dl, ah
xor dl, 0xff
mov ch, cl
xor ch, dl
and ch, cl
mov dh, al
xor dh, 0xff
mov bh, ch
xor bh, 0xff
mov bl, 0xff
xor bl, 0x14
mov dl, dh
and dl, 0x14
and al, bl
mov cl, bh
and cl, 0x14
and ch, bl
or dl, al
mov eax, dword [esp + 0x30]
or cl, ch
xor dl, cl
mov ecx, dword [esp + 0x44]
or dh, bh
xor dh, 0xff
or bl, 0x14
and dh, bl
or dl, dh
mov byte [ecx + eax], dl
mov ecx, 0x14ddf2fe
add ecx, 0
sub ecx, 0x5e63001e
sub ecx, 0x14ddf2fe
sub eax, 0x546ccb87
sub eax, ecx
add eax, 0x546ccb87
mov edx, 0xef5e3c71
add edx, 0
sub edx, 1
sub edx, 0xef5e3c71
xor ecx, ecx
sub ecx, edx
add eax, ecx
mov edx, 0x1b101c1c
add edx, 0
sub edx, 0x5e63001e
sub edx, 0x1b101c1c
xor ecx, ecx
sub ecx, edx
sub eax, ecx
cmp eax, 0x12
mov dword [esp + 0x34], eax
jne 0x1000429f
mov eax, dword [0x10095038]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add eax, 0x6e52e6b9
mov dword [esp], eax
mov eax, dword [esp]
mov dword [eax], 1
jmp 0x10004a9b
add esp, 0x50
pop esi
pop ebx
ret