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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
push ebx
push esi
xor esi, esi
xor eax, eax
push edi
mov edi, 0x76d3
mov ebx, 0x219d
mov dword [ebp - 4], 0x4cdf
mov dword [ebp - 0x38], 0x3180
mov dword [ebp - 0x44], 0x403f
mov dword [ebp - 0x80], 0x71ad
mov dword [ebp - 0x78], 0x4753
mov dword [ebp - 8], 0x44bf
mov dword [ebp - 0x30], 0x96
mov dword [ebp - 0x54], 0x23a3
mov dword [ebp - 0x3c], 0x1592
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], 0x1e0e
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x40], 0x6d
mov dword [ebp - 0x48], 0x5e74
mov dword [ebp - 0x50], 0xb5
mov dword [ebp - 0x58], 0x13ca
mov dword [ebp - 0x34], 0x143c
cmp dword [ebp + 8], eax
je 0x4022be
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4022be
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x50]
mov eax, dword [eax + 0xa0]
xor eax, dword [ecx]
cmp edx, eax
jl 0x4022be
call fcn.00403420
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x80], eax
mov eax, 0xd20d20d3
imul edi
add edx, edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401cc4
mov esi, ecx
mov eax, dword [esi + 0x50]
xor dword [esi + 0x10c], eax
mov ecx, dword [esi + 0x10c]
mov eax, dword [ebp + 0xc]
lea edx, [esi + 0x50]
mov dword [esi + 0x37c], edx
xor edx, edx
div ecx
mov dword [esi + 0xec], eax
imul eax, ecx
mov ecx, esi
mov dword [ebp - 0x88], eax
mov dword [ecx + 0x408], eax
mov esi, 0x4ccc
mov eax, 0x60606061
imul esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401d16
xor edi, edi
mov esi, edi
cmp dword [ebp - 0x88], edi
jbe 0x401d91
mov ebx, dword [ebp + 8]
mov esi, ecx
lea ebx, [ebx]
mov eax, dword [esi + 0x37c]
inc edi
mov al, byte [eax]
xor byte [edi + ebx - 1], al
movzx ecx, byte [edi + ebx - 1]
mov eax, dword [esi + 0x37c]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [edi + ebx - 1], dl
mov eax, dword [esi + 0x37c]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [edi + ebx - 1], cl
mov eax, dword [esi + 0x37c]
mov al, byte [eax + 3]
xor al, cl
mov byte [edi + ebx - 1], al
cmp edi, dword [esi + 0x408]
jb 0x401d40
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov ebx, 0x219d
mov eax, 0x2fa0be83
imul ebx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401d91
mov eax, 0x43ea
lea esp, [esp]
dec eax
jne 0x401db0
mov eax, dword [ecx + 0x10c]
xor edi, edi
dec eax
je 0x401ed8
mov eax, dword [ecx + 0x10c]
dec eax
push eax
push 1
push ecx
call fcn.00403230
mov ebx, dword [ebp - 4]
add esp, 0xc
mov cl, al
test ebx, ebx
je 0x401df6
mov edi, edi
mov eax, 0x487ede05
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401de0
mov dword [ebp - 4], ebx
mov edx, dword [ebp + 0x10]
xor eax, eax
jmp 0x401e00
cmp cl, byte [edx + eax + 0x128]
je 0x401e10
inc eax
cmp eax, edi
jbe 0x401e00
jmp 0x401e12
xor cl, cl
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x401e39
lea esp, [esp]
mov eax, 0x5d9f7391
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e20
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x38], ebx
test cl, cl
je 0x401e45
mov byte [edx + edi + 0x128], cl
inc edi
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x401e66
lea esp, [esp]
mov eax, 0x6bca1af3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e50
mov dword [ebp - 0x44], ecx
cmp esi, 0x334f
jge 0x401e8a
mov edi, edi
inc esi
mov eax, esi
and eax, 0x80000001
jns 0x401e7f
dec eax
or eax, 0xfffffffe
inc eax
jne 0x401e82
inc esi
cmp esi, 0x334f
jl 0x401e70
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x401ea9
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e91
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x78]
test ecx, ecx
je 0x401ec6
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401eb0
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x10c]
dec eax
cmp edi, eax
jb 0x401dc2
xorps xmm0, xmm0
lea edi, [ecx + 0x2cc]
movq qword [ebp - 0x68], xmm0
mov dword [ebp - 0x20], 0x44f73277
mov dword [ebp - 0x1c], 0xca894fff
movq xmm0, qword [ebp - 0x20]
movq qword [edi], xmm0
mov dword [ebp - 0x18], 0xb5211495
mov dword [ebp - 0x14], 0x1937608a
movq xmm0, qword [ebp - 0x18]
movq qword [edi + 8], xmm0
mov dword [ebp - 0x10], 0xe2dfa49e
mov dword [ebp - 0xc], 0
movq xmm0, qword [ebp - 0x10]
mov dword [ebp - 0x74], 0xff98ff21
mov dword [ebp - 0x70], 0xe47048b5
mov dword [ebp - 0x6c], 0xb72991ff
mov dword [ebp - 0x60], 0
mov word [ebp - 0x5c], 0
mov byte [ebp - 0x5a], 0
mov dword [ebp - 4], edi
movq qword [edi + 0x10], xmm0
xor eax, eax
jmp 0x401f60
xor byte [ebp + eax - 0x74], 0x74
inc eax
cmp eax, 0xc
jb 0x401f60
jmp 0x401f70
mov eax, 0x214d0215
imul dword [ebp - 8]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 8], eax
jne 0x401f70
xor ebx, ebx
mov dword [ebp - 8], ebx
cmp dword [ecx + 0x10c], ebx
jbe 0x4021ae
mov esi, 0x4e
lea ecx, [ecx]
mov edx, dword [ebp - 0x30]
mov eax, 0x6ff4
cmp edx, 0x4e
cmovl edx, esi
dec eax
jne 0x401fa8
movzx edi, byte [ebx + ecx + 0x128]
imul edi, dword [ecx + 0xec]
add edi, dword [ebp + 8]
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x30], edx
mov dword [ecx + 0x2f4], edi
test esi, esi
je 0x401fe9
mov eax, 0xfe03f81
imul esi
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401fd3
mov dword [ebp - 0x54], esi
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x402006
mov eax, 0x532ae21d
imul esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401ff0
mov dword [ebp - 0x3c], esi
movq xmm0, qword [edi]
mov eax, dword [ebp - 0x4c]
movq qword [ebp - 0x8c], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0x7c], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x84], xmm0
lea esp, [esp]
inc eax
cmp eax, 0x716c
jl 0x402030
movq xmm0, qword [ebp - 0x74]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x6c]
movq qword [edi], xmm0
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x24]
lea ecx, [ecx]
inc eax
cmp eax, 5
jl 0x402050
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x2f4]
call eax
movq xmm0, qword [ebp - 0x8c]
mov ecx, dword [ebp + 0x10]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x7c]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x84]
xor esi, esi
movq qword [edi + 0x10], xmm0
cmp dword [ecx + 0xec], esi
jbe 0x4020dd
mov ebx, ecx
mov eax, dword [ebx + 0x37c]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x37c]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x37c]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x37c]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0xec]
jb 0x402093
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x4020fc
mov eax, 0x84a9f9c9
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020e4
mov dword [ebp - 0x2c], ecx
mov esi, dword [ebp - 0x28]
cmp esi, 0x55ea
jge 0x402123
mov ecx, 0x55e9
sub ecx, esi
mov eax, 0x38e38e39
mul ecx
shr edx, 1
lea eax, [edx + esi]
lea eax, [eax + edx*8]
add eax, 9
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x40]
mov eax, 0x7ec7
mov edx, 0xac
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402130
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x402158
mov eax, 0x5d9f7391
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402142
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x50]
mov eax, 0x6c66
mov edx, 0xdc
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402165
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x402196
jmp 0x402180
mov eax, 0x4c8f8d29
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402180
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 8], ebx
mov esi, 0x4e
cmp ebx, dword [ecx + 0x10c]
jb 0x401fa0
mov eax, 0x726b
mov edx, 0x54
mov ecx, 0x46
lea ecx, [ecx]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4021c0
mov edi, 0x5109
lea ecx, [ecx]
mov eax, 0x3a196b1f
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4021d0
call fcn.00403420
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x338], eax
add eax, 0xfffffffe
push eax
push dword [ecx + 0x80]
call fcn.00401150
mov edi, dword [ebp - 4]
push 0x5c852b2
push edi
call fcn.00401a80
add esp, 0x10
mov ecx, 0x6fb3
mov eax, 0x97012e03
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402216
mov edi, 0x5a42
mov eax, 0x4da637d
imul edi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402230
mov edi, dword [ebp - 4]
mov ecx, 0x181c
mov edx, 0x4b
mov eax, 0xda
cmp eax, 0x4b
cmovl eax, edx
dec ecx
jne 0x402255
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x402290
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.00403100
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x402275
lea ecx, [ecx]
mov eax, 0x2c0b02c1
imul dword [ebp - 0x34]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x34], eax
jne 0x402290
mov eax, 0x788b
mov edx, 0xe7
mov ecx, 0xe0
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4022b6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret