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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
push ebx
xor ebx, ebx
push esi
xor esi, esi
push edi
mov ecx, 0xd9
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x38], 0x8a
mov dword [ebp - 4], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], 0x7c7c
mov dword [ebp - 0x30], 0x4052
cmp dword [ebp + 8], ebx
je 0x402093
cmp dword [ebp + 0xc], ebx
je 0x402093
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x1d4]
xor eax, dword [edi + 0x6c]
cmp dword [ebp + 0xc], eax
jl 0x402093
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 0x401c0a
add ebx, ebx
cmp ebx, 0x19ab
jl 0x401bf0
mov ecx, 0x2d31
mov edx, 0x46
mov eax, 0xf6
cmp eax, 0x46
cmovl eax, edx
dec ecx
jne 0x401c21
call fcn.00403140
lea ecx, [edi + 0x6c]
mov dword [edi + 8], eax
mov eax, dword [ecx]
xor dword [edi + 0x24], eax
mov esi, dword [edi + 0x24]
mov dword [edi + 0x1e8], ecx
mov ecx, 0x180f
mov edx, 0xba
mov eax, 0x1b
cmp eax, 0xba
cmovg eax, edx
dec ecx
jne 0x401c52
mov eax, dword [ebp + 0xc]
xor edx, edx
div esi
mov ecx, 0x2d
mov edx, eax
mov dword [edi + 0x2a0], edx
imul edx, esi
mov dword [edi + 0x1fc], edx
mov eax, 0x5882
mov esi, 0x26
cmp ecx, esi
cmovg ecx, esi
dec eax
jne 0x401c84
xor esi, esi
test edx, edx
je 0x401cdc
mov ebx, dword [ebp + 8]
mov eax, dword [edi + 0x1e8]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x1e8]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x1e8]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x1e8]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x1fc]
jb 0x401c95
mov eax, 0x4da5
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
test eax, eax
jne 0x401ce1
mov eax, dword [edi + 0x24]
xor esi, esi
dec eax
je 0x401d97
mov ebx, 0x5473
nop
mov eax, dword [edi + 0x24]
dec eax
push eax
push 1
push edi
call fcn.00402fc0
add esp, 0xc
mov cl, al
test ebx, ebx
je 0x401d29
mov eax, 0x2e8ba2e9
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401d16
xor eax, eax
jmp 0x401d30
cmp cl, byte [eax + edi + 0xb4]
je 0x401d40
inc eax
cmp eax, esi
jbe 0x401d30
jmp 0x401d42
xor cl, cl
mov eax, dword [ebp - 0x40]
inc eax
cmp eax, 0x6d53
jl 0x401d45
mov dword [ebp - 0x40], eax
test cl, cl
je 0x401d5c
mov byte [esi + edi + 0xb4], cl
inc esi
mov ecx, dword [ebp - 0x38]
mov eax, 0x25da
mov edx, 0x1a
lea esp, [esp]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401d70
mov eax, dword [ebp - 4]
mov dword [ebp - 0x38], ecx
mov edi, edi
inc eax
cmp eax, 0x55b
jl 0x401d80
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x24]
dec eax
cmp esi, eax
jb 0x401d00
push 0x71
lea eax, [ebp - 0xb3]
push 0
push eax
mov byte [ebp - 0xb4], 0
call fcn.00402e50
lea eax, [ebp - 0xb4]
push eax
call fcn.00402890
add esp, 0x10
xor ebx, ebx
nop
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 0x401dd9
inc ebx
cmp ebx, 0x737a
jl 0x401dc0
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0xf633f728
mov dword [ebp - 0x20], 0x3b36c09d
mov dword [ebp - 0x1c], 0xe05daf16
mov dword [ebp - 0x18], 0xe727426e
mov dword [ebp - 0x14], 0x4437e6f4
movq qword [ebp - 0x10], xmm0
mov dword [ebp - 8], 0
mov edi, 0x5f
jmp 0x401e20
mov eax, 0x4d4873ed
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401e20
mov edi, dword [ebp + 0x10]
movq xmm0, qword [ebp - 0x24]
movq qword [edi + 0x88], xmm0
movq xmm0, qword [ebp - 0x1c]
movq qword [edi + 0x90], xmm0
movq xmm0, qword [ebp - 0x14]
movq qword [edi + 0x98], xmm0
movq xmm0, qword [ebp - 0xc]
movq qword [edi + 0xa0], xmm0
xor ecx, ecx
lea esp, [esp]
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x401e7f
dec eax
or eax, 0xfffffffc
inc eax
jne 0x401e82
inc ecx
cmp ecx, 0x68f9
jl 0x401e70
xor eax, eax
lea esp, [esp]
xor byte [ebp + eax - 0xb4], 0x29
inc eax
cmp eax, 0x70
jb 0x401e90
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [edi + 0x24], eax
jbe 0x401fc9
lea esp, [esp]
mov ecx, dword [ebp - 0x3c]
inc ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, 0x5061
jl 0x401eb0
movzx ebx, byte [eax + edi + 0xb4]
imul ebx, dword [edi + 0x2a0]
add ebx, dword [ebp + 8]
push 0x71
lea eax, [ebp - 0x127]
push 0
push eax
mov dword [edi + 0x374], ebx
mov byte [ebp - 0x128], 0
call fcn.00402e50
push 0x71
lea eax, [ebp - 0x128]
push ebx
push eax
call fcn.00402e20
mov ecx, 0x1c
lea esi, [ebp - 0xb4]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x10]
add esp, 0x18
mov eax, dword [edi + 0x374]
call eax
mov eax, dword [ebp - 0x34]
lea ecx, [ecx]
inc eax
cmp eax, 5
jl 0x401f20
mov dword [ebp - 0x34], eax
push 0x71
lea eax, [ebp - 0x128]
push eax
push ebx
call fcn.00402e20
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov edi, edi
inc eax
cmp eax, 0x4042
jl 0x401f40
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
test ecx, ecx
je 0x401f68
mov eax, 0x342da7f3
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f52
mov dword [ebp - 0x2c], ecx
xor esi, esi
cmp dword [edi + 0x2a0], esi
jbe 0x401fb9
mov eax, dword [edi + 0x1e8]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x1e8]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x1e8]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x1e8]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x2a0]
jb 0x401f72
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [edi + 0x24]
jb 0x401eb0
mov ecx, 0x4ac9
mov edi, edi
mov eax, 0xae4c415d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401fd0
mov ebx, 0x57be
lea ebx, [ebx]
mov eax, 0x4ec4ec4f
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401ff0
call fcn.00403140
lea ecx, [eax - 2]
push ecx
push dword [edi + 8]
mov dword [edi + 0x64], eax
call fcn.004010c0
push 0x250b718
lea ebx, [edi + 0x88]
push ebx
call fcn.00401a40
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 0x10
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x40205a
mov edi, dword [ebp + 8]
push ebx
push 0x100
push edi
call fcn.00402eb0
add esp, 0xc
add edi, 0x100
dec esi
jne 0x402042
mov ecx, 0x90c
nop
mov eax, 0x81848da9
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402060
mov eax, 0x10fef011
imul dword [ebp - 0x30]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x30], eax
jne 0x402075
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x6c78
mov edx, 0x16
lea ecx, [ecx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4020a0
inc esi
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, esi
sub eax, ecx
jne 0x4020c3
inc esi
cmp esi, 0x74dd
jl 0x4020a8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret