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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
push esi
push edi
mov edi, dword [0x44a288]
mov edx, 0x2a0
add edi, 0x919c7f08
mov dword [ebp - 0x74], ecx
xor ecx, ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x70], 0x37
mov eax, ecx
mov dword [ebp - 0x6c], 0x5e
mov dword [ebp - 0x68], 0x1db
sub edx, dword [ebp + eax*4 - 0x70]
inc eax
cmp eax, 3
jl 0x40d1d6
mov eax, dword [0x401aac]
mov dword [ebp - 0x34], eax
mov ax, word [0x401ab0]
mov word [ebp - 0x30], ax
mov eax, ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x58], 0x210ec500
mov dword [ebp - 0x54], 0x965c1d99
mov dword [ebp - 0x50], 0xe1985744
mov dword [ebp - 0x4c], 0x5d3b94d3
mov dword [ebp - 0x48], 0x7581877e
mov dword [ebp - 0x44], 0x3408c2a9
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x40d221
mov esi, ecx
mov dword [ebp - 0x5c], 5
mov edi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x174]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x5c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x174], al
cmp esi, 0x100
jb 0x40d23b
xor esi, esi
mov dword [ebp - 0xc], esi
mov eax, esi
inc eax
movzx eax, al
mov dword [ebp - 8], eax
mov edi, dword [ebp - 8]
mov cl, byte [ebp + eax - 0x174]
mov eax, dword [ebp - 0xc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x174]
mov byte [ebp + edi - 0x174], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x174], cl
mov eax, edi
mov edi, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x58]
mov byte [ebp + esi - 0x190], al
inc esi
mov eax, dword [ebp - 8]
cmp esi, 0x18
jb 0x40d283
xor eax, eax
mov dword [ebp - 0x34], 0x400878b6
mov byte [ebp - 0x178], al
mov ecx, eax
mov word [ebp - 0x30], 0xebf5
inc ecx
cmp ecx, 0x2548
jg 0x40d31f
cmp byte [ecx + 0x401e44], al
jne 0x40d2fe
cmp ecx, 0x14bf
jle 0x40d341
mov edx, dword [0x44a288]
jmp 0x40d336
push ecx
mov edx, edi
call fcn.0040cec2
mov edx, dword [0x44a288]
add esp, 4
sub edx, 0x1e4f296e
push ecx
call fcn.0040cec2
add esp, 4
xor eax, eax
xor edi, 0xffa5fffe
mov esi, 0x401ab8
and edi, 0xc65b4977
mov dword [ebp - 0xc], edi
lea edi, [ebp - 0x208]
push 0x17
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ecx, eax
mov byte [ebp + ecx - 0x174], cl
inc ecx
cmp ecx, 0x100
jb 0x40d364
mov esi, eax
xor edx, edx
mov dword [ebp - 0x2c], 0x5b
mov eax, esi
mov cl, byte [ebp + esi - 0x174]
div dword [ebp - 0x2c]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x208]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x174], al
cmp esi, 0x100
jb 0x40d376
xor esi, esi
mov dword [ebp - 8], esi
mov edi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x174]
mov byte [ebp + edi - 0x174], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x34]
mov byte [ebp + esi - 0x6c], al
inc esi
cmp esi, 6
jb 0x40d3c8
mov cl, byte [0x44a2e0]
xor eax, eax
mov edi, 0x44a2e0
mov byte [ebp - 0x66], al
mov edx, edi
jmp 0x40d440
sub cl, 0x30
cmp cl, 9
ja 0x40d4de
inc edx
mov cl, byte [edx]
test cl, cl
jne 0x40d431
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x50], 0x4c
mov dword [ebp - 0x4c], 0x53
mov dword [ebp - 0x48], 0x37
mov dword [ebp - 0x44], 0xffffff16
movups xmm1, xmmword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
imul edx, edx, 0xad4b0f2a
movaps xmm0, xmm1
mov dword [ebp - 0x54], 0x61
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x50], 0x13
movups xmm0, xmm1
mov dword [ebp - 0x4c], 0x23
psrldq xmm0, 4
mov dword [ebp - 0xc], edx
paddd xmm1, xmm0
movd edx, xmm1
mov dword [ebp - 0x48], 0x5e
mov dword [ebp - 0x44], 0xffffff0b
add edx, 0x14
mov dword [ebp - 0x34], edx
mov edx, eax
mov al, byte [0x44a2e0]
mov dword [ebp - 8], edx
mov esi, edi
test al, al
je 0x40d4f8
mov dl, al
sub dl, 0x30
cmp dl, 9
ja 0x40d4ec
inc esi
mov dl, byte [esi]
test dl, dl
jne 0x40d4cd
jmp 0x40d4f5
mov edx, dword [ebp - 0xc]
lea ecx, [edx - 0x24594ae7]
jmp 0x40d44a
lea edx, [ecx - 0x4039b882]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x2c]
sub esi, dword [ebp + edx*4 - 0x54]
mov ecx, dword [ebp - 0xc]
add ecx, 0x19ca86b2
mov dword [ebp - 0x2c], esi
push 5
inc edx
pop esi
mov dword [ebp - 8], edx
cmp edx, esi
jl 0x40d4c5
push 0
movzx edx, al
test al, al
mov dword [ebp - 0x28], 0x8314fe4e
mov esi, 0x1ebc
mov dword [ebp - 0x24], 0xbf035f0e
mov dword [ebp - 0x20], 0x1076162e
mov dword [ebp - 0x1c], 0xd476ac6f
mov dword [ebp - 0x18], 0x12bb8a2e
mov dword [ebp - 0x14], 0xc55d24ff
pop eax
je 0x40d569
add esi, edx
inc edi
cmp esi, 0x826
ja 0x40d563
movzx edx, byte [edi]
test edx, edx
jne 0x40d54f
jmp 0x40d569
xor ecx, 0x158777c
and ecx, 0x8a57bd8
mov dword [ebp - 0x10], ecx
mov esi, 0x401b14
mov dword [ebp - 8], eax
lea edi, [ebp - 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov ecx, eax
xor edi, 0x5d7782e5
mov dword [ebp - 0xc], edi
mov byte [ebp + ecx - 0x174], cl
inc ecx
cmp ecx, 0x100
jb 0x40d58f
mov edi, dword [ebp - 8]
mov esi, eax
mov dl, byte [ebp + esi - 0x174]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x50]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov byte [ebp + edi - 0x174], dl
cmp esi, 0x100
jb 0x40d5a4
xor esi, esi
mov dword [ebp - 8], esi
mov eax, esi
inc eax
cmp eax, 0x1586
jg 0x40d5fe
cmp byte [eax + 0x401ed8], 0
jne 0x40d5e4
cmp eax, 0x548
jle 0x40d60f
jmp 0x40d60a
mov edi, dword [ebp - 0xc]
and edi, 0x38739dc
mov dword [ebp - 0x10], edi
call fcn.0040cdc6
call fcn.0040cdc6
mov edi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x174]
mov byte [ebp + edi - 0x174], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x28]
mov byte [ebp + esi - 0x58], al
inc esi
cmp esi, 0x18
jb 0x40d616
mov eax, dword [0x401b28]
xor ecx, ecx
or dword [ebp - 0x10], 0x3365cc53
mov dword [ebp - 0x3c], eax
mov ax, word [0x401b2c]
mov word [ebp - 0x38], ax
mov eax, ecx
mov byte [ebp - 0x40], cl
mov dword [ebp - 0x28], 0x14693c0d
mov dword [ebp - 0x24], 0x8a137585
mov dword [ebp - 0x20], 0xa9c4030a
mov dword [ebp - 0x1c], 0xeb8be266
mov dword [ebp - 0x18], 0xbd2a4160
mov dword [ebp - 0x14], 0xada186bd
mov dword [ebp - 8], ecx
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x40d6b8
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x174]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x5c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x3c]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x174], al
cmp esi, 0x100
jb 0x40d6c9
xor esi, esi
mov dword [ebp - 8], esi
mov edi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x174]
mov byte [ebp + edi - 0x174], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0x28]
mov byte [ebp + esi - 0x1ac], al
inc esi
cmp esi, 0x18
jb 0x40d715
mov eax, dword [0x401b30]
xor ecx, ecx
mov edi, dword [ebp - 0x10]
mov esi, ecx
mov dword [ebp - 0x3c], eax
mov ax, word [0x401b34]
mov byte [ebp - 0x194], cl
mov dword [ebp - 0xc], 0xd30df31a
mov word [ebp - 0x38], ax
inc esi
cmp esi, 0xf8
jg 0x40d7a6
cmp byte [esi + 0x401ed8], cl
jne 0x40d793
jmp 0x40d7c2
push ecx
mov edx, edi
call fcn.0040cec2
add esp, 4
cmp esi, 0x1f84
jle 0x40d7c2
push ecx
call fcn.0040cec2
add esp, 4
xor edi, 0x4cecabb1
mov dword [ebp - 0x5c], ecx
mov eax, ecx
mov byte [ebp + eax - 0x174], al
inc eax
cmp eax, 0x100
jb 0x40d7cd
lea eax, [edi + 0x265774d0]
mov esi, ecx
push 5
mov dword [0x44a288], eax
pop edi
xor edx, edx
mov cl, byte [ebp + esi - 0x174]
mov eax, esi
mov byte [ebp - 1], cl
div edi
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x3c]
add eax, dword [ebp - 0x5c]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x5c], ecx
mov al, byte [ebp + ecx - 0x174]
mov byte [ebp + esi - 0x174], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x174], al
cmp esi, 0x100
jb 0x40d7ec
xor esi, esi
mov dword [ebp - 8], esi
mov edi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x174]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x174]
mov byte [ebp + edi - 0x174], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x174], cl
movzx eax, byte [ebp + edi - 0x174]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x174]
xor al, byte [ebp + esi - 0xc]
mov byte [ebp + esi - 0x3c], al
inc esi
cmp esi, 4
jb 0x40d837
mov eax, dword [0x44a288]
xor ecx, ecx
add eax, 0xa41abfe4
mov byte [ebp - 0x38], cl
push 0x20
or eax, 0x30e5685
mov dword [ebp - 0x60], 0x4c
pop edi
mov dword [0x44a2bc], eax
mov dword [ebp - 0x5c], 0xffffff94
add edi, dword [ebp + ecx*4 - 0x60]
inc ecx
cmp ecx, 2
jl 0x40d8b6
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x64]
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x6c]
mov eax, dword fs:[eax]
push dword [ebp - 0x34]
push dword [eax + 0xa8]
push dword [eax + 0xa4]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x190]
call fcn.0041d4c4
call eax
lea ecx, [ebp - 0x58]
call fcn.0043430e
push dword [ebp - 0x64]
mov esi, eax
lea ecx, [ebp - 0x3c]
push esi
push dword [ebp - 0x74]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x1ac]
call fcn.0041d4c4
call eax
mov ecx, esi
call fcn.004348f7
push eax
push edi
push esi
call fcn.0043423a
add esp, 0x18
mov ecx, esi
call fcn.0041d467
pop edi
pop esi
leave
ret