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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8
push ebx
xor ecx, ecx
push esi
push edi
mov edi, 0x7562
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x50], ecx
mov eax, 0x9d
mov esi, 0x23e3
lea ebx, [edi + 0x1b]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], 0x331d
mov dword [ebp - 0x4c], 0x68ed
mov dword [ebp - 0x34], 0xa72
mov dword [ebp - 0x5c], 0x4752
mov dword [ebp - 0x3c], 0xb84
mov dword [ebp - 0x54], 0x31c4
mov dword [ebp - 4], 0x7169
mov dword [ebp - 0x28], 0xbb
mov dword [ebp - 0x2c], 0x83f
mov dword [ebp - 0x40], 0x6576
mov dword [ebp - 0x48], 0xa1
mov ecx, 0x59b6
mov edx, 0xbe
cmp eax, 0xbe
cmovl eax, edx
dec ecx
jne 0x4027cc
cmp dword [ebp + 8], ecx
je 0x402e87
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402e87
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0x138]
mov eax, dword [eax + 0x44]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402e87
call fcn.00403fdc
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x3c], eax
mov eax, 0xae4c415d
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x40280c
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402821
mov esi, ecx
mov eax, dword [esi + 0x138]
xor dword [esi + 0x130], eax
mov edi, dword [esi + 0x130]
lea ecx, [esi + 0x138]
mov eax, 0x81020409
imul ebx
add edx, ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402850
mov eax, dword [ebp + 0xc]
xor edx, edx
div edi
mov dword [esi + 0xa8], ecx
mov ecx, eax
mov dword [esi + 0x260], ecx
mov eax, 0x69aa
dec eax
jne 0x40287f
imul edi, ecx
mov dword [esi + 0x70], edi
mov eax, 0x6c00
mov edx, 0x5c
mov ecx, 0x17
jmp 0x40289c
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x40289c
mov ecx, 0x644d
lea ecx, [ecx]
mov eax, 0xd62b80d7
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4028ac
mov ecx, 0x4c97
lea ebx, [ebx]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4028cc
xor esi, esi
test edi, edi
mov edi, dword [ebp + 0x10]
je 0x402931
mov ebx, dword [ebp + 8]
mov eax, dword [edi + 0xa8]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0xa8]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0xa8]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0xa8]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x70]
jb 0x4028ed
mov eax, 0x6279
mov edx, 0x70
mov ecx, 0x15
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402940
mov eax, 0x415e
mov esi, 0x92
mov ecx, 0x27
jmp 0x40295c
cmp ecx, esi
cmovg ecx, esi
dec eax
jne 0x40295c
mov eax, 0x1419
mov ecx, 0x5c
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x40296e
mov eax, dword [edi + 0x130]
xor esi, esi
dec eax
je 0x402a51
lea esp, [esp]
mov eax, dword [edi + 0x130]
dec eax
push eax
push 1
push edi
call fcn.00403e7c
add esp, 0xc
mov bl, al
xor eax, eax
cmp bl, byte [edi + eax + 0x160]
je 0x4029b3
inc eax
cmp eax, esi
jbe 0x4029a3
jmp 0x4029b5
xor bl, bl
mov eax, dword [ebp - 0x60]
lea esp, [esp]
inc eax
cmp eax, 0x2ef3
jl 0x4029bc
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x60], eax
cmp edi, 0x2e4d
jge 0x4029f1
mov ecx, 0x2e4c
sub ecx, edi
mov eax, 0x38e38e39
mul ecx
shr edx, 1
lea eax, [edx + edi]
lea ecx, [edx*8 + 9]
add ecx, eax
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x402a14
lea esp, [esp]
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4029fc
mov dword [ebp - 0x58], ecx
mov edi, dword [ebp + 0x10]
test bl, bl
je 0x402a23
mov byte [edi + esi + 0x160], bl
inc esi
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x402a42
mov edi, edi
mov eax, 0x2f149903
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402a2c
mov dword [ebp - 0x4c], ecx
mov eax, dword [edi + 0x130]
dec eax
cmp esi, eax
jb 0x40298c
mov eax, 0x1b4e81b5
imul dword [ebp - 0x34]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x34], eax
jne 0x402a51
mov ecx, 0x2a67
mov eax, 0xe1fc780f
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402a6d
push 0x3a
push ecx
lea eax, [ebp - 0x9b]
push eax
mov byte [ebp - 0x9c], cl
call fcn.00403d3c
lea eax, [ebp - 0x9c]
push eax
call fcn.0040353c
add esp, 0x10
lea ebx, [ebx]
mov eax, 0x2aaaaaab
imul dword [ebp - 0x5c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x5c], eax
jne 0x402aac
jmp 0x402acc
mov eax, 0x7e07e07f
imul dword [ebp - 0x3c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x3c], eax
jne 0x402acc
lea ebx, [edi + 0x80]
mov dword [ebp - 0x20], 0x68a24437
mov dword [ebp - 0x1c], 0xc4b74f83
movq xmm0, qword [ebp - 0x20]
movq qword [ebx], xmm0
mov dword [ebp - 0x18], 0x459f7289
mov dword [ebp - 0x14], 0x4fdc261e
movq xmm0, qword [ebp - 0x18]
mov dword [ebp - 0x10], 0x50b4b950
mov eax, dword [ebp - 0x10]
xor ecx, ecx
movq qword [ebx + 8], xmm0
mov dword [ebx + 0x10], eax
mov word [ebx + 0x14], cx
mov byte [ebx + 0x16], cl
xor eax, eax
xor byte [ebp + eax - 0x9c], 0xc5
inc eax
cmp eax, 0x39
jb 0x402b30
mov eax, 0x66666667
imul dword [ebp - 0x54]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x54], eax
jne 0x402b3e
lea esp, [esp]
mov eax, 0x214d0215
imul dword [ebp - 4]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
jne 0x402b5c
mov eax, 0x6201
mov edx, 0x39
mov ecx, 0x64
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402b82
mov eax, 0x3ffe
mov edx, 0x55
mov ecx, 0xd2
lea ecx, [ecx]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402b9c
mov dword [ebp - 4], eax
cmp dword [edi + 0x130], eax
jbe 0x402dc6
mov edx, 0xb0
lea esp, [esp]
movzx ebx, byte [edi + eax + 0x160]
imul ebx, dword [edi + 0x260]
add ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0x2a0], ebx
mov eax, 0xa1c
cmp ecx, 0xb0
cmovl ecx, edx
dec eax
jne 0x402bdc
push 0x3a
push eax
mov byte [ebp - 0xd8], al
lea eax, [ebp - 0xd7]
push eax
mov dword [ebp - 0x28], ecx
call fcn.00403d3c
push 0x3a
lea eax, [ebp - 0xd8]
push ebx
push eax
call fcn.00403d0c
mov ecx, dword [ebp - 0x2c]
add esp, 0x18
test ecx, ecx
je 0x402c32
lea ecx, [ecx]
mov eax, 0x5254e78f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402c1c
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x475d
jge 0x402c50
mov eax, 0x475c
sub eax, ecx
shr eax, 2
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x38]
inc eax
cmp eax, 0x5422
jl 0x402c53
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
test ecx, ecx
je 0x402c82
lea esp, [esp]
mov eax, 0x2c0b02c1
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402c6c
mov dword [ebp - 0x40], ecx
mov esi, dword [ebp - 8]
cmp esi, 0x5cea
jge 0x402cbc
inc esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
sub eax, ecx
jne 0x402cb1
inc esi
cmp esi, 0x5cea
jl 0x402c8d
mov dword [ebp - 8], esi
mov eax, 0x2a33
dec eax
jne 0x402cc1
mov ecx, 0xe
lea esi, [ebp - 0x9c]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x24]
cmp esi, 0x6abd
jge 0x402d0e
inc esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
sub eax, ecx
jne 0x402d03
inc esi
cmp esi, 0x6abd
jl 0x402cdf
mov dword [ebp - 0x24], esi
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x2a0]
call eax
mov ecx, dword [ebp - 0x48]
mov eax, 0x206
mov edx, 0xd6
lea ebx, [ebx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402d2c
push 0x3a
lea eax, [ebp - 0xd8]
push eax
push ebx
mov dword [ebp - 0x48], ecx
call fcn.00403d0c
mov eax, dword [ebp - 0x50]
add esp, 0xc
inc eax
cmp eax, 0x2adc
jl 0x402d4c
xor esi, esi
mov dword [ebp - 0x50], eax
cmp dword [edi + 0x260], esi
jbe 0x402da8
mov eax, dword [edi + 0xa8]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0xa8]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0xa8]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0xa8]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x260]
jb 0x402d61
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
mov edx, 0xb0
cmp eax, dword [edi + 0x130]
jb 0x402bbc
lea ebx, [edi + 0x80]
mov ecx, 0x4ec9
nop
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402dcc
call fcn.00403fdc
mov dword [edi + 0xa4], eax
add eax, 0xfffffffe
push eax
push dword [edi + 0x3c]
call fcn.004019fc
add esp, 8
mov eax, 0x1c7
mov edx, 0x80
mov ecx, 0x28
mov edi, edi
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402e0c
push 0x356a7716
push ebx
call fcn.0040265c
add esp, 8
mov ecx, 0x2c91
mov edx, 0xd4
mov eax, 0xbc
cmp eax, 0xd4
cmovg eax, edx
dec ecx
jne 0x402e31
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x402e6b
mov edi, dword [ebp + 8]
push ebx
push 0x100
push edi
call fcn.00403d6c
add esp, 0xc
add edi, 0x100
dec esi
jne 0x402e53
xor ecx, ecx
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x402e7c
dec eax
or eax, 0xfffffffc
inc eax
jne 0x402e7f
inc ecx
cmp ecx, 0x6d80
jl 0x402e6d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret