Function at 0x555734
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 7
push 0
push 0
dec ecx
jne 0x55573d
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
test dl, dl
je 0x555757
add esp, 0xfffffff0
call fcn.00403ebc
mov dword [ebp - 8], ecx
mov byte [ebp - 1], dl
mov ebx, eax
xor eax, eax
push ebp
push 0x5563e8
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, dword [ebp - 8]
xor edx, edx
mov eax, ebx
call fcn.0043d600
xor edx, edx
mov eax, ebx
call fcn.00445954
mov edx, 0xc8
mov eax, ebx
call fcn.004459a0
mov edx, 0xc8
mov eax, ebx
call fcn.004459c4
xor edx, edx
mov eax, ebx
call fcn.0043da0c
mov dword [ebx + 0xfc], ebx
mov dword [ebx + 0xf8], fcn.00556d18
xor edx, edx
mov eax, ebx
call fcn.0044623c
mov byte [ebx + 0x4d4], 1
mov byte [ebx + 0x4d5], 1
mov dword [ebx + 0x4d8], 0x23
mov dword [ebx + 0x4c4], 0xffffff
mov dword [ebx + 0x4bc], 0xff00
mov dword [ebx + 0x4c0], 0xff
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d1c04]
call fcn.0043c918
mov esi, eax
mov dword [ebx + 0x248], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x248]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x248]
mov dl, 1
call fcn.0043ce14
mov eax, dword [ebx + 0x248]
mov dl, 5
call fcn.004456f8
mov eax, dword [ebx + 0x248]
call fcn.0044647c
mov eax, dword [ebx + 0x248]
xor edx, edx
call fcn.0043ce04
mov eax, dword [ebx + 0x248]
xor edx, edx
call fcn.0044612c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x43ba40]
call fcn.0043d42c
mov esi, eax
mov dword [ebx + 0x4d0], esi
push ebx
push 0x5575d0
mov eax, esi
call fcn.0043d5d4
mov eax, dword [ebx + 0x4d0]
mov edx, 0xc8
call fcn.0043d5c4
mov eax, dword [ebx + 0x4d0]
xor edx, edx
call fcn.0043d5b4
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d9d44]
call fcn.004d9e70
mov esi, eax
mov dword [ebx + 0x498], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x498]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x498]
mov dl, 1
call fcn.0043555c
mov eax, dword [ebx + 0x498]
xor edx, edx
call fcn.004d9fc0
mov eax, dword [ebx + 0x498]
mov edx, 0x44b7dc
call fcn.004d9fa8
mov eax, dword [ebx + 0x498]
xor edx, edx
call fcn.0044612c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d1c04]
call fcn.0043c918
mov esi, eax
mov dword [ebx + 0x24c], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x24c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x24c]
mov edx, 0x16
call fcn.004459a0
mov eax, dword [ebx + 0x24c]
mov edx, 0x10
call fcn.004459c4
mov eax, dword [ebx + 0x24c]
mov edx, 0xa
call fcn.00445978
mov eax, dword [ebx + 0x24c]
mov edx, 0xf
call fcn.00445954
mov eax, dword [ebx + 0x24c]
mov dx, 0xffeb
call fcn.00446418
mov eax, dword [ebx + 0x24c]
mov dword [eax + 0x124], ebx
mov dword [eax + 0x120], fcn.00556920
mov dword [eax + 0xd4], ebx
mov dword [eax + 0xd0], 0x556a48
mov dword [eax + 0xe4], ebx
mov dword [eax + 0xe0], 0x556ab4
mov dword [eax + 0x18c], ebx
mov dword [eax + 0x188], 0x556b18
mov dword [eax + 0x184], ebx
mov dword [eax + 0x180], 0x556b64
mov dl, 1
call fcn.0043ce2c
mov eax, dword [ebx + 0x24c]
mov dl, 1
call fcn.0043cdec
mov eax, dword [ebx + 0x24c]
mov eax, dword [eax + 0x168]
call fcn.00427ebc
call fcn.0042a588
mov eax, dword [ebx + 0x24c]
mov eax, dword [eax + 0x168]
call fcn.00427ebc
mov ecx, 0x556418
mov edx, dword [0x597718]
call fcn.0042ab14
mov eax, dword [ebx + 0x24c]
call fcn.0044674c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d1c04]
call fcn.0043c918
mov esi, eax
mov dword [ebx + 0x250], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x250]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x250]
mov edx, 0x16
call fcn.004459a0
mov eax, dword [ebx + 0x250]
mov edx, 0x10
call fcn.004459c4
mov eax, dword [ebx + 0x250]
mov edx, 0xa
call fcn.00445978
mov eax, dword [ebx + 0x250]
mov dx, 0xffeb
call fcn.00446418
mov edx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x250]
sub edx, dword [eax + 0x48]
sub edx, 0xf
call fcn.00445954
mov eax, dword [ebx + 0x250]
mov dword [eax + 0x124], ebx
mov dword [eax + 0x120], fcn.005569c0
mov dword [eax + 0xd4], ebx
mov dword [eax + 0xd0], 0x556bb0
mov dword [eax + 0xe4], ebx
mov dword [eax + 0xe0], 0x556c1c
mov dword [eax + 0x18c], ebx
mov dword [eax + 0x188], 0x556c80
mov dword [eax + 0x184], ebx
mov dword [eax + 0x180], 0x556ccc
mov dl, 1
call fcn.0043ce2c
mov eax, dword [ebx + 0x250]
mov dl, 1
call fcn.0043cdec
mov eax, dword [ebx + 0x250]
mov eax, dword [eax + 0x168]
call fcn.00427ebc
call fcn.0042a588
mov eax, dword [ebx + 0x250]
mov eax, dword [eax + 0x168]
call fcn.00427ebc
mov ecx, 0x556430
mov edx, dword [0x597718]
call fcn.0042ab14
mov eax, dword [ebx + 0x250]
call fcn.0044674c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x430a3c]
call fcn.00435110
mov esi, eax
mov dword [ebx + 0x254], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x254]
mov dl, 1
call fcn.0043555c
mov eax, dword [ebx + 0x254]
mov eax, dword [eax + 0x68]
xor edx, edx
call fcn.00424ca0
mov eax, dword [ebx + 0x254]
mov eax, dword [eax + 0x68]
mov edx, 0xc
call fcn.00424f40
mov eax, dword [ebx + 0x254]
mov edx, 0x46
call fcn.004459a0
mov eax, dword [ebx + 0x254]
mov dl, 2
call fcn.004354e8
mov eax, dword [ebx + 0x254]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x254]
mov edx, 9
call fcn.00445978
mov edx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x254]
sub edx, dword [eax + 0x48]
sar edx, 1
jns 0x555bee
adc edx, 0
call fcn.00445954
mov eax, dword [ebx + 0x254]
call fcn.0044674c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x43ada4]
call fcn.0043c6dc
mov esi, eax
mov dword [ebx + 0x258], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x258]
mov edx, 1
call fcn.004459c4
mov edx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x258]
call fcn.004459a0
mov eax, dword [ebx + 0x258]
xor edx, edx
call fcn.00445954
mov eax, dword [ebx + 0x258]
mov edx, 0x24
call fcn.00445978
mov eax, dword [ebx + 0x258]
mov eax, dword [eax + 0x168]
mov edx, 0x808080
call fcn.0042518c
mov eax, dword [ebx + 0x258]
call fcn.0044674c
xor esi, esi
mov eax, esi
and eax, 0xff
mov byte [ebx + eax + 0x478], 0
inc esi
cmp esi, 0x1f
jne 0x555c7b
mov ecx, dword [ebx + 0x48]
sub ecx, 0xa
mov eax, ecx
mov esi, 7
cdq
idiv esi
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x14
jge 0x555cb0
mov dword [ebp - 0xc], 0x14
mov eax, ecx
mov ecx, 7
cdq
idiv ecx
sar edx, 1
jns 0x555cc1
adc edx, 0
mov dword [ebp - 0x10], edx
xor esi, esi
xor ecx, ecx
mov dl, 1
mov eax, dword [0x430a3c]
call fcn.00435110
mov edx, esi
mov edi, edx
and edi, 0xff
mov dword [ebx + edi*4 + 0x260], eax
mov eax, esi
and eax, 0xff
mov eax, dword [ebx + eax*4 + 0x260]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + edi*4 + 0x260]
mov dl, 1
call fcn.0043555c
mov eax, dword [ebx + edi*4 + 0x260]
mov dl, 2
call fcn.004354e8
mov eax, dword [ebx + edi*4 + 0x260]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + edi*4 + 0x260]
mov edx, 0x2d
call fcn.00445978
mov eax, dword [ebx + edi*4 + 0x260]
mov edx, dword [ebp - 0xc]
call fcn.004459a0
mov eax, dword [ebx + edi*4 + 0x260]
mov edx, esi
imul edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
add edx, 5
call fcn.00445954
mov eax, dword [ebx + edi*4 + 0x260]
mov dword [eax + 0xc], esi
mov eax, esi
and eax, 0xff
mov eax, dword [ebx + eax*4 + 0x260]
mov eax, dword [eax + 0x68]
xor edx, edx
call fcn.00424ca0
mov eax, dword [ebx + edi*4 + 0x260]
call fcn.0044674c
inc esi
cmp esi, 7
jne 0x555cc6
lea ecx, [ebp - 0x20]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x153
call fcn.004da60c
mov edx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x260]
call fcn.0044623c
lea ecx, [ebp - 0x24]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x154
call fcn.004da60c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x264]
call fcn.0044623c
lea ecx, [ebp - 0x28]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x155
call fcn.004da60c
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x268]
call fcn.0044623c
lea ecx, [ebp - 0x2c]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x156
call fcn.004da60c
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebx + 0x26c]
call fcn.0044623c
lea ecx, [ebp - 0x30]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x157
call fcn.004da60c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x270]
call fcn.0044623c
lea ecx, [ebp - 0x34]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x158
call fcn.004da60c
mov edx, dword [ebp - 0x34]
mov eax, dword [ebx + 0x274]
call fcn.0044623c
lea ecx, [ebp - 0x38]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0x159
call fcn.004da60c
mov edx, dword [ebp - 0x38]
mov eax, dword [ebx + 0x278]
call fcn.0044623c
mov eax, dword [ebx + 0x260]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x1c], ecx
mov eax, dword [eax + 0x44]
add eax, dword [ebp - 0x1c]
add eax, 5
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x4c]
sub eax, 0x28
mov edx, ecx
add edx, edx
lea edx, [edx + edx*2]
sub eax, edx
sub eax, dword [ebp - 0x18]
mov ecx, 6
cdq
idiv ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x555ec2
xor eax, eax
mov dword [ebp - 0x14], eax
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4d9d44]
call fcn.004d9e70
mov edx, esi
and edx, 0xff
mov ecx, edx
shl edx, 3
sub edx, ecx
lea edx, [ebx + edx*4]
mov ecx, edi
and ecx, 0xff
mov dword [edx + ecx*4 + 0x27c], eax
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov dl, 1
call fcn.0043555c
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov dl, 2
call fcn.004354e8
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov edx, esi
imul edx, dword [ebp - 0x1c]
lea ecx, [esi + 1]
imul ecx, dword [ebp - 0x14]
add edx, ecx
add edx, dword [ebp - 0x18]
call fcn.00445978
mov eax, edi
and eax, 0xff
mov eax, dword [ebx + eax*4 + 0x260]
mov edx, dword [eax + 0x48]
mov eax, esi
and eax, 0xff
mov ecx, eax
shl eax, 3
sub eax, ecx
lea eax, [ebx + eax*4]
mov ecx, edi
and ecx, 0xff
mov eax, dword [eax + ecx*4 + 0x27c]
call fcn.004459a0
mov eax, edi
and eax, 0xff
mov eax, dword [ebx + eax*4 + 0x260]
mov edx, dword [eax + 0x40]
mov eax, esi
and eax, 0xff
mov ecx, eax
shl eax, 3
sub eax, ecx
lea eax, [ebx + eax*4]
mov ecx, edi
and ecx, 0xff
mov eax, dword [eax + ecx*4 + 0x27c]
call fcn.00445954
lea edx, [ebp - 0x3c]
mov eax, esi
imul eax, edi
inc eax
call fcn.00409350
mov edx, dword [ebp - 0x3c]
mov eax, esi
and eax, 0xff
mov ecx, eax
shl eax, 3
sub eax, ecx
lea eax, [ebx + eax*4]
mov ecx, edi
and ecx, 0xff
mov eax, dword [eax + ecx*4 + 0x27c]
call fcn.004d9fc0
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov dx, 0xffeb
call fcn.00446418
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov dword [eax + 0x184], ebx
mov dword [eax + 0x180], 0x55710c
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov dword [eax + 0x17c], ebx
mov dword [eax + 0x178], 0x557134
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov dword [eax + 0x124], ebx
mov dword [eax + 0x120], fcn.0055715c
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov edx, esi
shl edx, 8
or edx, edi
mov dword [eax + 0xc], edx
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
call fcn.0044674c
mov eax, esi
and eax, 0xff
mov edx, eax
shl eax, 3
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, edi
and edx, 0xff
mov eax, dword [eax + edx*4 + 0x27c]
mov eax, dword [eax + 0x68]
mov edx, dword [ebx + 0x4c4]
call fcn.00424ca0
inc edi
cmp edi, 7
jne 0x555ec6
inc esi
cmp esi, 6
jne 0x555ec4
xor ecx, ecx
mov dl, 1
mov eax, dword [0x430a3c]
call fcn.00435110
mov esi, eax
mov dword [ebx + 0x49c], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x49c]
mov dl, 1
call fcn.0043555c
mov eax, dword [ebx + 0x49c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x49c]
mov eax, dword [eax + 0x68]
mov dl, byte [0x556440]
call fcn.00424f6c
mov eax, dword [ebx + 0x49c]
mov edx, 0x46
call fcn.004459a0
lea ecx, [ebp - 0x40]
mov eax, dword [0x596098]
mov eax, dword [eax]
mov edx, 0xc0
call fcn.004da60c
lea eax, [ebp - 0x40]
mov edx, 0x55644c
call fcn.00404c28
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0x49c]
call fcn.0044623c
mov eax, dword [ebx + 0x49c]
mov eax, dword [eax + 0x68]
xor edx, edx
call fcn.00424ca0
mov eax, dword [ebx + 0x308]
mov edx, dword [eax + 0x44]
add edx, dword [eax + 0x4c]
add edx, dword [ebp - 0x14]
add edx, 5
mov eax, dword [ebx + 0x49c]
call fcn.00445978
mov eax, dword [ebx + 0x260]
mov edx, dword [eax + 0x40]
add edx, 0xa
mov eax, dword [ebx + 0x49c]
call fcn.00445954
mov eax, dword [ebx + 0x49c]
call fcn.0044674c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x430a3c]
call fcn.00435110
mov esi, eax
mov dword [ebx + 0x4a0], esi
mov eax, esi
mov edx, ebx
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebx + 0x4a0]
mov dl, 1
call fcn.0043555c
mov eax, dword [ebx + 0x4a0]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0x4a0]
mov eax, dword [eax + 0x68]
mov dl, byte [0x556440]
call fcn.00424f6c
mov eax, dword [ebx + 0x4a0]
mov edx, 0x50
call fcn.004459a0
mov eax, dword [ebx + 0x4a0]
xor edx, edx
call fcn.0044623c
mov eax, dword [ebx + 0x4a0]
mov eax, dword [eax + 0x68]
xor edx, edx
call fcn.00424ca0
mov eax, dword [ebx + 0x308]
mov edx, dword [eax + 0x44]
mov eax, dword [ebx + 0x308]
add edx, dword [eax + 0x4c]
add edx, dword [ebp - 0x14]
add edx, 5
mov eax, dword [ebx + 0x4a0]
call fcn.00445978
mov eax, dword [ebx + 0x49c]
mov edx, dword [eax + 0x40]
mov eax, dword [ebx + 0x49c]
add edx, dword [eax + 0x48]
add edx, 8
mov eax, dword [ebx + 0x4a0]
call fcn.00445954
mov eax, dword [ebx + 0x4a0]
call fcn.0044674c
xor eax, eax
mov dword [ebx + 0x4e8], eax
mov dword [ebx + 0x4ec], eax
xor eax, eax
mov dword [ebx + 0x4f0], eax
mov dword [ebx + 0x4f4], eax
xor eax, eax
mov dword [ebx + 0x4f8], eax
mov dword [ebx + 0x4fc], eax
xor eax, eax
mov dword [ebx + 0x500], eax
mov dword [ebx + 0x504], eax
push 0
push 0
mov eax, ebx
call fcn.0055649c
push 0
push 0
mov eax, ebx
call fcn.005567bc
mov edx, 0x12c
mov eax, ebx
call fcn.004459a0
mov edx, 0xc8
mov eax, ebx
call fcn.004459c4
mov dl, 1
mov eax, ebx
call fcn.0044612c
mov eax, ebx
call fcn.005555d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5563ef
lea eax, [ebp - 0x40]
mov edx, 9
call fcn.0040498c
ret