Function at 0x542c50
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov edx, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
cmp edx, ebx
mov dword [ebp - 0x10], ecx
jne 0x542c6e
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jne 0x542c7f
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [ebp + 0x14]
cmp esi, ebx
jne 0x542c90
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp + 0xc]
mov dword [esi], ecx
mov ecx, dword [ebp + 0x18]
cmp ecx, 3
jge 0x542ca6
mov dword [ebp + 0x18], 1
jmp 0x542cbe
cmp ecx, 5
jge 0x542cae
inc ecx
jmp 0x542cbb
cmp ecx, 7
jge 0x542cb8
add ecx, 9
jmp 0x542cbb
add ecx, 0xf
mov dword [ebp + 0x18], ecx
push edi
mov esi, edx
mov edi, edx
mov edx, 5
sub edi, eax
lea ecx, [eax + 3]
sub edx, eax
mov dword [ebp + 0x10], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0x14], esi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edx
cmp ebx, 0x14
jl 0x542dc2
mov eax, ebx
cdq
idiv dword [ebp + 0x18]
test edx, edx
je 0x542dc2
cmp dword [ebp + 8], 7
je 0x542d15
mov edx, dword [esi]
mov dword [ecx - 3], edx
mov eax, dword [esi + 4]
mov dword [ecx + 1], eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
jmp 0x542fc9
mov dx, word [edi + ecx]
mov eax, esi
mov word [ecx - 3], dx
mov edx, ecx
mov di, word [eax]
mov word [edx], di
mov al, byte [eax + 2]
mov byte [edx + 2], al
mov dl, byte [esi + 6]
mov byte [ecx - 1], dl
mov al, byte [esi + 5]
mov byte [ecx + 3], al
mov al, byte [esi + 7]
mov byte [ebp - 8], al
mov edx, dword [ebp - 8]
and edx, 0xff
cmp edx, 0x77
jg 0x542d83
je 0x542d7f
cmp edx, 0x6c
ja case.0x542d93.134
xor ebx, ebx
mov bl, byte [edx + 0x543024]
jmp dword [ebx*4 + 0x543004]
mov al, 0x2b
jmp case.0x542d93.134
xor al, al
jmp case.0x542d93.134
mov al, 0x80
jmp case.0x542d93.134
mov al, 0x68
jmp case.0x542d93.134
mov al, 1
jmp case.0x542d93.134
mov al, 0x77
jmp case.0x542d93.134
or al, 0xff
jmp case.0x542d93.134
mov al, 0x48
jmp case.0x542d93.134
add edx, 0xffffff80
cmp edx, 0x7f
ja case.0x542d93.134
xor ebx, ebx
mov bl, byte [edx + 0x5430b0]
jmp dword [ebx*4 + 0x543094]
mov al, 0xc0
jmp case.0x542d93.134
mov al, 0xb9
jmp case.0x542d93.134
mov al, 0xeb
jmp case.0x542d93.134
mov al, 0xfe
jmp case.0x542d93.134
mov al, 0x6c
jmp case.0x542d93.134
mov al, 0x60
mov dword [ebp + 8], 0
mov byte [ecx + 4], al
inc dword [ebp + 8]
jmp 0x542fc9
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
mov edx, dword [esi + 4]
mov esi, 0x40
mov dword [ebp - 0x30], edx
xor edx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], edx
mov al, byte [edx + 0x73eec4]
dec al
mov byte [ebp - 0xc], al
mov eax, dword [ebp - 0xc]
and eax, 0xff
mov edi, eax
and eax, 7
shr edi, 3
mov bl, byte [ebp + edi - 0x34]
test byte [eax + 0x73eebc], bl
je 0x542e17
mov eax, edx
mov edi, edx
shr eax, 3
and edi, 7
lea eax, [ebp + eax - 0x3c]
mov bl, byte [edi + 0x73eebc]
or byte [eax], bl
inc edx
dec esi
jne 0x542dda
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x34], edx
xor esi, esi
mov edx, dword [eax + 0x78]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], esi
mov ebx, 0x30
mov dl, byte [esi + 0x73efbc]
add dl, 0x1f
mov byte [ebp - 0x14], dl
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov edx, eax
and eax, 7
shr edx, 3
mov dl, byte [ebp + edx - 0x34]
test byte [eax + 0x73eebc], dl
je 0x542e96
mov eax, 0x2aaaaaab
mov ecx, 6
imul esi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
lea edi, [ebp + edx - 0x2c]
cdq
idiv ecx
mov al, byte [edi]
mov ecx, dword [ebp - 4]
mov dl, byte [edx + 0x73eebc]
or al, dl
mov byte [edi], al
inc esi
dec ebx
jne 0x542e43
xor eax, eax
mov edx, 8
mov bl, byte [ebp + eax - 0x54]
xor byte [ebp + eax - 0x2c], bl
inc eax
dec edx
jne 0x542ea1
xor eax, eax
xor edx, edx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], eax
mov edi, 8
mov esi, eax
and esi, 0x80000001
jns 0x542ecb
dec esi
or esi, 0xfffffffe
inc esi
jne 0x542eea
xor ebx, ebx
mov esi, eax
mov bl, byte [ebp + eax - 0x2c]
shr ebx, 2
mov bl, byte [ebx + edx + 0x73f00c]
shl bl, 4
shr esi, 1
mov byte [ebp + esi - 0x44], bl
jmp 0x542f04
xor ebx, ebx
mov esi, eax
mov bl, byte [ebp + eax - 0x2c]
shr esi, 1
shr ebx, 2
lea esi, [ebp + esi - 0x44]
mov bl, byte [ebx + edx + 0x73f00c]
add byte [esi], bl
inc eax
add edx, 0x40
dec edi
jne 0x542ebc
xor edx, edx
xor esi, esi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], esi
mov edi, 0x20
mov al, byte [edx + 0x73efec]
dec al
mov byte [ebp - 0x18], al
mov eax, dword [ebp - 0x18]
and eax, 0xff
mov ebx, eax
and eax, 7
shr ebx, 3
mov bl, byte [ebp + ebx - 0x44]
test byte [eax + 0x73eebc], bl
je 0x542f5a
mov eax, edx
mov esi, edx
shr eax, 3
and esi, 7
lea eax, [ebp + eax - 0x2c]
mov bl, byte [esi + 0x73eebc]
or byte [eax], bl
mov esi, dword [ebp - 0x2c]
inc edx
dec edi
jne 0x542f1a
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
xor esi, eax
mov dword [ebp - 0x30], edx
xor edx, edx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], edx
mov esi, 0x40
mov al, byte [edx + 0x73ef04]
dec al
mov byte [ebp - 0x1c], al
mov eax, dword [ebp - 0x1c]
and eax, 0xff
mov edi, eax
and eax, 7
shr edi, 3
mov bl, byte [ebp + edi - 0x34]
test byte [eax + 0x73eebc], bl
je 0x542fb6
mov eax, edx
mov edi, edx
shr eax, 3
and edi, 7
lea eax, [ebp + eax - 0x4c]
mov bl, byte [edi + 0x73eebc]
or byte [eax], bl
inc edx
dec esi
jne 0x542f79
mov eax, dword [ebp - 0x4c]
lea edx, [ecx - 3]
mov dword [ecx - 3], eax
mov eax, dword [ebp - 0x48]
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
add edx, ecx
cmp edx, eax
jge 0x542ff3
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
inc ebx
add esi, 8
add ecx, 8
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
mov dword [ebp - 4], ecx
jmp 0x542ce1
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14