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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
push ebx
xor ebx, ebx
push esi
xor esi, esi
push edi
mov edi, 0x48dd
mov dword [ebp - 0x40], 0x5f
mov dword [ebp - 8], ebx
mov dword [ebp - 0x5c], 0xc3
mov dword [ebp - 0x54], 0x5e6a
mov dword [ebp - 0x58], 0x7fbd
mov dword [ebp - 0x38], 0x26
mov dword [ebp - 0x50], 0x54a4
mov dword [ebp - 4], ebx
mov dword [ebp - 0x2c], 0x3871
mov dword [ebp - 0x48], 0x7bbf
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x3c], 0x6e86
mov dword [ebp - 0x44], 0x4df8
mov dword [ebp - 0x4c], 0x3c15
cmp dword [ebp + 8], ebx
je 0x40229c
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x40229c
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x114]
mov eax, dword [eax + 0x438]
xor eax, dword [ecx]
cmp edx, eax
jl 0x40229c
call fcn.004031b0
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x13c], eax
lea esp, [esp]
mov eax, 0x4325c53f
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401c30
inc esi
mov eax, esi
and eax, 0x80000007
jns 0x401c52
dec eax
or eax, 0xfffffff8
inc eax
jne 0x401c57
add esi, 2
cmp esi, 0x27d2
jl 0x401c43
mov esi, ecx
mov ecx, 0x6e62
mov eax, dword [esi + 0x114]
xor dword [esi + 0x54], eax
mov eax, dword [ebp + 0xc]
lea edx, [esi + 0x114]
mov dword [esi + 0xc4], edx
xor edx, edx
div dword [esi + 0x54]
mov edi, eax
mov dword [esi + 0x154], edi
imul edi, dword [esi + 0x54]
mov dword [esi + 0xb8], edi
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401c95
xor esi, esi
test edi, edi
mov edi, dword [ebp + 0x10]
je 0x401d00
mov ebx, dword [ebp + 8]
mov eax, dword [edi + 0xc4]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0xc4]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0xc4]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0xc4]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0xb8]
jb 0x401cb6
xor ebx, ebx
nop
inc ebx
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, ebx
sub eax, ecx
jne 0x401d24
inc ebx
cmp ebx, 0x6aeb
jl 0x401d00
mov eax, dword [edi + 0x54]
xor esi, esi
dec eax
je 0x401e71
mov eax, dword [edi + 0x54]
dec eax
push eax
push 1
push edi
call fcn.00403030
mov ecx, dword [ebp - 0x40]
mov bl, al
add esp, 0xc
mov eax, 0x65d5
mov edx, 0xfc
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401d57
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 8]
cmp ecx, 0x3468
jge 0x401d8d
lea ecx, [ecx]
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x401d7f
dec eax
or eax, 0xfffffffc
inc eax
jne 0x401d82
inc ecx
cmp ecx, 0x3468
jl 0x401d70
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x5c]
mov eax, 0x7b1b
mov edx, 0x52
lea ebx, [ebx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401da0
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x401dca
mov eax, 0x82082083
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401db2
mov dword [ebp - 0x54], ecx
xor eax, eax
lea esp, [esp]
cmp bl, byte [edi + eax + 0x2b4]
je 0x401de0
inc eax
cmp eax, esi
jbe 0x401dd0
jmp 0x401de2
xor bl, bl
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x401e08
lea esp, [esp]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401df0
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x38]
mov eax, 0x3391
mov edx, 0x6d
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401e15
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x401e46
jmp 0x401e30
mov eax, 0x5397829d
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e30
mov dword [ebp - 0x50], ecx
test bl, bl
je 0x401e52
mov byte [edi + esi + 0x2b4], bl
inc esi
mov eax, dword [ebp - 4]
cmp eax, 0x204d
mov ecx, 0x204d
cmovl eax, ecx
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x54]
dec eax
cmp esi, eax
jb 0x401d38
push 0x75
lea eax, [ebp - 0xd3]
push 0
push eax
mov byte [ebp - 0xd4], 0
call fcn.00402ec0
lea eax, [ebp - 0xd4]
push eax
call fcn.00402930
xorps xmm0, xmm0
lea ebx, [edi + 0x28]
movq qword [ebp - 0x14], xmm0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], 0xec31040f
mov dword [ebp - 0x24], 0x57d7abe1
movq xmm0, qword [ebp - 0x28]
movq qword [ebx], xmm0
mov dword [ebp - 0x20], 0xc575f908
mov dword [ebp - 0x1c], 0x4ba6d4f
movq xmm0, qword [ebp - 0x20]
movq qword [ebx + 8], xmm0
mov dword [ebp - 0x18], 0x4c5c0c43
movq xmm0, qword [ebp - 0x18]
movq qword [ebx + 0x10], xmm0
add esp, 0x10
xor cl, cl
mov dword [ebx + 0x18], eax
mov word [ebx + 0x1c], 0
mov byte [ebx + 0x1e], cl
mov ecx, 0x6e87
jmp 0x401f00
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f00
mov edi, 0x6995
lea ebx, [ebx]
mov eax, 0x4325c53f
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401f20
mov edi, dword [ebp + 0x10]
xor eax, eax
jmp 0x401f40
xor byte [ebp + eax - 0xd4], 0x5f
inc eax
cmp eax, 0x74
jb 0x401f40
mov eax, 0xf0e
mov edx, 0x63
mov ecx, 0xf8
lea ecx, [ecx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401f60
mov ecx, 0x4997
lea ecx, [ecx]
mov eax, 0x82082083
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f70
mov eax, 0x6309
lea ebx, [ebx]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
test eax, eax
jne 0x401f90
mov dword [ebp - 4], eax
cmp dword [edi + 0x54], eax
jbe 0x40212c
lea esp, [esp]
movzx ebx, byte [edi + eax + 0x2b4]
imul ebx, dword [edi + 0x154]
mov ecx, dword [ebp - 0x2c]
add ebx, dword [ebp + 8]
test ecx, ecx
je 0x401fe6
lea esp, [esp]
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401fd0
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x402006
lea ecx, [ecx]
mov eax, 0x44d72045
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ff0
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x274], ebx
cmp ecx, 0x2d35
jge 0x402029
mov eax, 0x2d34
sub eax, ecx
shr eax, 1
lea ecx, [ecx + eax*2]
add ecx, 2
mov dword [ebp - 0x30], ecx
push 0x75
lea eax, [ebp - 0x14b]
push 0
push eax
mov byte [ebp - 0x14c], 0
call fcn.00402ec0
push 0x75
lea eax, [ebp - 0x14c]
push ebx
push eax
call fcn.00402e90
mov eax, dword [ebp - 0x34]
add esp, 0x18
inc eax
cmp eax, 0x256
jl 0x402055
mov ecx, 0x1d
lea esi, [ebp - 0xd4]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
test ecx, ecx
je 0x40208e
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402076
mov dword [ebp - 0x3c], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x274]
call eax
push 0x75
lea eax, [ebp - 0x14c]
push eax
push ebx
call fcn.00402e90
mov ecx, dword [ebp - 0x44]
add esp, 0xc
test ecx, ecx
je 0x4020c8
mov eax, 0x60f25deb
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020b2
mov dword [ebp - 0x44], ecx
xor esi, esi
cmp dword [edi + 0x154], esi
jbe 0x402119
mov eax, dword [edi + 0xc4]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0xc4]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0xc4]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0xc4]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x154]
jb 0x4020d2
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [edi + 0x54]
jb 0x401fb0
lea ebx, [edi + 0x28]
mov eax, 0x6b3a
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
test eax, eax
jne 0x402131
call fcn.004031b0
mov dword [edi + 0x2a0], eax
add eax, 0xfffffffe
push eax
push dword [edi + 0x13c]
call fcn.004010c0
add esp, 8
mov ecx, 0x7842
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402160
push 0x724b008
push ebx
call fcn.00401a00
add esp, 8
xor esi, esi
inc esi
mov eax, 0x38e38e39
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x4021a1
add esi, esi
cmp esi, 0x1907
jl 0x402185
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
mov ecx, 0x78d7
lea esi, [edx + eax]
sar esi, 8
mov edi, edi
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021c0
test esi, esi
je 0x4021f8
mov edi, dword [ebp + 8]
lea esp, [esp]
push ebx
push 0x100
push edi
call fcn.00402f20
add esp, 0xc
add edi, 0x100
dec esi
jne 0x4021e0
mov eax, 0x6073
lea ecx, [ecx]
dec eax
jne 0x402200
xor ebx, ebx
inc ebx
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x402220
add ebx, 2
cmp ebx, 0x8c8
jl 0x402205
xor ebx, ebx
lea ebx, [ebx]
inc ebx
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, ebx
sub eax, ecx
jne 0x402254
inc ebx
cmp ebx, 0xbff
jl 0x402230
xor ebx, ebx
mov edi, edi
inc ebx
mov eax, 0x38e38e39
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x40227d
add ebx, 2
cmp ebx, 0x27d2
jl 0x402260
mov eax, 0x36406c81
imul dword [ebp - 0x4c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x4c], eax
jne 0x402285
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret