Function at 0x545a90
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 0x545aae
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jne 0x545abf
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [ebp + 0x14]
cmp esi, ebx
jne 0x545ad0
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 0x545ae6
mov dword [ebp + 0x18], 1
jmp 0x545afe
cmp ecx, 5
jge 0x545aee
inc ecx
jmp 0x545afb
cmp ecx, 7
jge 0x545af8
add ecx, 9
jmp 0x545afb
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 0x545c02
mov eax, ebx
cdq
idiv dword [ebp + 0x18]
test edx, edx
je 0x545c02
cmp dword [ebp + 8], 7
je 0x545b55
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 0x545e09
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 0x545bc3
je 0x545bbf
cmp edx, 0x6c
ja case.0x545bd3.134
xor ebx, ebx
mov bl, byte [edx + 0x545e64]
jmp dword [ebx*4 + 0x545e44]
mov al, 0x2b
jmp case.0x545bd3.134
xor al, al
jmp case.0x545bd3.134
mov al, 0x80
jmp case.0x545bd3.134
mov al, 0x68
jmp case.0x545bd3.134
mov al, 1
jmp case.0x545bd3.134
mov al, 0x77
jmp case.0x545bd3.134
or al, 0xff
jmp case.0x545bd3.134
mov al, 0x48
jmp case.0x545bd3.134
add edx, 0xffffff80
cmp edx, 0x7f
ja case.0x545bd3.134
xor ebx, ebx
mov bl, byte [edx + 0x545ef0]
jmp dword [ebx*4 + 0x545ed4]
mov al, 0xc0
jmp case.0x545bd3.134
mov al, 0xb9
jmp case.0x545bd3.134
mov al, 0xeb
jmp case.0x545bd3.134
mov al, 0xfe
jmp case.0x545bd3.134
mov al, 0x6c
jmp case.0x545bd3.134
mov al, 0x60
mov dword [ebp + 8], 0
mov byte [ecx + 4], al
inc dword [ebp + 8]
jmp 0x545e09
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
mov edx, dword [esi + 4]
mov esi, pe_nt_image_headers32
mov dword [ebp - 0x30], edx
xor edx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], edx
mov al, byte [edx + 0x742f5c]
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 + 0x742f54], bl
je 0x545c57
mov eax, edx
mov edi, edx
shr eax, 3
and edi, 7
lea eax, [ebp + eax - 0x3c]
mov bl, byte [edi + 0x742f54]
or byte [eax], bl
inc edx
dec esi
jne 0x545c1a
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 + 0x743054]
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 + 0x742f54], dl
je 0x545cd6
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 + 0x742f54]
or al, dl
mov byte [edi], al
inc esi
dec ebx
jne 0x545c83
xor eax, eax
mov edx, 8
mov bl, byte [ebp + eax - 0x54]
xor byte [ebp + eax - 0x2c], bl
inc eax
dec edx
jne 0x545ce1
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 0x545d0b
dec esi
or esi, 0xfffffffe
inc esi
jne 0x545d2a
xor ebx, ebx
mov esi, eax
mov bl, byte [ebp + eax - 0x2c]
shr ebx, 2
mov bl, byte [ebx + edx + 0x7430a4]
shl bl, 4
shr esi, 1
mov byte [ebp + esi - 0x44], bl
jmp 0x545d44
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 + 0x7430a4]
add byte [esi], bl
inc eax
add edx, 0x40
dec edi
jne 0x545cfc
xor edx, edx
xor esi, esi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], esi
mov edi, 0x20
mov al, byte [edx + 0x743084]
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 + 0x742f54], bl
je 0x545d9a
mov eax, edx
mov esi, edx
shr eax, 3
and esi, 7
lea eax, [ebp + eax - 0x2c]
mov bl, byte [esi + 0x742f54]
or byte [eax], bl
mov esi, dword [ebp - 0x2c]
inc edx
dec edi
jne 0x545d5a
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, pe_nt_image_headers32
mov al, byte [edx + 0x742f9c]
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 + 0x742f54], bl
je 0x545df6
mov eax, edx
mov edi, edx
shr eax, 3
and edi, 7
lea eax, [ebp + eax - 0x4c]
mov bl, byte [edi + 0x742f54]
or byte [eax], bl
inc edx
dec esi
jne 0x545db9
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 0x545e33
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 0x545b21
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14