Function at 0x414ed0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4549bb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38c
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [ebp - 0x14], 0
cmp dword [eax + 0x10], 0
push edi
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x100], ecx
jbe 0x414f49
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
call fcn.00401e60
lea edx, [ebp - 0x98]
mov dword [ebp - 4], 0
mov ebx, 2
jmp 0x414f79
push 0xb
push str.default_key
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x80], 0
call fcn.00402150
lea edx, [ebp - 0x80]
mov dword [ebp - 4], 1
mov ebx, 4
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x14], ebx
call fcn.0040e6f0
mov dword [ebp - 4], 2
test bl, 4
je 0x414fbc
and ebx, 0xfffffffb
cmp dword [ebp - 0x6c], 0x10
mov dword [ebp - 0x14], ebx
jb 0x414faa
push dword [ebp - 0x80]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 4
test bl, 2
je 0x414ffd
and ebx, 0xfffffffd
cmp dword [ebp - 0x84], 0x10
mov dword [ebp - 0x14], ebx
jb 0x414fe2
push dword [ebp - 0x98]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
push 0x10
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x190]
call fcn.0040f6f0
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x160]
call fcn.0040e6f0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x20], 0x10
jb 0x415036
push dword [ebp - 0x34]
call fcn.00417686
add esp, 4
push 0x10
push 0x10
lea eax, [ebp - 0x118]
mov dword [ebp - 0x20], 0xf
push eax
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
call fcn.0040f6f0
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x178]
call fcn.0040e6f0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x104], 0x10
jb 0x41508a
push dword [ebp - 0x118]
call fcn.00417686
add esp, 4
lea ecx, [ebp - 0x80]
call fcn.00414e50
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0x98]
or ebx, 0x10
mov edx, eax
mov dword [ebp - 0x14], ebx
call fcn.0040e6f0
push 0xffffffffffffffff
push 0x1c
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0xd
push ecx
or ebx, 0x20
mov ecx, eax
mov dword [ebp - 0x14], ebx
call fcn.0040f6f0
push eax
lea ecx, [ebp - 0x34]
or ebx, 0x40
call fcn.00401c70
mov esi, eax
or ebx, 0x80
mov dword [ebp - 0xcc], 0xf
mov dword [ebp - 0xd0], 0
mov byte [ebp - 0xe0], 0
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jae 0x41511c
mov eax, dword [esi + 0x10]
inc eax
je 0x41512a
push eax
lea eax, [ebp - 0xe0]
push esi
push eax
call fcn.00417690
add esp, 0xc
jmp 0x41512a
mov eax, dword [esi]
mov dword [ebp - 0xe0], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xcc], eax
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
mov dword [ebp - 4], 0x10
test ebx, 0x100
je 0x41519a
and ebx, 0xfffffeff
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jb 0x41517f
push dword [ebp - 0xb0]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x9c], 0xf
mov dword [ebp - 0xa0], 0
mov byte [ebp - 0xb0], 0
test bl, bl
jns 0x4151cd
and ebx, 0xffffff7f
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jb 0x4151bb
push dword [ebp - 0x34]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
test bl, 0x40
je 0x4151fe
and ebx, 0xffffffbf
cmp dword [ebp - 0x54], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jb 0x4151ec
push dword [ebp - 0x68]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
test bl, 0x20
je 0x41523e
and ebx, 0xffffffdf
cmp dword [ebp - 0x84], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jb 0x415223
push dword [ebp - 0x98]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
test bl, 0x10
je 0x41526f
and ebx, 0xffffffef
cmp dword [ebp - 0x6c], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jb 0x41525d
push dword [ebp - 0x80]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 0x15
test bl, 8
je 0x4152b3
and ebx, 0xfffffff7
cmp dword [ebp - 0x134], 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jb 0x415298
push dword [ebp - 0x148]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
lea eax, [ebp - 0xe0]
push eax
lea edx, [ebp - 0x160]
lea ecx, [ebp - 0x118]
call fcn.0040cde0
add esp, 4
mov edx, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xfc]
call fcn.0040e6f0
push eax
lea edx, [ebp - 0x160]
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x130]
call fcn.00417080
add esp, 4
cmp dword [ebp - 0xe8], 0x10
jb 0x41530f
push dword [ebp - 0xfc]
call fcn.00417686
add esp, 4
mov dword [ebp - 0xe8], 0xf
mov dword [ebp - 0xec], 0
mov byte [ebp - 0xfc], 0
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x104], 0x10
jb 0x415345
push dword [ebp - 0x118]
call fcn.00417686
add esp, 4
mov eax, dword [ebp - 0x120]
push 0
mov dword [ebp - 0x50], eax
call fcn.0041aebd
add esp, 4
lea ecx, [ebp - 0xb0]
mov ebx, eax
mov edi, edx
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x178]
add ebx, 0xe10
push eax
adc edi, 0
call fcn.0040cde0
add esp, 4
mov dword [ebp - 4], 0x1d
lea ecx, [ebp - 0x80]
mov esi, dword [ebp - 0x18]
mov edx, eax
or esi, 0x800
mov dword [ebp - 0x14], esi
call fcn.0040e6f0
push 0x10
push 0
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0x1e
or esi, 0x1000
push ecx
mov ecx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
call fcn.0040f6f0
mov esi, eax
mov dword [ebp - 4], 0x1f
mov eax, dword [ebp - 0x18]
or eax, 0x2000
push edi
push ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x68]
push str._010d
push eax
call fcn.004146e0
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x34]
mov ebx, dword [ebp - 0x18]
mov edx, eax
or ebx, 0x4000
push esi
mov dword [ebp - 0x14], ebx
call fcn.00412fd0
add esp, 0x14
push dword [ebp - 0x1c]
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0xfc]
or ebx, 0x8000
mov edx, eax
mov dword [ebp - 0x14], ebx
call fcn.0040cb20
mov esi, eax
mov dword [ebp - 0xb4], 0xf
add esp, 4
mov dword [ebp - 0xb8], 0
or ebx, 0x10000
mov byte [ebp - 0xc8], 0
cmp dword [esi + 0x14], 0x10
jae 0x41546c
mov eax, dword [esi + 0x10]
inc eax
je 0x41547a
push eax
lea eax, [ebp - 0xc8]
push esi
push eax
call fcn.00417690
add esp, 0xc
jmp 0x41547a
mov eax, dword [esi]
mov dword [ebp - 0xc8], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xb4], eax
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
mov dword [ebp - 4], 0x22
test ebx, 0x10000
je 0x4154e4
and ebx, 0xfffeffff
cmp dword [ebp - 0xe8], 0x10
jb 0x4154c9
push dword [ebp - 0xfc]
call fcn.00417686
add esp, 4
mov dword [ebp - 0xe8], 0xf
mov dword [ebp - 0xec], 0
mov byte [ebp - 0xfc], 0
test ebx, 0x8000
je 0x415515
and ebx, 0xffff7fff
cmp dword [ebp - 0x20], 0x10
jb 0x415503
push dword [ebp - 0x34]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
test ebx, 0x4000
je 0x415546
and ebx, 0xffffbfff
cmp dword [ebp - 0x54], 0x10
jb 0x415534
push dword [ebp - 0x68]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
test ebx, 0x2000
je 0x415586
and ebx, 0xffffdfff
cmp dword [ebp - 0x84], 0x10
jb 0x41556b
push dword [ebp - 0x98]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
test ebx, 0x1000
je 0x4155b7
and ebx, 0xffffefff
cmp dword [ebp - 0x6c], 0x10
jb 0x4155a5
push dword [ebp - 0x80]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x80], 0
test ebx, 0x800
je 0x4155f7
and ebx, 0xfffff7ff
cmp dword [ebp - 0x9c], 0x10
jb 0x4155dc
push dword [ebp - 0xb0]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x9c], 0xf
mov dword [ebp - 0xa0], 0
mov byte [ebp - 0xb0], 0
test ebx, 0x400
je 0x415637
and ebx, 0xfffffbff
cmp dword [ebp - 0x134], 0x10
jb 0x41561c
push dword [ebp - 0x148]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
mov byte [ebp - 4], 0x29
test ebx, 0x200
je 0x415675
cmp dword [ebp - 0x104], 0x10
jb 0x41565a
push dword [ebp - 0x118]
call fcn.00417686
add esp, 4
mov dword [ebp - 0x104], 0xf
mov dword [ebp - 0x108], 0
mov byte [ebp - 0x118], 0
mov eax, dword [ebp - 0xb8]
lea ecx, [ebp - 0x4c]
push 0
push 0x45ea2e
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x4c], 0
call fcn.00402150
mov byte [ebp - 4], 0x2a
xor eax, eax
jmp 0x4156b0
mov byte [ebp + eax - 0x294], al
inc eax
cmp eax, 0x100
jl 0x4156b0
mov edi, dword [ebp - 0x11c]
xor esi, esi
mov ebx, dword [ebp - 0x130]
lea ecx, [ecx]
cmp edi, 0x10
lea ecx, [ebp - 0x130]
mov eax, esi
cmovae ecx, ebx
xor edx, edx
div dword [ebp - 0x50]
mov al, byte [edx + ecx]
mov byte [ebp + esi - 0x394], al
inc esi
cmp esi, 0x100
jl 0x4156d0
xor esi, esi
xor edi, edi
lea ebx, [ebx]
mov dl, byte [ebp + esi - 0x294]
movzx eax, byte [ebp + esi - 0x394]
add edi, eax
movzx ecx, dl
add edi, ecx
and edi, 0x800000ff
jns 0x415726
dec edi
or edi, 0xffffff00
inc edi
mov al, byte [ebp + edi - 0x294]
mov byte [ebp + esi - 0x294], al
inc esi
mov byte [ebp + edi - 0x294], dl
cmp esi, 0x100
jl 0x415700
xor esi, esi
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x18], ecx
jle 0x41586e
mov edi, dword [ebp - 0x3c]
lea esp, [esp]
inc ecx
and ecx, 0x800000ff
jns 0x415771
dec ecx
or ecx, 0xffffff00
inc ecx
mov bl, byte [ebp + ecx - 0x294]
movzx eax, bl
add edx, eax
mov dword [ebp - 0x50], ecx
and edx, 0x800000ff
jns 0x415790
dec edx
or edx, 0xffffff00
inc edx
mov al, byte [ebp + edx - 0x294]
cmp dword [ebp - 0xb4], 0x10
mov byte [ebp + ecx - 0x294], al
mov byte [ebp + edx - 0x294], bl
movzx ecx, byte [ebp + ecx - 0x294]
mov dword [ebp - 0xe4], edx
lea edx, [ebp - 0xc8]
cmovae edx, dword [ebp - 0xc8]
movzx eax, bl
add ecx, eax
and ecx, 0x800000ff
jns 0x4157dc
dec ecx
or ecx, 0xffffff00
inc ecx
mov bl, byte [ebp + ecx - 0x294]
or eax, 0xffffffff
xor bl, byte [edx + esi]
sub eax, edi
cmp eax, 1
jbe 0x415ab1
lea esi, [edi + 1]
cmp esi, 0xfffffffe
ja 0x415ab1
cmp dword [ebp - 0x38], esi
jae 0x415811
push edi
push esi
lea ecx, [ebp - 0x4c]
call fcn.004024f0
jmp 0x415826
test esi, esi
jne 0x41582b
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x3c], esi
cmovae eax, dword [ebp - 0x4c]
mov byte [eax], 0
mov edi, dword [ebp - 0x3c]
test esi, esi
setne al
test al, al
je 0x415855
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
mov byte [eax + edi], bl
lea eax, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
mov dword [ebp - 0x3c], esi
cmovae eax, dword [ebp - 0x4c]
mov byte [eax + esi], 0
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x1c], esi
cmp esi, dword [ebp - 0x18]
jl 0x415760
push 0
push 0x45ea2e
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
call fcn.00402150
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x68]
push 1
push 0x45fcbc
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
call fcn.00402150
lea edx, [ebp - 0x4c]
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xb0]
call fcn.00401be0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x33
push ecx
lea edx, [ebp - 0x68]
mov ecx, eax
call fcn.00414970
mov esi, dword [ebp - 0x100]
lea edx, [ebp - 0xe0]
add esp, 4
mov ecx, esi
push eax
call fcn.0040cde0
add esp, 4
cmp dword [ebp - 0x9c], 0x10
jb 0x415909
push dword [ebp - 0xb0]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x54], 0x10
mov dword [ebp - 0x9c], 0xf
mov dword [ebp - 0xa0], 0
mov byte [ebp - 0xb0], 0
jb 0x415935
push dword [ebp - 0x68]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
jb 0x415958
push dword [ebp - 0x34]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x38], 0x10
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
jb 0x41597b
push dword [ebp - 0x4c]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0xb4], 0x10
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x4c], 0
jb 0x4159a4
push dword [ebp - 0xc8]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x11c], 0x10
mov dword [ebp - 0xb4], 0xf
mov dword [ebp - 0xb8], 0
mov byte [ebp - 0xc8], 0
jb 0x4159d6
push dword [ebp - 0x130]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0xcc], 0x10
mov dword [ebp - 0x11c], 0xf
mov dword [ebp - 0x120], 0
mov byte [ebp - 0x130], 0
jb 0x415a08
push dword [ebp - 0xe0]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x164], 0x10
mov dword [ebp - 0xcc], 0xf
mov dword [ebp - 0xd0], 0
mov byte [ebp - 0xe0], 0
jb 0x415a3a
push dword [ebp - 0x178]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x14c], 0x10
mov dword [ebp - 0x164], 0xf
mov dword [ebp - 0x168], 0
mov byte [ebp - 0x178], 0
jb 0x415a6c
push dword [ebp - 0x160]
call fcn.00417686
add esp, 4
cmp dword [ebp - 0x17c], 0x10
mov dword [ebp - 0x14c], 0xf
mov dword [ebp - 0x150], 0
mov byte [ebp - 0x160], 0
jb 0x415a9e
push dword [ebp - 0x190]
call fcn.00417686
add esp, 4
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push str.string_too_long
call fcn.00431b7f
int3