Function at 0x532d50
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x56d054
push eax
mov dword fs:[0], esp
sub esp, 0x8c
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 0x660]
test eax, eax
je 0x5335d2
mov edi, dword [esp + 0xb0]
lea edx, [ebp + 0x668]
mov eax, dword [edi + 8]
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
mov esi, eax
sub esi, ebx
mov ebx, dword [edi + 0xc]
sub ebx, ecx
mov dword [esp + 0x18], esi
test edx, edx
mov dword [esp + 0x1c], ebx
je 0x532e55
cmp dword [edx + 4], 0
je 0x532e55
lea edx, [ebp + 0x670]
test edx, edx
mov dword [esp + 0x34], edx
je 0x532e55
cmp dword [edx + 4], 0
je 0x532e55
mov edx, dword [ebp + 0x660]
add ebx, edx
mov dword [esp + 0x28], ebx
lea ebx, [ebp + 0x668]
test ebx, ebx
jne 0x532def
mov dword [esp + 0x2c], ebx
jmp 0x532df6
mov ebx, dword [ebx + 4]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x28]
push 4
push ebx
push edx
mov ebx, dword [0x5715d4]
push ecx
mov ecx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0x40]
push 0
mov edx, dword [ecx + 4]
push eax
push 0
push 0
push edx
call ebx
mov ebp, dword [ebp + 0x660]
mov ecx, dword [esp + 0x34]
mov eax, dword [edi]
mov edi, dword [edi + 0xc]
add esi, ebp
test ecx, ecx
je 0x532e36
mov ecx, dword [ecx + 4]
push 4
push ebp
push esi
push edi
push eax
mov eax, dword [esp + 0xc0]
push 0
push ecx
mov ecx, dword [eax + 4]
push 0
push 0
push ecx
call ebx
jmp 0x5335d2
lea ecx, [esp + 0x38]
call fcn.00513dca
mov eax, dword [esp + 0xac]
mov dword [esp + 0xa4], 0
test eax, eax
je 0x532e77
mov eax, dword [eax + 4]
push eax
call dword [0x5700e0]
push eax
lea ecx, [esp + 0x3c]
call fcn.00513dc4
test eax, eax
je 0x5335be
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0x575f80
mov eax, dword [ebp + 0x660]
mov edx, dword [esp + 0xac]
add ebx, eax
add eax, esi
push ebx
push eax
mov eax, dword [edx + 4]
mov byte [esp + 0xac], 1
push eax
call dword [0x5700e4]
push eax
lea ecx, [esp + 0x28]
call fcn.00513b7e
test eax, eax
jne 0x532ee8
mov dword [esp + 0x24], 0x573e88
mov byte [esp + 0xa4], 2
jmp 0x5335ad
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x24]
neg eax
sbb eax, eax
and eax, edx
push eax
push ecx
call fcn.0051420e
push 0x28
mov dword [esp + 0x54], eax
call fcn.00513446
mov ebx, eax
mov edx, esi
add esp, 4
mov dword [esp + 0x54], ebx
mov dword [ebx], 0x28
mov eax, dword [ebp + 0x660]
add edx, eax
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x660]
mov eax, edx
add eax, ecx
xor ecx, ecx
mov dword [ebx + 8], eax
mov word [ebx + 0xc], 1
mov word [ebx + 0xe], 0x20
mov dword [ebx + 0x10], ecx
mov eax, dword [ebp + 0x660]
push ecx
add edx, eax
add eax, esi
imul edx, eax
lea eax, [esp + 0x34]
push ecx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], ecx
push eax
mov dword [esp + 0x3c], ecx
push ecx
mov ecx, dword [esp + 0x4c]
push ebx
push ecx
call dword [0x570090]
test eax, eax
mov dword [esp + 0x58], eax
je 0x533594
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x533594
mov edx, dword [esp + 0x3c]
push eax
push edx
call dword [0x5700e8]
mov eax, dword [ebp + 0x660]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
add ebx, eax
add esi, eax
mov eax, dword [esp + 0xac]
test eax, eax
je 0x532fc3
mov eax, dword [eax + 4]
push 0xcc0020
push ecx
push edx
push eax
mov eax, dword [esp + 0x4c]
push ebx
push esi
push 0
push 0
push eax
call dword [0x5700f0]
mov ebx, dword [ebp + 0x660]
mov eax, 0xffffffce
cdq
idiv ebx
xor esi, esi
test ebx, ebx
mov dword [esp + 0x34], eax
jle 0x533422
mov ecx, dword [esp + 0x1c]
mov edi, 0x32
inc ecx
mov dword [esp + 0x4c], edi
neg eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x1c]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x10], edx
lea ecx, [eax + edx]
cmp edx, ecx
jge 0x533117
imul eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xb0]
lea edx, [ebx + esi]
mov dword [esp + 0x14], edx
mov edi, 0x32
mov edx, dword [ecx]
sub edi, eax
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
sub ecx, edx
mov edx, dword [esp + 0x10]
sub ecx, edx
mov edx, dword [esp + 0x5c]
sub eax, edx
add ecx, ebx
add eax, ebx
xor ebx, ebx
imul eax, ecx
mov ecx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
mov eax, 0x51eb851f
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bh, dl
xor edx, edx
mov dl, ch
and ecx, 0xff
and edx, 0xff
imul ecx, edi
imul edx, edi
mov dword [esp + 0x14], edx
imul edx
sar edx, 5
mov eax, edx
mov edi, ecx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bl, dl
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x10]
shl ebx, 8
and edx, 0xff
or ebx, edx
mov edx, dword [esp + 0x20]
mov eax, ebx
inc ecx
mov dword [edx], eax
mov ebx, dword [ebp + 0x660]
mov edx, dword [esp + 0x1c]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x10], ecx
add edx, eax
cmp ecx, edx
jl 0x533027
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x660]
mov ecx, dword [esp + 0x18]
shl eax, 1
sub eax, esi
lea ebx, [esi + ecx]
cmp eax, ebx
mov dword [esp + 0x10], eax
jge 0x53320d
mov ecx, dword [esp + 0xb0]
mov ebx, dword [ebp + 0x660]
mov edx, dword [ecx]
mov dword [esp + 0x7c], edx
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
sub ecx, edx
mov edx, dword [esp + 0x1c]
sub ecx, esi
sub ecx, edx
mov edx, dword [esp + 0x7c]
sub eax, edx
add ecx, ebx
add eax, ebx
xor ebx, ebx
imul eax, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov eax, 0x51eb851f
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bh, dl
xor edx, edx
mov dl, ch
and ecx, 0xff
and edx, 0xff
imul ecx, edi
imul edx, edi
mov dword [esp + 0x20], edx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bl, dl
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x18]
shl ebx, 8
and edx, 0xff
add ecx, esi
or ebx, edx
mov edx, dword [esp + 0x14]
mov eax, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x533134
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 0x660]
shl eax, 1
sub eax, esi
inc edx
add edx, esi
mov dword [esp + 0x10], eax
cmp eax, edx
jge 0x5332f9
mov ecx, dword [esp + 0xb0]
mov edx, dword [ebp + 0x660]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov ebx, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
sub ecx, ebx
mov ebx, dword [esp + 0x10]
sub ecx, ebx
mov ebx, dword [esp + 0x6c]
sub eax, ebx
add ecx, edx
add eax, edx
xor ebx, ebx
imul eax, ecx
mov ecx, dword [esp + 0x18]
add eax, esi
add eax, ecx
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov eax, 0x51eb851f
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bh, dl
xor edx, edx
mov dl, ch
and ecx, 0xff
and edx, 0xff
imul ecx, edi
imul edx, edi
mov dword [esp + 0x20], edx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bl, dl
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x2c]
shl ebx, 8
and edx, 0xff
or ebx, edx
mov edx, dword [esp + 0x14]
mov eax, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x533226
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x660]
mov dword [esp + 0x10], ecx
mov eax, edx
sub eax, esi
lea ebx, [eax + ecx]
cmp ecx, ebx
jge 0x5333f9
imul eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xb0]
mov edi, 0x32
sub edi, eax
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 8]
sub eax, ebx
xor ebx, ebx
mov ecx, dword [ecx + 0xc]
add eax, edx
sub ecx, edx
sub ecx, dword [esp + 0x90]
sub ecx, esi
add ecx, edx
imul eax, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov eax, 0x51eb851f
mov edx, ecx
shr edx, 0x10
and edx, 0xff
imul edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bh, dl
xor edx, edx
mov dl, ch
and ecx, 0xff
and edx, 0xff
imul ecx, edi
imul edx, edi
mov dword [esp + 0x20], edx
imul edx
sar edx, 5
mov eax, edx
mov edi, ecx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bl, dl
imul edi
sar edx, 5
mov ecx, edx
mov edi, dword [esp + 0x18]
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x10]
shl ebx, 8
and edx, 0xff
or ebx, edx
mov edx, dword [esp + 0x14]
mov eax, ebx
inc ecx
mov dword [edx], eax
mov edx, dword [ebp + 0x660]
mov eax, edx
mov dword [esp + 0x10], ecx
sub eax, esi
add edi, eax
cmp ecx, edi
jl 0x533312
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebp + 0x660]
inc esi
add edi, edx
inc ecx
cmp esi, ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x2c], ecx
jl 0x533010
mov edi, dword [esp + 0xb0]
mov eax, dword [ebp + 0x660]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [edi + 4]
lea ecx, [eax + ebx]
add edx, eax
lea eax, [esp + 0x38]
push 0xcc0020
neg eax
sbb eax, eax
push 0
and eax, dword [esp + 0x44]
push 0
push eax
mov eax, dword [edi]
push ecx
push edx
push esi
mov esi, dword [esp + 0xc8]
push eax
mov eax, dword [esi + 4]
push eax
call dword [0x5700f0]
mov eax, dword [ebp + 0x664]
test eax, eax
je 0x533554
mov eax, dword [ebp + 0x660]
lea ecx, [eax + ebx]
inc eax
push ecx
mov ecx, dword [esi + 4]
push eax
push ecx
call dword [0x5700e4]
push eax
lea ecx, [ebp + 0x668]
call fcn.00513b7e
lea eax, [ebp + 0x668]
test eax, eax
je 0x5334a2
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x3c]
push eax
push edx
call fcn.0051420e
mov eax, dword [ebp + 0x660]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
add ebx, eax
test esi, esi
mov dword [esp + 0x48], ebx
jne 0x5334c7
xor ebx, ebx
jmp 0x5334ca
mov ebx, dword [esi + 4]
push 0xcc0020
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x48]
push ebx
push ecx
push eax
push 0
push 0
push edx
call dword [0x5700f0]
mov eax, dword [ebp + 0x660]
mov edx, dword [esp + 0x18]
lea ebx, [ebp + 0x670]
lea ecx, [eax + 1]
add eax, edx
push ecx
push eax
mov eax, dword [esi + 4]
push eax
call dword [0x5700e4]
push eax
mov ecx, ebx
call fcn.00513b7e
test ebx, ebx
je 0x533517
mov ebx, dword [ebx + 4]
mov ecx, dword [esp + 0x3c]
push ebx
push ecx
call fcn.0051420e
mov ebp, dword [ebp + 0x660]
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
mov edi, dword [edi]
test esi, esi
lea ecx, [edx + ebp]
je 0x53353b
mov esi, dword [esi + 4]
push 0xcc0020
push eax
mov eax, dword [esp + 0x44]
push edi
push esi
push ebp
push ecx
push 0
push 0
push eax
call dword [0x5700f0]
mov eax, dword [esp + 0x50]
test eax, eax
je 0x53355f
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
call fcn.0051420e
mov edx, dword [esp + 0x58]
push edx
call dword [0x5700fc]
mov eax, dword [esp + 0x54]
push eax
call fcn.005133ec
add esp, 4
mov dword [esp + 0x24], 0x573e88
mov byte [esp + 0xa4], 4
jmp 0x5335ad
push ebx
call fcn.005133ec
add esp, 4
mov dword [esp + 0x24], 0x573e88
mov byte [esp + 0xa4], 3
lea ecx, [esp + 0x24]
call fcn.00513b6c
mov dword [esp + 0x24], 0x571ce4
lea ecx, [esp + 0x38]
mov dword [esp + 0xa4], 0xffffffff
call fcn.00513da6
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x98
ret 8