Function at 0x40c960
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x238
mov dword [esp + 0x38], 0x51bf4f83
mov dword [esp + 0x3c], 0x55b953aa
mov dword [esp + 0x40], 0x59ba57b8
mov dword [esp + 0x44], 0x5d6b5bbb
mov dword [esp + 0x48], 0x61705f6b
mov dword [esp + 0x4c], 0x65426350
mov dword [esp + 0x50], 0x69bf674c
mov dword [esp + 0x54], 0x6d846b83
mov dword [esp + 0x58], 0x719f6f88
mov dword [esp + 0x5c], 0x75877389
mov dword [esp + 0x60], 0x79b87754
mov dword [esp + 0x64], 0x7d5a7bac
mov dword [esp + 0x68], 0x14e7f4f
mov dword [esp + 0x6c], 0x532032e
mov dword [esp + 0x70], 0x9260739
mov dword [esp + 0x74], 0xde10bd1
mov dword [esp + 0x78], 0x11380fe2
mov dword [esp + 0x7c], 0x152f1324
mov dword [esp + 0x80], 0x19ee1734
mov dword [esp + 0x84], 0x1d2e1b2e
mov dword [esp + 0x88], 0x213e1f37
mov dword [esp + 0x8c], 0x25d223e3
mov dword [esp + 0x90], 0x29ca27d4
mov dword [esp + 0x94], 0x2df32bcf
mov dword [esp + 0x98], 0x31cc2fcb
mov dword [esp + 0x9c], 0x35d933fd
mov dword [esp + 0xa0], 0x390737c0
mov dword [esp + 0xa4], 0x3d0f3b0f
mov dword [esp + 0xa8], 0xc1103f05
mov dword [esp + 0xac], 0xc5f4c3f5
mov dword [esp + 0xb0], 0xc9eec7e4
mov dword [esp + 0xb4], 0xcd02cb05
mov dword [esp + 0xb8], 0xd101cf18
mov dword [esp + 0xbc], 0xd5fed31c
mov dword [esp + 0xc0], 0xd93ad7f4
mov dword [esp + 0xc4], 0xdd37db33
mov dword [esp + 0xc8], 0xe1fedf3b
mov dword [esp + 0xcc], 0xe505e329
mov dword [esp + 0xd0], 0xe90be701
mov dword [esp + 0xd4], 0xedc1eb19
mov dword [esp + 0xd8], 0xf12befcc
mov dword [esp + 0xdc], 0xf500f318
mov dword [esp + 0xe0], 0xf919f705
mov dword [esp + 0xe4], 0xfdcbfb1f
mov dword [esp + 0xe8], 0x81cdffcf
mov dword [esp + 0xec], 0x85ac83bb
mov dword [esp + 0xf0], 0x89a887b4
mov dword [esp + 0xf4], 0x8da48bb8
mov dword [esp + 0xf8], 0x91ae8fbc
mov dword [esp + 0xfc], 0x95719345
mov dword [esp + 0x100], 0x99759772
mov dword [esp + 0x104], 0x9d719b6a
mov dword [esp + 0x108], 0xa1a99fad
mov dword [esp + 0x10c], 0xa59ba395
mov dword [esp + 0x110], 0xa993a78a
mov dword [esp + 0x114], 0xadaaab9e
mov byte [esp + 0x118], 0
mov eax, dword [0x4482f4]
mov ecx, 0xd
mov edx, 0xf2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x2b]
mov esi, edx
and esi, ebx
mov edi, ecx
xor edi, ebx
add edi, ebx
sub edi, esi
not ebx
or ebx, edx
and ebx, edi
add bl, 0xbf
mov byte [esp + ecx + 0x2b], bl
inc ecx
dec edx
cmp ecx, 0xee
jne case.default.0x40cc17
lea ecx, [esp + 0x38]
push 0
push 0
push 0
push 0
push ecx
call eax
xor ecx, ecx
mov dword [esp + 4], eax
test eax, eax
setne cl
mov eax, dword [ecx*4 + 0x4421ac]
mov ecx, 0x7192a865
xor ecx, dword [0x4421b4]
add eax, ecx
inc eax
jmp eax
insb byte es:[edi], dx
and al, 0xc
rol ebp, 0xa
add eax, ebp
call 0x88680120
add byte [eax], al
add byte [ecx + 0x448b0445], cl
and al, 0x60
call 0x88680120
add byte [eax], al
add byte [ecx + 0x448b0445], cl
and al, 0x60
mov dword [ebp + 8], eax
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 8]
add ebp, eax
add ebp, ebx
rol edi, 0xb
add ebp, edi
mov ebx, dword [esp + 0x88]
mov dword [ebx + 0xc], ebp
add eax, dword [esp + 0x70]
rol esi, 6
add eax, edx
add eax, esi
mov dword [ebx + 0x10], eax
mov dword [ebx], ecx
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret