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

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
push edi
sub esp, 0x29c
mov eax, dword [ebp + 8]
mov word [ebp - 0xe], 0x945b
mov byte [ebp - 0xf], 0xba
mov dword [ebp - 0x14], 0x70fada51
mov cx, word [ebp - 0xe]
xor cx, 0xfaa1
mov word [ebp - 0x3a], cx
mov edx, dword [0x451c04]
mov esi, dword [0x451c14]
mov edi, dword [0x451aa4]
mov ebx, dword [0x451b4c]
mov ecx, dword [0x4519ec]
mov dword [ebp - 0x168], eax
mov eax, dword [0x451a94]
sub eax, ecx
add ebx, eax
sub ebx, edi
add edx, ebx
mov eax, dword [0x451b5c]
sub edx, eax
mov eax, dword [0x451cbc]
add eax, edx
sub eax, esi
mov ecx, dword [0x45228c]
mov edx, dword [0x4521d4]
mov esi, dword [0x45211c]
mov edi, dword [0x45210c]
mov ebx, dword [0x451ef4]
mov dword [ebp - 0x16c], eax
mov eax, dword [0x451ee4]
mov dword [ebp - 0x170], eax
mov eax, dword [0x451ccc]
mov dword [ebp - 0x174], eax
mov eax, dword [0x451d74]
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x16c]
add eax, ecx
mov ecx, dword [ebp - 0x174]
sub eax, ecx
mov ecx, dword [0x451e2c]
add ecx, eax
mov eax, dword [0x451d84]
sub ecx, eax
mov eax, dword [ebp - 0x170]
add eax, ecx
mov ecx, dword [0x451e3c]
sub eax, ecx
mov ecx, dword [0x451f9c]
add ecx, eax
sub ecx, ebx
mov eax, dword [0x452054]
add eax, ecx
mov ecx, dword [0x451fac]
sub eax, ecx
add edi, eax
mov eax, dword [0x452064]
sub edi, eax
mov eax, dword [0x4521c4]
add eax, edi
sub eax, esi
mov ecx, dword [0x45227c]
add ecx, eax
sub ecx, edx
mov eax, dword [0x452334]
add eax, ecx
mov ecx, dword [ebp - 0x178]
sub eax, ecx
mov ecx, dword [0x4526cc]
mov edx, dword [0x45256c]
mov esi, dword [0x452614]
mov edi, dword [0x4523fc]
mov ebx, dword [0x4524a4]
mov dword [ebp - 0x17c], eax
mov eax, dword [0x4523ec]
mov dword [ebp - 0x180], ecx
mov ecx, dword [ebp - 0x17c]
add eax, ecx
mov ecx, dword [0x452344]
sub eax, ecx
add ebx, eax
sub ebx, edi
mov eax, dword [0x45255c]
add eax, ebx
mov ecx, dword [0x4524b4]
sub eax, ecx
add esi, eax
sub esi, edx
mov eax, dword [ebp - 0x180]
add eax, esi
mov ecx, dword [0x45283c]
mov edx, dword [0x452784]
mov esi, dword [0x452624]
sub eax, esi
add edx, eax
mov eax, dword [0x4526dc]
sub edx, eax
add ecx, edx
mov eax, dword [0x45284c]
mov edx, dword [0x4528f4]
lea esi, [ebp - 0x38]
mov edi, dword [0x452794]
sub ecx, edi
add edx, ecx
sub edx, eax
mov byte [ebp - 0x38], 0x56
mov byte [ebp - 0x37], 0x69
mov byte [ebp - 0x36], 0x72
mov al, byte [ebp - 0xf]
mov ah, 0x2e
sub ah, al
mov byte [ebp - 0x35], ah
mov byte [ebp - 0x34], 0x75
mov ah, al
add ah, 0xa7
mov byte [ebp - 0x33], ah
mov ah, 0x26
sub ah, al
mov byte [ebp - 0x32], ah
mov cl, 0xfb
sub cl, al
mov byte [ebp - 0x31], cl
mov byte [ebp - 0x30], 0x6c
mov byte [ebp - 0x2f], ah
mov byte [ebp - 0x2e], 0x6f
mov byte [ebp - 0x2d], 0x63
mov cl, al
xor cl, 0xba
mov byte [ebp - 0x2c], cl
add al, 0x54
mov byte [ebp - 0x2b], al
mov dword [ebp - 0x184], esi
mov dword [ebp - 0x188], edx
call fcn.00405fa0
mov edx, esp
mov esi, dword [ebp - 0x184]
mov dword [edx + 4], esi
mov dword [edx], eax
call fcn.00405b70
mov edx, dword [ebp - 0x14]
add edx, 0x8f0525b3
mov esi, dword [0x452924]
mov edi, esp
mov dword [edi + 0xc], edx
mov dword [edi + 8], esi
mov edx, dword [ebp - 0x188]
mov dword [edi + 4], edx
mov dword [edi], 0
call eax
sub esp, 0x10
mov edx, eax
mov esi, dword [0x4519ec]
mov edi, dword [0x451a94]
sub edi, esi
mov esi, dword [0x451a98]
mov ebx, esp
mov dword [ebx + 8], edi
mov dword [ebx + 4], esi
mov dword [ebx], eax
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x194], edi
call fcn.00405110
mov edx, dword [ebp - 0x18c]
mov esi, dword [ebp - 0x194]
add edx, esi
mov edi, dword [0x451b4c]
mov ebx, dword [0x451aa4]
sub edi, ebx
mov ebx, dword [0x451b50]
mov ecx, esp
mov dword [ecx + 8], edi
mov dword [ecx + 4], ebx
mov dword [ecx], edx
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x19c], edi
call fcn.00405110
mov ecx, dword [0x451b5c]
mov edx, dword [0x451c08]
mov esi, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x194]
add esi, edi
mov ebx, dword [ebp - 0x18c]
add ebx, esi
mov edi, dword [0x451c04]
sub edi, ecx
mov ecx, esp
mov dword [ecx + 8], edi
mov dword [ecx + 4], edx
mov dword [ecx], ebx
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x1a4], edi
mov dword [ebp - 0x1a8], esi
call fcn.00405110
mov ecx, dword [0x451cbc]
mov edx, dword [0x451c14]
sub ecx, edx
mov edx, dword [ebp - 0x1a4]
mov esi, dword [ebp - 0x1a8]
add edx, esi
mov edi, dword [ebp - 0x18c]
add edi, edx
mov ebx, dword [0x451cc0]
mov esi, esp
mov dword [esi + 8], ecx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1b0], ecx
mov dword [ebp - 0x1b4], edx
call fcn.00405110
mov ecx, dword [0x451d74]
mov edx, dword [ebp - 0x1b0]
mov esi, dword [ebp - 0x1b4]
add edx, esi
mov edi, dword [ebp - 0x18c]
add edi, edx
mov ebx, dword [0x451ccc]
sub ecx, ebx
mov ebx, dword [0x451d78]
mov esi, esp
mov dword [esi + 8], ecx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1bc], ecx
mov dword [ebp - 0x1c0], edx
call fcn.00405110
mov ecx, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x1c0]
add ecx, edx
mov esi, dword [ebp - 0x18c]
add esi, ecx
mov edi, dword [0x451d84]
mov ebx, dword [0x451e2c]
sub ebx, edi
mov edi, dword [0x451e30]
mov edx, esp
mov dword [edx + 8], ebx
mov dword [edx + 4], edi
mov dword [edx], esi
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1cc], ebx
call fcn.00405110
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x1c8]
add ecx, edx
mov esi, dword [ebp - 0x18c]
add esi, ecx
mov edi, dword [0x451e3c]
mov ebx, dword [0x451ee8]
mov edx, dword [0x451ee4]
sub edx, edi
mov edi, esp
mov dword [edi + 8], edx
mov dword [edi + 4], ebx
mov dword [edi], esi
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1d4], ecx
mov dword [ebp - 0x1d8], edx
call fcn.00405110
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1d4]
add ecx, edx
mov esi, dword [ebp - 0x18c]
add esi, ecx
mov edi, dword [0x451f9c]
mov ebx, dword [0x451ef4]
sub edi, ebx
mov ebx, dword [0x451fa0]
mov edx, esp
mov dword [edx + 8], edi
mov dword [edx + 4], ebx
mov dword [edx], esi
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x1e4], edi
call fcn.00405110
mov ecx, dword [0x452054]
mov edx, dword [0x451fac]
sub ecx, edx
mov edx, dword [ebp - 0x1e4]
mov esi, dword [ebp - 0x1e0]
add edx, esi
mov edi, dword [ebp - 0x18c]
add edi, edx
mov ebx, dword [0x452058]
mov esi, esp
mov dword [esi + 8], ecx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1ec], ecx
mov dword [ebp - 0x1f0], edx
call fcn.00405110
mov ecx, dword [0x452064]
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f0]
add edx, esi
mov edi, dword [ebp - 0x18c]
add edi, edx
mov ebx, dword [0x45210c]
sub ebx, ecx
mov ecx, dword [0x452110]
mov esi, esp
mov dword [esi + 8], ebx
mov dword [esi + 4], ecx
mov dword [esi], edi
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x1fc], edx
call fcn.00405110
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1fc]
add ecx, edx
mov esi, dword [ebp - 0x18c]
add esi, ecx
mov edi, dword [0x45211c]
mov ebx, dword [0x4521c4]
sub ebx, edi
mov edi, dword [0x4521c8]
mov edx, esp
mov dword [edx + 8], ebx
mov dword [edx + 4], edi
mov dword [edx], esi
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x204], ecx
mov dword [ebp - 0x208], ebx
call fcn.00405110
mov ecx, dword [0x45227c]
mov edx, dword [0x452280]
mov esi, dword [0x4521d4]
sub ecx, esi
mov esi, dword [ebp - 0x208]
mov edi, dword [ebp - 0x204]
add esi, edi
mov ebx, dword [ebp - 0x18c]
add ebx, esi
mov edi, esp
mov dword [edi + 8], ecx
mov dword [edi + 4], edx
mov dword [edi], ebx
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x214], esi
call fcn.00405110
mov ecx, dword [0x45228c]
mov edx, dword [0x452334]
sub edx, ecx
mov ecx, dword [ebp - 0x210]
mov esi, dword [ebp - 0x214]
add ecx, esi
mov edi, dword [ebp - 0x18c]
add edi, ecx
mov ebx, dword [0x452338]
mov esi, esp
mov dword [esi + 8], edx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x21c], edx
mov dword [ebp - 0x220], ecx
call fcn.00405110
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x220]
add ecx, edx
mov esi, dword [0x452344]
mov edi, dword [0x4523ec]
sub edi, esi
mov esi, dword [ebp - 0x18c]
add esi, ecx
mov ebx, dword [0x4523f0]
mov edx, esp
mov dword [edx + 8], edi
mov dword [edx + 4], ebx
mov dword [edx], esi
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x22c], edi
call fcn.00405110
mov ecx, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x228]
add ecx, edx
mov esi, dword [0x4523fc]
mov edi, dword [0x4524a4]
sub edi, esi
mov esi, dword [0x4524a8]
mov ebx, dword [ebp - 0x18c]
add ebx, ecx
mov edx, esp
mov dword [edx + 8], edi
mov dword [edx + 4], esi
mov dword [edx], ebx
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x238], edi
call fcn.00405110
mov ecx, dword [ebp - 0x238]
mov edx, dword [ebp - 0x234]
add ecx, edx
mov esi, dword [0x45255c]
mov edi, dword [0x452560]
mov ebx, dword [ebp - 0x18c]
add ebx, ecx
mov edx, dword [0x4524b4]
sub esi, edx
mov edx, esp
mov dword [edx + 8], esi
mov dword [edx + 4], edi
mov dword [edx], ebx
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x244], esi
call fcn.00405110
mov ecx, dword [0x452614]
mov edx, dword [0x45256c]
sub ecx, edx
mov edx, dword [0x452618]
mov esi, dword [ebp - 0x244]
mov edi, dword [ebp - 0x240]
add esi, edi
mov ebx, dword [ebp - 0x18c]
add ebx, esi
mov edi, esp
mov dword [edi + 8], ecx
mov dword [edi + 4], edx
mov dword [edi], ebx
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x250], esi
call fcn.00405110
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x250]
add ecx, edx
mov esi, dword [0x452624]
mov edi, dword [0x4526cc]
sub edi, esi
mov esi, dword [0x4526d0]
mov ebx, dword [ebp - 0x18c]
add ebx, ecx
mov edx, esp
mov dword [edx + 8], edi
mov dword [edx + 4], esi
mov dword [edx], ebx
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x258], ecx
mov dword [ebp - 0x25c], edi
call fcn.00405110
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ebp - 0x258]
add ecx, edx
mov esi, dword [ebp - 0x18c]
add esi, ecx
mov edi, dword [0x452788]
mov ebx, dword [0x452784]
mov edx, dword [0x4526dc]
sub ebx, edx
mov edx, esp
mov dword [edx + 8], ebx
mov dword [edx + 4], edi
mov dword [edx], esi
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x268], ebx
call fcn.00405110
mov ecx, dword [0x452794]
mov edx, dword [0x45283c]
sub edx, ecx
mov ecx, dword [ebp - 0x268]
mov esi, dword [ebp - 0x264]
add ecx, esi
mov edi, dword [ebp - 0x18c]
add edi, ecx
mov ebx, dword [0x452840]
mov esi, esp
mov dword [esi + 8], edx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x270], edx
mov dword [ebp - 0x274], ecx
call fcn.00405110
mov ecx, dword [0x45284c]
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x274]
add edx, esi
mov edi, dword [ebp - 0x18c]
add edi, edx
mov edx, dword [0x4528f8]
mov ebx, dword [0x4528f4]
sub ebx, ecx
mov ecx, esp
mov dword [ecx + 8], ebx
mov dword [ecx + 4], edx
mov dword [ecx], edi
mov dword [ebp - 0x278], eax
call fcn.00405110
lea ecx, [ebp - 0x151]
movaps xmm0, xmmword [0x44d110]
movups xmmword [ebp - 0x151], xmm0
movaps xmm0, xmmword [0x44d120]
movups xmmword [ebp - 0x141], xmm0
movaps xmm0, xmmword [str._________._0123456789:_____ABCDEFGHIJKLMNOPQRSTUVWXYZ____abcdefghijklmnopqrstuvwxyz]
movups xmmword [ebp - 0x131], xmm0
movaps xmm0, xmmword [0x44d140]
movups xmmword [ebp - 0x121], xmm0
movaps xmm0, xmmword [0x44d150]
movups xmmword [ebp - 0x111], xmm0
movaps xmm0, xmmword [0x44d160]
movups xmmword [ebp - 0x101], xmm0
movaps xmm0, xmmword [0x44d170]
movups xmmword [ebp - 0xf1], xmm0
movaps xmm0, xmmword [0x44d180]
movups xmmword [ebp - 0xe1], xmm0
movaps xmm0, xmmword [0x44d190]
movups xmmword [ebp - 0xd1], xmm0
movaps xmm0, xmmword [0x44d1a0]
movups xmmword [ebp - 0xc1], xmm0
movaps xmm0, xmmword [0x44d1b0]
movups xmmword [ebp - 0xb1], xmm0
movaps xmm0, xmmword [0x44d1c0]
movups xmmword [ebp - 0xa1], xmm0
movaps xmm0, xmmword [0x44d1d0]
movups xmmword [ebp - 0x91], xmm0
movaps xmm0, xmmword [0x44d1e0]
movups xmmword [ebp - 0x81], xmm0
movaps xmm0, xmmword [0x44d1f0]
movups xmmword [ebp - 0x71], xmm0
movaps xmm0, xmmword [0x44d200]
movups xmmword [ebp - 0x61], xmm0
mov dword [ebp - 0x40], 0
mov edx, dword [ebp - 0x14]
xor edx, 0x70fada51
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x280], ecx
jmp 0x40363d
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x48]
mov dl, byte [ebp + eax - 0x151]
mov byte [ecx], dl
mov dl, byte [ebp - 0x49]
mov byte [ebp + eax - 0x151], dl
mov eax, dword [ebp - 0x15c]
add eax, 1
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x50], eax
cmp eax, 0x100
je 0x40381e
mov ax, 0xeef3
lea ecx, [ebp - 0x151]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x15c], edx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x160], edx
add ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x48]
mov bl, byte [ecx]
mov byte [ebp - 0x49], bl
cmp ax, word [ebp - 0x3a]
ja 0x4037a7
jmp 0x403601
mov eax, dword [ebp - 0x14]
xor eax, 0x70fada51
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x18], 0
mov eax, 0x100
mov ecx, dword [ebp - 0x14]
add ecx, 0x8f0525b0
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
xor esi, 0x70fada50
add esi, dword [ebp - 0x44]
xor edx, 0x70fadb51
mov dword [ebp - 0x284], eax
mov eax, esi
mov dword [ebp - 0x288], edx
cdq
mov esi, dword [ebp - 0x288]
idiv esi
mov bl, byte [ebp + edx - 0x151]
movzx edi, bl
mov esi, edi
add esi, dword [ebp - 0x18]
mov eax, esi
mov dword [ebp - 0x28c], edx
cdq
mov esi, dword [ebp - 0x284]
idiv esi
mov bh, byte [ebp + edx - 0x151]
mov esi, dword [ebp - 0x164]
mov dword [ebp - 0x290], ecx
mov ecx, dword [ebp - 0x28c]
mov byte [ebp + ecx - 0x151], bh
mov byte [ebp + edx - 0x151], bl
movzx ecx, byte [ebp + ecx - 0x151]
add ecx, edi
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x151]
mov ecx, dword [ebp - 0x190]
xor bl, byte [ecx + esi]
mov byte [ecx + esi], bl
mov edi, dword [ebp - 0x290]
add esi, edi
mov edi, dword [ebp - 0x28c]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x188]
cmp esi, edx
jne 0x403692
xor eax, eax
mov ecx, dword [ebp - 0x190]
add ecx, dword [0x452938]
mov edx, dword [ebp - 0x168]
mov dword [edx + 0x18], ecx
mov ecx, dword [0x452930]
add ecx, 0xffffc28c
mov dword [edx + 0x1c], ecx
mov ecx, dword [ebp - 0x190]
add ecx, dword [0x45293c]
mov dword [edx + 8], ecx
mov ecx, dword [0x452934]
mov dword [edx + 0xc], ecx
add esp, 0x29c
pop edi
pop ebx
pop esi
pop ebp
ret
mov eax, 0x100
mov ecx, 0x34
movzx edx, byte [ebp - 0x49]
mov esi, dword [ebp - 0x15c]
mov dword [ebp - 0x294], eax
mov eax, esi
xor esi, esi
mov dword [ebp - 0x298], edx
mov edx, esi
div ecx
mov ecx, dword [ebp - 0x298]
add ecx, dword [ebp - 0x160]
movzx edx, byte [edx + 0x44d66c]
mov bl, byte [ebp - 0xf]
add bl, 0x29
mov byte [ebp - 0x51], 0x2c
add ecx, edx
mov eax, ecx
cdq
mov ecx, dword [ebp - 0x294]
idiv ecx
mov bh, byte [ebp - 0x51]
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x40], 0x40f6c2e7
mov dword [ebp - 0x50], 0x5250aa6e
cmp bh, bl
jb 0x403601
jmp 0x40363d
mov eax, dword [ebp - 0x188]
cmp eax, 0
je 0x40375e
jmp 0x403676