Function at 0x4154d0
Capabilities:
Encode data using xor
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov ecx, dword [0x43c830]
xor eax, eax
cmp ecx, eax
je 0x4159ff
push ebx
mov dword [0x43c830], eax
push esi
lea ecx, [ecx]
mov dl, byte [eax + 0x43c838]
mov cl, dl
and cl, 2
neg cl
sbb cl, cl
mov bl, dl
and ecx, 0xb4
and bl, 1
mov byte [ebp - 3], bl
sete bl
dec bl
shr dl, 2
and ebx, 0x5a
xor dl, bl
xor dl, cl
mov byte [ebp - 1], bl
mov bl, byte [eax + 0x43c838]
xor dl, bl
mov byte [ebp - 8], dl
mov dl, bl
shr dl, 1
xor dl, bl
mov bl, byte [ebp - 3]
shr dl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [ebp - 1]
mov bl, byte [eax + 0x43c838]
xor dl, cl
xor dl, bl
mov bl, byte [eax + 0x43c938]
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [ebp - 2], cl
mov cl, bl
and cl, 1
mov byte [ebp - 3], cl
sete cl
dec cl
and ecx, 0x5a
mov byte [ebp - 1], cl
mov cl, bl
mov bl, byte [ebp - 1]
shr cl, 2
xor cl, bl
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c938]
xor cl, bl
mov byte [ebp - 7], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [ebp - 3]
shr cl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [ebp - 1]
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c938]
xor cl, bl
mov byte [ebp - 0xc], bl
mov bl, byte [ebp - 7]
mov byte [ebp - 0xb], bl
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], cl
mov esi, dword [ebp - 0xc]
mov dword [eax*4 + 0x43cad0], esi
mov byte [ebp - 0xc], dl
mov bl, byte [ebp - 8]
mov byte [ebp - 0xb], dl
mov byte [ebp - 0xa], bl
mov bl, byte [eax + 0x43c838]
mov byte [ebp - 9], bl
mov esi, dword [ebp - 0xc]
mov bl, byte [ebp - 7]
mov byte [ebp - 0xc], bl
mov bl, byte [eax + 0x43c938]
mov byte [ebp - 0xb], cl
mov byte [ebp - 9], cl
mov byte [ebp - 0xa], bl
mov ecx, dword [ebp - 0xc]
mov bl, byte [ebp - 8]
mov byte [ebp - 0xa], dl
mov dword [eax*4 + 0x43d2d0], ecx
mov cl, byte [eax + 0x43c838]
mov byte [ebp - 0xb], cl
mov cl, byte [eax + 0x43c839]
mov byte [ebp - 0xc], bl
mov byte [ebp - 9], bl
mov edx, dword [ebp - 0xc]
mov dword [eax*4 + 0x43d6d0], edx
mov dl, cl
and dl, 2
neg dl
sbb dl, dl
mov dword [eax*4 + 0x43ced0], esi
and edx, 0xb4
mov byte [ebp - 2], dl
mov dl, cl
and dl, 1
mov byte [ebp - 3], dl
sete dl
dec dl
and edx, 0x5a
mov byte [ebp - 1], dl
mov bl, dl
mov dl, cl
shr dl, 2
xor dl, bl
xor dl, byte [ebp - 2]
mov bl, byte [ebp - 3]
xor dl, cl
mov byte [ebp - 8], dl
mov dl, cl
shr dl, 1
xor dl, cl
shr dl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [ebp - 1]
xor dl, byte [ebp - 2]
mov bl, byte [eax + 0x43c939]
xor dl, cl
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [ebp - 2], cl
mov cl, bl
and cl, 1
mov byte [ebp - 3], cl
sete cl
dec cl
and ecx, 0x5a
mov byte [ebp - 1], cl
mov cl, bl
mov bl, byte [ebp - 1]
shr cl, 2
xor cl, bl
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c939]
xor cl, bl
mov byte [ebp - 7], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [ebp - 3]
shr cl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [ebp - 1]
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c939]
xor cl, bl
mov byte [ebp - 0xc], bl
mov bl, byte [ebp - 7]
mov byte [ebp - 0xb], bl
mov bl, byte [ebp - 8]
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], cl
mov esi, dword [ebp - 0xc]
mov byte [ebp - 0xc], dl
mov byte [ebp - 0xb], dl
mov byte [ebp - 0xa], bl
mov bl, byte [eax + 0x43c839]
mov byte [ebp - 9], bl
mov bl, byte [ebp - 7]
mov dword [eax*4 + 0x43cad4], esi
mov esi, dword [ebp - 0xc]
mov byte [ebp - 0xc], bl
mov bl, byte [eax + 0x43c939]
mov byte [ebp - 0xa], bl
mov bl, byte [ebp - 8]
mov byte [ebp - 0xb], cl
mov byte [ebp - 9], cl
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0xa], dl
mov byte [ebp - 0xc], bl
mov byte [ebp - 9], bl
mov dword [eax*4 + 0x43d2d4], ecx
mov cl, byte [eax + 0x43c839]
mov byte [ebp - 0xb], cl
mov cl, byte [eax + 0x43c83a]
mov edx, dword [ebp - 0xc]
mov dword [eax*4 + 0x43d6d4], edx
mov dl, cl
and dl, 2
neg dl
sbb dl, dl
mov dword [eax*4 + 0x43ced4], esi
and edx, 0xb4
mov byte [ebp - 2], dl
mov dl, cl
and dl, 1
mov byte [ebp - 3], dl
sete dl
dec dl
and edx, 0x5a
mov byte [ebp - 1], dl
mov bl, dl
mov dl, cl
shr dl, 2
xor dl, bl
xor dl, byte [ebp - 2]
mov bl, byte [ebp - 3]
xor dl, cl
mov byte [ebp - 8], dl
mov dl, cl
shr dl, 1
xor dl, cl
shr dl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [ebp - 1]
xor dl, byte [ebp - 2]
mov bl, byte [eax + 0x43c93a]
xor dl, cl
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [ebp - 2], cl
mov cl, bl
and cl, 1
mov byte [ebp - 3], cl
sete cl
dec cl
and ecx, 0x5a
mov byte [ebp - 1], cl
mov cl, bl
mov bl, byte [ebp - 1]
shr cl, 2
xor cl, bl
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c93a]
xor cl, bl
mov byte [ebp - 7], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [ebp - 3]
shr cl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [ebp - 1]
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c93a]
xor cl, bl
mov byte [ebp - 0xc], bl
mov bl, byte [ebp - 7]
mov byte [ebp - 0xb], bl
mov bl, byte [ebp - 8]
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], cl
mov esi, dword [ebp - 0xc]
mov byte [ebp - 0xa], bl
mov bl, byte [eax + 0x43c83a]
mov byte [ebp - 0xc], dl
mov byte [ebp - 0xb], dl
mov byte [ebp - 9], bl
mov bl, byte [ebp - 7]
mov dword [eax*4 + 0x43cad8], esi
mov esi, dword [ebp - 0xc]
mov byte [ebp - 0xc], bl
mov bl, byte [eax + 0x43c93a]
mov byte [ebp - 0xb], cl
mov byte [ebp - 9], cl
mov byte [ebp - 0xa], bl
mov ecx, dword [ebp - 0xc]
mov bl, byte [ebp - 8]
mov byte [ebp - 0xa], dl
mov dword [eax*4 + 0x43d2d8], ecx
mov cl, byte [eax + 0x43c83a]
mov byte [ebp - 0xb], cl
mov cl, byte [eax + 0x43c83b]
mov byte [ebp - 0xc], bl
mov byte [ebp - 9], bl
mov edx, dword [ebp - 0xc]
mov dword [eax*4 + 0x43d6d8], edx
mov dl, cl
and dl, 2
neg dl
sbb dl, dl
mov dword [eax*4 + 0x43ced8], esi
and edx, 0xb4
mov byte [ebp - 2], dl
mov dl, cl
and dl, 1
mov byte [ebp - 3], dl
sete dl
dec dl
and edx, 0x5a
mov byte [ebp - 1], dl
mov bl, dl
mov dl, cl
shr dl, 2
xor dl, bl
xor dl, byte [ebp - 2]
xor dl, cl
mov bl, byte [ebp - 3]
mov byte [ebp - 8], dl
mov dl, cl
shr dl, 1
xor dl, cl
shr dl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [ebp - 1]
xor dl, byte [ebp - 2]
mov bl, byte [eax + 0x43c93b]
xor dl, cl
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [ebp - 2], cl
mov cl, bl
and cl, 1
mov byte [ebp - 3], cl
sete cl
dec cl
and ecx, 0x5a
mov byte [ebp - 1], cl
mov cl, bl
mov bl, byte [ebp - 1]
shr cl, 2
xor cl, bl
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c93b]
xor cl, bl
mov byte [ebp - 7], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [ebp - 3]
shr cl, 1
test bl, bl
sete bl
dec bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [ebp - 1]
xor cl, byte [ebp - 2]
mov bl, byte [eax + 0x43c93b]
xor cl, bl
mov byte [ebp - 0xc], bl
mov bl, byte [ebp - 7]
mov byte [ebp - 0xb], bl
mov bl, byte [ebp - 8]
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], cl
mov esi, dword [ebp - 0xc]
mov dword [eax*4 + 0x43cadc], esi
mov byte [ebp - 0xc], dl
mov byte [ebp - 0xb], dl
mov byte [ebp - 0xa], bl
mov bl, byte [eax + 0x43c83b]
mov byte [ebp - 9], bl
mov esi, dword [ebp - 0xc]
mov bl, byte [ebp - 7]
mov byte [ebp - 0xc], bl
mov bl, byte [eax + 0x43c93b]
mov byte [ebp - 0xb], cl
mov byte [ebp - 0xa], bl
mov bl, byte [ebp - 8]
mov byte [ebp - 9], cl
mov ecx, dword [ebp - 0xc]
mov dword [eax*4 + 0x43d2dc], ecx
mov cl, byte [eax + 0x43c83b]
mov byte [ebp - 0xc], bl
mov byte [ebp - 0xb], cl
mov byte [ebp - 0xa], dl
mov byte [ebp - 9], bl
mov edx, dword [ebp - 0xc]
mov dword [eax*4 + 0x43cedc], esi
mov dword [eax*4 + 0x43d6dc], edx
add eax, 4
cmp eax, 0x100
jl 0x4154f0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret