Function at 0xad2828
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x1a0
mov eax, dword [0x1007dbb0]
push ebx
push ebp
push esi
lea ecx, [esp + 0x10]
push edi
push ecx
mov dword [esp + 0x18], eax
call fcn.00abd8a8
mov eax, dword [0x1007fa6c]
add esp, 4
test eax, eax
jle 0xad2905
push 0x1007f2e0
lea ecx, [esp + 0x14]
call fcn.00b0e737
lea ecx, [esp + 0x10]
call fcn.00b0d243
push 0x20
lea ecx, [esp + 0x14]
call fcn.00b0eb44
test eax, eax
jle 0xad289a
lea edx, [esp + 0x1c]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.00b0ce09
push eax
lea ecx, [esp + 0x14]
call fcn.00b0e7b6
lea ecx, [esp + 0x1c]
jmp 0xad28d1
push 0x1007b37c
lea eax, [esp + 0x1c]
push 1
push eax
lea ecx, [esp + 0x1c]
call fcn.00b0ce09
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00b0e912
push eax
lea ecx, [esp + 0x14]
call fcn.00b0e7b6
lea ecx, [esp + 0x1c]
call fcn.00b0e6c9
lea ecx, [esp + 0x18]
call fcn.00b0e6c9
mov edx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x1c]
push 0x1007b36c
push ecx
call fcn.00b0d1e4
add esp, 0x10
lea ecx, [esp + 0x10]
call fcn.00b0e6c9
mov eax, dword [0x1007fa6c]
test eax, eax
jne 0xad2928
lea edx, [esp + 0x14]
lea eax, [esp + 0x1b4]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00b0e43e
call fcn.00abce18
add esp, 8
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00b0e43e
call fcn.00ac4c68
mov ebx, eax
call fcn.00ac5b28
mov ebp, eax
xor eax, eax
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], eax
push ecx
mov dword [esp + 0x30], eax
push 1
mov dword [esp + 0x38], eax
call fcn.00ac62e8
lea edx, [esp + 0x2c]
push edx
call fcn.00b0cab8
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x40]
push eax
rep stosd dword es:[edi], eax
mov byte [esp + 0x40], 0
call fcn.00b0233f
push eax
call fcn.00b01a92
add esp, 0x18
call fcn.00b01a9f
mov esi, eax
and esi, 0xff
je 0xad2990
push esi
lea eax, [esp + 0x34]
push 0x1007b224
push eax
call fcn.00b01669
mov eax, ebx
xor edx, edx
div esi
mov eax, ebx
lea ecx, [esp + 0x3e]
push edx
xor edx, edx
div esi
push eax
push 0x1007bd04
push ecx
call fcn.00b01669
add esp, 0x1c
call fcn.00b01a9f
mov esi, eax
and esi, 0xff
je 0xad29cf
push esi
lea edx, [esp + 0x40]
push 0x1007b224
push edx
call fcn.00b01669
mov eax, ebp
xor edx, edx
div esi
mov eax, ebp
push edx
xor edx, edx
div esi
push eax
lea eax, [esp + 0x52]
push 0x1007bd04
push eax
call fcn.00b01669
add esp, 0x1c
xor edi, edi
xor ecx, ecx
mov al, byte [esp + ecx + 0x20]
cmp al, 0x30
jl 0xad2a2e
cmp al, 0x39
jg 0xad2a2e
add edi, 0xffffffd
movsx edx, al
shl edi, 4
add edi, edx
jmp 0xad2a59
cmp al, 0x61
jl 0xad2a42
cmp al, 0x7a
jg 0xad2a42
movsx eax, al
shl edi, 4
lea edi, [edi + eax - 0x57]
jmp 0xad2a59
cmp al, 0x41
jl 0xad2a56
cmp al, 0x5a
jg 0xad2a56
movsx edx, al
shl edi, 4
lea edi, [edi + edx - 0x37]
jmp 0xad2a59
shl edi, 4
inc ecx
cmp ecx, 8
jl 0xad2a12
call fcn.00b01a9f
mov esi, eax
and esi, 0xff
je 0xad2a5f
push esi
lea eax, [esp + 0x4c]
push 0x1007b224
push eax
call fcn.00b01669
mov eax, edi
xor edx, edx
div esi
mov eax, edi
lea ecx, [esp + 0x56]
push edx
xor edx, edx
div esi
push eax
push 0x1007bd04
push ecx
call fcn.00b01669
add esp, 0x1c
xor edi, edi
xor ecx, ecx
mov al, byte [esp + ecx + 0x28]
cmp al, 0x30
jl 0xad2abe
cmp al, 0x39
jg 0xad2abe
add edi, 0xffffffd
movsx edx, al
shl edi, 4
add edi, edx
jmp 0xad2ae9
cmp al, 0x61
jl 0xad2ad2
cmp al, 0x7a
jg 0xad2ad2
movsx eax, al
shl edi, 4
lea edi, [edi + eax - 0x57]
jmp 0xad2ae9
cmp al, 0x41
jl 0xad2ae6
cmp al, 0x5a
jg 0xad2ae6
movsx edx, al
shl edi, 4
lea edi, [edi + edx - 0x37]
jmp 0xad2ae9
shl edi, 4
inc ecx
cmp ecx, 4
jl 0xad2aa2
call fcn.00b01a9f
mov esi, eax
and esi, 0xf
je 0xad2aef
push esi
lea eax, [esp + 0x58]
push 0x1007bcfc
push eax
call fcn.00b01669
mov eax, edi
xor edx, edx
div esi
mov eax, edi
lea ecx, [esp + 0x61]
push edx
xor edx, edx
div esi
push eax
push 0x1007bcf0
push ecx
call fcn.00b01669
mov edx, dword [esp + 0x1dc]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xcc]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1d0]
lea eax, [esp + 0xcc]
push edx
mov edx, dword [esp + 0x1d8]
push eax
push ecx
lea eax, [esp + 0x48]
push edx
push eax
push ebp
push ebx
call fcn.00ad25a8
mov ecx, 5
lea esi, [esp + 0xe8]
lea edi, [esp + 0x92]
push 0x261
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xec]
push 0x1007b77c
push ecx
movsw word es:[edi], word [esi]
call fcn.00b01669
mov dl, byte [esp + 0xf4]
mov cl, byte [esp + 0xf6]
mov al, byte [esp + 0xf5]
add esp, 0x44
mov byte [esp + 0x70], dl
lea edx, [esp + 0x30]
mov byte [esp + 0x72], cl
mov ecx, dword [esp + 0x1bc]
push edx
mov byte [esp + 0x75], al
mov byte [esp + 0x77], 0
call fcn.00b0e806
lea ecx, [esp + 0x14]
call fcn.00b0e6c9
lea ecx, [esp + 0x1b4]
call fcn.00b0e6c9
lea ecx, [esp + 0x1b8]
call fcn.00b0e6c9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a0
ret